Merge branch 'develop' into matthew/dharma

This commit is contained in:
Bruno Windels 2018-09-28 16:52:38 +02:00
commit aac40c8c58
16 changed files with 8445 additions and 3048 deletions

1
.gitignore vendored
View File

@ -19,3 +19,4 @@ electron/pub
/config.json.* /config.json.*
/config.local*.json /config.local*.json
/src/component-index.js /src/component-index.js
/.tmp

View File

@ -64,12 +64,13 @@ Building From Source
Riot is a modular webapp built with modern ES6 and requires a npm build system Riot is a modular webapp built with modern ES6 and requires a npm build system
to build. to build.
1. Install or update `node.js` so that your `node` is at least v6.3.0 (and `npm` 1. Install or update `node.js` so that your `node` is at least v8.12.0 (and `npm`
is at least v3.10.x). is at least v5.x).
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`. 1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
1. Switch to the riot-web directory: `cd riot-web`. 1. Switch to the riot-web directory: `cd riot-web`.
1. If you're using the `develop` branch, install the develop versions of the 1. If you're using the `develop` branch then it is recommended to set up a proper
dependencies, as the released ones will be too old: development environment ("Setting up a dev environment" below) however one can
install the develop versions of the dependencies instead:
``` ```
scripts/fetch-develop.deps.sh scripts/fetch-develop.deps.sh
``` ```
@ -89,13 +90,9 @@ to build.
npm install npm install
npm run build npm run build
``` ```
However, we recommend setting up a proper development environment (see "Setting Or just use https://riot.im/develop - the continuous integration release of the
up a dev environment" below) if you want to run your own copy of the develop branch. (Note that we don't reference the develop versions in git directly
`develop` branch, as it makes it much easier to keep these dependencies due to https://github.com/npm/npm/issues/3055.)
up-to-date. Or just use https://riot.im/develop - the continuous integration
release of the develop branch.
(Note that we don't reference the develop versions in git directly due to
https://github.com/npm/npm/issues/3055.)
1. Install the prerequisites: `npm install`. 1. Install the prerequisites: `npm install`.
1. Configure the app by copying `config.sample.json` to `config.json` and 1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it (see below for details). modifying it (see below for details).
@ -239,7 +236,7 @@ higher and lower level React components useful for building Matrix communication
apps using React. apps using React.
After creating a new component you must run `npm run reskindex` to regenerate After creating a new component you must run `npm run reskindex` to regenerate
the `component-index.js` for the app (used in future for skinning) the `component-index.js` for the app (used in future for skinning).
Please note that Riot is intended to run correctly without access to the public Please note that Riot is intended to run correctly without access to the public
internet. So please don't depend on resources (JS libs, CSS, images, fonts) internet. So please don't depend on resources (JS libs, CSS, images, fonts)
@ -256,20 +253,19 @@ having to manually rebuild each time.
First clone and build `matrix-js-sdk`: First clone and build `matrix-js-sdk`:
1. `git clone git@github.com:matrix-org/matrix-js-sdk.git` 1. `git clone https://github.com/matrix-org/matrix-js-sdk.git`
1. `pushd matrix-js-sdk` 1. `pushd matrix-js-sdk`
1. `git checkout develop` 1. `git checkout develop`
1. `npm install` 1. `npm install`
1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472) 1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472)
1. `popd` 1. `popd`
Then similarly with `matrix-react-sdk`: Then similarly with `matrix-react-sdk`:
1. `git clone git@github.com:matrix-org/matrix-react-sdk.git` 1. `git clone https://github.com/matrix-org/matrix-react-sdk.git`
1. `pushd matrix-react-sdk` 1. `pushd matrix-react-sdk`
1. `git checkout develop` 1. `git checkout develop`
1. `npm install` 1. `npm link ../matrix-js-sdk`
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
1. `popd` 1. `popd`
Finally, build and start Riot itself: Finally, build and start Riot itself:
@ -278,8 +274,8 @@ Finally, build and start Riot itself:
1. `cd riot-web` 1. `cd riot-web`
1. `git checkout develop` 1. `git checkout develop`
1. `npm install` 1. `npm install`
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/` 1. `npm link ../matrix-js-sdk`
1. `rm -r node_modules/matrix-react-sdk; ln -s ../../matrix-react-sdk node_modules/` 1. `npm link ../matrix-react-sdk`
1. `npm start` 1. `npm start`
1. Wait a few seconds for the initial build to finish; you should see something like: 1. Wait a few seconds for the initial build to finish; you should see something like:
``` ```
@ -298,10 +294,8 @@ Finally, build and start Riot itself:
disables caching, so do NOT use it in production. disables caching, so do NOT use it in production.
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot. 1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
When you make changes to `matrix-react-sdk` or `matrix-js-sdk`, you will need When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
to run `npm run build` in the relevant directory. You can do this automatically automatically picked up by webpack and built.
by instead running `npm start` in the directory, to start a development builder
which will watch for changes to the files and rebuild automatically.
If you add or remove any components from the Riot skin, you will need to rebuild If you add or remove any components from the Riot skin, you will need to rebuild
the skin's index by running, `npm run reskindex`. the skin's index by running, `npm run reskindex`.

View File

@ -32,9 +32,12 @@ const olm_entry = webpack_config.entry['olm'];
// 'preprocessors' config below) // 'preprocessors' config below)
delete webpack_config['entry']; delete webpack_config['entry'];
// make sure we're flagged as development to avoid wasting time optimising
webpack_config.mode = 'development';
// add ./test as a search path for js // add ./test as a search path for js
webpack_config.module.loaders.unshift({ webpack_config.module.rules.unshift({
test: /\.js$/, loader: "babel", test: /\.js$/, use: "babel-loader",
include: [path.resolve('./src'), path.resolve('./test')], include: [path.resolve('./src'), path.resolve('./test')],
}); });
@ -46,8 +49,9 @@ webpack_config.module.noParse.push(/sinon\/pkg\/sinon\.js$/);
// ? // ?
webpack_config.resolve.alias['sinon'] = 'sinon/pkg/sinon.js'; webpack_config.resolve.alias['sinon'] = 'sinon/pkg/sinon.js';
webpack_config.resolve.root = [ webpack_config.resolve.modules = [
path.resolve('./test'), path.resolve('./test'),
"node_modules"
]; ];
webpack_config.devtool = 'inline-source-map'; webpack_config.devtool = 'inline-source-map';

11194
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -33,19 +33,25 @@
"build:res": "node scripts/copy-res.js", "build:res": "node scripts/copy-res.js",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js", "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:compile": "npm run reskindex && babel --source-maps -d lib src", "build:compile": "npm run reskindex && babel --source-maps -d lib src",
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail", "build:bundle": "cross-env NODE_ENV=production webpack-cli -p --progress --bail --mode production",
"build:bundle:dev": "webpack --optimize-occurence-order --progress --bail", "build:bundle:dev": "webpack-cli --progress --bail --mode development",
"build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64", "build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
"build": "npm run reskindex && npm run build:res && npm run build:bundle", "build:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run start:init",
"build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev", "build:js-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:init",
"build": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle",
"build:dev": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle:dev",
"dist": "scripts/package.sh", "dist": "scripts/package.sh",
"install:electron": "install-app-deps", "install:electron": "install-app-deps",
"electron": "npm run install:electron && electron .", "electron": "npm run install:electron && electron .",
"start:res": "node scripts/copy-res.js -w", "start:res": "node scripts/copy-res.js -w",
"start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-file=bundles/_dev_/[name].js -w --progress", "start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress", "start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
"start": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"", "start:js-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"", "start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run start:all",
"start:react-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-react-sdk run start:all",
"start": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk\" \"npm run start:react-sdk\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
"start:prod": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk:prod\" \"npm run start:react-sdk:prod\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
"lint": "eslint src/", "lint": "eslint src/",
"lintall": "eslint src/ test/", "lintall": "eslint src/ test/",
"clean": "rimraf lib webapp electron_app/dist", "clean": "rimraf lib webapp electron_app/dist",
@ -54,12 +60,12 @@
"test-multi": "karma start" "test-multi": "karma start"
}, },
"dependencies": { "dependencies": {
"babel-polyfill": "^6.5.0", "babel-polyfill": "^6.26.0",
"babel-runtime": "^6.11.6", "babel-runtime": "^6.26.0",
"bluebird": "^3.5.0", "bluebird": "^3.5.0",
"browser-request": "^0.3.3", "browser-request": "^0.3.3",
"draft-js": "^0.11.0-alpha", "draft-js": "^0.11.0-alpha",
"extract-text-webpack-plugin": "^0.9.1", "extract-text-webpack-plugin": "^4.0.0-beta.0",
"favico.js": "^0.3.10", "favico.js": "^0.3.10",
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279", "gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.1", "gfm.css": "^1.1.1",
@ -76,67 +82,68 @@
}, },
"devDependencies": { "devDependencies": {
"autoprefixer": "^6.6.0", "autoprefixer": "^6.6.0",
"babel-cli": "^6.5.2", "babel-cli": "^6.26.0",
"babel-core": "^6.14.0", "babel-core": "^6.26.3",
"babel-eslint": "^6.1.0", "babel-eslint": "^6.1.2",
"babel-loader": "^6.2.5", "babel-loader": "^7.1.5",
"babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-async-to-bluebird": "^1.1.1", "babel-plugin-transform-async-to-bluebird": "^1.1.1",
"babel-plugin-transform-class-properties": "^6.16.0", "babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.16.0", "babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.15.0", "babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.16.0", "babel-preset-es2015": "^6.24.1",
"babel-preset-es2016": "^6.16.0", "babel-preset-es2016": "^6.24.1",
"babel-preset-es2017": "^6.16.0", "babel-preset-es2017": "^6.24.1",
"babel-preset-react": "^6.16.0", "babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.17.0", "babel-preset-stage-2": "^6.24.1",
"chokidar": "^1.6.1", "chokidar": "^1.6.1",
"concurrently": "^4.0.1",
"cpx": "^1.3.2", "cpx": "^1.3.2",
"cross-env": "^4.0.0", "cross-env": "^4.0.0",
"css-raw-loader": "^0.1.1",
"electron-builder": "^11.2.4", "electron-builder": "^11.2.4",
"electron-builder-squirrel-windows": "^11.2.1", "electron-builder-squirrel-windows": "^11.2.1",
"electron-devtools-installer": "^2.2.0", "electron-devtools-installer": "^2.2.0",
"emojione": "^2.2.7", "emojione": "^2.2.7",
"eslint": "^3.14.0", "eslint": "^3.14.0",
"eslint-config-google": "^0.7.1", "eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.1", "eslint-plugin-babel": "^4.1.2",
"eslint-plugin-flowtype": "^2.30.0", "eslint-plugin-flowtype": "^2.30.0",
"eslint-plugin-react": "^7.4.0", "eslint-plugin-react": "^7.4.0",
"expect": "^1.16.0", "expect": "^1.16.0",
"fs-extra": "^0.30.0", "fs-extra": "^0.30.0",
"html-webpack-plugin": "^2.24.0", "html-webpack-plugin": "^3.2.0",
"json-loader": "^0.5.3", "json-loader": "^0.5.3",
"karma": "^1.7.0", "karma": "^3.0.0",
"karma-chrome-launcher": "^0.2.3", "karma-chrome-launcher": "^0.2.3",
"karma-cli": "^0.1.2", "karma-cli": "^1.0.1",
"karma-junit-reporter": "^0.4.1", "karma-junit-reporter": "^0.4.2",
"karma-logcapture-reporter": "0.0.1", "karma-logcapture-reporter": "0.0.1",
"karma-mocha": "^0.2.2", "karma-mocha": "^1.3.0",
"karma-sourcemap-loader": "^0.3.7", "karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.31", "karma-spec-reporter": "0.0.31",
"karma-summary-reporter": "^1.3.3", "karma-summary-reporter": "^1.5.1",
"karma-webpack": "^1.7.0", "karma-webpack": "4.0.0-beta.0",
"matrix-mock-request": "^1.2.0", "matrix-mock-request": "^1.2.0",
"matrix-react-test-utils": "^0.2.0", "matrix-react-test-utils": "^0.2.0",
"minimist": "^1.2.0", "minimist": "^1.2.0",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"mocha": "^2.4.5", "mocha": "^2.4.5",
"parallelshell": "3.0.1",
"postcss-extend": "^1.0.5", "postcss-extend": "^1.0.5",
"postcss-import": "^9.0.0", "postcss-import": "^11.1.0",
"postcss-loader": "^1.2.2", "postcss-loader": "^2.1.6",
"postcss-mixins": "^5.4.1", "postcss-mixins": "^6.2.0",
"postcss-nested": "^1.0.0", "postcss-nested": "^3.0.0",
"postcss-scss": "^0.4.0", "postcss-scss": "^1.0.6",
"postcss-simple-vars": "^3.0.0", "postcss-simple-vars": "^4.1.0",
"postcss-strip-inline-comments": "^0.1.5", "postcss-strip-inline-comments": "^0.1.5",
"raw-loader": "^0.5.1",
"react-addons-perf": "^15.4.0", "react-addons-perf": "^15.4.0",
"react-addons-test-utils": "^15.6.0", "react-addons-test-utils": "^15.6.0",
"rimraf": "^2.4.3", "rimraf": "^2.4.3",
"source-map-loader": "^0.2.3", "source-map-loader": "^0.2.3",
"webpack": "^1.12.14", "webpack": "^4.20.2",
"webpack-dev-server": "^1.16.2" "webpack-cli": "^3.1.1",
"webpack-dev-server": "^3.1.9"
}, },
"optionalDependencies": { "optionalDependencies": {
"olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz" "olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz"

View File

@ -52,13 +52,7 @@ function dodep() {
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD` echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
mkdir -p node_modules mkdir -p node_modules
rm -r "node_modules/$repo" 2>/dev/null || true npm link "./$repo" # This does an npm install for us
ln -sv "../$repo" node_modules/
(
cd $repo
npm install
)
} }
############################## ##############################
@ -77,14 +71,15 @@ echo 'Setting up matrix-react-sdk'
dodep matrix-org matrix-react-sdk dodep matrix-org matrix-react-sdk
# replace the version of js-sdk that got pulled into react-sdk with a symlink # replace the version of js-sdk that got pulled into react-sdk with a link
# to our version. Make sure to do this *after* doing 'npm i' in react-sdk, # to our version. Make sure to do this *after* doing 'npm i' in react-sdk,
# otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules # otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules
# into matrix-react-sdk/node_modules. # into matrix-react-sdk/node_modules.
# #
# (note this matches the instructions in the README.) # (note this matches the instructions in the README.)
rm -r node_modules/matrix-react-sdk/node_modules/matrix-js-sdk cd matrix-react-sdk
ln -s ../../matrix-js-sdk node_modules/matrix-react-sdk/node_modules/ npm link ../matrix-js-sdk
cd ../
echo -en 'travis_fold:end:matrix-react-sdk\r' echo -en 'travis_fold:end:matrix-react-sdk\r'

22
scripts/npm-sub.js Normal file
View File

@ -0,0 +1,22 @@
const path = require('path');
const child_process = require('child_process');
const moduleName = process.argv[2];
if (!moduleName) {
console.error("Expected module name");
process.exit(1);
}
const argString = process.argv.length > 3 ? process.argv.slice(3).join(" ") : "";
if (!argString) {
console.error("Expected an npm argument string to use");
process.exit(1);
}
const modulePath = path.dirname(require.resolve(`${moduleName}/package.json`));
child_process.execSync("npm " + argString, {
env: process.env,
cwd: modulePath,
stdio: ['inherit', 'inherit', 'inherit'],
});

View File

@ -4,5 +4,29 @@
"Riot is not supported on mobile web. Install the app?": "رايوت غير مدعوم في وضعية الويب على الهاتف. هل تريد تثبيت التطبيق ؟", "Riot is not supported on mobile web. Install the app?": "رايوت غير مدعوم في وضعية الويب على الهاتف. هل تريد تثبيت التطبيق ؟",
"Riot Desktop on %(platformName)s": "الواجهة المكتبية لرايوت على %(platformName)s", "Riot Desktop on %(platformName)s": "الواجهة المكتبية لرايوت على %(platformName)s",
"Unknown device": "جهاز مجهول", "Unknown device": "جهاز مجهول",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s عبر %(browserName)s على %(osName)s" "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s عبر %(browserName)s على %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "تحتاج الى استخدام الاتصال الآمن ( HTTPS) للسماح بمشاركة الشاشة",
"Co-ordination for Riot translators": "التنسيق لمترجمين Riot",
"powered by Matrix": "مشغل بواسطة Matrix",
"Welcome to Riot.im": "مرحبا بك في Riot.im",
"Dev chat for the Dendrite dev team": "Dev chat for the Dendrite dev team",
"Implementing VoIP services with Matrix": "تنفيذ خدمات VoIP مع Matrix",
"Discussion of the Identity Service API": "مناقشة واجهة برمجة التطبيقات لخدمة الهوية",
"Support for those using, running and writing other bridges": "دعم لأولئك الذين يستخدمون الجسور الأخرى ويديرونها وكتابتهم",
"Implementing VR services with Matrix": "تنفيذ خدمات الواقع الافتراضي مع Matrix",
"Search the room directory": "ابحث في دليل الغرفة",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "توجد بالفعل الكثير من الغرف في Matrix ، مرتبطة بالشبكات القائمة (Slack، IRC، Gitter الخ) أو مستقلة. تحقق من الدليل!",
"Chat with Riot Bot": "الدردشة مع Riot Bot",
"Get started with some tips from Riot Bot!": "ابدأ ببعض النصائح من Riot Bot!",
"General discussion about Matrix and Riot": "مناقشة عامة حول Matrix و Riot",
"Discussion of all things Matrix!": "مناقشة كل شيء Matrix!",
"Riot/Web & Desktop chat": "Riot/Web & دردشة سطح المكتب",
"Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk chat",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "تستطيع استخدام الخدما.يمكنك استخدام خيارات الخادم المخصص لتسجيل الدخول إلى خوادم Matrix الأخرى عن طريق تحديد عنوان URL لخادم Home آخر.<br/>هذا يسمح لك باستخدام Riot مع حساب Matrix موجود على خادم منزل مختلف.<br/><br/>يمكنك أيضًا تعيين خادم هوية مخصص ولكنك لن تتمكن من دعوة المستخدمين عن طريق عنوان البريد الإلكتروني ، أو دعوتك عبر عنوان البريد الإلكتروني بنفسك.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "[matrix] تعاون مدعوم مواسطة &amp; دردشة لا مركزية ومشفرة",
"Matrix technical discussions": "مناقشات تقنية Matrix",
"Running Matrix services": "تشغيل خدمات Matrix",
"Community-run support for Synapse": "الدعم المجتمعي لـ Synapse",
"Admin support for Dendrite": "الدعم الاداري لـDendrite",
"Announcements about Synapse releases": "إعلانات حول إصدارات Synaps"
} }

View File

@ -3,14 +3,14 @@
"Custom Server Options": "Opcions de servidor personalitzat", "Custom Server Options": "Opcions de servidor personalitzat",
"Dismiss": "Omet", "Dismiss": "Omet",
"Unknown device": "Dispositiu desconegut", "Unknown device": "Dispositiu desconegut",
"Welcome to Riot.im": "Benvingut a Riot.im", "Welcome to Riot.im": "Us donem la benvinguda a Riot.im",
"Chat with Riot Bot": "Conversa amb el Bot de Riot", "Chat with Riot Bot": "Conversa amb el Bot de Riot",
"Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Voleu instal·lar l'aplicació per a mòbils?", "Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Voleu instal·lar l'aplicació per a mòbils?",
"Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s", "Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.", "You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal. <br/> Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent. <br/> <br/> També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.", "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal. <br/> Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent. <br/> <br/> També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.",
"powered by Matrix": "amb tecnologia de Matrix", "powered by Matrix": "amb tecnologia de Matrix",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, encriptat &amp; col·laboració amb tecnologia de [matrix]", "Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, encriptat i col·laboratiu amb tecnologia de [matrix]",
"Search the room directory": "Cerqueu el directori de sales", "Search the room directory": "Cerqueu el directori de sales",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ja existeixen moltes sales a Matrix vinculades a xarxes existents (Slack, IRC, Gitter, etc.) o independents. Feu un cop d'ull al directori!", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ja existeixen moltes sales a Matrix vinculades a xarxes existents (Slack, IRC, Gitter, etc.) o independents. Feu un cop d'ull al directori!",
"Get started with some tips from Riot Bot!": "Comenceu amb alguns consells de Riot Bot!", "Get started with some tips from Riot Bot!": "Comenceu amb alguns consells de Riot Bot!",

View File

@ -8,7 +8,7 @@
"You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.", "You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.",
"Welcome to Riot.im": "Bonvenu al Riot.im", "Welcome to Riot.im": "Bonvenu al Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita de [matrix]", "Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita de [matrix]",
"Search the room directory": "Serĉi en la ĉambrujo", "Search the room directory": "Serĉi en la babilejo-listo",
"Chat with Riot Bot": "Babilu kun la roboto Riot Bot", "Chat with Riot Bot": "Babilu kun la roboto Riot Bot",
"Get started with some tips from Riot Bot!": "Komencu kun kelkaj sugestoj de la roboto Riot Bot!", "Get started with some tips from Riot Bot!": "Komencu kun kelkaj sugestoj de la roboto Riot Bot!",
"General discussion about Matrix and Riot": "Ĝenerala diskutado pri Matrix kaj Riot", "General discussion about Matrix and Riot": "Ĝenerala diskutado pri Matrix kaj Riot",

View File

@ -1,11 +1,11 @@
{ {
"Custom Server Options": "Opzioni Server Personalizzate", "Custom Server Options": "Opzioni server personalizzate",
"Dismiss": "Chiudi", "Dismiss": "Chiudi",
"powered by Matrix": "offerto da Matrix", "powered by Matrix": "offerto da Matrix",
"Riot Desktop on %(platformName)s": "Riot Desktop su %(platformName)s", "Riot Desktop on %(platformName)s": "Riot Desktop su %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Vuoi installare l'applicazione?", "Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Installare l'applicazione?",
"Unknown device": "Dispositivo sconosciuto", "Unknown device": "Dispositivo sconosciuto",
"You need to be using HTTPS to place a screen-sharing call.": "Devi usare HTTPS per instaurare una chiamata con condivisione schermo.", "You need to be using HTTPS to place a screen-sharing call.": "Devi usare HTTPS per effettuare una chiamata con la condivisione dello schermo.",
"Welcome to Riot.im": "Benvenuto/a su Riot.im", "Welcome to Riot.im": "Benvenuto/a su Riot.im",
"Search the room directory": "Cerca nella lista delle stanze", "Search the room directory": "Cerca nella lista delle stanze",
"Chat with Riot Bot": "Chatta con Riot Bot", "Chat with Riot Bot": "Chatta con Riot Bot",
@ -27,8 +27,8 @@
"Implementing VoIP services with Matrix": "Implementazione servizi VoIP con Matrix", "Implementing VoIP services with Matrix": "Implementazione servizi VoIP con Matrix",
"Discussion of the Identity Service API": "Discussione sull'Identity Service API", "Discussion of the Identity Service API": "Discussione sull'Identity Service API",
"Support for those using, running and writing other bridges": "Supporto per chi usa, amministra e scrive altri bridge", "Support for those using, running and writing other bridges": "Supporto per chi usa, amministra e scrive altri bridge",
"Contributing code to Matrix and Riot": "Contributi al codice di Matrix e Riot", "Contributing code to Matrix and Riot": "Contributi di codice per Matrix e Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s su %(osName)s", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s tramite %(browserName)s su %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat criptate e collaborazioni decentralizzate offerte da [matrix]", "Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat criptate e collaborazioni decentralizzate offerte da [matrix]",
"Discussion of all things Matrix!": "Discussione su tutto quanto riguardi Matrix!", "Discussion of all things Matrix!": "Discussione su tutto quanto riguardi Matrix!",
"Dev chat for the Riot/Web dev team": "Chat per gli sviluppatori di Riot/Web", "Dev chat for the Riot/Web dev team": "Chat per gli sviluppatori di Riot/Web",

View File

@ -1,5 +1,39 @@
{ {
"Riot is not supported on mobile web. Install the app?": "Riot nu functionează pe mobil. Instalezi aplicaţia?", "Riot is not supported on mobile web. Install the app?": "Riot nu functionează pe mobil. Instalezi aplicaţia?",
"Riot Desktop on %(platformName)s": "Riot Desktop pe %(platformName)s", "Riot Desktop on %(platformName)s": "Riot Desktop pe %(platformName)s",
"Unknown device": "Device necunoscut" "Unknown device": "Device necunoscut",
"Custom Server Options": "Opțiuni Server Personalizate",
"Dismiss": "Închide",
"powered by Matrix": "propulsat de Matrix",
"Welcome to Riot.im": "Bun venit pe Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat decentralizat, criptat &amp; colaborare propulsata de [matrix]",
"Search the room directory": "Caută în lista de camere",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multe camere există deja in Matrix, conectate la rețele existente (Slack, IRC, Gitter etc) sau independente. Aruncă o privite in lista de camere!",
"Chat with Riot Bot": "Discută cu Riot Bot",
"Get started with some tips from Riot Bot!": "Începe cu câteva ponturi din partea Riot Bot!",
"General discussion about Matrix and Riot": "Discuție generală despre Matrix și Riot",
"Discussion of all things Matrix!": "Discuții despre toate subiectele Matrix!",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Chat pentru desktop",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; chat pentru matrix-ios-sdk",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; chat pentru matrix-android-sdk",
"Matrix technical discussions": "Discuții tehnice Matrix",
"Running Matrix services": "Rularea serviciilor Matrix",
"Community-run support for Synapse": "Suport cu ajutorul comunității pentru Synapse",
"Admin support for Dendrite": "Suport Administrare pentru Dendrite",
"Announcements about Synapse releases": "Anunțuri despre lansări Synapse",
"Support for those using and running matrix-appservice-irc": "Suport pentru cei care utilizează și rulează matrix-appservice-irc",
"Building services on Matrix": "Construirea serviciilor cu Matrix",
"Support for those using the Matrix spec": "Suport pentru cei ce utilizează specificațiile Matrix",
"Design and implementation of E2E in Matrix": "Designul și planificarea E2E în Matrix",
"Implementing VR services with Matrix": "Implementarea serviciilor VR cu Matrix",
"Implementing VoIP services with Matrix": "Implementarea serviciilor VoIP cu Matrix",
"Discussion of the Identity Service API": "Discuții despre API-ul Serviciul de Identitate",
"Support for those using, running and writing other bridges": "Suport pentru cei ce folosesc, rulează și programeaza alți conectori",
"Contributing code to Matrix and Riot": "Contribuirea codului pentru Matrix și Riot",
"Dev chat for the Riot/Web dev team": "Chat pentru echipa de dezvoltare Riot/Web",
"Dev chat for the Dendrite dev team": "Chat pentru echipa de dezvoltare Dendrite",
"Co-ordination for Riot translators": "Coordonare pentru translatorii Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s pe %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Trebuie să folosești HTTPS pentru a plasa un apel de tip screen-sharing.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Poți folosi opțiunile server personalizate pentru a te conecta la alte servere Matrix prin specificarea unui URL de tip Home server diferit.<br/>Acestă opțiune îți permite să utilizezi Riot cu un cont existent pe un home server diferit.<br/><br/>Poți folosi și un server de identitate personalizat, dar nu vei putea invita alți utilizatori prin adresa de email sau să fii tu însuți invitat prim email."
} }

View File

@ -37,6 +37,14 @@
<section id="matrixchat" style="height: 100%;"></section> <section id="matrixchat" style="height: 100%;"></section>
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? --> <noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
<% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) { <% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {
if (_.endsWith(htmlWebpackPlugin.files.js[i], 'olm.js')) {
var array = htmlWebpackPlugin.files.js;
htmlWebpackPlugin.files.js.unshift(htmlWebpackPlugin.files.js[i]);
htmlWebpackPlugin.files.js.splice(i, 1);
}
}
for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {
// Not a particularly graceful way of not putting the indexeddb worker script // Not a particularly graceful way of not putting the indexeddb worker script
// into the main page // into the main page
if (_.endsWith(htmlWebpackPlugin.files.js[i], 'indexeddb-worker.js')) { if (_.endsWith(htmlWebpackPlugin.files.js[i], 'indexeddb-worker.js')) {

View File

@ -251,7 +251,9 @@ async function loadApp() {
// don't try to redirect to the native apps if we're // don't try to redirect to the native apps if we're
// verifying a 3pid (but after we've loaded the config) // verifying a 3pid (but after we've loaded the config)
const preventRedirect = Boolean(fragparts.params.client_secret); // or if the user is following a deep link
// (https://github.com/vector-im/riot-web/issues/7378)
const preventRedirect = fragparts.params.client_secret || fragparts.location.length > 0;
if (!preventRedirect) { if (!preventRedirect) {
const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;

View File

@ -13,6 +13,7 @@ async function initPage() {
if (config && config['default_hs_url']) { if (config && config['default_hs_url']) {
hsUrl = config['default_hs_url']; hsUrl = config['default_hs_url'];
} }
if (hsUrl && !hsUrl.endsWith('/')) hsUrl += '/';
if (hsUrl && hsUrl !== 'https://matrix.org/') { if (hsUrl && hsUrl !== 'https://matrix.org/') {
document.getElementById('step2_container').style.display = 'block'; document.getElementById('step2_container').style.display = 'block';
document.getElementById('hs_url').innerHTML = hsUrl; document.getElementById('hs_url').innerHTML = hsUrl;

View File

@ -31,29 +31,40 @@ module.exports = {
"theme-status": "./res/themes/status/css/status.scss", "theme-status": "./res/themes/status/css/status.scss",
}, },
module: { module: {
preLoaders: [ rules: [
{ test: /\.js$/, loader: "source-map-loader" }, { enforce: 'pre', test: /\.js$/, use: "source-map-loader", exclude: /node_modules/, },
], { test: /\.js$/, use: "babel-loader", include: path.resolve(__dirname, 'src') },
loaders: [
{ test: /\.json$/, loader: "json" },
{ test: /\.js$/, loader: "babel", include: path.resolve('./src') },
{ {
test: /\.scss$/, test: /\.scss$/,
// 1. postcss-loader turns the SCSS into normal CSS. // 1. postcss-loader turns the SCSS into normal CSS.
// 2. css-raw-loader turns the CSS into a javascript module // 2. raw-loader turns the CSS into a javascript module
// whose default export is a string containing the CSS. // whose default export is a string containing the CSS.
// (css-raw-loader is similar to css-loader, but the latter // (raw-loader is similar to css-loader, but the latter
// would also drag in the imgs and fonts that our CSS refers to // would also drag in the imgs and fonts that our CSS refers to
// as webpack inputs.) // as webpack inputs.)
// 3. ExtractTextPlugin turns that string into a separate asset. // 3. ExtractTextPlugin turns that string into a separate asset.
loader: ExtractTextPlugin.extract("css-raw-loader!postcss-loader?config=postcss.config.js"), use: ExtractTextPlugin.extract({
use: [
"raw-loader",
{
loader: 'postcss-loader',
options: {
config: {
path: './postcss.config.js'
}
}
}
],
}),
}, },
{ {
// this works similarly to the scss case, without postcss. // this works similarly to the scss case, without postcss.
test: /\.css$/, test: /\.css$/,
loader: ExtractTextPlugin.extract("css-raw-loader"), use: ExtractTextPlugin.extract({
use: "raw-loader"
}),
}, },
], ],
noParse: [ noParse: [
// for cross platform compatibility use [\\\/] as the path separator // for cross platform compatibility use [\\\/] as the path separator