diff --git a/CHANGELOG.md b/CHANGELOG.md index a6aa51f67..6fa4eddfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,77 @@ +Changes in [0.15.7](https://github.com/vector-im/riot-web/releases/tag/v0.15.7) (2018-07-09) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.7-rc.2...v0.15.7) + + * No changes since rc.2 + +Changes in [0.15.7-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.7-rc.2) (2018-07-06) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.7-rc.1...v0.15.7-rc.2) + + * Update react-sdk and js-sdk + +Changes in [0.15.7-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.7-rc.1) (2018-07-04) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6...v0.15.7-rc.1) + + * add override for colour of room tile text within memberinfo (unreadable) + [\#6889](https://github.com/vector-im/riot-web/pull/6889) + +Changes in [0.15.6](https://github.com/vector-im/riot-web/releases/tag/v0.15.6) (2018-06-29) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6-rc.2...v0.15.6) + + * Pull in bug fixes from react-sdk + +Changes in [0.15.6-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.6-rc.2) (2018-06-22) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6-rc.1...v0.15.6-rc.2) + + * Update to react-sdk rc.2 for fix to slash commands + +Changes in [0.15.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.6-rc.1) (2018-06-21) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.5...v0.15.6-rc.1) + + * Update from Weblate. + [\#6915](https://github.com/vector-im/riot-web/pull/6915) + * [electron] Fix desktop app --hidden flag + [\#6805](https://github.com/vector-im/riot-web/pull/6805) + +Changes in [0.15.5](https://github.com/vector-im/riot-web/releases/tag/v0.15.5) (2018-06-12) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.5-rc.1...v0.15.5) + + * No changes since rc.1 + +Changes in [0.15.5-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.5-rc.1) (2018-06-06) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.4...v0.15.5-rc.1) + + * Update from Weblate. + [\#6846](https://github.com/vector-im/riot-web/pull/6846) + +Changes in [0.15.4](https://github.com/vector-im/riot-web/releases/tag/v0.15.4) (2018-05-25) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.4-rc.1...v0.15.4) + + * Add cookie policy link to desktop app config + +Changes in [0.15.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.4-rc.1) (2018-05-24) +====================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.3...v0.15.4-rc.1) + + * Update from Weblate. + [\#6792](https://github.com/vector-im/riot-web/pull/6792) + * Hide URL options for e2e blob: URL images + [\#6765](https://github.com/vector-im/riot-web/pull/6765) + * Fix right click menu in electron + [\#6763](https://github.com/vector-im/riot-web/pull/6763) + * Update to electron 2.0.1 + [\#6764](https://github.com/vector-im/riot-web/pull/6764) + * Add instructions for changing translated strings + [\#6528](https://github.com/vector-im/riot-web/pull/6528) + Changes in [0.15.3](https://github.com/vector-im/riot-web/releases/tag/v0.15.3) (2018-05-18) ============================================================================================ [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.2...v0.15.3) diff --git a/config.sample.json b/config.sample.json index b80746f62..a50eaf7d2 100644 --- a/config.sample.json +++ b/config.sample.json @@ -8,6 +8,7 @@ "brand": "Riot", "integrations_ui_url": "https://scalar.vector.im/", "integrations_rest_url": "https://scalar.vector.im/api", + "integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html", "bug_report_endpoint_url": "https://riot.im/bugreports/submit", "features": { "feature_groups": "labs", diff --git a/electron_app/package.json b/electron_app/package.json index 10cd93311..d236395fd 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "0.15.3", + "version": "0.15.7", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "dependencies": { diff --git a/electron_app/riot.im/config.json b/electron_app/riot.im/config.json index 099db1b57..10b453a46 100644 --- a/electron_app/riot.im/config.json +++ b/electron_app/riot.im/config.json @@ -18,7 +18,8 @@ }, "piwik": { "url": "https://piwik.riot.im/", - "siteId": 1 + "siteId": 1, + "policyUrl": "https://matrix.org/docs/guides/riot_im_cookie_policy" }, "enable_presence_by_hs_url": { "https://matrix.org": false diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js index 4ffe21104..85955392a 100644 --- a/electron_app/src/electron-main.js +++ b/electron_app/src/electron-main.js @@ -23,7 +23,7 @@ const checkSquirrelHooks = require('./squirrelhooks'); if (checkSquirrelHooks()) return; const argv = require('minimist')(process.argv); -const electron = require('electron'); +const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu} = require('electron'); const AutoLaunch = require('auto-launch'); const tray = require('./tray'); @@ -33,8 +33,8 @@ const updater = require('./updater'); const windowStateKeeper = require('electron-window-state'); -if (argv.profile) { - electron.app.setPath('userData', `${electron.app.getPath('userData')}-${argv.profile}`); +if (argv['profile']) { + app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`); } let vectorConfig = {}; @@ -62,14 +62,14 @@ process.on('uncaughtException', function(error) { }); let focusHandlerAttached = false; -electron.ipcMain.on('setBadgeCount', function(ev, count) { - electron.app.setBadgeCount(count); - if (count === 0) { +ipcMain.on('setBadgeCount', function(ev, count) { + app.setBadgeCount(count); + if (count === 0 && mainWindow) { mainWindow.flashFrame(false); } }); -electron.ipcMain.on('loudNotification', function() { +ipcMain.on('loudNotification', function() { if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) { mainWindow.flashFrame(true); mainWindow.once('focus', () => { @@ -81,16 +81,16 @@ electron.ipcMain.on('loudNotification', function() { }); let powerSaveBlockerId; -electron.ipcMain.on('app_onAction', function(ev, payload) { +ipcMain.on('app_onAction', function(ev, payload) { switch (payload.action) { case 'call_state': - if (powerSaveBlockerId && electron.powerSaveBlocker.isStarted(powerSaveBlockerId)) { + if (powerSaveBlockerId && powerSaveBlocker.isStarted(powerSaveBlockerId)) { if (payload.state === 'ended') { - electron.powerSaveBlocker.stop(powerSaveBlockerId); + powerSaveBlocker.stop(powerSaveBlockerId); } } else { if (payload.state === 'connected') { - powerSaveBlockerId = electron.powerSaveBlocker.start('prevent-display-sleep'); + powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep'); } } break; @@ -98,9 +98,12 @@ electron.ipcMain.on('app_onAction', function(ev, payload) { }); -electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing'); +app.commandLine.appendSwitch('--enable-usermedia-screen-capturing'); + +const shouldQuit = app.makeSingleInstance((commandLine, workingDirectory) => { + // If other instance launched with --hidden then skip showing window + if (commandLine.includes('--hidden')) return; -const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => { // Someone tried to run a second instance, we should focus our window. if (mainWindow) { if (!mainWindow.isVisible()) mainWindow.show(); @@ -111,7 +114,7 @@ const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirector if (shouldQuit) { console.log('Other instance detected: exiting'); - electron.app.exit(); + app.exit(); } @@ -136,7 +139,7 @@ const settings = { }, }; -electron.ipcMain.on('settings_get', async function(ev) { +ipcMain.on('settings_get', async function(ev) { const data = {}; try { @@ -145,34 +148,37 @@ electron.ipcMain.on('settings_get', async function(ev) { })); ev.sender.send('settings', data); - } catch(e) { console.error(e); } + } catch (e) { + console.error(e); + } }); -electron.ipcMain.on('settings_set', function(ev, key, value) { +ipcMain.on('settings_set', function(ev, key, value) { console.log(key, value); if (settings[key] && settings[key].set) { settings[key].set(value); } }); -electron.app.on('ready', () => { - - if (argv.devtools) { +app.on('ready', () => { + if (argv['devtools']) { try { - const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer'); - installExtension(REACT_DEVELOPER_TOOLS) + const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer'); + installExt(REACT_DEVELOPER_TOOLS) .then((name) => console.log(`Added Extension: ${name}`)) .catch((err) => console.log('An error occurred: ', err)); - installExtension(REACT_PERF) + installExt(REACT_PERF) .then((name) => console.log(`Added Extension: ${name}`)) .catch((err) => console.log('An error occurred: ', err)); - } catch(e) {console.log(e);} + } catch (e) { + console.log(e); + } } - if (vectorConfig.update_base_url) { - console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`); - updater.start(vectorConfig.update_base_url); + if (vectorConfig['update_base_url']) { + console.log(`Starting auto update with base URL: ${vectorConfig['update_base_url']}`); + updater.start(vectorConfig['update_base_url']); } else { console.log('No update_base_url is defined: auto update is disabled'); } @@ -185,7 +191,7 @@ electron.app.on('ready', () => { defaultHeight: 768, }); - mainWindow = global.mainWindow = new electron.BrowserWindow({ + mainWindow = global.mainWindow = new BrowserWindow({ icon: iconPath, show: false, autoHideMenuBar: true, @@ -196,7 +202,7 @@ electron.app.on('ready', () => { height: mainWindowState.height, }); mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`); - electron.Menu.setApplicationMenu(vectorMenu); + Menu.setApplicationMenu(vectorMenu); // explicitly hide because setApplicationMenu on Linux otherwise shows... // https://github.com/electron/electron/issues/9621 @@ -208,11 +214,16 @@ electron.app.on('ready', () => { brand: vectorConfig.brand || 'Riot', }); - if (!argv.hidden) { - mainWindow.once('ready-to-show', () => { + mainWindow.once('ready-to-show', () => { + mainWindowState.manage(mainWindow); + + if (!argv['hidden']) { mainWindow.show(); - }); - } + } else { + // hide here explicitly because window manage above sometimes shows it + mainWindow.hide(); + } + }); mainWindow.on('closed', () => { mainWindow = global.mainWindow = null; @@ -240,18 +251,17 @@ electron.app.on('ready', () => { } webContentsHandler(mainWindow.webContents); - mainWindowState.manage(mainWindow); }); -electron.app.on('window-all-closed', () => { - electron.app.quit(); +app.on('window-all-closed', () => { + app.quit(); }); -electron.app.on('activate', () => { +app.on('activate', () => { mainWindow.show(); }); -electron.app.on('before-quit', () => { +app.on('before-quit', () => { global.appQuitting = true; if (mainWindow) { mainWindow.webContents.send('before-quit'); @@ -262,4 +272,4 @@ electron.app.on('before-quit', () => { // installer uses for the shortcut icon. // This makes notifications work on windows 8.1 (and is // a noop on other platforms). -electron.app.setAppUserModelId('com.squirrel.riot-web.Riot'); +app.setAppUserModelId('com.squirrel.riot-web.Riot'); diff --git a/package-lock.json b/package-lock.json index f3f58e500..551700517 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "riot-web", - "version": "0.12.2", + "version": "0.15.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -260,6 +260,16 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.9.0" + } + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -299,16 +309,6 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, - "array.prototype.find": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", - "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0" - } - }, "arraybuffer.slice": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", @@ -1877,17 +1877,6 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "commonmark": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.27.0.tgz", - "integrity": "sha1-2GwmK5YoIelIPGnFR7xYhAwEezQ=", - "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "minimist": "1.2.0", - "string.prototype.repeat": "0.2.0" - } - }, "compare-version": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", @@ -2414,22 +2403,6 @@ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", "dev": true }, - "disposables": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/disposables/-/disposables-1.0.1.tgz", - "integrity": "sha1-BkcnoltU9QK9griaot+4358bOeM=" - }, - "dnd-core": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-2.5.4.tgz", - "integrity": "sha512-BcI782MfTm3wCxeIS5c7tAutyTwEIANtuu3W6/xkoJRwiqhRXKX3BbGlycUxxyzMsKdvvoavxgrC3EMPFNYL9A==", - "requires": { - "asap": "2.0.6", - "invariant": "2.2.2", - "lodash": "4.17.4", - "redux": "3.7.2" - } - }, "doctrine": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.3.tgz", @@ -3202,16 +3175,54 @@ } }, "eslint-plugin-react": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", - "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.10.0.tgz", + "integrity": "sha512-18rzWn4AtbSUxFKKM7aCVcj5LXOhOKdwBino3KKWy4psxfPW0YtIbE8WNRDUdyHFL50BeLb6qFd4vpvNYyp7hw==", "dev": true, "requires": { - "array.prototype.find": "2.0.4", - "doctrine": "1.2.3", - "has": "1.0.1", - "jsx-ast-utils": "1.4.1", - "object.assign": "4.0.4" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dev": true, + "requires": { + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + } } }, "espree": { @@ -3699,6 +3710,22 @@ } } }, + "focus-trap": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-2.4.6.tgz", + "integrity": "sha512-vWZTPtBU6pBoyWZDRZJHkXsyP2ZCZBHE3DRVXnSVdQKH/mcDtu9S5Kz8CUDyIqpfZfLEyI9rjKJLnc4Y40BRBg==", + "requires": { + "tabbable": "1.1.3" + } + }, + "focus-trap-react": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-3.1.2.tgz", + "integrity": "sha512-MoQmONoy9gRPyrC5DGezkcOMGgx7MtIOAQDHe098UtL2sA2vmucJwEmQisb+8LRXNYFHxuw5zJ1oLFeKu4Mteg==", + "requires": { + "focus-trap": "2.4.6" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4657,8 +4684,7 @@ "tweetnacl": { "version": "0.14.5", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "uid-number": { "version": "0.0.6", @@ -4959,11 +4985,6 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, - "hoist-non-react-statics": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", - "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" - }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -5696,12 +5717,6 @@ "verror": "1.10.0" } }, - "jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", - "dev": true - }, "karma": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", @@ -5740,7 +5755,7 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -6049,6 +6064,11 @@ } } }, + "lolex": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", + "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==" + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -6108,11 +6128,12 @@ "dev": true }, "matrix-js-sdk": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-0.8.2.tgz", - "integrity": "sha1-e7mrVoXrNCFLOFlMiDn++pY2ViE=", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-0.10.5.tgz", + "integrity": "sha512-3Gt3tVKgkn4ufU9qLyrBxQqILZsSK3J58pmL+1IpDYEgA/lLeBPCtl2s5DL/CngjaWg6knph+1ZJO/fznTyTgQ==", "requires": { "another-json": "0.2.0", + "babel-runtime": "6.26.0", "bluebird": "3.5.1", "browser-request": "0.3.3", "content-type": "1.0.4", @@ -6130,9 +6151,9 @@ } }, "matrix-react-sdk": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/matrix-react-sdk/-/matrix-react-sdk-0.10.2.tgz", - "integrity": "sha1-TNSwkN1P4Jsl4Yh5Z/XOE17U8q4=", + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/matrix-react-sdk/-/matrix-react-sdk-0.12.8.tgz", + "integrity": "sha512-K7Jpj8me8eywtv1LznGlsjiQGuVWIBXA/afshkRiEuSH13lk+XW8+9eQD+GcyZ0/6ziIkMMrmmgDH5gV0xKorA==", "requires": { "babel-runtime": "6.26.0", "bluebird": "3.5.1", @@ -6140,7 +6161,7 @@ "browser-encrypt-attachment": "0.3.0", "browser-request": "0.3.3", "classnames": "2.2.5", - "commonmark": "0.27.0", + "commonmark": "0.28.1", "counterpart": "0.18.3", "draft-js": "0.11.0-alpha", "draft-js-export-html": "0.6.0", @@ -6149,17 +6170,25 @@ "file-saver": "1.3.3", "filesize": "3.5.6", "flux": "2.1.1", + "focus-trap-react": "3.1.2", "fuse.js": "2.7.4", + "gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279810d05319ac5ff1bd34910bff32325c7b", + "gfm.css": "1.1.1", "glob": "5.0.15", - "highlight.js": "8.9.1", + "highlight.js": "9.12.0", "isomorphic-fetch": "2.2.1", "linkifyjs": "2.1.5", "lodash": "4.17.4", - "matrix-js-sdk": "0.8.2", + "lolex": "2.3.2", + "matrix-js-sdk": "0.10.5", "optimist": "0.6.1", + "pako": "1.0.6", "prop-types": "15.6.0", + "qrcode-react": "0.1.16", + "querystring": "0.2.0", "react": "15.6.2", "react-addons-css-transition-group": "15.3.2", + "react-beautiful-dnd": "4.0.1", "react-dom": "15.6.2", "react-gemini-scrollbar": "github:matrix-org/react-gemini-scrollbar#5e97aef7e034efc8db1431f4b0efe3b26e249ae9", "sanitize-html": "1.14.1", @@ -6169,10 +6198,28 @@ "whatwg-fetch": "1.1.1" }, "dependencies": { - "highlight.js": { - "version": "8.9.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz", - "integrity": "sha1-uKnFSTISqTkvAiK2SclhFJfr+4g=" + "commonmark": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", + "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", + "requires": { + "entities": "1.1.1", + "mdurl": "1.0.1", + "minimist": "1.2.0", + "string.prototype.repeat": "0.2.0" + } + }, + "react-gemini-scrollbar": { + "version": "github:matrix-org/react-gemini-scrollbar#5e97aef7e034efc8db1431f4b0efe3b26e249ae9", + "requires": { + "gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279810d05319ac5ff1bd34910bff32325c7b" + } + }, + "velocity-vector": { + "version": "github:vector-im/velocity#059e3b2348f1110888d033974d3109fd5a3af00f", + "requires": { + "jquery": "3.2.1" + } }, "whatwg-fetch": { "version": "1.1.1", @@ -6202,6 +6249,11 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "memoize-one": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-3.1.1.tgz", + "integrity": "sha512-YqVh744GsMlZu6xkhGslPSqSurOv6P+kLN2J3ysBZfagLcL5FdRK/0UpgLoL8hwjjEvvAVkjJZyFP+1T6p1vgA==" + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -6611,25 +6663,6 @@ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", "dev": true }, - "object.assign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", - "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "object-keys": "1.0.11" - }, - "dependencies": { - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - } - } - }, "object.entries": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", @@ -7322,6 +7355,19 @@ "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", "dev": true }, + "qr.js": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz", + "integrity": "sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8=" + }, + "qrcode-react": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/qrcode-react/-/qrcode-react-0.1.16.tgz", + "integrity": "sha512-FK+QCfFqCQMSxUE1byzglERJQkwKqXYvYMCS+/Ad2zACJOfoHkHHtRqsQQPji7lfb1y1qCXLvL+3eP1hAfg8Ng==", + "requires": { + "qr.js": "0.0.0" + } + }, "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", @@ -7344,6 +7390,19 @@ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", "dev": true }, + "raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", + "requires": { + "performance-now": "2.1.0" + } + }, + "raf-schd": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-2.1.2.tgz", + "integrity": "sha512-Orl0IEvMtUCgPddgSxtxreK77UiQz4nPYJy9RggVzu4mKsZkQWiAaG1y9HlYWdvm9xtN348xRaT37qkvL/+A+g==" + }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", @@ -7448,25 +7507,21 @@ "integrity": "sha1-wStu/cIkfBDae4dw0YUICnsEcVY=", "dev": true }, - "react-dnd": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.5.4.tgz", - "integrity": "sha512-y9YmnusURc+3KPgvhYKvZ9oCucj51MSZWODyaeV0KFU0cquzA7dCD1g/OIYUKtNoZ+MXtacDngkdud2TklMSjw==", + "react-beautiful-dnd": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-4.0.1.tgz", + "integrity": "sha512-d73RMu4QOFCyjUELLWFyY/EuclnfqulI9pECx+2gIuJvV0ycf1uR88o+1x0RSB9ILD70inHMzCBKNkWVbbt+vA==", "requires": { - "disposables": "1.0.1", - "dnd-core": "2.5.4", - "hoist-non-react-statics": "2.3.1", + "babel-runtime": "6.26.0", "invariant": "2.2.2", - "lodash": "4.17.4", - "prop-types": "15.6.0" - } - }, - "react-dnd-html5-backend": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.5.4.tgz", - "integrity": "sha512-jDqAkm/hI8Tl4HcsbhkBgB6HgpJR1e+ML1SbfxaegXYiuMxEVQm0FOwEH5WxUoo6fmIG4N+H0rSm59POuZOCaA==", - "requires": { - "lodash": "4.17.4" + "memoize-one": "3.1.1", + "prop-types": "15.6.0", + "raf-schd": "2.1.2", + "react-motion": "0.5.2", + "react-redux": "5.0.7", + "redux": "3.7.2", + "redux-thunk": "2.3.0", + "reselect": "3.0.1" } }, "react-dom": { @@ -7480,10 +7535,51 @@ "prop-types": "15.6.0" } }, - "react-gemini-scrollbar": { - "version": "github:matrix-org/react-gemini-scrollbar#5e97aef7e034efc8db1431f4b0efe3b26e249ae9", + "react-motion": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", + "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", "requires": { - "gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279810d05319ac5ff1bd34910bff32325c7b" + "performance-now": "0.2.0", + "prop-types": "15.6.0", + "raf": "3.4.0" + }, + "dependencies": { + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + } + } + }, + "react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "requires": { + "hoist-non-react-statics": "2.5.5", + "invariant": "2.2.2", + "lodash": "4.17.10", + "lodash-es": "4.17.10", + "loose-envify": "1.3.1", + "prop-types": "15.6.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + }, + "lodash-es": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", + "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" + } } }, "read-all-stream": { @@ -7591,6 +7687,11 @@ "symbol-observable": "1.0.4" } }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", @@ -7863,6 +7964,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" + }, "resolve": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", @@ -8360,30 +8466,36 @@ "dev": true }, "source-map-loader": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.1.6.tgz", - "integrity": "sha1-wJkD2m1zueU7ftjuUkVZcFHpjpE=", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.3.tgz", + "integrity": "sha512-MYbFX9DYxmTQFfy2v8FC1XZwpwHKYxg3SK8Wb7VPBKuhDjz8gi9re2819MsG4p49HDyiOSUKlmZ+nQBArW5CGw==", "dev": true, "requires": { - "async": "0.9.2", + "async": "2.6.1", "loader-utils": "0.2.17", - "source-map": "0.1.43" + "source-map": "0.6.1" }, "dependencies": { "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -8582,6 +8694,11 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" }, + "tabbable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-1.1.3.tgz", + "integrity": "sha512-nOWwx35/JuDI4ONuF0ZTo6lYvI0fY0tZCH1ErzY2EXfu4az50ZyiUX8X073FLiZtmWUVlkRnuXsehjJgCw9tYg==" + }, "table": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", @@ -9095,12 +9212,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "velocity-vector": { - "version": "github:vector-im/velocity#059e3b2348f1110888d033974d3109fd5a3af00f", - "requires": { - "jquery": "3.2.1" - } - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", diff --git a/package.json b/package.json index e78e45e28..da0141894 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "electron_app/src/electron-main.js", - "version": "0.15.3", + "version": "0.15.7", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { @@ -64,8 +64,8 @@ "gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279", "gfm.css": "^1.1.1", "highlight.js": "^9.0.0", - "matrix-js-sdk": "0.10.2", - "matrix-react-sdk": "0.12.5", + "matrix-js-sdk": "0.10.6", + "matrix-react-sdk": "0.12.9", "modernizr": "^3.1.0", "prop-types": "^15.5.10", "react": "^15.6.0", @@ -144,7 +144,7 @@ "build": { "appId": "im.riot.app", "category": "Network", - "electronVersion": "2.0.1", + "electronVersion": "2.0.5", "//asar=false": "https://github.com/electron-userland/electron-builder/issues/675", "asar": false, "dereference": true, diff --git a/res/themes/status/css/_status.scss b/res/themes/status/css/_status.scss index cdfd8e56a..7e97bb488 100644 --- a/res/themes/status/css/_status.scss +++ b/res/themes/status/css/_status.scss @@ -283,4 +283,8 @@ $progressbar-color: #000; .mx_RoomSubList_chevron { top: 8px ! important; -} \ No newline at end of file +} + +.mx_MemberInfo .mx_RoomTile_name { + color: $primary-fg-color ! important; +} diff --git a/src/i18n/strings/bn_IN.json b/src/i18n/strings/bn_IN.json index 0967ef424..e2c37d437 100644 --- a/src/i18n/strings/bn_IN.json +++ b/src/i18n/strings/bn_IN.json @@ -1 +1,3 @@ -{} +{ + "Riot is not supported on mobile web. Install the app?": "মোবাইল ওয়েব রায়ট সমর্থন করে না. অ্য়াপ টি ইনস্টল করতে চান?" +} diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 98c5e836c..3bdf9466e 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -4,9 +4,9 @@ "powered by Matrix": "propulsé par Matrix", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s dans %(browserName)s sous %(osName)s", "Riot Desktop on %(platformName)s": "Version bureau de Riot sur %(platformName)s", - "Riot is not supported on mobile web. Install the app?": "Riot n’est pas supporté sur les appareils mobiles. Installer l’application ?", + "Riot is not supported on mobile web. Install the app?": "Riot n’est pas disponible en version web mobile. Installer l’application ?", "Unknown device": "Appareil inconnu", - "You need to be using HTTPS to place a screen-sharing call.": "Vous devez utiliser HTTPS pour effectuer un appel en partage d’écran.", + "You need to be using HTTPS to place a screen-sharing call.": "Vous devez utiliser HTTPS pour effectuer un appel avec partage d’écran.", "Welcome to Riot.im": "Bienvenue sur Riot.im", "Chat with Riot Bot": "Discussion avec Riot Bot", "Search the room directory": "Rechercher dans le répertoire de salons", diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index e8347d0a0..be3e3cc07 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -4,36 +4,36 @@ "Dismiss": "Rexeitar", "powered by Matrix": "funciona grazas a Matrix", "Riot Desktop on %(platformName)s": "Riot Desktop en %(platformName)s", - "Riot is not supported on mobile web. Install the app?": "Riot no se pode executar na web móbil. Instalar a app?", + "Riot is not supported on mobile web. Install the app?": "Riot non se pode executar na web do móbil. Instalar a aplicación?", "Unknown device": "Dispositivo descoñecido", "You need to be using HTTPS to place a screen-sharing call.": "Precisa utilizar HTTPS para establecer unha chamada de pantalla compartida.", - "Welcome to Riot.im": "Benvida a Riot.im", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat & colaboración descentralizados e cifrados grazas a [matrix]", + "Welcome to Riot.im": "Benvida/o a Riot.im", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Conversas e colaboración descentralizada e cifrada grazas a [matrix]", "Search the room directory": "Buscar no directorio de salas", - "Chat with Riot Bot": "Chat co Bot de Riot", - "Get started with some tips from Riot Bot!": "Iníciese con algúns consellos do Bot de Riot!", + "Chat with Riot Bot": "Conversa co bot de Riot", + "Get started with some tips from Riot Bot!": "Iníciese con algúns consellos do bot de Riot!", "General discussion about Matrix and Riot": "Discusión xeral sobre Matrix e Riot", - "Discussion of all things Matrix!": "Conversa sobre to o relativo a Matrix!", - "Riot/Web & Desktop chat": "Riot/Web & chat de Escritorio", - "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & chat matrix-ios-sdk", + "Discussion of all things Matrix!": "Conversa sobre todo o relativo a Matrix!", + "Riot/Web & Desktop chat": "Riot/Web & sala de conversas para escritorio", + "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & sala de conversas matrix-ios-sdk", "Matrix technical discussions": "Discusións técnicas sobre Matrix", - "Running Matrix services": "Servizos correndo sobre Matrix", + "Running Matrix services": "Servizos que empregan Matrix", "Community-run support for Synapse": "Axuda da comunidade para Synapse", - "Admin support for Dendrite": "Axuda administrador para Dendrite", + "Admin support for Dendrite": "Axuda de administrador para Dendrite", "Announcements about Synapse releases": "Anuncios sobre lanzamentos de Synapse", "Support for those using and running matrix-appservice-irc": "Axuda para quen usa matrix-appservice-irc", "Building services on Matrix": "Deseñando servizos sobre Matrix", - "Support for those using the Matrix spec": "Axuda para quen usa a especificación Matrix", + "Support for those using the Matrix spec": "Axuda para quen usa a especificación de Matrix", "Design and implementation of E2E in Matrix": "Deseño e implementación de E2E en Matrix", "Implementing VR services with Matrix": "Implementando servizos de RV con Matrix", "Implementing VoIP services with Matrix": "Implementación de servizos VoIP con Matrix", - "Discussion of the Identity Service API": "Conversa sobre a Identity Service API", - "Support for those using, running and writing other bridges": "Axuda para que utiliza, executa e desenvolve outras pontes", - "Contributing code to Matrix and Riot": "Contribuíndo ao código en Matrix e Riot", - "Dev chat for the Riot/Web dev team": "Chat para o equipo de desenvolvemento do Riot/Web", - "Dev chat for the Dendrite dev team": "Chat para o equipo de desenvolvemento de Dendrite", - "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Xa existen multitude de salas en Matrix, ligadas a redes existentes (Slack, IRC, Gitter etc) ou independentes. Busque no directorio!", - "Riot/Android & matrix-android-sdk chat": "Chat para Riot/Android & matrix-android-sdk", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Vostede pode utilizar as opcións de servidor personalizado para conectarse a outros servidores Matrix indicando o enderezo URL do Servidor.
Esto permítelle utilizar Riot con unha conta Matrix existente en outro servidor.

Tamén pode indicar un servidor de identidade pero non poderá convidar a usarias polo seu enderezo de correo electrónico, o ser convidada vostede por correo electrónico.", - "Co-ordination for Riot translators": "Coordinación para tradutoras de Riot" + "Discussion of the Identity Service API": "Conversa sobre a API do servizo de identificación", + "Support for those using, running and writing other bridges": "Axuda para quen está a utilizar, executar ou desenvolver outras pontes", + "Contributing code to Matrix and Riot": "Contribuíndo ao código de Matrix e Riot", + "Dev chat for the Riot/Web dev team": "Sala de conversa para o equipo de desenvolvemento de Riot/Web", + "Dev chat for the Dendrite dev team": "Sala de conversas para o equipo de desenvolvemento de Dendrite", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Xa existen multitude de salas en Matrix ben ligadas a redes existentes (Slack, IRC, Gitter etc) ou ben independentes. Busque no directorio!", + "Riot/Android & matrix-android-sdk chat": "Riot/Android & sala de conversas matrix-android-sdk", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Pode utilizar as opcións persoais de servidor para conectarse a outros servidores Matrix indicando o enderezo URL dese servidor.
Isto permítelle utilizar Riot cunha conta Matrix existente en outro servidor.

Tamén pode empregar un servidor personalizado de identidade mais nese caso nin se poderán convidar a outros usuarios empregando os correo electrónicos nin tampouco eles o poderán convidar a vostede por correo.", + "Co-ordination for Riot translators": "Coordinación para tradutora/es de Riot" } diff --git a/src/i18n/strings/is.json b/src/i18n/strings/is.json index 7e9aad3a0..92babad12 100644 --- a/src/i18n/strings/is.json +++ b/src/i18n/strings/is.json @@ -23,5 +23,17 @@ "Co-ordination for Riot translators": "Yfirlit fyrir þýðendur Riot", "Search the room directory": "Leita í herbergisskránni", "Building services on Matrix": "Að byggja þjónustur á Matrix", - "Design and implementation of E2E in Matrix": "Hönnun og framkvæmd E2E í Matrix" + "Design and implementation of E2E in Matrix": "Hönnun og framkvæmd E2E í Matrix", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Þú getur notað sérsniðna valkosti til að skrá inn á aðra Matrix-vefþjóna með því að tilgreina aðra slóð á Heimavefþjón.
Þetta gerir þér kleift að nota Riot með fyrirliggjandi Matrix notandaaðgangi á öðrum heimaþjóni.

Þú getur líka stillt sérsniðinn auðkenningarþjón, en þá getur þú ekki boðið notendum eftir tölvupóstfangi eða sjálfur fengið boð með tölvupósti.", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Dulritað dreifvinnsluspjall & samstarfstól keyrt með [matrix]", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Margar spjallrásir eru til í Matrix, tengdar við fyrirliggjandi netkerfi (Slack, IRC, Gitter, o.s.frv.) eða óháð. Skoðaðu skráninguna!", + "Community-run support for Synapse": "Aðstoð frá samfélaginu fyrir Synapse", + "Admin support for Dendrite": "Kerfisstjórnarstuðningur fyrir Dendrite", + "Announcements about Synapse releases": "Tilkynningar um Synapse útgáfur", + "Support for those using and running matrix-appservice-irc": "Stuðningur við þá sem nota og keyra matrix-appservice-irc", + "Support for those using the Matrix spec": "Stuðningur við þá sem nota tæknilega Matrix eiginleika", + "Discussion of the Identity Service API": "Umræða um Identity Service API-kerfisviðmót", + "Support for those using, running and writing other bridges": "Stuðningur við þá sem nota, keyra og skrifa aðrar brýr", + "Dev chat for the Riot/Web dev team": "Forritaraspjall fyrir Riot/vefþróunarhópinn", + "Dev chat for the Dendrite dev team": "Forritaraspjall fyrir Dendrite þróunarhópinn" } diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 58a812d6f..97aaeef13 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -34,5 +34,6 @@ "Dev chat for the Riot/Web dev team": "Chat per gli sviluppatori di Riot/Web", "Dev chat for the Dendrite dev team": "Chat per gli sviluppatori di Dendrite", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti già esistenti (Slack, IRC, Gitter ecc) o indipendenti. Dai un'occhiata all'elenco!", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.
Questo permette di usare Matrix con un account esistente su un home server diverso.

È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail." + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.
Questo permette di usare Matrix con un account esistente su un home server diverso.

È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.", + "Co-ordination for Riot translators": "Coordinazione per i traduttori di Riot" } diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json index 318c42bb9..e03b20139 100644 --- a/src/i18n/strings/ko.json +++ b/src/i18n/strings/ko.json @@ -1,37 +1,37 @@ { "Custom Server Options": "사용자 지정 서버 설정", "Dismiss": "없애기", - "powered by Matrix": "매트릭스의 지원을 받고 있어요", - "Riot Desktop on %(platformName)s": "%(platformName)s에서 라이엇 컴퓨터판", - "Riot is not supported on mobile web. Install the app?": "라이엇은 모바일 사이트를 지원하지 않아요. 앱을 설치하시겠어요?", + "powered by Matrix": "Matrix의 지원을 받고 있어요", + "Riot Desktop on %(platformName)s": "%(platformName)s PC용 Riot", + "Riot is not supported on mobile web. Install the app?": "”Riot은 모바일 사이트를 지원하지 않습니다. 앱을 설치하시겠어요?", "Unknown device": "알 수 없는 장치", - "Welcome to Riot.im": "라이엇에 오신 걸 환영해요", - "Chat with Riot Bot": "Riot 봇과 이야기하기", + "Welcome to Riot.im": "Riot에 오신 걸 환영해요", + "Chat with Riot Bot": "Riot 봇과 대화하기", "%(appName)s via %(browserName)s on %(osName)s": "%(osName)s의 %(browserName)s을 통한 %(appName)s", - "You need to be using HTTPS to place a screen-sharing call.": "화면 공유를 하려면 HTTPS를 써야만 해요.", + "You need to be using HTTPS to place a screen-sharing call.": "화면 공유 전화를 걸려면 HTTPS를 사용해야 합니다.", "Decentralised, encrypted chat & collaboration powered by [matrix]": "분산되고, 암호화된 대화 & [matrix]의 지원으로 협력", - "Search the room directory": "방 목록을 찾기", + "Search the room directory": "방 목록 찾기", "Get started with some tips from Riot Bot!": "라이엇 봇에게 조언을 받고 시작하세요!", - "General discussion about Matrix and Riot": "매트릭스와 라이엇에 대한 일반 논의", - "Discussion of all things Matrix!": "매트릭스의 모든 것에 대한 토론!", - "Riot/Web & Desktop chat": "라이엇/웹 & 컴퓨터 이야기", - "Riot/iOS & matrix-ios-sdk chat": "라이엇/IOS & matrix-ios-sdk 대화", - "Riot/Android & matrix-android-sdk chat": "매트릭스/안드로이드 & matrix-ios-sdk 대화", - "Matrix technical discussions": "매트릭스 기술 논의", - "Running Matrix services": "매트릭스 서비스 실행", + "General discussion about Matrix and Riot": "Matrix와 Riot에 대한 일반적인 토론", + "Discussion of all things Matrix!": "모든 Matrix에 대한 토론!", + "Riot/Web & Desktop chat": "Riot/웹 & PC 대화", + "Riot/iOS & matrix-ios-sdk chat": "Riot/IOS & matrix-ios-sdk 대화", + "Riot/Android & matrix-android-sdk chat": "Riot/Android & matrix-ios-sdk 대화", + "Matrix technical discussions": "Matrix에 대한 기술적인 토론", + "Running Matrix services": "Matrix 서비스 실행 중", "Community-run support for Synapse": "시냅스 커뮤니티 운영 지원", - "Admin support for Dendrite": "덴드라이트 관리 지원", - "Announcements about Synapse releases": "시냅스 공개 발표", - "Support for those using and running matrix-appservice-irc": "matrix-appservice-irc를 사용하고 운영하는 사람들을 지원", - "Building services on Matrix": "매트릭스에서 서비스 구축", + "Admin support for Dendrite": "Dendrite 관리 지원", + "Announcements about Synapse releases": "Synapse 출시에 대한 발표", + "Support for those using and running matrix-appservice-irc": "matrix-appservice-irc를 사용하고 운영하는 사람들을 위한 지원", + "Building services on Matrix": "Matrix에서 서비스 구축", "Support for those using the Matrix spec": "Matrix spec을 사용하는 사람들을 지원", "Design and implementation of E2E in Matrix": "매트릭스에서 E2E 설계와 구현", "Implementing VR services with Matrix": "매트릭스로 VR 서비스 구현", - "Implementing VoIP services with Matrix": "매트릭스로 인터넷전화 서비스 구현", + "Implementing VoIP services with Matrix": "Matrix로 인터넷전화 서비스 구현", "Discussion of the Identity Service API": "ID 서비스 API에 대한 논의", - "Support for those using, running and writing other bridges": "다른 브릿지를 사용하고, 운영하고, 기록하는 사람들을 지원", - "Contributing code to Matrix and Riot": "매트릭스와 라이엇에 코드 기여하기", - "Dev chat for the Riot/Web dev team": "라이엇/웹 개발 팀을 위한 개발자 대화", + "Support for those using, running and writing other bridges": "다른 브릿지를 사용하고, 운영하고, 기록하는 사람들을 위한 지원", + "Contributing code to Matrix and Riot": "Matrix와 Riot에 코드 기여하기", + "Dev chat for the Riot/Web dev team": "Riot/웹 개발 팀을 위한 개발자 대화", "Dev chat for the Dendrite dev team": "덴드라이트 개발 팀을 위한 개발자 대화", - "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "기존 네트워크(Slack, IRC, Gitter 등)에 연결되있거나 독립된 많은 방들이 이미 매트릭스에 있어요. 목록을 확인해보세요!" + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "기존 네트워크(Slack, IRC, Gitter 등)에 연결되있거나 독립된 많은 방이 이미 Matrix에 있습니다. 목록을 확인해보세요!" } diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index c683e2c02..74e210252 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -34,5 +34,6 @@ "Support for those using, running and writing other bridges": "Ondersteuning voor het gebruiken, draaien en ontwikkelen aan andere bruggen", "Dev chat for the Riot/Web dev team": "Dev-chat voor het Riot/Web ontwikkelteam", "Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite-ontwikkelteam", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Je kan de custom server opties gebruiken om op andere Matrix server in te loggen door een andere Home server URL op te geven.
Dit laat je toe om Riot te gebruiken met een bestaande Matrix account op een andere home server.

Je kan ook een custom identiteits-server opzetten maar dan kan je geen gebruikers uitnodigen via hun email adres, of zelf uitgenodigd worden via je email adres." + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Je kan de custom server opties gebruiken om op andere Matrix server in te loggen door een andere Home server URL op te geven.
Dit laat je toe om Riot te gebruiken met een bestaande Matrix account op een andere home server.

Je kan ook een custom identiteits-server opzetten maar dan kan je geen gebruikers uitnodigen via hun email adres, of zelf uitgenodigd worden via je email adres.", + "Co-ordination for Riot translators": "Coördinatie voor Riot vertalers" } diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 33e488d5c..47c0c7a64 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -34,5 +34,6 @@ "Dev chat for the Riot/Web dev team": "Czat deweloperów zespołu Riot/Web", "Dev chat for the Dendrite dev team": "Czat deweloperów zespołu Dendrite", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrix ma wiele, już działających pokoi, połączonych z istniejącymi sieciami, takimi jak Slack, IRC lub Gitter, a także wiele zupełnie niezależnych. Możesz przejrzeć je wszystkie w spisie pokoi!", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Możesz skorzystać z opcji dedykowanego serwera, aby zalogować się na inne serwery Matrix, podając inny adres URL serwera Domowego.
Pozwala to na używanie Riot z istniejącym kontem Matrix na innym serwerze domowym.

Możesz również ustawić dedykowany serwer tożsamości, ale nie będziesz w stanie zapraszać użytkowników przez adres email, lub otrzymywać zaproszeń na adres email." + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

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.": "Możesz skorzystać z opcji niestandardowego serwera, aby zalogować się na inne serwery Matrix, podając inny adres URL serwera domowego.
Pozwala to na używanie Riot z istniejącym kontem Matrix na innym serwerze domowym.

Możesz również ustawić niestandardowy serwer tożsamości, ale nie będziesz w stanie zapraszać użytkowników przez adres e-mail ani otrzymywać zaproszeń na adres e-mail.", + "Co-ordination for Riot translators": "Koordynacja tłumaczy Riot" } diff --git a/src/i18n/strings/ro.json b/src/i18n/strings/ro.json new file mode 100644 index 000000000..5a23ed830 --- /dev/null +++ b/src/i18n/strings/ro.json @@ -0,0 +1,5 @@ +{ + "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", + "Unknown device": "Device necunoscut" +} diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index eb59cd6f4..44fa9818d 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1,12 +1,12 @@ { - "Custom Server Options": "Egna serverinställningar", + "Custom Server Options": "Anpassade serverinställningar", "Dismiss": "Avvisa", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s på %(osName)s", "powered by Matrix": "drivs av Matrix", "Riot Desktop on %(platformName)s": "Riot Desktop på %(platformName)s", "Riot is not supported on mobile web. Install the app?": "Riot stöds inte på mobil-webb. Installera appen?", "Unknown device": "Okänd enhet", - "You need to be using HTTPS to place a screen-sharing call.": "Du måste använda HTTPS för att dela din skärm.", + "You need to be using HTTPS to place a screen-sharing call.": "Du måste använda HTTPS för att ringa med skärmdelning.", "Welcome to Riot.im": "Välkommen till Riot.im", "Chat with Riot Bot": "Chatta med Riot Bot", "Get started with some tips from Riot Bot!": "Kom igång med några tips från Riot Bot!", @@ -27,7 +27,7 @@ "Dev chat for the Riot/Web dev team": "Chatt för utvecklare av Riot/Web", "Dev chat for the Dendrite dev team": "Chatt för utvecklare av Dendrite", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Många rum finns redan i Matrix, länkade till andra nätverk (Slack, IRC, Gitter etc.) eller fristående. Kolla in katalogen!", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentraliserad, krypterad chatt & samarbete möjliggjort med [matrix]", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentraliserad, krypterad chatt & samarbetsplattform möjliggjort med [matrix]", "Search the room directory": "Sök i rumskatalogen", "Riot/Web & Desktop chat": "Riot/Web & Desktop-chatt", "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk-chatt", diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 93184603d..8670b7b2a 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1,14 +1,14 @@ { - "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s 透過 %(browserName)s 在 %(osName)s", + "%(appName)s via %(browserName)s on %(osName)s": "在 %(osName)s 的 %(browserName)s 上的 %(appName)s", "Custom Server Options": "自訂伺服器選項", - "Dismiss": "無視", - "powered by Matrix": "由 Matrix 架設", + "Dismiss": "關閉", + "powered by Matrix": "由 Matrix 提供", "Unknown device": "未知裝置", - "You need to be using HTTPS to place a screen-sharing call.": "你需要使用 HTTPS 來放置螢幕分享的通話。", - "Riot Desktop on %(platformName)s": "Riot 桌面版在 %(platformName)s", + "You need to be using HTTPS to place a screen-sharing call.": "你需要使用 HTTPS 來撥打螢幕分享的通話。", + "Riot Desktop on %(platformName)s": "%(platformName)s 的 Riot 桌面版", "Riot is not supported on mobile web. Install the app?": "Riot 不支援行動版網頁,要安裝應用程式嗎?", "Welcome to Riot.im": "歡迎來到 Riot.im", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、保密的聊天與協作,由 [matrix] 出品", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、保密的聊天與協作,由 [matrix] 提供", "Search the room directory": "搜尋聊天室目錄", "Chat with Riot Bot": "與 Riot 機器人聊天", "Get started with some tips from Riot Bot!": "從 Riot 機器人了解使用 Riot 的訣竅吧!",