diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe3fb26c..ae8209ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,17 @@
+Changes in [0.10.2](https://github.com/vector-im/riot-web/releases/tag/v0.10.2) (2017-06-06)
+============================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.1...v0.10.2)
+
+ * Hotfix for bugs where navigating straight to a URL like /#/login and
+ and /#/forgot_password
+
+
+Changes in [0.10.1](https://github.com/vector-im/riot-web/releases/tag/v0.10.1) (2017-06-02)
+============================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0...v0.10.1)
+
+ * Update to matrix-react-sdk 0.9.1 to fix i18n error which broke start chat in some circumstances
+
Changes in [0.10.0](https://github.com/vector-im/riot-web/releases/tag/v0.10.0) (2017-06-02)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0-rc.2...v0.10.0)
diff --git a/README.md b/README.md
index 388d2d9b..94e2a9cc 100644
--- a/README.md
+++ b/README.md
@@ -134,7 +134,7 @@ Running as a Desktop app
Riot can also be run as a desktop app, wrapped in electron. You can download a
pre-built version from https://riot.im/desktop.html or, if you prefer,
-built it yourself.
+build it yourself. Requires Electron >=1.6.0
To run as a desktop app:
diff --git a/config.sample.json b/config.sample.json
index c9b3d65b..7f2c97f9 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -11,6 +11,7 @@
"matrix.org"
]
},
+ "welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1
diff --git a/docs/translating.md b/docs/translating.md
index ca9920d3..9a4f6f6e 100644
--- a/docs/translating.md
+++ b/docs/translating.md
@@ -8,7 +8,7 @@
## Step 0: Join #riotweb-translations:matrix.org
-1. Come and join https://riot.im/develop/#/room/#riotweb-translations:matrix.org
+1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org
2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :)
## Step 1: Preparing your Weblate Profile
diff --git a/electron_app/package.json b/electron_app/package.json
index 096c1e96..a21fd522 100644
--- a/electron_app/package.json
+++ b/electron_app/package.json
@@ -2,12 +2,13 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
- "version": "0.10.0",
+ "version": "0.10.2",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"dependencies": {
- "electron-window-state": "^4.1.0",
"auto-launch": "^5.0.1",
- "minimist": "^1.2.0"
+ "electron-window-state": "^4.1.0",
+ "minimist": "^1.2.0",
+ "png-to-ico": "^1.0.2"
}
}
diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js
index ef0d173c..3491ce0f 100644
--- a/electron_app/src/electron-main.js
+++ b/electron_app/src/electron-main.js
@@ -1,6 +1,7 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
+Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -216,6 +217,20 @@ electron.ipcMain.on('settings_set', function(ev, key, value) {
});
electron.app.on('ready', () => {
+
+ if (argv.devtools) {
+ try {
+ const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
+ installExtension(REACT_DEVELOPER_TOOLS)
+ .then((name) => console.log(`Added Extension: ${name}`))
+ .catch((err) => console.log('An error occurred: ', err));
+ installExtension(REACT_PERF)
+ .then((name) => console.log(`Added Extension: ${name}`))
+ .catch((err) => console.log('An error occurred: ', err));
+ } catch(e) {console.log(e);}
+ }
+
+
if (vectorConfig.update_base_url) {
console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`);
startAutoUpdate(vectorConfig.update_base_url);
diff --git a/electron_app/src/tray.js b/electron_app/src/tray.js
index 9df1a0fb..039e7133 100644
--- a/electron_app/src/tray.js
+++ b/electron_app/src/tray.js
@@ -16,6 +16,9 @@ limitations under the License.
*/
const {app, Tray, Menu, nativeImage} = require('electron');
+const pngToIco = require('png-to-ico');
+const path = require('path');
+const fs = require('fs');
let trayIcon = null;
@@ -57,7 +60,7 @@ exports.create = function(win, config) {
trayIcon.on('click', toggleWin);
let lastFavicon = null;
- win.webContents.on('page-favicon-updated', function(ev, favicons) {
+ win.webContents.on('page-favicon-updated', async function(ev, favicons) {
let newFavicon = config.icon_path;
if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) {
newFavicon = favicons[0];
@@ -70,6 +73,15 @@ exports.create = function(win, config) {
// if its not default we have to construct into nativeImage
if (newFavicon !== config.icon_path) {
newFavicon = nativeImage.createFromDataURL(favicons[0]);
+
+ if (process.platform === 'win32') {
+ try {
+ const icoPath = path.join(app.getPath('temp'), 'win32_riot_icon.ico')
+ const icoBuf = await pngToIco(newFavicon.toPNG());
+ fs.writeFileSync(icoPath, icoBuf);
+ newFavicon = icoPath;
+ } catch (e) {console.error(e);}
+ }
}
trayIcon.setImage(newFavicon);
diff --git a/package.json b/package.json
index bcbd89fa..ffed4f17 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.10.0",
+ "version": "0.10.2",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"repository": {
@@ -46,7 +46,7 @@
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
"lint": "eslint src/",
"lintall": "eslint src/ test/",
- "clean": "rimraf lib webapp electron/dist",
+ "clean": "rimraf lib webapp electron_app/dist",
"prepublish": "npm run build:compile",
"test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
"test-multi": "karma start"
@@ -66,7 +66,7 @@
"highlight.js": "^9.0.0",
"linkifyjs": "^2.1.3",
"matrix-js-sdk": "0.7.10",
- "matrix-react-sdk": "0.9.0",
+ "matrix-react-sdk": "0.9.2",
"modernizr": "^3.1.0",
"pako": "^1.0.5",
"q": "^1.4.1",
@@ -78,7 +78,8 @@
"sanitize-html": "^1.11.1",
"text-encoding-utf-8": "^1.0.1",
"ua-parser-js": "^0.7.10",
- "url": "^0.11.0"
+ "url": "^0.11.0",
+ "velocity-vector": "vector-im/velocity#059e3b2"
},
"devDependencies": {
"autoprefixer": "^6.6.0",
@@ -102,6 +103,7 @@
"css-raw-loader": "^0.1.1",
"electron-builder": "^11.2.4",
"electron-builder-squirrel-windows": "^11.2.1",
+ "electron-devtools-installer": "^2.2.0",
"emojione": "^2.2.7",
"eslint": "^3.14.0",
"eslint-config-google": "^0.7.1",
@@ -163,7 +165,7 @@
"category": "Network;InstantMessaging;Chat",
"maintainer": "support@riot.im",
"desktop": {
- "StartupWMClass": "riot-web"
+ "StartupWMClass": "riot"
}
},
"win": {
diff --git a/res/flags/AD.png b/res/flags/AD.png
index 8e777b98..d5d59645 100644
Binary files a/res/flags/AD.png and b/res/flags/AD.png differ
diff --git a/res/flags/AE.png b/res/flags/AE.png
index 1c4a2bb7..05c7418a 100644
Binary files a/res/flags/AE.png and b/res/flags/AE.png differ
diff --git a/res/flags/AF.png b/res/flags/AF.png
index 7d369371..bc7cef09 100644
Binary files a/res/flags/AF.png and b/res/flags/AF.png differ
diff --git a/res/flags/AG.png b/res/flags/AG.png
index 78c03626..d48facad 100644
Binary files a/res/flags/AG.png and b/res/flags/AG.png differ
diff --git a/res/flags/AI.png b/res/flags/AI.png
index 8a707823..8fd27cd3 100644
Binary files a/res/flags/AI.png and b/res/flags/AI.png differ
diff --git a/res/flags/AL.png b/res/flags/AL.png
index b19c7bc5..883835ff 100644
Binary files a/res/flags/AL.png and b/res/flags/AL.png differ
diff --git a/res/flags/AM.png b/res/flags/AM.png
index b39695fd..b1bb36b9 100644
Binary files a/res/flags/AM.png and b/res/flags/AM.png differ
diff --git a/res/flags/AO.png b/res/flags/AO.png
index 5aee75af..ae68b12c 100644
Binary files a/res/flags/AO.png and b/res/flags/AO.png differ
diff --git a/res/flags/AQ.png b/res/flags/AQ.png
index fa76fbb2..146e9c0a 100644
Binary files a/res/flags/AQ.png and b/res/flags/AQ.png differ
diff --git a/res/flags/AR.png b/res/flags/AR.png
index 28750f42..8142adfc 100644
Binary files a/res/flags/AR.png and b/res/flags/AR.png differ
diff --git a/res/flags/AS.png b/res/flags/AS.png
index 36ba9b34..cc5bf30d 100644
Binary files a/res/flags/AS.png and b/res/flags/AS.png differ
diff --git a/res/flags/AT.png b/res/flags/AT.png
index 487fee82..e32414bd 100644
Binary files a/res/flags/AT.png and b/res/flags/AT.png differ
diff --git a/res/flags/AU.png b/res/flags/AU.png
index 7004861f..8d1e1437 100644
Binary files a/res/flags/AU.png and b/res/flags/AU.png differ
diff --git a/res/flags/AW.png b/res/flags/AW.png
index 238084e4..6ec17884 100644
Binary files a/res/flags/AW.png and b/res/flags/AW.png differ
diff --git a/res/flags/AX.png b/res/flags/AX.png
index 07ac7742..ba269c04 100644
Binary files a/res/flags/AX.png and b/res/flags/AX.png differ
diff --git a/res/flags/AZ.png b/res/flags/AZ.png
index 686dbed7..2bf3c746 100644
Binary files a/res/flags/AZ.png and b/res/flags/AZ.png differ
diff --git a/res/flags/BA.png b/res/flags/BA.png
index 5cfbb6d6..3e3ec3fc 100644
Binary files a/res/flags/BA.png and b/res/flags/BA.png differ
diff --git a/res/flags/BB.png b/res/flags/BB.png
index dcdbae7a..694050ca 100644
Binary files a/res/flags/BB.png and b/res/flags/BB.png differ
diff --git a/res/flags/BD.png b/res/flags/BD.png
index 3bd977a4..6de2cde8 100644
Binary files a/res/flags/BD.png and b/res/flags/BD.png differ
diff --git a/res/flags/BE.png b/res/flags/BE.png
index 555ac8bb..742ba923 100644
Binary files a/res/flags/BE.png and b/res/flags/BE.png differ
diff --git a/res/flags/BF.png b/res/flags/BF.png
index 5a80be2a..17f9f67d 100644
Binary files a/res/flags/BF.png and b/res/flags/BF.png differ
diff --git a/res/flags/BG.png b/res/flags/BG.png
index 6d8be358..b01d3ff5 100644
Binary files a/res/flags/BG.png and b/res/flags/BG.png differ
diff --git a/res/flags/BH.png b/res/flags/BH.png
index 0d98e0e0..d0f82e82 100644
Binary files a/res/flags/BH.png and b/res/flags/BH.png differ
diff --git a/res/flags/BI.png b/res/flags/BI.png
index e2659e3b..21865ac7 100644
Binary files a/res/flags/BI.png and b/res/flags/BI.png differ
diff --git a/res/flags/BJ.png b/res/flags/BJ.png
index 13fa3c91..a7c60914 100644
Binary files a/res/flags/BJ.png and b/res/flags/BJ.png differ
diff --git a/res/flags/BL.png b/res/flags/BL.png
index 8e50a796..6d50a0f5 100644
Binary files a/res/flags/BL.png and b/res/flags/BL.png differ
diff --git a/res/flags/BM.png b/res/flags/BM.png
index 53de7c39..310a25ea 100644
Binary files a/res/flags/BM.png and b/res/flags/BM.png differ
diff --git a/res/flags/BN.png b/res/flags/BN.png
index 3ed976eb..bc4da8d9 100644
Binary files a/res/flags/BN.png and b/res/flags/BN.png differ
diff --git a/res/flags/BO.png b/res/flags/BO.png
index 8e20ea8c..144b8d32 100644
Binary files a/res/flags/BO.png and b/res/flags/BO.png differ
diff --git a/res/flags/BQ.png b/res/flags/BQ.png
index 15472266..08979437 100644
Binary files a/res/flags/BQ.png and b/res/flags/BQ.png differ
diff --git a/res/flags/BR.png b/res/flags/BR.png
index 7a2bc17a..02784925 100644
Binary files a/res/flags/BR.png and b/res/flags/BR.png differ
diff --git a/res/flags/BS.png b/res/flags/BS.png
index 2a152575..2b05a8fc 100644
Binary files a/res/flags/BS.png and b/res/flags/BS.png differ
diff --git a/res/flags/BT.png b/res/flags/BT.png
index 4782cf34..1f031df0 100644
Binary files a/res/flags/BT.png and b/res/flags/BT.png differ
diff --git a/res/flags/BV.png b/res/flags/BV.png
index 991a6cd7..aafb0f17 100644
Binary files a/res/flags/BV.png and b/res/flags/BV.png differ
diff --git a/res/flags/BW.png b/res/flags/BW.png
index cd788955..30840167 100644
Binary files a/res/flags/BW.png and b/res/flags/BW.png differ
diff --git a/res/flags/BY.png b/res/flags/BY.png
index 40cdd8a7..ce9de9c9 100644
Binary files a/res/flags/BY.png and b/res/flags/BY.png differ
diff --git a/res/flags/BZ.png b/res/flags/BZ.png
index 5de79b76..33620c3f 100644
Binary files a/res/flags/BZ.png and b/res/flags/BZ.png differ
diff --git a/res/flags/CA.png b/res/flags/CA.png
index 68bcac99..4bbf8b11 100644
Binary files a/res/flags/CA.png and b/res/flags/CA.png differ
diff --git a/res/flags/CC.png b/res/flags/CC.png
index 13fe2b7f..fd40fc8a 100644
Binary files a/res/flags/CC.png and b/res/flags/CC.png differ
diff --git a/res/flags/CD.png b/res/flags/CD.png
index c1930409..230aacd4 100644
Binary files a/res/flags/CD.png and b/res/flags/CD.png differ
diff --git a/res/flags/CF.png b/res/flags/CF.png
index 6df77507..c58ed4f7 100644
Binary files a/res/flags/CF.png and b/res/flags/CF.png differ
diff --git a/res/flags/CG.png b/res/flags/CG.png
index 2d37cd50..6c2441e3 100644
Binary files a/res/flags/CG.png and b/res/flags/CG.png differ
diff --git a/res/flags/CH.png b/res/flags/CH.png
index 00d38717..9fd87167 100644
Binary files a/res/flags/CH.png and b/res/flags/CH.png differ
diff --git a/res/flags/CI.png b/res/flags/CI.png
index 82c7606e..9741b9b1 100644
Binary files a/res/flags/CI.png and b/res/flags/CI.png differ
diff --git a/res/flags/CK.png b/res/flags/CK.png
index 26bca5f9..6cca3596 100644
Binary files a/res/flags/CK.png and b/res/flags/CK.png differ
diff --git a/res/flags/CL.png b/res/flags/CL.png
index 317ec573..13b993d1 100644
Binary files a/res/flags/CL.png and b/res/flags/CL.png differ
diff --git a/res/flags/CM.png b/res/flags/CM.png
index c5605d63..bca5730f 100644
Binary files a/res/flags/CM.png and b/res/flags/CM.png differ
diff --git a/res/flags/CN.png b/res/flags/CN.png
index 1c25ab86..e086855c 100644
Binary files a/res/flags/CN.png and b/res/flags/CN.png differ
diff --git a/res/flags/CO.png b/res/flags/CO.png
index b328c1ea..65c0aba4 100644
Binary files a/res/flags/CO.png and b/res/flags/CO.png differ
diff --git a/res/flags/CR.png b/res/flags/CR.png
index df959197..b351c67a 100644
Binary files a/res/flags/CR.png and b/res/flags/CR.png differ
diff --git a/res/flags/CU.png b/res/flags/CU.png
index 60f6a8c8..e7a25c60 100644
Binary files a/res/flags/CU.png and b/res/flags/CU.png differ
diff --git a/res/flags/CV.png b/res/flags/CV.png
index 2dfe516d..f249bbaa 100644
Binary files a/res/flags/CV.png and b/res/flags/CV.png differ
diff --git a/res/flags/CW.png b/res/flags/CW.png
index 2380de15..e02cacd3 100644
Binary files a/res/flags/CW.png and b/res/flags/CW.png differ
diff --git a/res/flags/CX.png b/res/flags/CX.png
index 49a51c16..3ea21422 100644
Binary files a/res/flags/CX.png and b/res/flags/CX.png differ
diff --git a/res/flags/CY.png b/res/flags/CY.png
index 08a0e372..3182f48b 100644
Binary files a/res/flags/CY.png and b/res/flags/CY.png differ
diff --git a/res/flags/CZ.png b/res/flags/CZ.png
index 90ceaa24..54623346 100644
Binary files a/res/flags/CZ.png and b/res/flags/CZ.png differ
diff --git a/res/flags/DE.png b/res/flags/DE.png
index 90cab7e9..93e26916 100644
Binary files a/res/flags/DE.png and b/res/flags/DE.png differ
diff --git a/res/flags/DJ.png b/res/flags/DJ.png
index c424a807..243bb739 100644
Binary files a/res/flags/DJ.png and b/res/flags/DJ.png differ
diff --git a/res/flags/DK.png b/res/flags/DK.png
index 5a3845ad..fc74cc39 100644
Binary files a/res/flags/DK.png and b/res/flags/DK.png differ
diff --git a/res/flags/DM.png b/res/flags/DM.png
index e7fb60c0..c3a0e9d1 100644
Binary files a/res/flags/DM.png and b/res/flags/DM.png differ
diff --git a/res/flags/DO.png b/res/flags/DO.png
index 03c2f1b9..5c4a004f 100644
Binary files a/res/flags/DO.png and b/res/flags/DO.png differ
diff --git a/res/flags/DZ.png b/res/flags/DZ.png
index 9d63939e..1589d0cc 100644
Binary files a/res/flags/DZ.png and b/res/flags/DZ.png differ
diff --git a/res/flags/EC.png b/res/flags/EC.png
index 92e2a9e9..4c53dead 100644
Binary files a/res/flags/EC.png and b/res/flags/EC.png differ
diff --git a/res/flags/EE.png b/res/flags/EE.png
index 08156869..3668de79 100644
Binary files a/res/flags/EE.png and b/res/flags/EE.png differ
diff --git a/res/flags/EG.png b/res/flags/EG.png
index 7e9d6c5c..66ec709d 100644
Binary files a/res/flags/EG.png and b/res/flags/EG.png differ
diff --git a/res/flags/EH.png b/res/flags/EH.png
index f8e59b21..148be93c 100644
Binary files a/res/flags/EH.png and b/res/flags/EH.png differ
diff --git a/res/flags/ER.png b/res/flags/ER.png
index ffeb28da..7cb84415 100644
Binary files a/res/flags/ER.png and b/res/flags/ER.png differ
diff --git a/res/flags/ES.png b/res/flags/ES.png
index 3ce59fe8..aae73b6f 100644
Binary files a/res/flags/ES.png and b/res/flags/ES.png differ
diff --git a/res/flags/ET.png b/res/flags/ET.png
index f9d92859..7b420f02 100644
Binary files a/res/flags/ET.png and b/res/flags/ET.png differ
diff --git a/res/flags/FI.png b/res/flags/FI.png
index 0930988c..42f64bf3 100644
Binary files a/res/flags/FI.png and b/res/flags/FI.png differ
diff --git a/res/flags/FJ.png b/res/flags/FJ.png
index 2a78075d..cecc683c 100644
Binary files a/res/flags/FJ.png and b/res/flags/FJ.png differ
diff --git a/res/flags/FK.png b/res/flags/FK.png
index 52543390..6074fea0 100644
Binary files a/res/flags/FK.png and b/res/flags/FK.png differ
diff --git a/res/flags/FM.png b/res/flags/FM.png
index 0ba546ed..45fdb664 100644
Binary files a/res/flags/FM.png and b/res/flags/FM.png differ
diff --git a/res/flags/FO.png b/res/flags/FO.png
index 2a0cd645..d8fd75c6 100644
Binary files a/res/flags/FO.png and b/res/flags/FO.png differ
diff --git a/res/flags/FR.png b/res/flags/FR.png
index ef05d74b..6d50a0f5 100644
Binary files a/res/flags/FR.png and b/res/flags/FR.png differ
diff --git a/res/flags/GA.png b/res/flags/GA.png
index 6539d6dd..3808a61f 100644
Binary files a/res/flags/GA.png and b/res/flags/GA.png differ
diff --git a/res/flags/GB.png b/res/flags/GB.png
index 2938e61b..589be700 100644
Binary files a/res/flags/GB.png and b/res/flags/GB.png differ
diff --git a/res/flags/GD.png b/res/flags/GD.png
index a55638e7..babe1e4c 100644
Binary files a/res/flags/GD.png and b/res/flags/GD.png differ
diff --git a/res/flags/GE.png b/res/flags/GE.png
index c6cfd2b0..d34cddec 100644
Binary files a/res/flags/GE.png and b/res/flags/GE.png differ
diff --git a/res/flags/GF.png b/res/flags/GF.png
index dfc1badf..98828a59 100644
Binary files a/res/flags/GF.png and b/res/flags/GF.png differ
diff --git a/res/flags/GG.png b/res/flags/GG.png
index a79f8c1f..aec8969b 100644
Binary files a/res/flags/GG.png and b/res/flags/GG.png differ
diff --git a/res/flags/GH.png b/res/flags/GH.png
index bda5d6f6..70b1a623 100644
Binary files a/res/flags/GH.png and b/res/flags/GH.png differ
diff --git a/res/flags/GI.png b/res/flags/GI.png
index 620b50b3..9aa58327 100644
Binary files a/res/flags/GI.png and b/res/flags/GI.png differ
diff --git a/res/flags/GL.png b/res/flags/GL.png
index c3d6bcf3..cf1645c2 100644
Binary files a/res/flags/GL.png and b/res/flags/GL.png differ
diff --git a/res/flags/GM.png b/res/flags/GM.png
index fa2d771e..ec374fb3 100644
Binary files a/res/flags/GM.png and b/res/flags/GM.png differ
diff --git a/res/flags/GN.png b/res/flags/GN.png
index dabe7ce4..46874b4d 100644
Binary files a/res/flags/GN.png and b/res/flags/GN.png differ
diff --git a/res/flags/GP.png b/res/flags/GP.png
index 7bf76956..81b7abdf 100644
Binary files a/res/flags/GP.png and b/res/flags/GP.png differ
diff --git a/res/flags/GQ.png b/res/flags/GQ.png
index edae61e9..7fd1015e 100644
Binary files a/res/flags/GQ.png and b/res/flags/GQ.png differ
diff --git a/res/flags/GR.png b/res/flags/GR.png
index 5abc59d3..101de51e 100644
Binary files a/res/flags/GR.png and b/res/flags/GR.png differ
diff --git a/res/flags/GS.png b/res/flags/GS.png
index baa930d0..772c2cbe 100644
Binary files a/res/flags/GS.png and b/res/flags/GS.png differ
diff --git a/res/flags/GT.png b/res/flags/GT.png
index 10ef0cdd..d5bd8c1e 100644
Binary files a/res/flags/GT.png and b/res/flags/GT.png differ
diff --git a/res/flags/GU.png b/res/flags/GU.png
index 166c121e..8923085d 100644
Binary files a/res/flags/GU.png and b/res/flags/GU.png differ
diff --git a/res/flags/GW.png b/res/flags/GW.png
index fb59de83..20c268ce 100644
Binary files a/res/flags/GW.png and b/res/flags/GW.png differ
diff --git a/res/flags/GY.png b/res/flags/GY.png
index 65499a7c..86f56635 100644
Binary files a/res/flags/GY.png and b/res/flags/GY.png differ
diff --git a/res/flags/HK.png b/res/flags/HK.png
index 39588384..907dc596 100644
Binary files a/res/flags/HK.png and b/res/flags/HK.png differ
diff --git a/res/flags/HM.png b/res/flags/HM.png
index 26a61cbf..8d1e1437 100644
Binary files a/res/flags/HM.png and b/res/flags/HM.png differ
diff --git a/res/flags/HN.png b/res/flags/HN.png
index bf923cb8..4cf8c311 100644
Binary files a/res/flags/HN.png and b/res/flags/HN.png differ
diff --git a/res/flags/HR.png b/res/flags/HR.png
index 139e143b..413ceb15 100644
Binary files a/res/flags/HR.png and b/res/flags/HR.png differ
diff --git a/res/flags/HT.png b/res/flags/HT.png
index 2583da39..097abeb4 100644
Binary files a/res/flags/HT.png and b/res/flags/HT.png differ
diff --git a/res/flags/HU.png b/res/flags/HU.png
index 625846af..23499bf6 100644
Binary files a/res/flags/HU.png and b/res/flags/HU.png differ
diff --git a/res/flags/ID.png b/res/flags/ID.png
index f88d48af..80200657 100644
Binary files a/res/flags/ID.png and b/res/flags/ID.png differ
diff --git a/res/flags/IE.png b/res/flags/IE.png
index 17f255fc..63f22201 100644
Binary files a/res/flags/IE.png and b/res/flags/IE.png differ
diff --git a/res/flags/IL.png b/res/flags/IL.png
index 6c9a6b57..02688263 100644
Binary files a/res/flags/IL.png and b/res/flags/IL.png differ
diff --git a/res/flags/IM.png b/res/flags/IM.png
index 936e801d..c777acc4 100644
Binary files a/res/flags/IM.png and b/res/flags/IM.png differ
diff --git a/res/flags/IN.png b/res/flags/IN.png
index ecba2f9c..85fa9bfe 100644
Binary files a/res/flags/IN.png and b/res/flags/IN.png differ
diff --git a/res/flags/IO.png b/res/flags/IO.png
index b0edb161..1675d8e7 100644
Binary files a/res/flags/IO.png and b/res/flags/IO.png differ
diff --git a/res/flags/IQ.png b/res/flags/IQ.png
index 19055f14..f2c21f72 100644
Binary files a/res/flags/IQ.png and b/res/flags/IQ.png differ
diff --git a/res/flags/IR.png b/res/flags/IR.png
index 9056d21e..0b8e6750 100644
Binary files a/res/flags/IR.png and b/res/flags/IR.png differ
diff --git a/res/flags/IS.png b/res/flags/IS.png
index 06be01a8..5ee3e63c 100644
Binary files a/res/flags/IS.png and b/res/flags/IS.png differ
diff --git a/res/flags/IT.png b/res/flags/IT.png
index 50e17b22..53b967be 100644
Binary files a/res/flags/IT.png and b/res/flags/IT.png differ
diff --git a/res/flags/JE.png b/res/flags/JE.png
index 456a1a83..a1437aba 100644
Binary files a/res/flags/JE.png and b/res/flags/JE.png differ
diff --git a/res/flags/JM.png b/res/flags/JM.png
index 5e4e73d3..0d462fa3 100644
Binary files a/res/flags/JM.png and b/res/flags/JM.png differ
diff --git a/res/flags/JO.png b/res/flags/JO.png
index 5982705b..8934db7e 100644
Binary files a/res/flags/JO.png and b/res/flags/JO.png differ
diff --git a/res/flags/JP.png b/res/flags/JP.png
index 009a990a..6f92d523 100644
Binary files a/res/flags/JP.png and b/res/flags/JP.png differ
diff --git a/res/flags/KE.png b/res/flags/KE.png
index b5a9f733..866b3f15 100644
Binary files a/res/flags/KE.png and b/res/flags/KE.png differ
diff --git a/res/flags/KG.png b/res/flags/KG.png
index acf6646b..56b433c7 100644
Binary files a/res/flags/KG.png and b/res/flags/KG.png differ
diff --git a/res/flags/KH.png b/res/flags/KH.png
index 58ad9c61..e1ddd5f8 100644
Binary files a/res/flags/KH.png and b/res/flags/KH.png differ
diff --git a/res/flags/KI.png b/res/flags/KI.png
index 49902d25..8b7c54bc 100644
Binary files a/res/flags/KI.png and b/res/flags/KI.png differ
diff --git a/res/flags/KM.png b/res/flags/KM.png
index 9fa9a454..227a3b33 100644
Binary files a/res/flags/KM.png and b/res/flags/KM.png differ
diff --git a/res/flags/KN.png b/res/flags/KN.png
index 3b39f8f7..bc6189be 100644
Binary files a/res/flags/KN.png and b/res/flags/KN.png differ
diff --git a/res/flags/KP.png b/res/flags/KP.png
index eacc3ad0..c92248b9 100644
Binary files a/res/flags/KP.png and b/res/flags/KP.png differ
diff --git a/res/flags/KR.png b/res/flags/KR.png
index a0df8da0..ab1cb949 100644
Binary files a/res/flags/KR.png and b/res/flags/KR.png differ
diff --git a/res/flags/KW.png b/res/flags/KW.png
index c6839950..0b41c7a5 100644
Binary files a/res/flags/KW.png and b/res/flags/KW.png differ
diff --git a/res/flags/KY.png b/res/flags/KY.png
index 3f82fa74..7af5290d 100644
Binary files a/res/flags/KY.png and b/res/flags/KY.png differ
diff --git a/res/flags/KZ.png b/res/flags/KZ.png
index 4b436212..e10a1255 100644
Binary files a/res/flags/KZ.png and b/res/flags/KZ.png differ
diff --git a/res/flags/LA.png b/res/flags/LA.png
index ee9c41ea..6ad67d42 100644
Binary files a/res/flags/LA.png and b/res/flags/LA.png differ
diff --git a/res/flags/LB.png b/res/flags/LB.png
index 7b4d6653..865df57a 100644
Binary files a/res/flags/LB.png and b/res/flags/LB.png differ
diff --git a/res/flags/LC.png b/res/flags/LC.png
index d97f8d8d..e83a2d08 100644
Binary files a/res/flags/LC.png and b/res/flags/LC.png differ
diff --git a/res/flags/LI.png b/res/flags/LI.png
index c75a229f..57034d36 100644
Binary files a/res/flags/LI.png and b/res/flags/LI.png differ
diff --git a/res/flags/LK.png b/res/flags/LK.png
index 2ca1a0c1..6e7ad582 100644
Binary files a/res/flags/LK.png and b/res/flags/LK.png differ
diff --git a/res/flags/LR.png b/res/flags/LR.png
index 41bf4a96..46c3b84a 100644
Binary files a/res/flags/LR.png and b/res/flags/LR.png differ
diff --git a/res/flags/LS.png b/res/flags/LS.png
index 10cf81b0..79b505d4 100644
Binary files a/res/flags/LS.png and b/res/flags/LS.png differ
diff --git a/res/flags/LT.png b/res/flags/LT.png
index 17a36c71..7740cdc0 100644
Binary files a/res/flags/LT.png and b/res/flags/LT.png differ
diff --git a/res/flags/LU.png b/res/flags/LU.png
index 675a891d..8f383e67 100644
Binary files a/res/flags/LU.png and b/res/flags/LU.png differ
diff --git a/res/flags/LV.png b/res/flags/LV.png
index 763a6120..a0f36d89 100644
Binary files a/res/flags/LV.png and b/res/flags/LV.png differ
diff --git a/res/flags/LY.png b/res/flags/LY.png
index 5211a902..2884c4c0 100644
Binary files a/res/flags/LY.png and b/res/flags/LY.png differ
diff --git a/res/flags/MA.png b/res/flags/MA.png
index 098db500..1f76cfc9 100644
Binary files a/res/flags/MA.png and b/res/flags/MA.png differ
diff --git a/res/flags/MC.png b/res/flags/MC.png
index 8d1a9813..06fc2ad1 100644
Binary files a/res/flags/MC.png and b/res/flags/MC.png differ
diff --git a/res/flags/MD.png b/res/flags/MD.png
index 6ca6f734..8e54c2b8 100644
Binary files a/res/flags/MD.png and b/res/flags/MD.png differ
diff --git a/res/flags/ME.png b/res/flags/ME.png
index c7fccac3..97424d4e 100644
Binary files a/res/flags/ME.png and b/res/flags/ME.png differ
diff --git a/res/flags/MF.png b/res/flags/MF.png
index 7f6824e0..6d50a0f5 100644
Binary files a/res/flags/MF.png and b/res/flags/MF.png differ
diff --git a/res/flags/MG.png b/res/flags/MG.png
index 55bc8985..28bfccc9 100644
Binary files a/res/flags/MG.png and b/res/flags/MG.png differ
diff --git a/res/flags/MH.png b/res/flags/MH.png
index 44849779..e482a659 100644
Binary files a/res/flags/MH.png and b/res/flags/MH.png differ
diff --git a/res/flags/MK.png b/res/flags/MK.png
index ef8d2e55..84e2e65e 100644
Binary files a/res/flags/MK.png and b/res/flags/MK.png differ
diff --git a/res/flags/ML.png b/res/flags/ML.png
index b8c5737f..38fec347 100644
Binary files a/res/flags/ML.png and b/res/flags/ML.png differ
diff --git a/res/flags/MM.png b/res/flags/MM.png
index afac4940..70a03c6b 100644
Binary files a/res/flags/MM.png and b/res/flags/MM.png differ
diff --git a/res/flags/MN.png b/res/flags/MN.png
index 6e3de338..1e1bbe60 100644
Binary files a/res/flags/MN.png and b/res/flags/MN.png differ
diff --git a/res/flags/MO.png b/res/flags/MO.png
index 02118edf..3833d683 100644
Binary files a/res/flags/MO.png and b/res/flags/MO.png differ
diff --git a/res/flags/MP.png b/res/flags/MP.png
index a85be51b..63119096 100644
Binary files a/res/flags/MP.png and b/res/flags/MP.png differ
diff --git a/res/flags/MQ.png b/res/flags/MQ.png
index 92eb0727..9cab441a 100644
Binary files a/res/flags/MQ.png and b/res/flags/MQ.png differ
diff --git a/res/flags/MR.png b/res/flags/MR.png
index 95a52726..c144de17 100644
Binary files a/res/flags/MR.png and b/res/flags/MR.png differ
diff --git a/res/flags/MS.png b/res/flags/MS.png
index a811c5bd..12217070 100644
Binary files a/res/flags/MS.png and b/res/flags/MS.png differ
diff --git a/res/flags/MT.png b/res/flags/MT.png
index 857672bf..7963aa61 100644
Binary files a/res/flags/MT.png and b/res/flags/MT.png differ
diff --git a/res/flags/MU.png b/res/flags/MU.png
index 8f6abb73..d5d4d400 100644
Binary files a/res/flags/MU.png and b/res/flags/MU.png differ
diff --git a/res/flags/MV.png b/res/flags/MV.png
index bdb8119f..0f2ecb43 100644
Binary files a/res/flags/MV.png and b/res/flags/MV.png differ
diff --git a/res/flags/MW.png b/res/flags/MW.png
index c684776a..d0a5d24f 100644
Binary files a/res/flags/MW.png and b/res/flags/MW.png differ
diff --git a/res/flags/MX.png b/res/flags/MX.png
index aee282de..096cb111 100644
Binary files a/res/flags/MX.png and b/res/flags/MX.png differ
diff --git a/res/flags/MY.png b/res/flags/MY.png
index 3941aa8c..17f18ac5 100644
Binary files a/res/flags/MY.png and b/res/flags/MY.png differ
diff --git a/res/flags/MZ.png b/res/flags/MZ.png
index dd497c23..66be6563 100644
Binary files a/res/flags/MZ.png and b/res/flags/MZ.png differ
diff --git a/res/flags/NA.png b/res/flags/NA.png
index 68e4aeab..7ecfd317 100644
Binary files a/res/flags/NA.png and b/res/flags/NA.png differ
diff --git a/res/flags/NC.png b/res/flags/NC.png
index ffcc2166..11126ade 100644
Binary files a/res/flags/NC.png and b/res/flags/NC.png differ
diff --git a/res/flags/NE.png b/res/flags/NE.png
index 08950d2f..d584fa84 100644
Binary files a/res/flags/NE.png and b/res/flags/NE.png differ
diff --git a/res/flags/NF.png b/res/flags/NF.png
index 2728ed54..c0540425 100644
Binary files a/res/flags/NF.png and b/res/flags/NF.png differ
diff --git a/res/flags/NG.png b/res/flags/NG.png
index 5812b2d2..73aee15b 100644
Binary files a/res/flags/NG.png and b/res/flags/NG.png differ
diff --git a/res/flags/NI.png b/res/flags/NI.png
index d09e1329..fd044933 100644
Binary files a/res/flags/NI.png and b/res/flags/NI.png differ
diff --git a/res/flags/NL.png b/res/flags/NL.png
index f9203282..08979437 100644
Binary files a/res/flags/NL.png and b/res/flags/NL.png differ
diff --git a/res/flags/NO.png b/res/flags/NO.png
index 0bedee3f..aafb0f17 100644
Binary files a/res/flags/NO.png and b/res/flags/NO.png differ
diff --git a/res/flags/NP.png b/res/flags/NP.png
index e7775c25..744458e1 100644
Binary files a/res/flags/NP.png and b/res/flags/NP.png differ
diff --git a/res/flags/NR.png b/res/flags/NR.png
index 4760404b..58c2afb2 100644
Binary files a/res/flags/NR.png and b/res/flags/NR.png differ
diff --git a/res/flags/NU.png b/res/flags/NU.png
index 7c130d5b..007c99ec 100644
Binary files a/res/flags/NU.png and b/res/flags/NU.png differ
diff --git a/res/flags/NZ.png b/res/flags/NZ.png
index 67c98728..839368dd 100644
Binary files a/res/flags/NZ.png and b/res/flags/NZ.png differ
diff --git a/res/flags/OM.png b/res/flags/OM.png
index a6762503..63a89336 100644
Binary files a/res/flags/OM.png and b/res/flags/OM.png differ
diff --git a/res/flags/PA.png b/res/flags/PA.png
index ed18bdda..3515d95d 100644
Binary files a/res/flags/PA.png and b/res/flags/PA.png differ
diff --git a/res/flags/PE.png b/res/flags/PE.png
index 7485279c..58f70b8d 100644
Binary files a/res/flags/PE.png and b/res/flags/PE.png differ
diff --git a/res/flags/PF.png b/res/flags/PF.png
index 6623f413..2f33f257 100644
Binary files a/res/flags/PF.png and b/res/flags/PF.png differ
diff --git a/res/flags/PG.png b/res/flags/PG.png
index 92504c51..c796f587 100644
Binary files a/res/flags/PG.png and b/res/flags/PG.png differ
diff --git a/res/flags/PH.png b/res/flags/PH.png
index d6d67621..0d98de03 100644
Binary files a/res/flags/PH.png and b/res/flags/PH.png differ
diff --git a/res/flags/PK.png b/res/flags/PK.png
index f7c8bb94..87f4e2f4 100644
Binary files a/res/flags/PK.png and b/res/flags/PK.png differ
diff --git a/res/flags/PL.png b/res/flags/PL.png
index 8303b1ea..273869df 100644
Binary files a/res/flags/PL.png and b/res/flags/PL.png differ
diff --git a/res/flags/PM.png b/res/flags/PM.png
index 2507c86e..b74c396d 100644
Binary files a/res/flags/PM.png and b/res/flags/PM.png differ
diff --git a/res/flags/PN.png b/res/flags/PN.png
index c5e1d884..e34c62d5 100644
Binary files a/res/flags/PN.png and b/res/flags/PN.png differ
diff --git a/res/flags/PR.png b/res/flags/PR.png
index 938c8350..8efdb912 100644
Binary files a/res/flags/PR.png and b/res/flags/PR.png differ
diff --git a/res/flags/PS.png b/res/flags/PS.png
index d106ba89..7a0cceec 100644
Binary files a/res/flags/PS.png and b/res/flags/PS.png differ
diff --git a/res/flags/PT.png b/res/flags/PT.png
index 168f0605..49e29082 100644
Binary files a/res/flags/PT.png and b/res/flags/PT.png differ
diff --git a/res/flags/PW.png b/res/flags/PW.png
index 2d6e5d5b..6cb2e1e7 100644
Binary files a/res/flags/PW.png and b/res/flags/PW.png differ
diff --git a/res/flags/PY.png b/res/flags/PY.png
index 9cae9a78..a61c42c4 100644
Binary files a/res/flags/PY.png and b/res/flags/PY.png differ
diff --git a/res/flags/QA.png b/res/flags/QA.png
index ce9d31ed..bb091cc8 100644
Binary files a/res/flags/QA.png and b/res/flags/QA.png differ
diff --git a/res/flags/RE.png b/res/flags/RE.png
index 85c25710..6d50a0f5 100644
Binary files a/res/flags/RE.png and b/res/flags/RE.png differ
diff --git a/res/flags/RO.png b/res/flags/RO.png
index e77996d5..4495d29e 100644
Binary files a/res/flags/RO.png and b/res/flags/RO.png differ
diff --git a/res/flags/RS.png b/res/flags/RS.png
index fc7a2ab7..ebb0f28a 100644
Binary files a/res/flags/RS.png and b/res/flags/RS.png differ
diff --git a/res/flags/RU.png b/res/flags/RU.png
index 8b3df779..64532ffa 100644
Binary files a/res/flags/RU.png and b/res/flags/RU.png differ
diff --git a/res/flags/RW.png b/res/flags/RW.png
index 87f71867..64b3cfff 100644
Binary files a/res/flags/RW.png and b/res/flags/RW.png differ
diff --git a/res/flags/SA.png b/res/flags/SA.png
index d93b91c7..250de6f6 100644
Binary files a/res/flags/SA.png and b/res/flags/SA.png differ
diff --git a/res/flags/SB.png b/res/flags/SB.png
index e9a2a8f3..5833c130 100644
Binary files a/res/flags/SB.png and b/res/flags/SB.png differ
diff --git a/res/flags/SC.png b/res/flags/SC.png
index 488ac3be..ce5248f4 100644
Binary files a/res/flags/SC.png and b/res/flags/SC.png differ
diff --git a/res/flags/SD.png b/res/flags/SD.png
index 6ba8c5ca..d8711a83 100644
Binary files a/res/flags/SD.png and b/res/flags/SD.png differ
diff --git a/res/flags/SE.png b/res/flags/SE.png
index e7bd806f..81880931 100644
Binary files a/res/flags/SE.png and b/res/flags/SE.png differ
diff --git a/res/flags/SG.png b/res/flags/SG.png
index 797069fc..6f00e579 100644
Binary files a/res/flags/SG.png and b/res/flags/SG.png differ
diff --git a/res/flags/SH.png b/res/flags/SH.png
index b2c589d0..055dde68 100644
Binary files a/res/flags/SH.png and b/res/flags/SH.png differ
diff --git a/res/flags/SI.png b/res/flags/SI.png
index be8e7a89..96359834 100644
Binary files a/res/flags/SI.png and b/res/flags/SI.png differ
diff --git a/res/flags/SJ.png b/res/flags/SJ.png
index 1dd7e786..aafb0f17 100644
Binary files a/res/flags/SJ.png and b/res/flags/SJ.png differ
diff --git a/res/flags/SK.png b/res/flags/SK.png
index be3d10f2..84c7021f 100644
Binary files a/res/flags/SK.png and b/res/flags/SK.png differ
diff --git a/res/flags/SL.png b/res/flags/SL.png
index b3f997b1..c5ed1991 100644
Binary files a/res/flags/SL.png and b/res/flags/SL.png differ
diff --git a/res/flags/SM.png b/res/flags/SM.png
index b30f77ad..1af1ca28 100644
Binary files a/res/flags/SM.png and b/res/flags/SM.png differ
diff --git a/res/flags/SN.png b/res/flags/SN.png
index b5cdb210..d0b18435 100644
Binary files a/res/flags/SN.png and b/res/flags/SN.png differ
diff --git a/res/flags/SO.png b/res/flags/SO.png
index 5f808508..64e2970b 100644
Binary files a/res/flags/SO.png and b/res/flags/SO.png differ
diff --git a/res/flags/SR.png b/res/flags/SR.png
index a2d124e9..b072dda8 100644
Binary files a/res/flags/SR.png and b/res/flags/SR.png differ
diff --git a/res/flags/SS.png b/res/flags/SS.png
index 19c65899..83933d45 100644
Binary files a/res/flags/SS.png and b/res/flags/SS.png differ
diff --git a/res/flags/ST.png b/res/flags/ST.png
index 1d2befe4..c102721a 100644
Binary files a/res/flags/ST.png and b/res/flags/ST.png differ
diff --git a/res/flags/SV.png b/res/flags/SV.png
index fc3a9ca4..80de92e5 100644
Binary files a/res/flags/SV.png and b/res/flags/SV.png differ
diff --git a/res/flags/SX.png b/res/flags/SX.png
index 6051aaa6..dd52215c 100644
Binary files a/res/flags/SX.png and b/res/flags/SX.png differ
diff --git a/res/flags/SY.png b/res/flags/SY.png
index 0d51d071..78f45b7c 100644
Binary files a/res/flags/SY.png and b/res/flags/SY.png differ
diff --git a/res/flags/SZ.png b/res/flags/SZ.png
index a7366cb6..2182f4ff 100644
Binary files a/res/flags/SZ.png and b/res/flags/SZ.png differ
diff --git a/res/flags/TC.png b/res/flags/TC.png
index 39971bb9..3e3e19d4 100644
Binary files a/res/flags/TC.png and b/res/flags/TC.png differ
diff --git a/res/flags/TD.png b/res/flags/TD.png
index 1fb647d4..753bec22 100644
Binary files a/res/flags/TD.png and b/res/flags/TD.png differ
diff --git a/res/flags/TF.png b/res/flags/TF.png
index 41bd9334..6d50a0f5 100644
Binary files a/res/flags/TF.png and b/res/flags/TF.png differ
diff --git a/res/flags/TG.png b/res/flags/TG.png
index 560fc098..8501ada6 100644
Binary files a/res/flags/TG.png and b/res/flags/TG.png differ
diff --git a/res/flags/TH.png b/res/flags/TH.png
index 9ee5ce89..0c884c32 100644
Binary files a/res/flags/TH.png and b/res/flags/TH.png differ
diff --git a/res/flags/TJ.png b/res/flags/TJ.png
index ca4be077..3c9026fa 100644
Binary files a/res/flags/TJ.png and b/res/flags/TJ.png differ
diff --git a/res/flags/TK.png b/res/flags/TK.png
index 88a7eb1a..fd605749 100644
Binary files a/res/flags/TK.png and b/res/flags/TK.png differ
diff --git a/res/flags/TL.png b/res/flags/TL.png
index fa6c365b..b4c834b1 100644
Binary files a/res/flags/TL.png and b/res/flags/TL.png differ
diff --git a/res/flags/TM.png b/res/flags/TM.png
index 6cc0539d..d18cb939 100644
Binary files a/res/flags/TM.png and b/res/flags/TM.png differ
diff --git a/res/flags/TN.png b/res/flags/TN.png
index 1cc09ec6..21c4b98b 100644
Binary files a/res/flags/TN.png and b/res/flags/TN.png differ
diff --git a/res/flags/TO.png b/res/flags/TO.png
index 44c42ce0..c828206e 100644
Binary files a/res/flags/TO.png and b/res/flags/TO.png differ
diff --git a/res/flags/TR.png b/res/flags/TR.png
index 4e63d61b..f2a5bd22 100644
Binary files a/res/flags/TR.png and b/res/flags/TR.png differ
diff --git a/res/flags/TT.png b/res/flags/TT.png
index 3831347f..66d69833 100644
Binary files a/res/flags/TT.png and b/res/flags/TT.png differ
diff --git a/res/flags/TV.png b/res/flags/TV.png
index 2f24fbf7..7a127f51 100644
Binary files a/res/flags/TV.png and b/res/flags/TV.png differ
diff --git a/res/flags/TW.png b/res/flags/TW.png
index cda05c9b..2353ba1b 100644
Binary files a/res/flags/TW.png and b/res/flags/TW.png differ
diff --git a/res/flags/TZ.png b/res/flags/TZ.png
index a60d5b3f..7949f65d 100644
Binary files a/res/flags/TZ.png and b/res/flags/TZ.png differ
diff --git a/res/flags/UA.png b/res/flags/UA.png
index f62089b6..687e3052 100644
Binary files a/res/flags/UA.png and b/res/flags/UA.png differ
diff --git a/res/flags/UG.png b/res/flags/UG.png
index 8fb590e8..0a21ad15 100644
Binary files a/res/flags/UG.png and b/res/flags/UG.png differ
diff --git a/res/flags/US.png b/res/flags/US.png
index f6b7ab98..c3a245b7 100644
Binary files a/res/flags/US.png and b/res/flags/US.png differ
diff --git a/res/flags/UY.png b/res/flags/UY.png
index 11abe8c1..21a347c6 100644
Binary files a/res/flags/UY.png and b/res/flags/UY.png differ
diff --git a/res/flags/UZ.png b/res/flags/UZ.png
index 5d9168a3..643b6ae0 100644
Binary files a/res/flags/UZ.png and b/res/flags/UZ.png differ
diff --git a/res/flags/VA.png b/res/flags/VA.png
index 4e5a92bd..63a13c0e 100644
Binary files a/res/flags/VA.png and b/res/flags/VA.png differ
diff --git a/res/flags/VC.png b/res/flags/VC.png
index 4a8dfa41..da991a93 100644
Binary files a/res/flags/VC.png and b/res/flags/VC.png differ
diff --git a/res/flags/VE.png b/res/flags/VE.png
index 3632def0..e75e17c9 100644
Binary files a/res/flags/VE.png and b/res/flags/VE.png differ
diff --git a/res/flags/VG.png b/res/flags/VG.png
index 15a5e5fa..46f93cad 100644
Binary files a/res/flags/VG.png and b/res/flags/VG.png differ
diff --git a/res/flags/VI.png b/res/flags/VI.png
index 986a53d2..8c849a73 100644
Binary files a/res/flags/VI.png and b/res/flags/VI.png differ
diff --git a/res/flags/VN.png b/res/flags/VN.png
index f19db790..6ea2122f 100644
Binary files a/res/flags/VN.png and b/res/flags/VN.png differ
diff --git a/res/flags/VU.png b/res/flags/VU.png
index a322030a..bad3ba4d 100644
Binary files a/res/flags/VU.png and b/res/flags/VU.png differ
diff --git a/res/flags/WF.png b/res/flags/WF.png
index 5f6e2bed..d94359dc 100644
Binary files a/res/flags/WF.png and b/res/flags/WF.png differ
diff --git a/res/flags/WS.png b/res/flags/WS.png
index de43a373..f8b80e5b 100644
Binary files a/res/flags/WS.png and b/res/flags/WS.png differ
diff --git a/res/flags/YE.png b/res/flags/YE.png
index b132bc13..8b9bbd89 100644
Binary files a/res/flags/YE.png and b/res/flags/YE.png differ
diff --git a/res/flags/YT.png b/res/flags/YT.png
index 5c450dfb..32887936 100644
Binary files a/res/flags/YT.png and b/res/flags/YT.png differ
diff --git a/res/flags/ZA.png b/res/flags/ZA.png
index adec062d..7f0a52d3 100644
Binary files a/res/flags/ZA.png and b/res/flags/ZA.png differ
diff --git a/res/flags/ZM.png b/res/flags/ZM.png
index 56287f58..87adc3af 100644
Binary files a/res/flags/ZM.png and b/res/flags/ZM.png differ
diff --git a/res/flags/ZW.png b/res/flags/ZW.png
index e58dff38..742c9f7e 100644
Binary files a/res/flags/ZW.png and b/res/flags/ZW.png differ
diff --git a/res/home.html b/res/home.html
new file mode 100644
index 00000000..3ba2e964
--- /dev/null
+++ b/res/home.html
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
_t("Welcome to Riot.im")
+
_t("Decentralised, encrypted chat & collaboration powered by [matrix]")
+
+
+
+
+
+
_t("Search the room directory")
+
+
+
+
+ _t("Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!")
+
+
+
+
+
+
_t("Chat with Riot Bot")
+
+
+
+
+ _t("Get started with some tips from Riot Bot!")
+
+
- ;
+ ;
}
if (!this.props.collapsed) {
diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js
index 257fdbd5..64a53d33 100644
--- a/src/components/structures/RoomDirectory.js
+++ b/src/components/structures/RoomDirectory.js
@@ -353,11 +353,7 @@ module.exports = React.createClass({
// to the directory.
if (MatrixClientPeg.get().isGuest()) {
if (!room.world_readable && !room.guest_can_join) {
- var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
- Modal.createDialog(NeedToRegisterDialog, {
- title: _t('Failed to join the room'),
- description: _t('This room is inaccessible to guests. You may be able to join if you register.')
- });
+ dis.dispatch({action: 'view_set_mxid'});
return;
}
}
diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js
index b368948c..2740c6a4 100644
--- a/src/components/structures/RoomSubList.js
+++ b/src/components/structures/RoomSubList.js
@@ -1,4 +1,5 @@
/*
+Copyright 2017 Vector Creations Ltd
Copyright 2015, 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
@@ -84,6 +85,8 @@ var RoomSubList = React.createClass({
incomingCall: React.PropTypes.object,
onShowMoreRooms: React.PropTypes.func,
searchFilter: React.PropTypes.string,
+ emptyContent: React.PropTypes.node, // content shown if the list is empty
+ headerItems: React.PropTypes.node, // content shown in the sublist header
},
getInitialState: function() {
@@ -522,16 +525,15 @@ var RoomSubList = React.createClass({
render: function() {
var connectDropTarget = this.props.connectDropTarget;
- var RoomDropTarget = sdk.getComponent('rooms.RoomDropTarget');
var TruncatedList = sdk.getComponent('elements.TruncatedList');
var label = this.props.collapsed ? null : this.props.label;
- //console.log("render: " + JSON.stringify(this.state.sortedList));
-
- var target;
- if (this.state.sortedList.length == 0 && this.props.editable) {
- target = ;
+ let content;
+ if (this.state.sortedList.length == 0) {
+ content = this.props.emptyContent;
+ } else {
+ content = this.makeRoomTiles();
}
if (this.state.sortedList.length > 0 || this.props.editable) {
@@ -541,8 +543,7 @@ var RoomSubList = React.createClass({
if (!this.state.hidden) {
subList =
- { target }
- { this.makeRoomTiles() }
+ { content }
;
}
else {
diff --git a/src/components/views/dialogs/SetPasswordDialog.js b/src/components/views/dialogs/SetPasswordDialog.js
new file mode 100644
index 00000000..76c3bb22
--- /dev/null
+++ b/src/components/views/dialogs/SetPasswordDialog.js
@@ -0,0 +1,118 @@
+/*
+Copyright 2017 Vector Creations Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import React from 'react';
+import sdk from 'matrix-react-sdk';
+import { _t } from 'matrix-react-sdk/lib/languageHandler';
+
+
+/**
+ * Prompt the user to set a password
+ *
+ * On success, `onFinished()` when finished
+ */
+export default React.createClass({
+ displayName: 'SetPasswordDialog',
+ propTypes: {
+ onFinished: React.PropTypes.func.isRequired,
+ },
+
+ getInitialState: function() {
+ return {
+ error: null,
+ success: false,
+ };
+ },
+
+ _onPasswordChanged: function() {
+ this.setState({
+ success: true,
+ });
+ },
+
+ _onContinueClicked: function() {
+ this.props.onFinished(true);
+ },
+
+ _onPasswordChangeError: function(err) {
+ let errMsg = err.error || "";
+ if (err.httpStatus === 403) {
+ errMsg = _t('Failed to change password. Is your password correct?');
+ } else if (err.httpStatus) {
+ errMsg += _t(
+ ' (HTTP status %(httpStatus))',
+ { httpStatus: err.httpStatus },
+ );
+ }
+ this.setState({
+ error: errMsg,
+ });
+ },
+
+ render: function() {
+ const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
+ const ChangePassword = sdk.getComponent('views.settings.ChangePassword');
+
+ if (this.state.success) {
+ return (
+
+
+
+ { _t('You can now return to your account after signing out, and sign in on other devices.') }
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ { _t('This will allow you to return to your account after signing out, and sign in on other devices.') }
+
+
+
+ { this.state.error }
+
+
+
+ );
+ },
+});
diff --git a/src/components/views/globals/GuestWarningBar.js b/src/components/views/globals/GuestWarningBar.js
deleted file mode 100644
index 6cf11fed..00000000
--- a/src/components/views/globals/GuestWarningBar.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-Copyright 2016 OpenMarket Ltd
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-var React = require('react');
-var dis = require('matrix-react-sdk/lib/dispatcher');
-import { _tJsx } from 'matrix-react-sdk/lib/languageHandler';
-
-module.exports = React.createClass({
- displayName: 'GuestWarningBar',
-
- onRegisterClicked: function() {
- dis.dispatch({'action': 'start_upgrade_registration'});
- },
-
- onLoginClicked: function() {
- dis.dispatch({'action': 'logout'});
- dis.dispatch({'action': 'start_login'});
- },
-
- render: function() {
- return (
-
- );
- }
-});
-
diff --git a/src/components/views/globals/PasswordNagBar.js b/src/components/views/globals/PasswordNagBar.js
new file mode 100644
index 00000000..37d011a6
--- /dev/null
+++ b/src/components/views/globals/PasswordNagBar.js
@@ -0,0 +1,60 @@
+/*
+Copyright 2017 Vector Creations Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+'use strict';
+
+import React from 'react';
+import sdk from 'matrix-react-sdk';
+import Modal from 'matrix-react-sdk/lib/Modal';
+import dis from 'matrix-react-sdk/lib/dispatcher';
+
+export default React.createClass({
+ onUpdateClicked: function() {
+ const SetPasswordDialog = sdk.getComponent('dialogs.SetPasswordDialog');
+ Modal.createDialog(SetPasswordDialog, {
+ onFinished: (passwordChanged) => {
+ if (!passwordChanged) {
+ return;
+ }
+ // Notify SessionStore that the user's password was changed
+ dis.dispatch({
+ action: 'password_changed',
+ });
+ }
+ });
+ },
+
+ render: function() {
+ const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
+ const toolbarClasses = "mx_MatrixToolbar mx_MatrixToolbar_clickable";
+ return (
+
+
+
+ To return to your account in future you need to set a password
+
+
+
+ );
+ }
+});
diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js
index 586ca94c..3102b559 100644
--- a/src/components/views/messages/MessageTimestamp.js
+++ b/src/components/views/messages/MessageTimestamp.js
@@ -16,8 +16,8 @@ limitations under the License.
'use strict';
-const React = require('react');
-const DateUtils = require('matrix-react-sdk/lib/DateUtils');
+import React from 'react';
+import DateUtils from 'matrix-react-sdk/lib/DateUtils';
module.exports = React.createClass({
displayName: 'MessageTimestamp',
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 48e139c8..b9578e82 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -6,9 +6,9 @@
"Notifications": "Benachrichtigungen",
"Invite to this room": "In diesen Raum einladen",
"Filter room names": "Raum-Namen filtern",
- "Start chat": "Neuen Chat starten",
+ "Start chat": "Starte Chat",
"Room directory": "Raum-Verzeichnis",
- "Create new room": "Neuen Raum erstellen",
+ "Create new room": "Erstelle neuen Raum",
"Settings": "Einstellungen",
"powered by Matrix": "betrieben mit Matrix",
"Custom Server Options": "Erweiterte Server-Optionen",
@@ -17,7 +17,7 @@
"The Home Server may be too old to support third party networks": "Der Home-Server ist eventuell zu alt, um Drittanbieter-Netzwerke zu unterstützen",
"Directory": "Raum-Verzeichnis",
"#example:": "#beispiel:",
- "Search for a room": "Suche einen Raum",
+ "Search for a room": "Nach einem Raum suchen",
"No rooms to show": "Keine Räume zum anzeigen",
"World readable": "Alle können mitlesen",
"Guests can join": "Gäste können beitreten",
@@ -37,7 +37,7 @@
"Enable desktop notifications": "Desktop-Benachrichtigungen aktivieren",
"Enable email notifications": "E-Mail-Benachrichtigungen aktivieren",
"Enable notifications for this account": "Benachrichtigungen für dieses Konto aktivieren",
- "Enter keywords separated by a comma:": "Schlagworte kommagetrennt eingeben:",
+ "Enter keywords separated by a comma:": "Schlüsselwörter kommagetrennt eingeben:",
"Error": "Fehler",
"Error saving email notification preferences": "Fehler beim Speichern der E-Mail-Benachrichtigungseinstellungen",
"#example": "#Beispiel",
@@ -59,7 +59,7 @@
"Low Priority": "Niedrige Priorität",
"Noisy": "Laut",
"Notification targets": "Benachrichtigungsziele",
- "Notifications on the following keywords follow rules which can’t be displayed here:": "Benachrichtigungen zu folgenden Stichwörtern folgen Regeln, die hier nicht angezeigt werden können:",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "Die Benachrichtigungen zu den folgenden Schlüsselwörtern folgen Regeln, die hier nicht angezeigt werden können:",
"Notify for all other messages/rooms": "Benachrichtigungen für alle anderen Mitteilungen/Räume aktivieren",
"Operation failed": "Aktion fehlgeschlagen",
"Reject": "ablehnen",
@@ -120,18 +120,18 @@
"Advanced notification settings": "Erweiterte Benachrichtigungs-Einstellungen",
"Call invitation": "Anruf-Einladung",
"Messages containing my display name": "Nachrichten, die meinen Anzeigenamen enthalten",
- "Messages containing my user name": "Nachrichten, die meinen Nutzernamen enthalten",
+ "Messages containing my user name": "Nachrichten, die meinen Benutzernamen enthalten",
"Messages in group chats": "Nachrichten in Gruppen-Chats",
- "Messages in one-to-one chats": "Nachrichten in Eins-zu-Eins-Chats",
+ "Messages in one-to-one chats": "Nachrichten in Einzel-Chats",
"Messages sent by bot": "Nachrichten von Bots",
"more": "mehr",
"When I'm invited to a room": "Wenn ich in einen Raum eingeladen werde",
"customServer_text": "Du kannst die erweiterten Server-Optionen nutzen, um dich auf anderen Matrix-Servern anzumelden, indem du eine andere Heimserver-URL eingibst. Dies ermöglicht es dir, Riot mit einem bereits existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.
Du kannst auch einen benutzerdefinierten Identitäts-Server eingeben, allerdings wirst du dann nicht in der Lage sein, andere Benutzer per E-Mail-Adresse einzuladen oder selbst Einladungen per E-Mail-Adresse zu erhalten.",
"Safari and Opera work too.": "Safari und Opera funktionieren ebenfalls.",
"I understand the risks and wish to continue": "Ich verstehe das Risiko und möchte fortfahren",
- "Messages containing keywords": "Nachrichten, die definierte Schlagworte enthalten",
+ "Messages containing keywords": "Nachrichten, die definierte Schlüsselwörter enthalten",
"Please install Chrome or Firefox for the best experience.": "Bitte installiere Chrome oder Firefox für die beste Erfahrung.",
- "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot nutzt manche erweiterten Browser-Funktionen - manche sind deinem aktuellen Browser nicht verfügbar oder im experimentellen Status.",
+ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot nutzt zahlreiche fortgeschrittene Browser-Funktionen, die teilweise in deinem aktuell verwendeten Browser noch nicht verfügbar sind oder sich noch im experimentellen Status befinden.",
"Sorry, your browser is not able to run Riot.": "Es tut uns leid, aber dein Browser kann Riot nicht ausführen.",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "In deinem aktuellen Browser kann das Aussehen und Gefühl der Anwendung komplett inkorrekt sein und einige oder alle Funktionen funktionieren evtl. nicht. Du kannst es trotzdem versuchen und fortfahren, aber du bist alleine mit allen Problemen auf die du stößt!",
"Expand panel": "Panel ausklappen",
@@ -154,8 +154,8 @@
"Report a bug": "Einen Fehler melden",
"Riot Desktop on %(platformName)s": "Riot Desktop auf %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot wird im mobilen Web nicht unterstützt. App installieren?",
- "Search": "Suche",
- "Search…": "Suche…",
+ "Search": "Suchen",
+ "Search…": "Suchen…",
"Send": "Sende",
"Send logs": "Sende Protokolle",
"This Room": "Dieser Raum",
@@ -168,5 +168,40 @@
"Waiting for response from server": "Warte auf eine Antwort vom Server",
"You are Rioting as a guest. Register or sign in to access more rooms and features!": "Du verwendest Riot als Gast. Registriere oder melde dich an um Zugang zu mehr Räumen und Funktionen zu bekommen!",
"You need to be using HTTPS to place a screen-sharing call.": "Du musst HTTPS nutzen um einen Anruf mit Bildschirmfreigabe durchzuführen.",
- "OK": "OK"
+ "OK": "OK",
+ "Login": "Anmeldung",
+ "Welcome to Riot.im": "Willkommen bei Riot.im",
+ "Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von [matrix]",
+ "Search the room directory": "Durchsuche Raum-Verzeichnis",
+ "Chat with Riot Bot": "Chatte mit dem Riot-Bot",
+ "Get started with some tips from Riot Bot!": "Beginne mit einigen Tipps vom Riot-Bot!",
+ "General discussion about Matrix": "Allgemeine Diskussion über Matrix",
+ "Discussion of all things Matrix!": "\"Diskussion über alle Dinge\"-Matrix!",
+ "Riot/Web & Desktop chat": "Riot-Web & Desktop-Chat",
+ "Riot/iOS & matrix-ios-sdk chat": "Riot-iOS & \"matrix-ios-sdk\"-Chat",
+ "Riot/Android & matrix-android-sdk chat": "Riot-Android & matrix-android-sdk-Chat",
+ "Matrix technical discussions": "Technische Diskussion über Matrix",
+ "Running Matrix services": "Matrix-Dienste betreiben",
+ "Community-run support for Synapse": "Synapse-Support von der Community",
+ "Admin support for Dendrite": "Admin-Unterstützung für Dendrite",
+ "Announcements about Synapse releases": "Ankündigungen über Synapse-Versionen",
+ "Support for those using and running matrix-appservice-irc": "Unterstützung für die, die \"matrix-appservice-irc\" betreiben und nutzen",
+ "Building services on Matrix": "Dienste bauen für Matrix",
+ "Support for those using the Matrix spec": "Unterstützung für die Nutzer der Matrix-Spezification",
+ "Design and implementation of E2E in Matrix": "Design und Implementierung von Ende-zu-Ende-Verschlüsselung in Matrix",
+ "Implementing VR services with Matrix": "Implementierung von VR-Diensten mit Matrix",
+ "Implementing VoIP services with Matrix": "Implementierung von VoIP-Diensten mit Matrix",
+ "Discussion of the Identity Service API": "Diskussion der Identitätsdienst-API",
+ "Support for those using, running and writing other bridges": "Unterstützung für die, die andere Brücken nutzen, betreiben oder schreiben",
+ "Contributing code to Matrix and Riot": "Code zu Matrix und Riot beitragen",
+ "Dev chat for the Riot/Web dev team": "Entwickler-Chat für das Riot-Web-Entwickler-Team",
+ "Co-ordination for Riot/Web translators": "Koordination für Riot-Web-Übersetzer",
+ "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Im Matrix-Netzwerk gibt es bereits jetzt zahlreiche Räume, die entweder mit bekannten Netzwerken wie Slack, IRC, Gitter, usw. verknüpft sind oder auch komplett eigenständig betrieben werden. Einen genauen Überblick erhältst du im Raum-Verzeichnis!",
+ "Failed to change password. Is your password correct?": "Passwortänderung fehlgeschlagen. Ist dein Passwort richtig?",
+ "You have successfully set a password!": "Du hast erfolgreich ein Passwort gesetzt!",
+ "You can now return to your account after signing out, and sign in on other devices.": "Du kannst nun zu deinem Konto zurückkehren nach dem du dich an anderen Geräten ab- und angemeldet hast.",
+ "Continue": "Fortfahren",
+ "Please set a password!": "Bitte ein Passwort einrichten!",
+ "This will allow you to return to your account after signing out, and sign in on other devices.": "Dies erlaubt dir, dich wieder an deinem Konto anzumelden, nachdem du dich abgemeldet hast.",
+ "Dev chat for the Dendrite dev team": "Entwickler-Chat for das Dendrite-Entwickler-Team"
}
diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json
new file mode 100644
index 00000000..ef098434
--- /dev/null
+++ b/src/i18n/strings/el.json
@@ -0,0 +1,159 @@
+{
+ "A new version of Riot is available.": "Μία νέα έκδοση του Riot είναι διαθέσιμη.",
+ "Advanced notification settings": "Προχωρημένες ρυθμίσεις ειδοποιήσεων",
+ "All messages": "Όλα τα μηνύματα",
+ "All Rooms": "Όλα τα δωμάτια",
+ "All notifications are currently disabled for all targets.": "Όλες οι ειδοποιήσεις είναι προς το παρόν απενεργοποιημένες για όλες τις συσκευές.",
+ "An error occurred whilst saving your email notification preferences.": "Ένα σφάλμα προέκυψε κατά την αποθήκευση των ρυθμίσεων σας.",
+ "Call invitation": "Πρόσκληση σε κλήση",
+ "Cancel": "Ακύρωση",
+ "Cancel Sending": "Ακύρωση Αποστολής",
+ "Can't update user notification settings": "Δεν είναι δυνατή η ενημέρωση των ρυθμίσεων ειδοποίησης χρήστη",
+ "Changelog": "Αλλαγές",
+ "Close": "Κλείσιμο",
+ "Collapse panel": "Ελαχιστοποίηση καρτέλας",
+ "Create new room": "Δημιούργησε ένα νέο δωμάτιο",
+ "Custom Server Options": "Προσαρμοσμένες ρυθμίσεις διακομιστή",
+ "Describe your problem here.": "Περιέγραψε το πρόβλημα σου εδώ.",
+ "Direct Chat": "Απευθείας Συνομιλία",
+ "Directory": "Ευρετήριο",
+ "Download this file": "Κατέβασε το αρχείο",
+ "Enable audible notifications in web client": "Ενεργοποίηση των ηχητικών ειδοποιήσεων",
+ "Enable email notifications": "Ενεργοποίηση ειδοποιήσεων μέσω email",
+ "Enable notifications for this account": "Ενεργοποίηση ειδοποιήσεων γι' αυτό το λογαριασμό",
+ "Enter keywords separated by a comma:": "Πρόσθεσε λέξεις κλειδιά χωρισμένες με κόμμα:",
+ "Error": "Σφάλμα",
+ "#example": "#παράδειγμα",
+ "Expand panel": "Μεγιστοποίηση καρτέλας",
+ "Safari and Opera work too.": "Safari και Opera λειτουργούν επίσης.",
+ "Add an email address above to configure email notifications": "Πρόσθεσε μια διεύθυνση email στο παραπάνω πεδίο, για να έχεις τη δυνατότητα να λαμβάνεις ειδοποιήσεις",
+ "Collecting app version information": "Συγκέντρωση πληροφοριών σχετικά με την έκδοση της εφαρμογής",
+ "customServer_text": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις για να εισέλθετε σε άλλους διακομιστές Matrix επιλέγοντας ένα διαφορετικό URL για το διακομιστή. Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή Riot με έναν υπάρχοντα λογαριασμό σε διαφορετικό διακομιστή.
Επίσης μπορείτε να επιλέξετε ένα διαφορετικό διακομιστή ταυτότητας αλλά δεν θα έχετε τη δυνατότητα να προσκαλέσετε άλλους χρήστες ή να σας προσκαλέσουν, μέσω email.",
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s μέσω %(browserName)s σε %(osName)s",
+ "All messages (loud)": "Όλα τα μηνύματα (δυνατά)",
+ "delete the alias.": "διέγραψε το ψευδώνυμο.",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Διαγραφή του ψευδώνυμου %(alias)s και αφαίρεση του %(name)s από το ευρετήριο;",
+ "Dismiss": "Αγνόησε",
+ "Failed to add tag %(tagName)s to room": "Δεν ήταν δυνατή η εισαγωγή του tag %(tagName)s στο δωμάτιο",
+ "Failed to change settings": "Δεν ήταν δυνατή η αλλαγή των ρυθμίσεων",
+ "Failed to join the room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο",
+ "Favourite": "Αγαπημένο",
+ "Files": "Αρχεία",
+ "Filter room names": "Φίλτραρε τα δωμάτια",
+ "Forward Message": "Προώθηση",
+ " from room": " από το δωμάτιο",
+ "Guests can join": "Επισκέπτες μπορούν να συνδεθούν",
+ "Guest users can't invite users. Please register to invite.": "Οι επισκέπτες δεν έχουν τη δυνατότητα να προσκαλέσουν άλλους χρήστες. Παρακαλώ εγγραφείτε πρώτα.",
+ "Hide panel": "Κρύψε τη καρτέλα",
+ "I understand the risks and wish to continue": "Κατανοώ του κινδύνους και επιθυμώ να συνεχίσω",
+ "Invite to this room": "Προσκάλεσε",
+ "Keywords": "Λέξεις κλειδιά",
+ "Leave": "Αποχώρησε",
+ "Low Priority": "Χαμηλής Προτεραιότητας",
+ "Members": "Μέλη",
+ "Messages containing keywords": "Μηνύματα που περιέχουν λέξεις κλειδιά",
+ "Messages containing my user name": "Μηνύματα που περιέχουν το ψευδώνυμο μου",
+ "Messages in group chats": "Μηνύματα σε ομαδικές συνομιλίες",
+ "Messages in one-to-one chats": "Μηνύματα σε 1-προς-1 συνομιλίες",
+ "Messages sent by bot": "Μηνύματα από bots",
+ "more": "περισσότερα",
+ "Mute": "Σίγαση",
+ "No rooms to show": "Δεν υπάρχουν δωμάτια για εμφάνιση",
+ "Noisy": "Δυνατά",
+ "Notifications": "Ειδοποιήσεις",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "Οι ειδοποιήσεις για τις επόμενες λέξεις κλειδία ακολουθούν κανόνες που δεν είναι δυνατόν να εμφανιστούν εδώ:",
+ "Notify for all other messages/rooms": "Στείλε ειδοποιήσεις για όλα τα υπόλοιπα μηνύματα/δωμάτια",
+ "Notify me for anything else": "Ειδοποίησέ με για οτιδήποτε άλλο",
+ "Operation failed": "Η λειτουργία απέτυχε",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Παρακαλώ περιγράψτε το σφάλμα. Τι κάνατε; Τι περιμένατε να συμβεί; Τι έγινε τελικά;",
+ "Please Register": "Παρακαλώ εγγραφείτε",
+ "Redact": "Ανακάλεσε",
+ "Reject": "Απέρριψε",
+ "Remove": "Αφαίρεσε",
+ "Remove from Directory": "Αφαίρεση από το Ευρετήριο",
+ "Resend": "Ξαναστείλε",
+ "Riot Desktop on %(platformName)s": "Riot Desktop σε %(platformName)s",
+ "Room directory": "Ευρετήριο",
+ "Room not found": "Το δωμάτιο δεν βρέθηκε",
+ "Search": "Αναζήτηση",
+ "Search…": "Αναζήτηση…",
+ "Send": "Στείλε",
+ "Settings": "Ρυθμίσεις",
+ "Start chat": "Άρχισε μια συνομιλία",
+ "This Room": "Στο δωμάτιο",
+ "Unavailable": "Μη διαθέσιμο",
+ "Unknown device": "Άγνωστη συσκευή",
+ "Update": "Ενημέρωση",
+ "Enable desktop notifications": "Ενεργοποίηση ειδοποιήσεων στην επιφάνεια εργασίας",
+ "Error saving email notification preferences": "Σφάλμα κατά την αποθήκευση των προτιμήσεων",
+ "Failed to send report: ": "Η αποστολή της αναφοράς απέτυχε: ",
+ "Loading bug report module": "Φόρτωση μονάδας αναφοράς σφαλμάτων",
+ "Mentions only": "Αναφορές μόνο",
+ "Messages containing my display name": "Μηνύματα που περιέχουν το όνομα μου",
+ "Off": "Ανενεργό",
+ "On": "Ενεργό",
+ "Permalink": "Μόνιμος σύνδεσμος",
+ "Please install Chrome or Firefox for the best experience.": "Παρακαλώ εγκαταστήστε έναν από τους φυλλομετρητές Chrome ή Firefox για την καλύτερη δυνατή εμπειρία.",
+ "Report a bug": "Ανεφέρε κάποιο πρόβλημα",
+ "Riot does not know how to join a room on this network": "To Riot δεν γνωρίζει πως να συνδεθεί σε δωμάτια που ανήκουν σ' αυτό το δίκτυο",
+ "Search for a room": "Αναζήτησε κάποιο δωμάτιο",
+ "Sorry, your browser is not able to run Riot.": "Λυπούμαστε, αλλά ο φυλλομετρητής σας δεν υποστηρίζεται από το Riot.",
+ "There are advanced notifications which are not shown here": "Υπάρχουν προχωρημένες ειδοποιήσεις οι οποίες δεν εμφανίζονται εδώ",
+ "This room is inaccessible to guests. You may be able to join if you register.": "Το δωμάτιο δεν είναι προσβάσιμο σε επισκέπτες. Πιθανόν να μπορέσετε να συνδεθείτε εάν εγγραφείτε.",
+ "Unable to join network": "Δεν είναι δυνατή η σύνδεση στο δίκτυο",
+ "unknown error code": "άγνωστος κωδικός σφάλματος",
+ "Unnamed room": "Δωμάτιο χωρίς όνομα",
+ "Uploaded on %(date)s by %(user)s": "Ανέβηκε την %(date)s από %(user)s",
+ "Uploading report": "Ανέβασμα αναφοράς",
+ "What's New": "Τι νέο υπάρχει",
+ "What's new?": "Τι νέο υπάρχει;",
+ "When I'm invited to a room": "Όταν με προσκαλούν σ' ένα δωμάτιο",
+ "World readable": "Εμφανές σε όλους",
+ "You cannot delete this image. (%(code)s)": "Δεν μπορείτε να διαγράψετε αυτή την εικόνα. (%(code)s)",
+ "You cannot delete this message. (%(code)s)": "Δεν μπορείτε να διαγράψετε αυτό το μήνυμα. (%(code)s)",
+ "You are not receiving desktop notifications": "Δεν λαμβάνετε ειδοποιήσεις στην επιφάνεια εργασίας",
+ "Sunday": "Κυριακή",
+ "Monday": "Δευτέρα",
+ "Tuesday": "Τρίτη",
+ "Wednesday": "Τετάρτη",
+ "Thursday": "Πέμπτη",
+ "Friday": "Παρασκευή",
+ "Saturday": "Σάββατο",
+ "Today": "Σήμερα",
+ "Yesterday": "Χθές",
+ "OK": "ΟΚ",
+ "You need to be using HTTPS to place a screen-sharing call.": "Απαιτείται η χρήση HTTPS για το διαμοιρασμό της επιφάνειας εργασίας μέσω κλήσης.",
+ "Welcome page": "Αρχική σελίδα",
+ "Forget": "Διαγραφή",
+ "Riot is not supported on mobile web. Install the app?": "Το Riot δεν υποστηρίζεται από φυλλομετρητές κινητών. Θέλετε να εγκαταστήσετε την εφαρμογή;",
+ "Unhide Preview": "Προεπισκόπηση",
+ "Waiting for response from server": "Αναμονή απάντησης από τον διακομιστή",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Χρησιμοποιείς το Riot ως επισκέπτης. Κάνε εγγραφή ή συνδέσου για να αποκτήσεις πρόσβαση σε περισσότερα δωμάτια και επιλογές!",
+ "Collecting logs": "Συγκέντρωση πληροφοριών",
+ "Enable them now": "Ενεργοποίηση",
+ "Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου",
+ "Failed to update keywords": "Οι λέξεις κλειδιά δεν ενημερώθηκαν",
+ "Failed to get protocol list from Home Server": "Δεν ήταν δυνατή η εύρεση των διαθέσιμων πρωτοκόλλων από το διακομιστή",
+ "Failed to remove tag %(tagName)s from room": "Δεν ήταν δυνατή η διαγραφή του tag %(tagName)s από το δωμάτιο",
+ "Notification targets": "Στόχοι ειδοποιήσεων",
+ "Please describe the bug and/or send logs.": "Παρακαλώ περιγράψτε το πρόβλημα και/ή στείλτε πληροφορίες σχετικά με την εφαρμογή.",
+ "Remove %(name)s from the directory?": "Αφαίρεση του %(name)s από το ευρετήριο;",
+ "remove %(name)s from the directory.": "αφαίρεση του %(name)s από το ευρετήριο.",
+ "Send logs": "Στείλε πληροφορίες",
+ "Source URL": "Πηγαίο URL",
+ "The server may be unavailable or overloaded": "Ο διακομιστής είναι μη διαθέσιμος ή υπερφορτωμένος",
+ " to room": " στο δωμάτιο",
+ "Unable to fetch notification target list": "Δεν ήταν δυνατή η εύρεση στόχων για τις ειδοποιήσεις",
+ "Unable to look up room ID from server": "Δεν είναι δυνατή η εύρεση του ID για το δωμάτιο",
+ "View Decrypted Source": "Δες τον αποκρυπτογραφημένο κώδικα",
+ "View Source": "Δες τον κώδικα",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Ισως έχεις κάνει τις ρυθμίσεις σε άλλη εφαρμογή εκτός του Riot. Δεν μπορείς να τις αλλάξεις μέσω του Riot αλλά ισχύουν κανονικά",
+ "Couldn't find a matching Matrix room": "Δεν βρέθηκε κάποιο δωμάτιο",
+ "Drop here %(toAction)s": "Σύρε εδώ %(toAction)s",
+ "Failed to": "Αποτυχία να",
+ "Failed to get public room list": "Δεν ήταν δυνατή η λήψη της λίστας με τα δημόσια δωμάτια",
+ "Failed to set direct chat tag": "Δεν ήταν δυνατός ο χαρακτηρισμός της συνομιλίας ως 1-προς-1",
+ "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix",
+ "Quote": "Αναφορά",
+ "Fetching third party location failed": "Η λήψη τοποθεσίας απέτυχε"
+}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index e148248c..c6f461e0 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -67,6 +67,7 @@
"Invite to this room": "Invite to this room",
"Keywords": "Keywords",
"Leave": "Leave",
+ "Login": "Login",
"Loading bug report module": "Loading bug report module",
"Low Priority": "Low Priority",
"Members": "Members",
@@ -160,5 +161,39 @@
"OK": "OK",
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
"Welcome page": "Welcome page",
- "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!"
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!",
+ "Welcome to Riot.im": "Welcome to Riot.im",
+ "Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralised, encrypted chat & collaboration powered by [matrix]",
+ "Search the room directory": "Search the room directory",
+ "Chat with Riot Bot": "Chat with Riot Bot",
+ "Get started with some tips from Riot Bot!": "Get started with some tips from Riot Bot!",
+ "General discussion about Matrix and Riot": "General discussion about Matrix and Riot",
+ "Discussion of all things Matrix!": "Discussion of all things Matrix!",
+ "Riot/Web & Desktop chat": "Riot/Web & Desktop chat",
+ "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk chat",
+ "Riot/Android & matrix-android-sdk chat": "Riot/Android & matrix-android-sdk chat",
+ "Matrix technical discussions": "Matrix technical discussions",
+ "Running Matrix services": "Running Matrix services",
+ "Community-run support for Synapse": "Community-run support for Synapse",
+ "Admin support for Dendrite": "Admin support for Dendrite",
+ "Announcements about Synapse releases": "Announcements about Synapse releases",
+ "Support for those using and running matrix-appservice-irc": "Support for those using and running matrix-appservice-irc",
+ "Building services on Matrix": "Building services on Matrix",
+ "Support for those using the Matrix spec": "Support for those using the Matrix spec",
+ "Design and implementation of E2E in Matrix": "Design and implementation of E2E in Matrix",
+ "Implementing VR services with Matrix": "Implementing VR services with Matrix",
+ "Implementing VoIP services with Matrix": "Implementing VoIP services with Matrix",
+ "Discussion of the Identity Service API": "Discussion of the Identity Service API",
+ "Support for those using, running and writing other bridges": "Support for those using, running and writing other bridges",
+ "Contributing code to Matrix and Riot": "Contributing code to Matrix and Riot",
+ "Dev chat for the Riot/Web dev team": "Dev chat for the Riot/Web dev team",
+ "Dev chat for the Dendrite dev team": "Dev chat for the Dendrite dev team",
+ "Co-ordination for Riot/Web translators": "Co-ordination for Riot/Web translators",
+ "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!",
+ "Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
+ "You have successfully set a password!": "You have successfully set a password!",
+ "You can now return to your account after signing out, and sign in on other devices.": "You can now return to your account after signing out, and sign in on other devices.",
+ "Continue": "Continue",
+ "Please set a password!": "Please set a password!",
+ "This will allow you to return to your account after signing out, and sign in on other devices.": "This will allow you to return to your account after signing out, and sign in on other devices."
}
diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json
new file mode 100644
index 00000000..a75bc7f5
--- /dev/null
+++ b/src/i18n/strings/en_US.json
@@ -0,0 +1,164 @@
+{
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
+ "Safari and Opera work too.": "Safari and Opera work too.",
+ "A new version of Riot is available.": "A new version of Riot is available.",
+ "Add an email address above to configure email notifications": "Add an email address above to configure email notifications",
+ "Advanced notification settings": "Advanced notification settings",
+ "All messages": "All messages",
+ "All messages (loud)": "All messages (loud)",
+ "All Rooms": "All Rooms",
+ "All notifications are currently disabled for all targets.": "All notifications are currently disabled for all targets.",
+ "An error occurred whilst saving your email notification preferences.": "An error occurred while saving your email notification preferences.",
+ "Call invitation": "Call invitation",
+ "Cancel": "Cancel",
+ "Cancel Sending": "Cancel Sending",
+ "Can't update user notification settings": "Can't update user notification settings",
+ "Changelog": "Changelog",
+ "Close": "Close",
+ "Collapse panel": "Collapse panel",
+ "Collecting app version information": "Collecting app version information",
+ "Collecting logs": "Collecting logs",
+ "Create new room": "Create new room",
+ "Couldn't find a matching Matrix room": "Couldn't find a matching Matrix room",
+ "Custom Server Options": "Custom Server Options",
+ "customServer_text": "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.",
+ "delete the alias.": "delete the alias.",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?",
+ "Describe your problem here.": "Describe your problem here.",
+ "Direct Chat": "Direct Chat",
+ "Directory": "Directory",
+ "Dismiss": "Dismiss",
+ "Download this file": "Download this file",
+ "Drop here %(toAction)s": "Drop here %(toAction)s",
+ "Enable audible notifications in web client": "Enable audible notifications in web client",
+ "Enable desktop notifications": "Enable desktop notifications",
+ "Enable email notifications": "Enable email notifications",
+ "Enable notifications for this account": "Enable notifications for this account",
+ "Enable them now": "Enable them now",
+ "Enter keywords separated by a comma:": "Enter keywords separated by a comma:",
+ "Error": "Error",
+ "Error saving email notification preferences": "Error saving email notification preferences",
+ "#example": "#example",
+ "Expand panel": "Expand panel",
+ "Failed to": "Failed to",
+ "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room",
+ "Failed to change settings": "Failed to change settings",
+ "Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
+ "Failed to update keywords": "Failed to update keywords",
+ "Failed to get protocol list from Home Server": "Failed to get protocol list from Home Server",
+ "Failed to get public room list": "Failed to get public room list",
+ "Failed to join the room": "Failed to join the room",
+ "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room",
+ "Failed to send report: ": "Failed to send report: ",
+ "Failed to set direct chat tag": "Failed to set direct chat tag",
+ "Failed to set Direct Message status of room": "Failed to set Direct Message status of room",
+ "Favourite": "Favorite",
+ "Fetching third party location failed": "Fetching third party location failed",
+ "Files": "Files",
+ "Filter room names": "Filter room names",
+ "Forget": "Forget",
+ "Forward Message": "Forward Message",
+ " from room": " from room",
+ "Guests can join": "Guests can join",
+ "Guest users can't invite users. Please register to invite.": "Guest users can't invite users. Please register to invite.",
+ "Hide panel": "Hide panel",
+ "I understand the risks and wish to continue": "I understand the risks and wish to continue",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please uncheck:",
+ "Invite to this room": "Invite to this room",
+ "Keywords": "Keywords",
+ "Leave": "Leave",
+ "Loading bug report module": "Loading bug report module",
+ "Low Priority": "Low Priority",
+ "Members": "Members",
+ "Mentions only": "Mentions only",
+ "Messages containing my display name": "Messages containing my display name",
+ "Messages containing keywords": "Messages containing keywords",
+ "Messages containing my user name": "Messages containing my user name",
+ "Messages in group chats": "Messages in group chats",
+ "Messages in one-to-one chats": "Messages in one-to-one chats",
+ "Messages sent by bot": "Messages sent by bot",
+ "more": "more",
+ "Mute": "Mute",
+ "No rooms to show": "No rooms to show",
+ "Noisy": "Noisy",
+ "Notification targets": "Notification targets",
+ "Notifications": "Notifications",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "Notifications on the following keywords follow rules which can’t be displayed here:",
+ "Notify for all other messages/rooms": "Notify for all other messages/rooms",
+ "Notify me for anything else": "Notify me for anything else",
+ "Off": "Off",
+ "On": "On",
+ "Operation failed": "Operation failed",
+ "Permalink": "Permalink",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Please describe the bug. What did you do? What did you expect to happen? What actually happened?",
+ "Please describe the bug and/or send logs.": "Please describe the bug and/or send logs.",
+ "Please install Chrome or Firefox for the best experience.": "Please install Chrome or Firefox for the best experience.",
+ "Please Register": "Please Register",
+ "powered by Matrix": "powered by Matrix",
+ "Quote": "Quote",
+ "Redact": "Redact",
+ "Reject": "Reject",
+ "Remove %(name)s from the directory?": "Remove %(name)s from the directory?",
+ "Remove": "Remove",
+ "remove %(name)s from the directory.": "remove %(name)s from the directory.",
+ "Remove from Directory": "Remove from Directory",
+ "Report a bug": "Report a bug",
+ "Resend": "Resend",
+ "Riot Desktop on %(platformName)s": "Riot Desktop on %(platformName)s",
+ "Riot does not know how to join a room on this network": "Riot does not know how to join a room on this network",
+ "Riot is not supported on mobile web. Install the app?": "Riot is not supported on mobile web. Install the app?",
+ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.",
+ "Room directory": "Room directory",
+ "Room not found": "Room not found",
+ "Search": "Search",
+ "Search…": "Search…",
+ "Search for a room": "Search for a room",
+ "Send": "Send",
+ "Send logs": "Send logs",
+ "Settings": "Settings",
+ "Source URL": "Source URL",
+ "Sorry, your browser is not able to run Riot.": "Sorry, your browser is not able to run Riot.",
+ "Start chat": "Start chat",
+ "The Home Server may be too old to support third party networks": "The Home Server may be too old to support third party networks",
+ "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here",
+ "The server may be unavailable or overloaded": "The server may be unavailable or overloaded",
+ "This Room": "This Room",
+ "This room is inaccessible to guests. You may be able to join if you register.": "This room is inaccessible to guests. You may be able to join if you register.",
+ " to room": " to room",
+ "Unable to fetch notification target list": "Unable to fetch notification target list",
+ "Unable to join network": "Unable to join network",
+ "Unable to look up room ID from server": "Unable to look up room ID from server",
+ "Unavailable": "Unavailable",
+ "Unhide Preview": "Unhide Preview",
+ "Unknown device": "Unknown device",
+ "unknown error code": "unknown error code",
+ "Unnamed room": "Unnamed room",
+ "Update": "Update",
+ "Uploaded on %(date)s by %(user)s": "Uploaded on %(date)s by %(user)s",
+ "Uploading report": "Uploading report",
+ "View Decrypted Source": "View Decrypted Source",
+ "View Source": "View Source",
+ "What's New": "What's New",
+ "What's new?": "What's new?",
+ "Waiting for response from server": "Waiting for response from server",
+ "When I'm invited to a room": "When I'm invited to a room",
+ "World readable": "World readable",
+ "You cannot delete this image. (%(code)s)": "You cannot delete this image. (%(code)s)",
+ "You cannot delete this message. (%(code)s)": "You cannot delete this message. (%(code)s)",
+ "You are not receiving desktop notifications": "You are not receiving desktop notifications",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "You are Rioting as a guest. Register or sign in to access more rooms and features!",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply",
+ "Sunday": "Sunday",
+ "Monday": "Monday",
+ "Tuesday": "Tuesday",
+ "Wednesday": "Wednesday",
+ "Thursday": "Thursday",
+ "Friday": "Friday",
+ "Saturday": "Saturday",
+ "Today": "Today",
+ "Yesterday": "Yesterday",
+ "OK": "OK",
+ "You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
+ "Welcome page": "Welcome page",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!"
+}
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 31b1699b..9fd5dd54 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -16,7 +16,7 @@
"Direct Chat": "Conversación directa",
"Directory": "Directorio",
"Download this file": "Descargar este archivo",
- "Drop here %(toAction)s": "Suelta aquí para %(toAction)s",
+ "Drop here %(toAction)s": "Suelta aquí %(toAction)s",
"Enable audible notifications in web client": "Habilitar notificaciones audibles en el cliente web",
"Enable desktop notifications": "Habilitar notificaciones de escritorio",
"Enable email notifications": "Habilitar notificaciones por email",
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index 34e9904a..d5d33930 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -127,5 +127,38 @@
"Yesterday": "Tegnap",
"Welcome page": "Üdvözlő oldal",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "A jelenlegi bőngésződdel teljesen hibás lehet az alkalmazás kinézete és bizonyos funkciók, ha nem az összes, nem fog működni. Ha mindenképpen ki akarod próbálni, folytathatod de egyedül vagy minden felbukkanó problémával!",
- "Messages containing keywords": "Az üzenet kulcsszavakat tartalmaz"
+ "Messages containing keywords": "Az üzenet kulcsszavakat tartalmaz",
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
+ "A new version of Riot is available.": "Új verzió érhető el a Riot-ból.",
+ "All Rooms": "Minden szoba",
+ "Cancel": "Mégse",
+ "Changelog": "Változások",
+ "Collecting app version information": "Alkalmazás verzió információk összegyűjtése",
+ "Collecting logs": "Naplók összegyűjtése",
+ "Describe your problem here.": "Írd le a problémád itt.",
+ "Failed to send report: ": "A jelentést nem lehetett elküldeni: ",
+ "Forward Message": "Üzenet továbbküldése",
+ "Hide panel": "Panel elrejtése",
+ "Loading bug report module": "Hibabejelentő modul betöltése",
+ "Please describe the bug and/or send logs.": "Írd le a hibát és/vagy küld el a naplókat.",
+ "Report a bug": "Hiba bejelentése",
+ "Riot Desktop on %(platformName)s": "Riot Desktop ezen: %(platformName)s",
+ "Riot is not supported on mobile web. Install the app?": "Riot nem támogatott mobil webböngészőn. Telepíted az alkalmazást?",
+ "Search": "Keresés",
+ "Search…": "Keresés…",
+ "Send": "Küld",
+ "Send logs": "Naplók elküldése",
+ "This Room": "Ez a szoba",
+ "Unavailable": "Elérhetetlen",
+ "Unknown device": "Ismeretlen eszköz",
+ "Update": "Frissítés",
+ "Uploading report": "Jelentés feltöltése",
+ "What's New": "Mik az újdonságok",
+ "What's new?": "Mik az újdonságok?",
+ "Waiting for response from server": "Válasz várása a szervertől",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Vendégként használod a Riot-ot. Regisztrálj vagy jelentkezz be további szobák és lehetőségek eléréséhez!",
+ "OK": "Rendben",
+ "You need to be using HTTPS to place a screen-sharing call.": "HTTPS-t kell használnod hogy képernyőmegosztásos hívást kezdeményezz.",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "A problémák diagnosztizálása érdekében erről a kliensről a hibajelentésben naplók lesznek elküldve. Ha csak az alábbi szöveget szeretnéd elküldeni akkor ezt ne jelöld meg:",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Írd le a hibát. Mit csináltál? Mi az amit szerettél volna ha történik? Ezzel szemben mi az ami történt?"
}
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index d449c446..3ecffb3e 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -118,5 +118,8 @@
"Welcome page": "Welkom pagina",
"Drop here %(toAction)s": "%(toAction)s hier naar toe verplaatsen",
"Failed to set Direct Message status of room": "Het is mislukt om de directe berichten status van de kamer in te stellen",
- "Redact": "Redigeren"
+ "Redact": "Redigeren",
+ "A new version of Riot is available.": "Nieuwe Riot versie is beschikbaar.",
+ "All Rooms": "Alle Kamers",
+ "Cancel": "Annuleer"
}
diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json
index 9e26dfee..953aaa1f 100644
--- a/src/i18n/strings/pl.json
+++ b/src/i18n/strings/pl.json
@@ -1 +1,78 @@
-{}
\ No newline at end of file
+{
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s przez %(browserName)s na %(osName)s",
+ "Safari and Opera work too.": "Safari i Opera też działają.",
+ "A new version of Riot is available.": "Dostępna jest nowa wersja Riot.",
+ "Add an email address above to configure email notifications": "Dodaj adres e-mail powyżej, aby skonfigurować powiadomienia e-mailowe",
+ "Advanced notification settings": "Zaawansowane ustawienia powiadomień",
+ "All messages": "Wszystkie wiadomości",
+ "All messages (loud)": "Wszystkie wiadomości (głośno)",
+ "All Rooms": "Wszystkie pokoje",
+ "All notifications are currently disabled for all targets.": "Wszystkie powiadomienia są obecnie wyłączone dla wszystkich celów.",
+ "An error occurred whilst saving your email notification preferences.": "Podczas zapisywania ustawień powiadomień e-mail wystąpił błąd.",
+ "Call invitation": "Zaproszenie do rozmowy",
+ "Cancel": "Anuluj",
+ "Cancel Sending": "Anuluj wysyłanie",
+ "Can't update user notification settings": "Nie można zaktualizować ustawień powiadomień użytkownika",
+ "Changelog": "Dziennik zmian",
+ "Close": "Blisko",
+ "Collecting app version information": "Zbieranie informacji o wersji aplikacji",
+ "Collecting logs": "Zbieranie dzienników",
+ "Create new room": "Utwórz nowy pokój",
+ "Couldn't find a matching Matrix room": "Nie można znaleźć pasującego pokoju Matrix",
+ "Custom Server Options": "Niestandardowe opcje serwera",
+ "delete the alias.": "usunąć alias.",
+ "Describe your problem here.": "Opisz swój problem tutaj.",
+ "Directory": "Księga adresowa",
+ "Download this file": "Pobierz plik",
+ "Welcome page": "Strona powitalna",
+ "Riot is not supported on mobile web. Install the app?": "Riot nie jest obsługiwany przez mobilną przeglądarkę internetową. Zainstaluj aplikację?",
+ "Room directory": "Katalog pokojowy",
+ "Search": "Szukaj",
+ "Search…": "Szukaj…",
+ "Search for a room": "Szukaj pokoju",
+ "Send": "Wysłać",
+ "Settings": "Ustawienia",
+ "Collapse panel": "Ukryj panel",
+ "customServer_text": "Możesz używać opcji serwera niestandardowego do logowania się na inne serwery Matrix, określając inny adres URL serwera domowego. Pozwala to na wykorzystanie Riot z istniejącym kontem Matrix na innym serwerze domowym.
Można również ustawić niestandardowy serwer tożsamości, ale nie będzie można zapraszać użytkowników adresem e-mail, ani być zaproszony przez adres e-mailowy.",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Usuń alias %(alias)s i usuń %(name)s z katalogu?",
+ "Dismiss": "Zdymisjonować",
+ "Drop here %(toAction)s": "Upuść tutaj %(toAction)s",
+ "Enable audible notifications in web client": "Włącz dźwiękowe powiadomienia w kliencie internetowym",
+ "Enable email notifications": "Włącz powiadomienia e-mailowe",
+ "Enable notifications for this account": "Włącz powiadomienia na tym koncie",
+ "Enable them now": "Włącz je teraz",
+ "Enter keywords separated by a comma:": "Wpisz słowa kluczowe oddzielone przecinkami:",
+ "Error": "Błąd",
+ "Error saving email notification preferences": "Wystąpił błąd podczas zapisywania ustawień powiadomień e-mailowych",
+ "#example": "#przykład",
+ "Expand panel": "Rozwiń panel",
+ "Failed to": "Nie udało się",
+ "Failed to add tag %(tagName)s to room": "Nie można dodać tagu %(tagName)s do pokoju",
+ "Failed to change settings": "Nie udało się zmienić ustawień",
+ "Failed to forget room %(errCode)s": "Nie mogłem zapomnieć o pokoju %(errCode)s",
+ "Failed to update keywords": "Nie udało się zaktualizować słów kluczowych",
+ "Failed to get protocol list from Home Server": "Nie można pobrać listy protokołów z serwera domowego",
+ "Failed to get public room list": "Nie udało się uzyskać publicznej listy pokojowej",
+ "Failed to join the room": "Nie udało się dołączyć do pokoju",
+ "Failed to remove tag %(tagName)s from room": "Nie udało się usunąć tagu %(tagName)s z pokoju",
+ "Failed to send report: ": "Nie udało się wysłać raportu: ",
+ "Favourite": "Ulubiony",
+ "Files": "Pliki",
+ "Filter room names": "Filtruj nazwy pokojów",
+ "Forget": "Zapomnij",
+ "Forward Message": "Przekaż wiadomość",
+ " from room": " z pokoju",
+ "Guests can join": "Goście mogą dołączyć",
+ "Hide panel": "Ukryj panel",
+ "I understand the risks and wish to continue": "Rozumiem ryzyko i chęć kontynuować",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "W celu zdiagnozowania problemów logi z tego klienta zostaną wysłane wraz z tym raportem o błędzie. Jeśli wolisz wysłać tylko tekst powyżej, proszę odznacz:",
+ "Invite to this room": "Zaproś do tego pokoju",
+ "Keywords": "Słowa kluczowe",
+ "Loading bug report module": "Ładowanie modułu raportu błędów",
+ "Low Priority": "Niski priorytet",
+ "Messages containing keywords": "Wiadomości zawierające słowa kluczowe",
+ "Messages containing my user name": "Wiadomości zawierające mój użytkownik",
+ "Messages in group chats": "Wiadomości w czatach grupowych",
+ "Messages sent by bot": "Wiadomości wysłane przez robota",
+ "more": "więcej"
+}
diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json
index e2406a51..63f8500c 100644
--- a/src/i18n/strings/pt.json
+++ b/src/i18n/strings/pt.json
@@ -1,8 +1,8 @@
{
- "Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar suas notificações por email",
+ "Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar as notificações por email",
"All messages": "Todas as mensagens",
"All messages (loud)": "Todas as mensagens (alto)",
- "An error occurred whilst saving your email notification preferences.": "Um erro ocorreu enquanto o sistema estava salvando suas preferências de notificação por email.",
+ "An error occurred whilst saving your email notification preferences.": "Ocorreu um erro ao guardar as suas preferências de notificação por email.",
"Call invitation": "Convite para chamada",
"Cancel Sending": "Cancelar o envio",
"Can't update user notification settings": "Não é possível atualizar as preferências de notificação",
@@ -15,62 +15,62 @@
"Direct Chat": "Conversa pessoal",
"Directory": "Diretório",
"Dismiss": "Descartar",
- "Download this file": "Baixar este arquivo",
+ "Download this file": "Transferir este ficheiro",
"Drop here %(toAction)s": "Arraste aqui para %(toAction)s",
"Enable audible notifications in web client": "Ativar notificações de áudio no cliente web",
"Enable desktop notifications": "Ativar notificações no desktop",
- "Enable email notifications": "Ativar notificações por email",
+ "Enable email notifications": "Ativar notificações por e-mail",
"Enable notifications for this account": "Ativar notificações para esta conta",
- "Enable them now": "Habilitar agora",
- "Enter keywords separated by a comma:": "Coloque cada palavras-chave separada por vírgula:",
+ "Enable them now": "Ativar agora",
+ "Enter keywords separated by a comma:": "Insira palavras-chave separadas por vírgula:",
"Error": "Erro",
- "Error saving email notification preferences": "Erro ao salvar as preferências de notificação por email",
+ "Error saving email notification preferences": "Erro ao guardar as preferências de notificação por e-mail",
"#example:": "#exemplo",
"Failed to": "Falha ao",
"Failed to add tag %(tagName)s to room": "Falha ao adicionar %(tagName)s à sala",
- "Failed to change settings": "Falhou ao mudar as preferências",
- "Failed to forget room %(errCode)s": "Falhou ao esquecer a sala %(errCode)s",
- "Failed to update keywords": "Falhou ao alterar as palavras-chave",
- "Failed to get protocol list from Home Server": "Falha em acessar a lista de protocolos do servidor padrão",
- "Failed to get public room list": "Falha ao acessar a lista pública de salas",
- "Failed to join the room": "Falhou ao entrar na sala",
+ "Failed to change settings": "Falha ao alterar as configurações",
+ "Failed to forget room %(errCode)s": "Falha ao esquecer a sala %(errCode)s",
+ "Failed to update keywords": "Falha ao atualizar as palavras-chave",
+ "Failed to get protocol list from Home Server": "Falha ao obter a lista de protocolos do servidor padrão",
+ "Failed to get public room list": "Falha ao obter a lista de salas públicas",
+ "Failed to join the room": "Falha ao entrar na sala",
"Failed to remove tag %(tag)s from room": "Falha ao remover a palavra-chave %(tag)s da sala",
"Failed to set direct chat tag": "Falha ao definir conversa como pessoal",
"Failed to set Direct Message status of room": "Falha em definir a mensagem de status da sala",
"Favourite": "Favorito",
- "Fetching third party location failed": "Falha ao acessar localização de terceiros",
- "Files": "Arquivos",
+ "Fetching third party location failed": "Falha ao obter localização de terceiros",
+ "Files": "Ficheiros",
"Filter room names": "Filtrar salas por título",
"Forget": "Esquecer",
"Forward Message": "Encaminhar",
" from room": " da sala",
"Guests can join": "Convidados podem entrar",
- "Guest users can't invite users. Please register to invite.": "Usuários convidados não podem convidar outros usuários. Por gentileza se registre para enviar convites.",
+ "Guest users can't invite users. Please register to invite.": "Utilizadores convidados não podem convidar utilizadores. Por favor registe-se para convidar.",
"Invite to this room": "Convidar para esta sala",
"Keywords": "Palavras-chave",
"Leave": "Sair",
"Low Priority": "Baixa prioridade",
"Members": "Membros",
"Mentions only": "Apenas menções",
- "Messages containing my display name": "Mensagens contendo meu nome público",
- "Messages containing my user name": "Mensagens contendo meu nome de usuário",
+ "Messages containing my display name": "Mensagens contendo o meu nome público",
+ "Messages containing my user name": "Mensagens contendo o meu nome de utilizador",
"Messages in group chats": "Mensagens em salas",
"Messages in one-to-one chats": "Mensagens em conversas pessoais",
"Messages sent by bot": "Mensagens enviadas por bots",
- "more": "ver mais",
- "Mute": "Mudo",
+ "more": "mais",
+ "Mute": "Silenciar",
"No rooms to show": "Não existem salas a serem exibidas",
"Noisy": "Barulhento",
"Notification targets": "Alvos de notificação",
"Notifications": "Notificações",
"Notifications on the following keywords follow rules which can’t be displayed here:": "Notificações sobre as seguintes palavras-chave seguem regras que não podem ser exibidas aqui:",
- "Notify for all other messages/rooms": "Notificar para todas as outras mensagens e salas",
+ "Notify for all other messages/rooms": "Notificar para todas as outras mensagens/salas",
"Notify me for anything else": "Notificar-me sobre qualquer outro evento",
"Off": "Desativado",
"On": "Ativado",
"Operation failed": "A operação falhou",
"Permalink": "Link permanente",
- "Please Register": "Por favor, cadastre-se",
+ "Please Register": "Por favor registe-se",
"powered by Matrix": "rodando a partir do Matrix",
"Quote": "Citar",
"Redact": "Remover",
@@ -80,87 +80,87 @@
"remove %(name)s from the directory.": "remover %(name)s da lista pública de salas.",
"Remove from Directory": "Remover da lista pública de salas",
"Resend": "Reenviar",
- "Riot does not know how to join a room on this network": "O sistema não sabe como entrar na sala desta rede",
+ "Riot does not know how to join a room on this network": "O Riot não sabe como entrar numa sala nesta rede",
"Room directory": "Lista de salas públicas",
"Room not found": "Sala não encontrada",
- "Search for a room": "Procurar por uma sala",
+ "Search for a room": "Pesquisar por uma sala",
"Settings": "Configurações",
"Source URL": "URL fonte",
- "Start chat": "Começar conversa",
+ "Start chat": "Iniciar conversa",
"The Home Server may be too old to support third party networks": "O servidor pode ser muito antigo para suportar redes de terceiros",
- "There are advanced notifications which are not shown here": "Existem opções avançadas que não são exibidas aqui",
+ "There are advanced notifications which are not shown here": "Existem notificações avançadas que não são exibidas aqui",
"The server may be unavailable or overloaded": "O servidor pode estar inacessível ou sobrecarregado",
- "This room is inaccessible to guests. You may be able to join if you register.": "Esta sala é inacessível para convidados. Você poderá entrar caso se registre.",
+ "This room is inaccessible to guests. You may be able to join if you register.": "Esta sala é inacessível para convidados. Poderá conseguir entrar caso se registe.",
" to room": " para sala",
"Unable to fetch notification target list": "Não foi possível obter a lista de alvos de notificação",
- "Unable to join network": "Não foi possível conectar na rede",
- "Unable to look up room ID from server": "Não foi possível buscar identificação da sala no servidor",
+ "Unable to join network": "Não foi possível juntar-se à rede",
+ "Unable to look up room ID from server": "Não foi possível obter a identificação da sala do servidor",
"Unhide Preview": "Mostrar a pré-visualização novamente",
"unknown error code": "código de erro desconhecido",
"Unnamed room": "Sala sem nome",
"Uploaded on %(date)s by %(user)s": "Enviada em %(date)s por %(user)s",
- "View Decrypted Source": "Ver a fonte descriptografada",
+ "View Decrypted Source": "Ver a fonte decifrada",
"View Source": "Ver a fonte",
- "When I'm invited to a room": "Quando sou convidada(o) a uma sala",
+ "When I'm invited to a room": "Quando sou convidado para uma sala",
"World readable": "Público",
- "You cannot delete this image. (%(code)s)": "Você não pode apagar esta imagem. (%(code)s)",
- "You cannot delete this message. (%(code)s)": "Você não pode apagar esta mensagem. (%(code)s)",
- "You are not receiving desktop notifications": "Você não está recebendo notificações desktop",
- "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Você pode te-las configurado em outro cliente além do Riot. Você não pode ajustá-las no Riot, mas ainda assim elas se aplicam aqui",
+ "You cannot delete this image. (%(code)s)": "Não pode apagar esta imagem. (%(code)s)",
+ "You cannot delete this message. (%(code)s)": "Não pode apagar esta mensagem. (%(code)s)",
+ "You are not receiving desktop notifications": "Não está a receber notificações de desktop",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Pode ter configurado num outro cliente sem ser o Riot. Não pode ajustá-las no Riot, mas ainda assim elas aplicam-se",
"Sunday": "Domingo",
- "Monday": "Segunda",
- "Tuesday": "Terça",
- "Wednesday": "Quarta",
- "Thursday": "Quinta",
- "Friday": "Sexta",
+ "Monday": "Segunda-feira",
+ "Tuesday": "Terça-feira",
+ "Wednesday": "Quarta-feira",
+ "Thursday": "Quinta-feira",
+ "Friday": "Sexta-feira",
"Saturday": "Sábado",
"Today": "Hoje",
"Yesterday": "Ontem",
"#example": "#exemplo",
"Failed to remove tag %(tagName)s from room": "Não foi possível remover a marcação %(tagName)s desta sala",
- "Welcome page": "Página de boas vindas",
+ "Welcome page": "Página de boas-vindas",
"Advanced notification settings": "Configurações avançadas de notificação",
- "customServer_text": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix, especificando uma URL de outro Servidor de Base. Isso permite que você use Riot com uma conta Matrix que exista em outro Servidor de Base.
Você também pode configurar um servidor de Identidade personalizado, mas neste caso não poderá convidar usuárias(os) pelo endereço de e-mail, ou ser convidado(a) pelo seu endereço de e-mail.",
- "Safari and Opera work too.": "Safari e Opera funcionam também.",
- "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desabilitadas para todos os casos.",
+ "customServer_text": "Pode usar as opções de servidor personalizado para entrar noutros servidores Matrix especificando para isso um URL de outro Servidor de Base. Isto permite que use o Riot com uma conta Matrix que exista noutro Servidor de Base.
Também pode configurar um servidor de Identidade personalizado mas não poderá convidar utilizadores através do endereço de e-mail, ou ser convidado pelo seu endereço de e-mail.",
+ "Safari and Opera work too.": "Safari e Opera também funcionam.",
+ "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desativadas para todos os casos.",
"Collapse panel": "Colapsar o painel",
"Expand panel": "Expandir o painel",
- "I understand the risks and wish to continue": "Entendo os riscos e desejo continuar",
+ "I understand the risks and wish to continue": "Entendo os riscos e pretendo continuar",
"Messages containing keywords": "Mensagens contendo palavras-chave",
- "Please install Chrome or Firefox for the best experience.": "Por favor instale Chrome ou Firefox para ter a melhor experiência de uso.",
+ "Please install Chrome or Firefox for the best experience.": "Por favor instale Chrome ou Firefox para ter a melhor experiência.",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "O Riot usa muitas funcionalidades avançadas do navegador, algumas das quais não estão disponíveis ou ainda são experimentais no seu navegador atual.",
- "Sorry, your browser is not able to run Riot.": "Perdão. O seu navegador não é capaz de rodar o Riot.",
- "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Com o seu navegador atual, a aparência e sensação de uso da aplicação podem estar completamente incorretas, e algumas das funcionalidades poderão não funcionar. Se você quiser tentar de qualquer maneira, pode continuar, mas aí vai ter que se virar sozinho(a) com os problemas que porventura encontrar!",
+ "Sorry, your browser is not able to run Riot.": "Desculpe, o seu navegador não é capaz de executar o Riot.",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Com o seu navegador atual, a aparência e sensação de uso da aplicação podem estar completamente incorretas, e algumas das funcionalidades poderão não funcionar. Se quiser tentar de qualquer maneira pode continuar, mas está por sua conta com algum problema que possa encontrar!",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s em %(osName)s",
"A new version of Riot is available.": "Uma nova versão do Riot está disponível.",
"All Rooms": "Todas as salas",
"Cancel": "Cancelar",
"Changelog": "Histórico de alterações",
- "Collecting app version information": "Coletando informação sobre a versão do app",
- "Collecting logs": "Coletando logs",
+ "Collecting app version information": "A recolher informação da versão da app",
+ "Collecting logs": "A recolher logs",
"Describe your problem here.": "Descreva o seu problema aqui.",
"Failed to send report: ": "Falha ao enviar o relatório: ",
"Hide panel": "Ocultar o painel",
- "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Para diagnosticar problemas, relatórios deste cliente serão enviados junto a esta notificação de falha. Se você prefere apenas enviar o seu texto acima, por favor des-selecione:",
- "Loading bug report module": "Carregando o módulo de relatórios de erros",
- "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Por favor, descreva a falha encontrada. O que você estava fazendo? O que você esperava que devia ocorrer? E o que aconteceu efetivamente?",
- "Please describe the bug and/or send logs.": "Por favor, descreva as falhas e/ou envie os logs de erro.",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Para diagnosticar problemas, relatórios deste cliente serão enviados juntamente com esta notificação de falha. Se preferir enviar apenas o texto acima, por favor remova a seleção:",
+ "Loading bug report module": "A carregar o módulo de relato de erros",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Por favor descreva a falha encontrada. O que fez? O que esperava que acontecesse? O que realmente aconteceu?",
+ "Please describe the bug and/or send logs.": "Por favor descreva a falha e/ou envie os logs de erro.",
"Report a bug": "Reportar uma falha",
"Riot Desktop on %(platformName)s": "Riot para computadores desktop em %(platformName)s",
- "Riot is not supported on mobile web. Install the app?": "Riot versão web não é suportado a partir de celular. Quer instalar o app para celular?",
- "Search": "Buscar",
- "Search…": "Buscar…",
+ "Riot is not supported on mobile web. Install the app?": "O Riot não é suportado na web para dispositivos móveis. Quer instalar a app?",
+ "Search": "Pesquisar",
+ "Search…": "Pesquisar…",
"Send": "Enviar",
"Send logs": "Enviar relatórios de erro",
"This Room": "Esta sala",
"Unavailable": "Indisponível",
"Unknown device": "Dispositivo desconhecido",
"Update": "Atualizar",
- "Uploading report": "Enviando o relatório",
+ "Uploading report": "A enviar o relatório",
"What's New": "Novidades",
- "What's new?": "O que há de novidades?",
- "Waiting for response from server": "Esperando por resposta do servidor",
- "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Você está usando o Riot como visitante. Registre-se ou faça login para acessar mais salas e funcionalidades!",
+ "What's new?": "O que há de novo?",
+ "Waiting for response from server": "À espera de resposta do servidor",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Está a usar o Riot como convidado. Registe-se ou faça login para aceder a mais salas e funcionalidades!",
"OK": "Ok",
- "You need to be using HTTPS to place a screen-sharing call.": "Você precisa estar usando HTTPS para poder iniciar uma chamada com compartilhamento de tela."
+ "You need to be using HTTPS to place a screen-sharing call.": "Necessita de estar a usar HTTPS para poder iniciar uma chamada com partilha de ecrã."
}
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index e2406a51..0619e52a 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -16,7 +16,7 @@
"Directory": "Diretório",
"Dismiss": "Descartar",
"Download this file": "Baixar este arquivo",
- "Drop here %(toAction)s": "Arraste aqui para %(toAction)s",
+ "Drop here %(toAction)s": "Arraste aqui %(toAction)s",
"Enable audible notifications in web client": "Ativar notificações de áudio no cliente web",
"Enable desktop notifications": "Ativar notificações no desktop",
"Enable email notifications": "Ativar notificações por email",
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 50df719c..8075a28e 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -6,19 +6,19 @@
"Can't update user notification settings": "Не возможно обновить пользовательские настройки оповещения",
"Create new room": "Создать комнату",
"Couldn't find a matching Matrix room": "Не возможно найти подходящую Матрикс комнату",
- "Custom Server Options": "Настройки пользовательского сервера",
+ "Custom Server Options": "Расширенные настройки сервера",
"delete the alias.": "удалить привязку.",
"Delete the room alias": "Удалить привязку комнаты",
"Direct Chat": "Персональное сообщение",
"Directory": "Каталог",
- "Dismiss": "Отмена",
+ "Dismiss": "Отказ",
"Drop here to": "Перетащите сюда",
"Enable audible notifications in web client": "Включить звуковые оповещения в веб клиенте",
"Enable desktop notifications": "Включить оповещения на рабочем столе",
"Enable email notifications": "Включить оповещения по электронной почте",
"Enable notifications for this account": "Включить оповещения для этого аккаунта",
"Enable them now": "Включить сейчас",
- "Enter keywords separated by a comma:": "Введите ключевые слова, разделенные запятой",
+ "Enter keywords separated by a comma:": "Введите ключевые слова, разделенные запятой:",
"Error": "Ошибка",
"Error saving email notification preferences": "Ошибка сохранения настроек оповещений по электронной почте",
"#example": "#пример",
@@ -27,20 +27,20 @@
"Failed to change settings": "Не удалось изменить настройки",
"Failed to update keywords": "Не удалось обновить ключевые слова",
"Failed to get protocol list from Home Server": "Не удалось получить список протоколов с Пользовательского Сервера",
- "Failed to get public room list": "Не удалось получить список общих комнат",
+ "Failed to get public room list": "Не удалось получить список открытых комнат",
"Failed to join the room": "Не удалось войти в комнату",
"Failed to remove tag ": "Не удалось удалить тег ",
"Failed to set Direct Message status of room": "Не удалось задать статус комнаты Персональное Сообщение",
"Favourite": "Избранное",
"Fetching third party location failed": "Не удалось получить местоположение",
"Files": "Файлы",
- "Filter room names": "Отфильтровать по названию комнаты",
+ "Filter room names": "Фильтр по назв. комнаты",
"Forget": "Забыть",
"from the directory": "из каталога",
" from room": " из комнаты",
"Guests can join": "Гость может присоединиться",
"Guest users can't invite users. Please register to invite.": "Гость не может приглашать пользователей. Зарегистрируйтесь для приглошений.",
- "Invite to this room": "Пригласить в эту комнату",
+ "Invite to this room": "Пригласить",
"Keywords": "Ключевые слова",
"Leave": "Покинуть",
"Low Priority": "Низкий приоритет",
@@ -49,14 +49,14 @@
"Noisy": "Звук",
"Notification targets": "Цели уведомления",
"Notifications": "Уведомления",
- "Notifications on the following keywords follow rules which can’t be displayed here:": "Уведомления по следующим ключевым словам соответствуют правилам, которые нельзя отобразить здесь",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "Уведомления по следующим ключевым словам соответствуют правилам, которые нельзя отобразить здесь:",
"Notify for all other messages/rooms": "Уведомить обо всех других сообщениях/комнатах",
"Notify me for anything else": "Уведомить меня обо всем кроме",
"Off": "Выключить",
"On": "Включить",
- "Operation failed": "Операция не удалась",
+ "Operation failed": "Действие не удалось",
"Please Register": "Пожалуйста, зарегистрируйтесь",
- "powered by Matrix": "разработано в Matrix",
+ "powered by Matrix": "управляемый с Matrix",
"Reject": "Отклонить",
"Remove": "Удалить",
"remove": "удалить",
@@ -68,7 +68,7 @@
"Settings": "Настройки",
"Start chat": "Начать чат",
"The Home Server may be too old to support third party networks": "Пользовательский сервер может быть слишком старым для поддержки сторонних сетей",
- "There are advanced notifications which are not shown here": "Здесь расширенные уведомления, которые здесь не показаны",
+ "There are advanced notifications which are not shown here": "Существуют расширенные уведомления, которые здесь не показаны",
"The server may be unavailable or overloaded": "Возможно сервер недоступен или перегружен",
"This room is inaccessible to guests. You may be able to join if you register.": "Эта комната недоступна для гостей. Вы можете присоединиться, если зарегистрируетесь.",
" to room": " к комнате",
@@ -85,7 +85,7 @@
"Cancel Sending": "Отмена отправки",
"Close": "Закрыть",
"Download this file": "Скачать этот файл",
- "Drop here %(toAction)s": "Вставить сюда для %(toAction)s",
+ "Drop here %(toAction)s": "Вставить сюда: %(toAction)s",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Удалить псевдоним комнаты %(alias)s и очистить %(name)s из каталога?",
"Failed to add tag %(tagName)s to room": "Не удалось добавить тег %(tagName)s в комнату",
"Failed to forget room %(errCode)s": "Не удалось забыть комнату %(errCode)s",
@@ -93,7 +93,7 @@
"Failed to set direct chat tag": "Не удалось пометить прямую беседу",
"Unhide Preview": "Показать предпросмотр",
"Uploaded on %(date)s by %(user)s": "Загружено %(date)s %(user)s",
- "View Decrypted Source": "Просмотр зашыфрованного источника",
+ "View Decrypted Source": "Просмотр зашифрованного источника",
"View Source": "Просмотр источника",
"You cannot delete this image. (%(code)s)": "Вы не можете удалить это изображение. (%(code)s)",
"You cannot delete this message. (%(code)s)": "Вы не можете удалить это сообщение. (%(code)s)",
@@ -125,5 +125,52 @@
"Messages in one-to-one chats": "Сообщения в приватных чатах",
"Messages sent by bot": "Сообщения, отправленные ботом",
"more": "больше",
- "When I'm invited to a room": "Когда я приглашен в комнату"
+ "When I'm invited to a room": "Когда я приглашен в комнату",
+ "A new version of Riot is available.": "Доступна новая версия Riot.",
+ "All Rooms": "Все комнаты",
+ "Cancel": "Отмена",
+ "Changelog": "История изменений",
+ "Collapse panel": "Закрыпть панель",
+ "Collecting app version information": "Сбор информации о версиях программы",
+ "Collecting logs": "Сбор протоколов",
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s с %(browserName)s на %(osName)s",
+ "Safari and Opera work too.": "Safari и Opera работают тоже.",
+ "Describe your problem here.": "Опиши здесь свою проблему.",
+ "Expand panel": "Открыть панель",
+ "Failed to send report: ": "Не удалось отослать отчет: ",
+ "Forward Message": "Переслать сообщение дальше",
+ "Hide panel": "Скрыть панель",
+ "I understand the risks and wish to continue": "Я понимаю риск и хочу продолжыть",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "Что бы выявить проблему, будет отослан журнал этого клиента с сообщением о ошыбке. Если ты только верхний текст отослать хочешь, отключи следующее:",
+ "Loading bug report module": "Загрузи Модуль ошыбок",
+ "Messages containing keywords": "Сообщения, которые содержат определенный ключевые слова",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Пожалуйста опишы (на Английском) ошыбку. Что ты делал? Что ты ожыдал получить? Что произошло?",
+ "Please describe the bug and/or send logs.": "Пожалуйста опишы ошибку и/или перешли протоколы.",
+ "Please install Chrome or Firefox for the best experience.": "Пожалуйста проинсталируй Chrome или Firefox для лутшего результата.",
+ "Report a bug": "Отчет о ошыбке",
+ "Riot Desktop on %(platformName)s": "Riot Desktop на %(platformName)s",
+ "Riot is not supported on mobile web. Install the app?": "Riot не будет на мобильном Интернете работать. Программу инсталлировать?",
+ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot использует некоторые расширенные фукции интернет-проводника - некоторые из них отсутствуют или экспериментальные в этом проводнике.",
+ "Search": "Поиск",
+ "Search…": "Поиск.…",
+ "Send": "Отослать",
+ "Send logs": "Отослать протокол",
+ "Sorry, your browser is not able to run Riot.": "Извените, ваш браузер не может Riot запустить.",
+ "This Room": "Эта комната",
+ "Unavailable": "Недоступен",
+ "Unknown device": "Неизвестное устройство",
+ "Update": "Обновление",
+ "Uploading report": "Отчет загружается",
+ "What's New": "Что нового",
+ "What's new?": "Что нового?",
+ "Waiting for response from server": "Подождите ответа от сервера",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Вы пользуетесь Riot как гость. Зарегистрируйтесь или войдите в систему и плучите доступ к огромному количеству комнат и функций!",
+ "OK": "ОК",
+ "You need to be using HTTPS to place a screen-sharing call.": "Вы должны пользоваться HTTPS чтобы пользоваться видиозвонком.",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Еали ваш браузер не корректно отображает информацию и все или некоторые фукции отключены, вы можете и дальше этим браузеом пользоваться но но ваши проблемы останутся с вами!",
+ "Login": "Войти",
+ "Welcome to Riot.im": "Добро пожаловать на Riot.im",
+ "Decentralised, encrypted chat & collaboration powered by [matrix]": "Децентрализованное, шифрованное общение и сотрудничество на основе [matrix]",
+ "Search the room directory": "Поиск по директории комнат",
+ "Chat with Riot Bot": "Пообщаться с Riot Bot"
}
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index 09c55a73..146e237d 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -14,7 +14,7 @@
"Custom Server Options": "Egna serverinställningar",
"customServer_text": "Du kan använda serverinställningarna för att logga in i en annan Matrix-server genom att specifiera en URL till en annan hemserver. Så här kan du använda Riot med ett existerande Matrix-konto på en annan hemserver.
Du kan också specifiera en egen identitetsserver, men du kommer inte att kunna bjuda in andra via epostadress, eller bli inbjuden via epostadress.",
"delete the alias.": "radera adressen.",
- "Direct Chat": "Direkt chatt",
+ "Direct Chat": "Direkt-chatt",
"Directory": "Katalog",
"Dismiss": "Avvisa",
"Download this file": "Ladda ner filen",
@@ -30,11 +30,11 @@
"Failed to": "Det gick inte att",
"Failed to add tag %(tagName)s to room": "Det gick inte att lägga till \"%(tagName)s\" till rummet",
"Failed to change settings": "Det gick inte att spara inställningarna",
- "Failed to forget room %(errCode)s": "Det gick inte att glömma bort rummet: %(errCode)s",
+ "Failed to forget room %(errCode)s": "Det gick inte att glömma bort rummet %(errCode)s",
"Failed to update keywords": "Det gick inte att uppdatera nyckelorden",
"Failed to get protocol list from Home Server": "Det gick inte att hämta protokollistan från hemservern",
"Failed to get public room list": "Det gick inte att hämta listan över offentliga rum",
- "Failed to join the room": "Det gick inte att ansluta till rummet",
+ "Failed to join the room": "Det gick inte att gå med i rummet",
"Failed to remove tag %(tagName)s from room": "Det gick inte att radera taggen %(tagName)s från rummet",
"Failed to set direct chat tag": "Det gick inte att markera rummet som direkt chatt",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s på %(osName)s",
@@ -115,5 +115,47 @@
"The Home Server may be too old to support third party networks": "Hemservern kan vara för gammal för stöda tredje parters nätverk",
"There are advanced notifications which are not shown here": "Det finns avancerade aviseringar som inte visas här",
"The server may be unavailable or overloaded": "Servern kan vara överbelastad eller inte tillgänglig",
- "This Room": "Det här rummet"
+ "This Room": "Det här rummet",
+ "This room is inaccessible to guests. You may be able to join if you register.": "Det här rummet är inte tillgängligt till gäster. Du kan möjligtvis gå med i rummet om du registrerar dig.",
+ " to room": " till rum",
+ "Unable to fetch notification target list": "Det gick inte att hämta aviseringsmållistan",
+ "Unable to join network": "Det gick inte att ansluta till nätverket",
+ "Unable to look up room ID from server": "Det gick inte att hämta rums-ID:t från servern",
+ "Unavailable": "Inte tillgänglig",
+ "Unhide Preview": "Visa förhandsvisning",
+ "Unknown device": "Okänd enhet",
+ "unknown error code": "okänd felkod",
+ "Unnamed room": "Namnlöst rum",
+ "Update": "Uppdatera",
+ "Uploaded on %(date)s by %(user)s": "%(user)s laddade upp %(date)s",
+ "Uploading report": "Laddar upp rapport",
+ "View Decrypted Source": "Visa dekrypterad källa",
+ "View Source": "Visa källa",
+ "What's New": "Vad är nytt",
+ "What's new?": "Vad är nytt?",
+ "Waiting for response from server": "Väntar på svar från servern",
+ "When I'm invited to a room": "När jag bjuds in till ett rum",
+ "World readable": "Alla kan läsa",
+ "You cannot delete this image. (%(code)s)": "Du kan inte radera den här bilden. (%(code)s)",
+ "You cannot delete this message. (%(code)s)": "Du kan inte radera det här meddelandet. (%(code)s)",
+ "You are not receiving desktop notifications": "Du får inte skrivbordsaviseringar",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "Du använder Riot som en gäst. Registrera dig eller logga in för att få tillgång till flera rum och egenskaper!",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du kan ha konfigurerat dem i en annan klient än Riot. Du kan inte ändra dem i Riot men de tillämpas ändå",
+ "Sunday": "söndag",
+ "Monday": "måndag",
+ "Tuesday": "tisdag",
+ "Wednesday": "onsdag",
+ "Thursday": "torsdag",
+ "Friday": "fredag",
+ "Saturday": "lördag",
+ "Today": "idag",
+ "Yesterday": "igår",
+ "OK": "OK",
+ "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.",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Med din nuvarande webbläsare kan appens utseende vara helt fel, och vissa eller alla egenskaper kommer nödvändigtvis inte att fungera. Om du ändå vill försöka så kan du fortsätta, men gör det på egen risk!",
+ "Welcome page": "Välkomstsida",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Radera rumsadressen %(alias)s och ta bort %(name)s från katalogen?",
+ "Collecting logs": "Samlar in loggar",
+ "Collecting app version information": "Samlar in appversionsinformation",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "Aviseringar för följande nyckelord följer regler som inte kan visas här:"
}
diff --git a/src/i18n/strings/th.json b/src/i18n/strings/th.json
new file mode 100644
index 00000000..66df9f4b
--- /dev/null
+++ b/src/i18n/strings/th.json
@@ -0,0 +1,199 @@
+{
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s ผ่านทาง %(browserName)s บน %(osName)s",
+ "All messages": "ทุกข้อความ",
+ "Cancel": "ยกเลิก",
+ "Close": "ปิด",
+ "Error": "ข้อผิดพลาด",
+ "#example": "#example",
+ "Files": "ไฟล์",
+ "Forward Message": "ส่งต่อข้อความ",
+ " from room": " จากห้อง",
+ "Low Priority": "ความสำคัญต่ำ",
+ "Members": "สมาชิก",
+ "more": "เพิ่มเติม",
+ "Off": "ปิด",
+ "Report a bug": "รายงานจุดบกพร่อง",
+ "powered by Matrix": "ใช้เทคโนโลยี Matrix",
+ "Quote": "อ้างอิง",
+ "Resend": "ส่งใหม่",
+ "Safari and Opera work too.": "Safari หรือ Opera ก็ใช้ได้",
+ "A new version of Riot is available.": "มี Riot เวอร์ชั่นใหม่",
+ "All Rooms": "ทุกห้อง",
+ "Cancel Sending": "ยกเลิกการส่ง",
+ "Changelog": "บันทึกการเปลี่ยนแปลง",
+ "Create new room": "สร้างห้องใหม่",
+ "Describe your problem here.": "อธิบายปัญหาที่นี่",
+ "Download this file": "ดาวน์โหลดไฟล์นี้",
+ "Dismiss": "ไม่สนใจ",
+ "Messages sent by bot": "ข้อความจากบอท",
+ "Mute": "เงียบ",
+ "No rooms to show": "ไม่มีห้องที่จะแสดง",
+ "Notifications": "การแจ้งเตือน",
+ "On": "เปิด",
+ "Permalink": "ลิงก์ถาวร",
+ "Operation failed": "การดำเนินการล้มเหลว",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "กรุณาอธิบายจุดบกพร่อง คุณทำอะไร? ควรจะเกิดอะไรขึ้น? แล้วอะไรคือสิ่งที่เกิดขึ้นจริง?",
+ "Please describe the bug and/or send logs.": "กรุณาอธิบายจุดบกพร่อง และ/หรือ ส่งล็อก",
+ "Please install Chrome or Firefox for the best experience.": "กรุณาติดตั้ง Chrome หรือ Firefox เพื่อประสบการณ์ที่ดีที่สุด",
+ "Please Register": "กรุณาลงทะเบียน",
+ "Redact": "ลบ",
+ "Reject": "ปฏิเสธ",
+ "Remove": "ลบ",
+ "Messages containing keywords": "ข้อความที่มีคีย์เวิร์ด",
+ "Messages containing my user name": "ข้อความที่มีชื่อผู้ใช้ของฉัน",
+ "Search": "ค้นหา",
+ "Search…": "ค้นหา…",
+ "Room not found": "ไม่พบห้อง",
+ "Search for a room": "ค้นหาห้อง",
+ "Send": "ส่ง",
+ "Send logs": "ส่งล็อก",
+ "Settings": "การตั้งค่า",
+ "Sorry, your browser is not able to run Riot.": "ขออภัย เบราว์เซอร์ของคุณไม่สามารถ run Riot ได้",
+ "This Room": "ห้องนี้",
+ " to room": " ไปยังห้อง",
+ "Unavailable": "ไม่มี",
+ "Unknown device": "อุปกรณ์ที่ไม่รู้จัก",
+ "unknown error code": "รหัสข้อผิดพลาดที่ไม่รู้จัก",
+ "Update": "อัปเดต",
+ "Uploaded on %(date)s by %(user)s": "อัปโหลดเมื่อ %(date)s โดย %(user)s",
+ "Yesterday": "เมื่อวานนี้",
+ "Today": "วันนี้",
+ "Saturday": "วันเสาร์",
+ "Friday": "วันศุกร์",
+ "Thursday": "วันพฤหัสบดี",
+ "Wednesday": "วันพุธ",
+ "Tuesday": "วันอังคาร",
+ "Monday": "วันจันทร์",
+ "Sunday": "วันอาทิตย์",
+ "You cannot delete this image. (%(code)s)": "คุณไม่สามารถลบรูปนี้ได้ (%(code)s)",
+ "You cannot delete this message. (%(code)s)": "คุณไม่สามารถลบข้อความนี้ได้ (%(code)s)",
+ "What's New": "มีอะไรใหม่",
+ "What's new?": "มีอะไรใหม่?",
+ "View Source": "ดูซอร์ส",
+ "Uploading report": "กำลังอัปโหลดรายงาน",
+ "Advanced notification settings": "ตั้งค่าการแจ้งเตือนขั้นสูง",
+ "Can't update user notification settings": "ไม่สามารถอัปเดตการตั้งค่าการแจ้งเตือนของผู้ใช้",
+ "Collecting logs": "กำลังรวบรวมล็อก",
+ "Collapse panel": "ซ่อนหน้าต่าง",
+ "Collecting app version information": "กำลังรวบรวมข้อมูลเวอร์ชันแอป",
+ "OK": "ตกลง",
+ "Welcome page": "หน้าต้อนรับ",
+ "You need to be using HTTPS to place a screen-sharing call.": "คุณต้องใช้ HTTPS เพื่อเริ่มติดต่อแบบแบ่งปันหน้าจอ",
+ "You are not receiving desktop notifications": "การแจ้งเตือนบนเดสก์ทอปถูกปิดอยู่",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "คุณกำลังใช้ Riot ในฐานะแขก ลงทะเบียนหรือเข้าสู่ระบบเพื่อเข้าถึงห้องและคุณสมบัติอื่น ๆ เพิ่มเติม!",
+ "Waiting for response from server": "กำลังรอการตอบสนองจากเซิร์ฟเวอร์",
+ "View Decrypted Source": "ดูซอร์สที่ถอดรหัสแล้ว",
+ "Unnamed room": "ห้องที่ไม่มีชื่อ",
+ "Source URL": "URL ต้นฉบับ",
+ "Start chat": "เริ่มแชท",
+ "Riot Desktop on %(platformName)s": "Riot เดสก์ทอปบน %(platformName)s",
+ "Riot is not supported on mobile web. Install the app?": "Riot ไม่รองรับเว็บบนอุปกรณ์พกพา ติดตั้งแอป?",
+ "Riot does not know how to join a room on this network": "Riot ไม่รู้วิธีเข้าร่วมห้องในเครือข่ายนี้",
+ "Direct Chat": "แชทโดยตรง",
+ "All messages (loud)": "ทุกข้อความ (เสียงดัง)",
+ "Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง",
+ "Directory": "ไดเรกทอรี",
+ "Enable audible notifications in web client": "เปิดใช้งานเสียงแจ้งเตือนบนเว็บไคลเอนต์",
+ "Enable desktop notifications": "เปิดใช้งานการแจ้งเตือนบนเดสก์ทอป",
+ "Enable email notifications": "เปิดใช้งานการแจ้งเตือนทางอีเมล",
+ "Enable notifications for this account": "เปิดใช้งานการแจ้งเตือนสำหรับบัญชีนี้",
+ "Enable them now": "เปิดใช้งานเดี๋ยวนี้",
+ "Enter keywords separated by a comma:": "กรอกคีย์เวิร์ดทั้งหมด คั่นด้วยเครื่องหมายจุลภาค:",
+ "Expand panel": "ขยายหน้าต่าง",
+ "Failed to update keywords": "การอัปเดตคีย์เวิร์ดล้มเหลว",
+ "Failed to join the room": "การเข้าร่วมห้องล้มเหลว",
+ "Failed to remove tag %(tagName)s from room": "การลบแท็ก %(tagName)s จากห้องล้มเหลว",
+ "Failed to send report: ": "การส่งรายงานล้มเหลว: ",
+ "Filter room names": "กรองชื่อห้อง",
+ "Guests can join": "แขกเข้าร่วมได้",
+ "Hide panel": "ซ่อนหน้าต่าง",
+ "I understand the risks and wish to continue": "ฉันเข้าใจความเสี่ยงและต้องการดำเนินการต่อ",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "ล็อกจากไคลเอนต์จะถูกแนบพร้อมกับรายงานนี้เพื่อวินิจฉัยปัญหา หากคุณต้องการส่งเฉพาะข้อความด้านบน กรุณาเอาเครื่องหมายออก:",
+ "Invite to this room": "เชิญเข้าห้องนี้",
+ "Keywords": "คีย์เวิร์ด",
+ "Leave": "ออกจากห้อง",
+ "Loading bug report module": "กำลังโหลดโมดูลรายงานจุดบกพร่อง",
+ "Mentions only": "เมื่อถูกกล่าวถึงเท่านั้น",
+ "Messages containing my display name": "ข้อความที่มีชื่อของฉัน",
+ "Messages in group chats": "ข้อความในแชทกลุ่ม",
+ "Messages in one-to-one chats": "ข้อความในแชทตัวต่อตัว",
+ "Noisy": "เสียงดัง",
+ "Notification targets": "เป้าหมายการแจ้งเตือน",
+ "Notify for all other messages/rooms": "แจ้งเตือนจากห้อง/ข้อความอื่น ๆ ทั้งหมด",
+ "Notify me for anything else": "แจ้งเตือนสำหรับอย่างอื่นทั้งหมด",
+ "Remove %(name)s from the directory?": "ถอด %(name)s ออกจากไดเรกทอรี?",
+ "remove %(name)s from the directory.": "ถอด %(name)s ออกจากไดเรกทอรี",
+ "Remove from Directory": "ถอดออกจากไดเรกทอรี",
+ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot ใช้คุณสมบัติขั้นสูงในเบราว์เซอร์หลายประการ คุณสมบัติบางอย่างอาจยังไม่พร้อมใช้งานหรืออยู่ในขั้นทดลองในเบราว์เซอร์ปัจจุบันของคุณ",
+ "Room directory": "ไดเรกทอรีห้อง",
+ "There are advanced notifications which are not shown here": "มีการแจ้งเตือนขั้นสูงที่ไม่ได้แสดงที่นี่",
+ "This room is inaccessible to guests. You may be able to join if you register.": "แขกไม่มีสิทธิ์เข้าถึงห้องนี้ หากคุณลงทะเบียนคุณอาจเข้าร่วมได้",
+ "Unable to join network": "ไม่สามารถเข้าร่วมเครือข่ายได้",
+ "Unable to look up room ID from server": "ไม่สามารถหา ID ห้องจากเซิร์ฟเวอร์ได้",
+ "Unhide Preview": "แสดงตัวอย่าง",
+ "World readable": "ทุกคนอ่านได้",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "คุณอาจมีการตั้งค่าจากไคลเอนต์อื่นนอกจาก Riot การตั้งต่าเหล่านั้นยังถูกใช้งานอยู่แต่คุณจะปรับแต่งจากใน Riot ไม่ได้",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "การแสดงผลของโปรแกรมอาจผิดพลาด ฟังก์ชันบางอย่างหรือทั้งหมดอาจไม่ทำงานในเบราว์เซอร์ปัจจุบันของคุณ หากคุณต้องการลองดำเนินการต่อ คุณต้องรับมือกับปัญหาที่อาจจะเกิดขึ้นด้วยตัวคุณเอง!",
+ "Add an email address above to configure email notifications": "เพิ่มที่อยู่อีเมลข้างบนเพื่อตั้งค่าการแจ้งเตือนทางอีเมล",
+ "All notifications are currently disabled for all targets.": "การแจ้งเตือนทั้งหมดถูกปิดใช้งานสำหรับทุกอุปกรณ์",
+ "An error occurred whilst saving your email notification preferences.": "เกิดข้อผิดพลาดระหว่างบันทึกการตั้งค่าการแจ้งเตือนทางอีเมล",
+ "Couldn't find a matching Matrix room": "ไม่พบห้อง Matrix ที่ตรงกับคำค้นหา",
+ "customServer_text": "คุณสามารถกำหนดเซิร์ฟเวอร์บ้านเองได้โดยใส่ URL ของเซิร์ฟเวอร์นั้น เพื่อเข้าสู่ระบบของเซิร์ฟเวอร์ Matrix อื่น ทั้งนี่เพื่อให้คุณสามารถใช้ Riot กับบัญชี Matrix ที่มีอยู่แล้วบนเซิร์ฟเวอร์บ้านอื่น ๆ ได้
คุณอาจเลือกเซิร์ฟเวอร์ระบุตัวตนเองด้วยก็ได้ แต่คุณจะไม่สามารถเชิญผู้ใช้อื่นด้วยที่อยู่อีเมล หรือรับคำเชิญจากผู้ใช้อื่นทางที่อยู่อีเมลได้",
+ "delete the alias.": "ลบนามแฝง",
+ "Drop here %(toAction)s": "ปล่อยที่นี่ %(toAction)s",
+ "Error saving email notification preferences": "การบันทึกการตั้งค่าการแจ้งเตือนทางอีเมลผิดพลาด",
+ "Failed to add tag %(tagName)s to room": "การเพิ่มแท็ก %(tagName)s ของห้องนี้ล้มเหลว",
+ "Failed to change settings": "การแก้ไขการตั้งค่าล้มเหลว",
+ "Failed to get protocol list from Home Server": "การขอรายชื่อโปรโตคอลจากเซิร์ฟเวอร์บ้านล้มเหลว",
+ "Failed to get public room list": "การขอรายชื่อห้องสาธารณะล้มเหลว",
+ "Failed to set direct chat tag": "การติดแท็กแชทตรงล้มเหลว",
+ "Failed to set Direct Message status of room": "การตั้งสถานะข้อความตรงของห้องล้มเหลว",
+ "Favourite": "รายการโปรด",
+ "Failed to": "ล้มเหลวในการ",
+ "Fetching third party location failed": "การเรียกข้อมูลตำแหน่งจากบุคคลที่สามล้มเหลว",
+ "Guest users can't invite users. Please register to invite.": "แขกไม่สามารถเชิญผู้ใช้ได้ กรุณาลงทะเบียนเพื่อเชิญผู้อื่น",
+ "The Home Server may be too old to support third party networks": "เซิร์ฟเวอร์บ้านอาจเก่าเกินกว่าจะรองรับเครือข่ายของบุคคลที่สาม",
+ "The server may be unavailable or overloaded": "เซิร์ฟเวอร์อาจไม่พร้อมใช้งานหรือทำงานหนักเกินไป",
+ "Unable to fetch notification target list": "ไม่สามารถรับรายชื่ออุปกรณ์แจ้งเตือน",
+ "When I'm invited to a room": "เมื่อฉันได้รับคำเชิญเข้าห้อง",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "ลบนามแฝง %(alias)s ของห้องและถอด %(name)s ออกจากไดเรกทอรี?",
+ "Call invitation": "คำเชิญเข้าร่วมการโทร",
+ "Failed to forget room %(errCode)s": "การลืมห้องล้มเหลว %(errCode)s",
+ "Forget": "ลืม",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "การแจ้งเตือนจากคีย์เวิร์ดเหล่านี้ เป็นไปตามกฏที่ไม่สามารถแสดงที่นี่ได้:",
+ "Login": "เข้าสู่ระบบ",
+ "Welcome to Riot.im": "ยินดีต้อนรับสู่ Riot.im",
+ "Search the room directory": "ค้นหาในไดเรกทอรีห้อง",
+ "Chat with Riot Bot": "แชทกับบอท Riot",
+ "Get started with some tips from Riot Bot!": "มาเริ่มกันด้วยเคล็ดลับเล็กน้อยจากบอท Riot!",
+ "General discussion about Matrix": "พูดคุยเรื่องทั่วไปเกี่ยวกับ Matrix",
+ "Discussion of all things Matrix!": "พูดคุยทุกเรื่อง เรื่อง Matrix!",
+ "Riot/Web & Desktop chat": "แชทเกี่ยวกับ Riot บนเว็บและเดสก์ทอป",
+ "Riot/iOS & matrix-ios-sdk chat": "แชทเกี่ยวกับ Riot บน iOS และ matrix-ios-sdk",
+ "Riot/Android & matrix-android-sdk chat": "แชทเกี่ยวกับ Riot บน Android และ matrix-android-sdk",
+ "Matrix technical discussions": "พูดคุยเรื่อง Matrix ทางเทคนิค",
+ "Running Matrix services": "การติดตั้งบริการ Matrix",
+ "Community-run support for Synapse": "ฝ่ายสนับสนุน Synapse โดยชุมชนผู้ใช้",
+ "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",
+ "Implementing VR services with Matrix": "การอิมพลีเมนต์บริการ VR ด้วย Matrix",
+ "Implementing VoIP services with Matrix": "การอิมพลีเมนต์บริการ VoIP ด้วย Matrix",
+ "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": "แชทสำหรับทีมพัฒนา Dendrite",
+ "Co-ordination for Riot/Web translators": "แชทสำหรับประสานงานการแปล Riot บนเว็บ",
+ "Failed to change password. Is your password correct?": "การเปลี่ยนรหัสผ่านล้มเหลว รหัสผ่านของคุณถูกต้องหรือไม่?",
+ "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 ฯลฯ) และห้องที่อยู่ด้วยตัวเอง ลองดูไดเรกทอรีสิ!",
+ "You have successfully set a password!": "การตั้งรหัสผ่านเสร็จสมบูรณ์!",
+ "You can now return to your account after signing out, and sign in on other devices.": "คุณสามารถกลับไปยังบัญชีของคุณหลังจากออกจากระบบ แล้วกลับเขาสู่ระบบบนอุปกรณ์อื่น ๆ",
+ "Continue": "ดำเนินการต่อ",
+ "Please set a password!": "กรุณาตั้งรหัสผ่าน!",
+ "This will allow you to return to your account after signing out, and sign in on other devices.": "เพื่อคุณจะได้กลับมายังบัญชีเดิมของคุณได้ หลังจากออกจากระบบ แล้วกลับเข้าสู่ระบบในอุปกรณ์อื่น ๆ",
+ "Design and implementation of E2E in Matrix": "การออกแบบและใช้งาน E2E ใน Matrix",
+ "Discussion of the Identity Service API": "พูดคุยเกี่ยวกับ Identity Service API",
+ "Decentralised, encrypted chat & collaboration powered by [matrix]": "แชทและประสานงานบนระบบที่ทั้งเข้ารหัสได้และกระจายศูนย์กลาง โดยใช้เทคโนโลยีจาก [matrix]"
+}
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index b2feb6e3..d6f0930a 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -145,5 +145,20 @@
"Sorry, your browser is not able to run Riot.": "可惜你的瀏覽器 無法 執行 Riot.",
"The Home Server may be too old to support third party networks": "主機伺服器可能太老舊無法支援第三方網路",
"The server may be unavailable or overloaded": "伺服器可能過載或無法連取",
- "Unable to fetch notification target list": "無法抓取通知的目標清單"
+ "Unable to fetch notification target list": "無法抓取通知的目標清單",
+ "customServer_text": "你可以使用自定伺服器選項來登入其它的 Matrix 伺服器,只要在在主機伺服器網址上指定其網址資料。 這可讓你透過已有的 Matrix 帳號在不同的主機伺服器上使用 Riot。
你也可以設定自定的識別伺服器但你將無法透過電子郵件來邀請用戶或是以自己的電子郵件來接受別人的邀請。",
+ "In order to diagnose problems, logs from this client will be sent with this bug report. If you would prefer to only send the text above, please untick:": "為了診斷問題,來自客戶的活動記錄會隨著這個程式臭蟲報告一起送出。如果你只想送出以上文字,請取消勾選:",
+ "Notification targets": "通知標的",
+ "Notifications on the following keywords follow rules which can’t be displayed here:": "以下關鍵字依照規則其通知將不會顯示在此:",
+ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "請描述這個程式臭蟲,你作了什麼動作?你預期會發生什麼狀況?以及實際發生的狀況為何?",
+ "Please describe the bug and/or send logs.": "請描述這個程式臭蟲以及/或送出活動記錄。",
+ "Riot is not supported on mobile web. Install the app?": "Riot 不支援行動網頁,要下載應用程式嗎?",
+ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Roit 使用了許多先進的瀏覽器功能,有些在你目前所用的瀏覽器上無法使用或僅為試驗效能。",
+ "There are advanced notifications which are not shown here": "有些進階的通知並未在此顯現",
+ "World readable": "全世界可讀",
+ "You cannot delete this image. (%(code)s)": "你不能刪除這個圖片(%(code)s)",
+ "You are not receiving desktop notifications": "你將不會收到桌面通知",
+ "You are Rioting as a guest. Register or sign in to access more rooms and features!": "你目前以訪客身份使用 Riot 註冊 或 登錄 來使用更多聊天室和功能!",
+ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "你也許不曾在其它Riot之外的客戶端設定它們,在 Riot底下你無法調它們但其仍然可用",
+ "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "你目前的瀏覽器,其應用程式的外觀和感覺可能完全不正確,有些或全部功能可以無法使用。如果你仍想試,可以繼續但得自負後果。"
}
diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss
index 5f4b35ac..4637530b 100644
--- a/src/skins/vector/css/_components.scss
+++ b/src/skins/vector/css/_components.scss
@@ -3,6 +3,7 @@
@import "./matrix-react-sdk/structures/_ContextualMenu.scss";
@import "./matrix-react-sdk/structures/_CreateRoom.scss";
@import "./matrix-react-sdk/structures/_FilePanel.scss";
+@import "./matrix-react-sdk/structures/_LoginBox.scss";
@import "./matrix-react-sdk/structures/_MatrixChat.scss";
@import "./matrix-react-sdk/structures/_NotificationPanel.scss";
@import "./matrix-react-sdk/structures/_RoomStatusBar.scss";
@@ -17,7 +18,7 @@
@import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
-@import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
+@import "./matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss";
@import "./matrix-react-sdk/views/elements/_AccessibleButton.scss";
@import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
@@ -27,6 +28,7 @@
@import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
@import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
@import "./matrix-react-sdk/views/elements/_RichText.scss";
+@import "./matrix-react-sdk/views/elements/_RoleButton.scss";
@import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss";
@import "./matrix-react-sdk/views/login/_ServerConfig.scss";
@import "./matrix-react-sdk/views/messages/_MEmoteBody.scss";
@@ -69,10 +71,10 @@
@import "./vector-web/views/context_menus/_MessageContextMenu.scss";
@import "./vector-web/views/context_menus/_RoomTileContextMenu.scss";
@import "./vector-web/views/dialogs/_ChangelogDialog.scss";
+@import "./vector-web/views/dialogs/_SetPasswordDialog.scss";
@import "./vector-web/views/directory/_NetworkDropdown.scss";
@import "./vector-web/views/elements/_ImageView.scss";
@import "./vector-web/views/elements/_Spinner.scss";
-@import "./vector-web/views/globals/_GuestWarningBar.scss";
@import "./vector-web/views/globals/_MatrixToolbar.scss";
@import "./vector-web/views/messages/_MessageTimestamp.scss";
@import "./vector-web/views/messages/_SenderProfile.scss";
diff --git a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss b/src/skins/vector/css/matrix-react-sdk/structures/_LoginBox.scss
similarity index 63%
rename from src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
rename to src/skins/vector/css/matrix-react-sdk/structures/_LoginBox.scss
index f5bdbaf9..3c8091fe 100644
--- a/src/skins/vector/css/vector-web/views/globals/_GuestWarningBar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_LoginBox.scss
@@ -1,5 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2017 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,23 +14,23 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-.mx_GuestWarningBar {
+.mx_LoginBox_loginButton_wrapper {
+ text-align: center;
+ width: 100%;
+}
+
+.mx_LoginBox_loginButton {
+ margin-top: -8px;
+ height: 40px;
+ border: 0px;
+ border-radius: 40px;
+ padding-left: 1em;
+ padding-right: 1em;
+
background-color: $accent-color;
- color: $accent-fg-color;
+ color: $primary-bg-color;
- display: flex;
- align-items: center;
-}
-
-.mx_GuestWarningBar_warning {
- margin-left: 16px;
- margin-right: 8px;
- margin-top: -2px;
-}
-
-.mx_GuestWarningBar a {
- color: $accent-fg-color ! important;
- text-decoration: underline ! important;
cursor: pointer;
-}
+ font-size: 15px;
+}
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
index 10528b36..156b1709 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_MatrixChat.scss
@@ -41,12 +41,6 @@ limitations under the License.
height: 40px;
}
-.mx_GuestWarningBar {
- order: 1;
-
- height: 40px;
-}
-
.mx_MatrixChat_toolbarShowing {
height: auto;
}
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 94820549..805c817a 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -178,6 +178,7 @@ limitations under the License.
display: inline-block;
min-width: 170px;
align-self: flex-end;
+ flex: 1 1 auto;
}
.mx_Login_field_group {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatCreateOrReuseChatDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatCreateOrReuseChatDialog.scss
index 926e7411..0f358a58 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatCreateOrReuseChatDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatCreateOrReuseChatDialog.scss
@@ -20,8 +20,22 @@ limitations under the License.
.mx_ChatCreateOrReuseDialog .mx_Dialog_content {
margin-bottom: 24px;
+
+ /*
+ To stop spinner that mx_ChatCreateOrReuseDialog_profile replaces from causing a
+ height change
+ */
+ min-height: 100px;
}
.mx_ChatCreateOrReuseDialog .mx_RoomTile_badge {
display: none;
}
+
+.mx_ChatCreateOrReuseDialog_profile {
+ display: flex;
+}
+
+.mx_ChatCreateOrReuseDialog_profile_name {
+ padding: 14px;
+}
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
index 4a214b51..38bb4f01 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
@@ -34,6 +34,10 @@ limitations under the License.
word-wrap: nowrap;
}
+.mx_ChatInviteDialog .mx_Dialog_content {
+ min-height: 50px
+}
+
.mx_ChatInviteDialog_inputContainer {
border-radius: 3px;
border: solid 1px $input-border-color;
@@ -64,8 +68,3 @@ limitations under the License.
pointer-events: none;
}
-.mx_ChatInviteDialog_addressSelectHeader {
- font-weight: bold;
- line-height: 150%;
- text-indent: 4px;
-}
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss
new file mode 100644
index 00000000..f7d8a3d0
--- /dev/null
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss
@@ -0,0 +1,50 @@
+/*
+Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2017 Vector Creations Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_SetMxIdDialog .mx_Dialog_title {
+ padding-right: 40px;
+}
+
+.mx_SetMxIdDialog_input_group {
+ display: flex;
+}
+
+.mx_SetMxIdDialog_input {
+ border-radius: 3px;
+ border: 1px solid $input-border-color;
+ padding: 9px;
+ color: $primary-fg-color;
+ background-color: $primary-bg-color;
+ font-size: 15px;
+ width: 100%;
+ max-width: 280px;
+}
+
+.mx_SetMxIdDialog_input.error,
+.mx_SetMxIdDialog_input.error:focus {
+ border: 1px solid $warning-color;
+}
+
+.mx_SetMxIdDialog_input_group .mx_Spinner {
+ height: 37px;
+ padding-left: 10px;
+ justify-content: flex-start;
+}
+
+.mx_SetMxIdDialog .success {
+ color: $accent-color;
+}
diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_RoleButton.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_RoleButton.scss
new file mode 100644
index 00000000..094e0b9b
--- /dev/null
+++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_RoleButton.scss
@@ -0,0 +1,33 @@
+/*
+Copyright 2107 Vector Creations Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_RoleButton {
+ margin-left: 4px;
+ margin-right: 4px;
+ cursor: pointer;
+ display: inline-block;
+}
+
+.mx_RoleButton object {
+ pointer-events: none;
+}
+
+.mx_RoleButton_tooltip {
+ display: inline-block;
+ position: relative;
+ top: -25px;
+ left: 6px;
+}
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index 5542d18d..a980d1f9 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -63,7 +63,9 @@ limitations under the License.
white-space: nowrap;
color: $event-timestamp-color;
font-size: 10px;
- left: 8px;
+ left: 0px;
+ width: 46px; /* 8 + 30 (avatar) + 8 */
+ text-align: center;
position: absolute;
}
@@ -189,6 +191,7 @@ limitations under the License.
.mx_EventTile_selected .mx_MessageTimestamp {
left: 3px;
+ width: auto;
}
.mx_EventTile_editButton {
@@ -271,10 +274,6 @@ limitations under the License.
padding-left: 5px;
}
-.mx_EventTile_12hr .mx_MessageTimestamp {
- text-align: center;
-}
-
.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line,
.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line {
padding-left: 60px;
@@ -296,6 +295,7 @@ limitations under the License.
.mx_EventTile:hover.mx_EventTile_verified .mx_MessageTimestamp,
.mx_EventTile:hover.mx_EventTile_unverified .mx_MessageTimestamp {
left: 3px;
+ width: auto;
}
/*
@@ -332,6 +332,24 @@ limitations under the License.
.mx_EventTile_content .markdown-body code {
background-color: #f8f8f8;
}
+.mx_EventTile_copyButton {
+ position: absolute;
+ display: inline-block;
+ visibility: hidden;
+ cursor: pointer;
+ top: 6px;
+ right: 6px;
+ width: 19px;
+ height: 19px;
+ background-image: url($copy-button-url);
+}
+.mx_EventTile_body pre {
+ position: relative;
+}
+.mx_EventTile_body pre:hover .mx_EventTile_copyButton
+{
+ visibility: visible;
+}
.mx_EventTile_content .markdown-body h1,
.mx_EventTile_content .markdown-body h2,
@@ -410,6 +428,10 @@ limitations under the License.
top: 7px;
}
+ .mx_EventTile_editButton {
+ top: 3px;
+ }
+
.mx_EventTile_readAvatars {
top: 27px;
}
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
index 110dcd5b..35787ca0 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2107 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -37,3 +38,25 @@ limitations under the License.
.mx_RoomList_scrollbar .gm-scrollbar.-vertical {
z-index: 6;
}
+
+.mx_RoomList_emptySubListTip {
+ font-size: 13px;
+ margin-left: 18px;
+ margin-right: 18px;
+ margin-top: 8px;
+ margin-bottom: 7px;
+ padding: 5px;
+ border: 1px dashed $accent-color;
+ color: $primary-fg-color;
+ background-color: $droptarget-bg-color;
+ border-radius: 4px;
+}
+
+.mx_RoomList_emptySubListTip .mx_RoleButton {
+ vertical-align: -3px;
+}
+
+.mx_RoomList_headerButtons {
+ position: absolute;
+ right: 60px;
+}
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index b6011913..fc24af93 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -102,6 +102,7 @@ $event-redacted-img: url('../../img/redacted.jpg');
$event-timestamp-color: #acacac;
$edit-button-url: "../../img/icon_context_message.svg";
+$copy-button-url: "../../img/icon_copy_message.svg";
// e2e
$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
@@ -114,4 +115,4 @@ $lightbox-fg-color: #ffffff;
$lightbox-border-color: #ffffff;
// unused?
-$progressbar-color: #000;
\ No newline at end of file
+$progressbar-color: #000;
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index 72c21b75..fe2e7591 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -102,6 +102,7 @@ $event-redacted-img: url('../../img/redacted-dark.jpg');
$event-timestamp-color: #acacac;
$edit-button-url: "../../img/icon_context_message_dark.svg";
+$copy-button-url: "../../img/icon_copy_message_dark.svg";
// e2e
$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
diff --git a/src/skins/vector/css/vector-web/structures/_HomePage.scss b/src/skins/vector/css/vector-web/structures/_HomePage.scss
index e2af399d..cdac1bcc 100644
--- a/src/skins/vector/css/vector-web/structures/_HomePage.scss
+++ b/src/skins/vector/css/vector-web/structures/_HomePage.scss
@@ -19,16 +19,17 @@ limitations under the License.
max-width: 960px;
width: 100%;
height: 100%;
- overflow-y: hidden;
margin-left: auto;
margin-right: auto;
}
+
.mx_HomePage iframe {
+ display: block;
width: 100%;
- height: 90%;
+ height: 100%;
border: 0px;
}
.mx_HomePage_body {
- margin-left: 63px;
+// margin-left: 63px;
}
diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
index 277d10d1..418358dd 100644
--- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
@@ -64,47 +64,33 @@ limitations under the License.
pointer-events: none;
}
-.mx_LeftPanel .mx_BottomLeftMenu_homePage,
-.mx_LeftPanel .mx_BottomLeftMenu_directory,
-.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
-.mx_LeftPanel .mx_BottomLeftMenu_people,
-.mx_LeftPanel .mx_BottomLeftMenu_settings {
- display: inline-block;
- cursor: pointer;
-}
-
-.collapsed .mx_BottomLeftMenu_homePage,
-.collapsed .mx_BottomLeftMenu_directory,
-.collapsed .mx_BottomLeftMenu_createRoom,
-.collapsed .mx_BottomLeftMenu_people,
-.collapsed .mx_BottomLeftMenu_settings {
+.collapsed .mx_RoleButton {
margin-right: 0px ! important;
padding-top: 3px ! important;
padding-bottom: 3px ! important;
}
-.mx_LeftPanel .mx_BottomLeftMenu_homePage,
-.mx_LeftPanel .mx_BottomLeftMenu_directory,
-.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
-.mx_LeftPanel .mx_BottomLeftMenu_people {
+.mx_BottomLeftMenu_options > div {
+ display: inline-block;
+}
+
+.mx_BottomLeftMenu_options .mx_RoleButton {
+ margin-left: 0px;
margin-right: 10px;
}
-.mx_LeftPanel .mx_BottomLeftMenu_settings {
+.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings {
float: right;
}
+.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings .mx_RoleButton {
+ margin-right: 0px;
+}
+
.mx_LeftPanel.collapsed .mx_BottomLeftMenu_settings {
float: none;
}
-.mx_LeftPanel .mx_BottomLeftMenu_tooltip {
- display: inline-block;
- position: relative;
- top: -25px;
- left: 6px;
-}
-
.mx_MatrixChat_useCompactLayout {
.mx_LeftPanel .mx_BottomLeftMenu {
flex: 0 0 50px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss b/src/skins/vector/css/vector-web/views/dialogs/_SetPasswordDialog.scss
similarity index 70%
rename from src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
rename to src/skins/vector/css/vector-web/views/dialogs/_SetPasswordDialog.scss
index 2f0750ad..28a8b7c9 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss
+++ b/src/skins/vector/css/vector-web/views/dialogs/_SetPasswordDialog.scss
@@ -1,5 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,11 +14,22 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-.mx_SetDisplayNameDialog_input {
+.mx_SetPasswordDialog_change_password input {
border-radius: 3px;
border: 1px solid $input-border-color;
padding: 9px;
color: $primary-fg-color;
background-color: $primary-bg-color;
font-size: 15px;
-}
\ No newline at end of file
+ width: 100%;
+ max-width: 280px;
+ margin-bottom: 10px;
+}
+
+.mx_SetPasswordDialog_change_password_button {
+ margin-top: 68px;
+}
+
+.mx_SetPasswordDialog .mx_Dialog_content {
+ margin-bottom: 0px;
+}
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index 5a0b23ae..1a7b1c16 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -39,6 +39,10 @@ limitations under the License.
cursor: pointer;
}
+.mx_MatrixToolbar_clickable {
+ cursor: pointer;
+}
+
.mx_MatrixToolbar_close {
cursor: pointer;
}
diff --git a/src/skins/vector/img/icon_copy_message.svg b/src/skins/vector/img/icon_copy_message.svg
new file mode 100644
index 00000000..8d8887bb
--- /dev/null
+++ b/src/skins/vector/img/icon_copy_message.svg
@@ -0,0 +1,86 @@
+
+
diff --git a/src/skins/vector/img/icon_copy_message_dark.svg b/src/skins/vector/img/icon_copy_message_dark.svg
new file mode 100644
index 00000000..b81e617d
--- /dev/null
+++ b/src/skins/vector/img/icon_copy_message_dark.svg
@@ -0,0 +1,77 @@
+
+
diff --git a/src/vector/platform/WebPlatform.js b/src/vector/platform/WebPlatform.js
index 8397a7f7..b9e941e6 100644
--- a/src/vector/platform/WebPlatform.js
+++ b/src/vector/platform/WebPlatform.js
@@ -160,8 +160,8 @@ export default class WebPlatform extends VectorBasePlatform {
const appName = u.format();
const ua = new UAParser();
- const browserName = ua.getBrowser().name;
- const osName = ua.getOS().name;
+ const browserName = ua.getBrowser().name || "unknown browser";
+ const osName = ua.getOS().name || "unknown os";
return _t('%(appName)s via %(browserName)s on %(osName)s', {appName: appName, browserName: browserName, osName: osName});
}
diff --git a/test/app-tests/joining.js b/test/app-tests/joining.js
index 7aaaaec8..24a4ceed 100644
--- a/test/app-tests/joining.js
+++ b/test/app-tests/joining.js
@@ -88,13 +88,13 @@ describe('joining a room', function () {
var mc = (
{throw new Error("unimplemented");}}
+ initialScreenAfterLogin={{
+ screen: 'directory',
+ }}
/>
);
matrixChat = ReactDOM.render(mc, parentDiv);
- // switch to the Directory
- matrixChat._setPage(PageTypes.RoomDirectory);
-
var roomView;
// wait for /sync to happen. This may take some time, as the client
@@ -138,7 +138,11 @@ describe('joining a room', function () {
httpBackend.when('GET', '/directory/room/'+encodeURIComponent(ROOM_ALIAS)).respond(200, { room_id: ROOM_ID });
httpBackend.when('GET', '/rooms/'+encodeURIComponent(ROOM_ID)+"/initialSync")
.respond(401, {errcode: 'M_GUEST_ACCESS_FORBIDDEN'});
- return httpBackend.flush();
+
+ return q.all([
+ httpBackend.flush('/directory/room/'+encodeURIComponent(ROOM_ALIAS)),
+ httpBackend.flush('/rooms/'+encodeURIComponent(ROOM_ID)+"/initialSync"),
+ ]);
}).then(() => {
httpBackend.verifyNoOutstandingExpectation();
@@ -146,30 +150,27 @@ describe('joining a room', function () {
roomView = ReactTestUtils.findRenderedComponentWithType(
matrixChat, RoomView);
- var previewBar = ReactTestUtils.findRenderedComponentWithType(
+ const previewBar = ReactTestUtils.findRenderedComponentWithType(
roomView, RoomPreviewBar);
- var joinLink = ReactTestUtils.findRenderedDOMComponentWithTag(
+ const joinLink = ReactTestUtils.findRenderedDOMComponentWithTag(
previewBar, 'a');
ReactTestUtils.Simulate.click(joinLink);
- // that will fire off a request to check our displayname, followed by a
- // join request
- httpBackend.when('GET', '/profile/'+encodeURIComponent(USER_ID))
- .respond(200, {displayname: 'boris'});
- httpBackend.when('POST', '/join/'+encodeURIComponent(ROOM_ALIAS))
+ httpBackend.when('POST', '/join/'+encodeURIComponent(ROOM_ID))
.respond(200, {room_id: ROOM_ID});
- return httpBackend.flush();
}).then(() => {
// wait for the join request to be made
return q.delay(1);
}).then(() => {
- // flush it through
- return httpBackend.flush();
+ // and again, because the state update has to go to the store and
+ // then one dispatch within the store, then to the view
+ // XXX: This is *super flaky*: a better way would be to declare
+ // that we expect a certain state transition to happen, then wait
+ // for that transition to occur.
+ return q.delay(1);
}).then(() => {
- httpBackend.verifyNoOutstandingExpectation();
-
// the roomview should now be loading
expect(roomView.state.room).toBe(null);
expect(roomView.state.joining).toBe(true);
@@ -178,6 +179,16 @@ describe('joining a room', function () {
ReactTestUtils.findRenderedDOMComponentWithClass(
roomView, "mx_Spinner");
+ // flush it through
+ return httpBackend.flush('/join/'+encodeURIComponent(ROOM_ID));
+ }).then(() => {
+ httpBackend.verifyNoOutstandingExpectation();
+
+ return q.delay(1);
+ }).then(() => {
+ // We've joined, expect this to false
+ expect(roomView.state.joining).toBe(false);
+
// now send the room down the /sync pipe
httpBackend.when('GET', '/sync').
respond(200, {
@@ -197,7 +208,6 @@ describe('joining a room', function () {
}).then(() => {
// now the room should have loaded
expect(roomView.state.room).toExist();
- expect(roomView.state.joining).toBe(false);
}).done(done, done);
});
});
diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 86fad118..b6e4324f 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -122,7 +122,7 @@ describe('loading:', function () {
function routeUrl(location, matrixChat) {
console.log(Date.now() + ` routing URL '${location}'`);
const s = getScreenFromLocation(location);
- console.log("Showing screen "+ s);
+ console.log("Showing screen ", s);
matrixChat.showScreen(s.screen, s.params);
}
@@ -196,7 +196,7 @@ describe('loading:', function () {
// Wait for another trip around the event loop for the UI to update
return q.delay(1);
}).then(() => {
- // we expect a single component
+ // we expect a single component following session load
ReactTestUtils.findRenderedComponentWithType(
matrixChat, sdk.getComponent('structures.login.Login'));
expect(windowLocation.hash).toEqual("");
@@ -273,7 +273,7 @@ describe('loading:', function () {
localStorage.setItem("mx_user_id", "@me:localhost");
});
- it('shows a directory by default if we have no joined rooms', function(done) {
+ it('shows a home page by default if we have no joined rooms', function(done) {
httpBackend.when('GET', '/pushrules').respond(200, {});
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
@@ -283,11 +283,11 @@ describe('loading:', function () {
// we got a sync spinner - let the sync complete
return expectAndAwaitSync();
}).then(() => {
- // once the sync completes, we should have a directory
+ // once the sync completes, we should have a home page
httpBackend.verifyNoOutstandingExpectation();
ReactTestUtils.findRenderedComponentWithType(
- matrixChat, sdk.getComponent('structures.RoomDirectory'));
- expect(windowLocation.hash).toEqual("#/directory");
+ matrixChat, sdk.getComponent('structures.HomePage'));
+ expect(windowLocation.hash).toEqual("#/home");
}).done(done, done);
});
@@ -314,7 +314,7 @@ describe('loading:', function () {
});
describe('Guest auto-registration:', function() {
- it('shows a directory by default', function (done) {
+ it('shows a home page by default', function (done) {
loadApp();
q.delay(1).then(() => {
@@ -336,11 +336,11 @@ describe('loading:', function () {
// we got a sync spinner - let the sync complete
return expectAndAwaitSync();
}).then(() => {
- // once the sync completes, we should have a directory
+ // once the sync completes, we should have a home page
httpBackend.verifyNoOutstandingExpectation();
ReactTestUtils.findRenderedComponentWithType(
- matrixChat, sdk.getComponent('structures.RoomDirectory'));
- expect(windowLocation.hash).toEqual("#/directory");
+ matrixChat, sdk.getComponent('structures.HomePage'));
+ expect(windowLocation.hash).toEqual("#/home");
}).done(done, done);
});
@@ -371,11 +371,11 @@ describe('loading:', function () {
}).then((req) => {
expect(req.path).toMatch(new RegExp("^https://homeserver/"));
- // once the sync completes, we should have a directory
+ // once the sync completes, we should have a home page
httpBackend.verifyNoOutstandingExpectation();
ReactTestUtils.findRenderedComponentWithType(
- matrixChat, sdk.getComponent('structures.RoomDirectory'));
- expect(windowLocation.hash).toEqual("#/directory");
+ matrixChat, sdk.getComponent('structures.HomePage'));
+ expect(windowLocation.hash).toEqual("#/home");
expect(MatrixClientPeg.get().baseUrl).toEqual("https://homeserver");
expect(MatrixClientPeg.get().idBaseUrl).toEqual("https://idserver");
}).done(done, done);