From 71d0ecf37daec0d737a10ef3e11828ce55935506 Mon Sep 17 00:00:00 2001 From: Tong Hui Date: Fri, 10 Nov 2017 14:14:35 +0000 Subject: [PATCH 001/163] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (217 of 217 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hans/ --- src/i18n/strings/zh_Hans.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 0a1465b4cf..1d06ef7daf 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -203,5 +203,19 @@ "Event sent!": "事件已发出!", "Event Type": "事件类型", "Event Content": "事件内容", - "State Key": "状态密钥" + "State Key": "状态密钥", + "Show message in desktop notification": "在桌面通知中显示信息", + "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.": "您可以使用自订的服务器选项,并指定不同的主服务器 URL 来登录其他的 Matrix 服务器。
这让您可以在不同的服务器上以既有的 Matrix 帐号使用 Riot。

您也可以设置一个自订的身份服务器,但您可能无法透过电子邮件地址来邀请用户,或是让别人透过电子邮件邀请您。", + "Toolbox": "工具箱", + "Back": "返回", + "Edit": "编辑", + "Send Account Data": "发送账户数据", + "Explore Account Data": "探索账户数据", + "Explore Room State": "探索聊天室状态", + "Unpin Message": "取消置顶消息", + "Pin Message": "置顶消息", + "Register": "注册", + "Rooms": "聊天室", + "Invite to this community": "邀请加入此社区", + "Add rooms to this community": "添加聊天室到此社区" } From 261f91da6ef4d07ae18590e1dfa641338db4c65c Mon Sep 17 00:00:00 2001 From: Bamstam Date: Mon, 13 Nov 2017 14:04:39 +0000 Subject: [PATCH 002/163] Translated using Weblate (German) Currently translated at 100.0% (217 of 217 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/ --- src/i18n/strings/de_DE.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 196bdc9a36..89ab4cf54c 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -216,6 +216,6 @@ "Invite to this community": "In diese Community einladen", "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.": "Die benutzerdefinierten Server-Einstellungen kannst du verwenden, um dich auf anderen Matrix-Servern anzumelden, indem du eine abweichende Heimserver-URL eingibst.
Somit ist es möglich, Riot mit einem bereits bestehendem Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.

Außerdem kannst du einen benutzerdefinierten Identitätsserver eingeben. Allerdings kannst du in diesem Fall Benutzer nicht mehr per E-Mail-Adresse einladen und auch selbst nicht mehr per E-Mail-Adresse eingeladen werden.", "Toolbox": "Werkzeugkasten", - "Explore Account Data": "Daten des Benutzerkontos erkunden", - "Send Account Data": "Sende Benutzerkonto-Daten" + "Explore Account Data": "Benutzerkonto-Daten analysieren", + "Send Account Data": "Benutzerkonto-Daten senden" } From e540fd40cb215af986ae0dbd8c459dd8b7811da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Tue, 14 Nov 2017 14:04:59 +0000 Subject: [PATCH 003/163] Translated using Weblate (Slovak) Currently translated at 100.0% (217 of 217 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/ --- src/i18n/strings/sk.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 01ecc78819..d33b51b755 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -178,7 +178,7 @@ "Couldn't find a matching Matrix room": "Nie je možné nájsť zodpovedajúcu Matrix miestnosť", "Fetching third party location failed": "Nepodarilo sa získať umiestnenie tretej strany", "Unable to look up room ID from server": "Nie je možné vyhľadať ID miestnosti na servery", - "World readable": "Viditeľná pre všetkých", + "World readable": "Viditeľné pre každého", "Guests can join": "Pripojiť sa môžu aj hostia", "Directory": "Adresár", "No rooms to show": "Žiadne miestnosti na zobrazenie", From 8bd66b93c5ab32b6f12872bc11f649a776ba35b4 Mon Sep 17 00:00:00 2001 From: Bamstam Date: Wed, 15 Nov 2017 00:22:06 +0000 Subject: [PATCH 004/163] Translated using Weblate (German) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/ --- src/i18n/strings/de_DE.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 89ab4cf54c..44a91dc055 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -217,5 +217,7 @@ "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.": "Die benutzerdefinierten Server-Einstellungen kannst du verwenden, um dich auf anderen Matrix-Servern anzumelden, indem du eine abweichende Heimserver-URL eingibst.
Somit ist es möglich, Riot mit einem bereits bestehendem Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.

Außerdem kannst du einen benutzerdefinierten Identitätsserver eingeben. Allerdings kannst du in diesem Fall Benutzer nicht mehr per E-Mail-Adresse einladen und auch selbst nicht mehr per E-Mail-Adresse eingeladen werden.", "Toolbox": "Werkzeugkasten", "Explore Account Data": "Benutzerkonto-Daten analysieren", - "Send Account Data": "Benutzerkonto-Daten senden" + "Send Account Data": "Benutzerkonto-Daten senden", + "Away": "Abwesend", + "Appear Offline": "Als offline anzeigen" } From a9cd62633e8e5e9f8765e77eda1166d7aa2eabd7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 15 Nov 2017 04:44:06 +0000 Subject: [PATCH 005/163] Translated using Weblate (Russian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/ --- src/i18n/strings/ru.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 48415323bd..8ef08f4627 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -217,5 +217,7 @@ "Add rooms to this community": "Добавить комнаты в это сообщество", "Toolbox": "Панель инструментов", "Send Account Data": "Отправить данные аккаунта", - "Explore Account Data": "Просмотр данных аккаунта" + "Explore Account Data": "Просмотр данных аккаунта", + "Away": "Нет на месте", + "Appear Offline": "Отображать как не в сети" } From 3a2c778e1c32ef5bc22b8eb7dbebb834942c95bd Mon Sep 17 00:00:00 2001 From: Szimszon Date: Wed, 15 Nov 2017 05:52:04 +0000 Subject: [PATCH 006/163] Translated using Weblate (Hungarian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/ --- src/i18n/strings/hu.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 4fe423371d..cf83fb0ca4 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -217,5 +217,7 @@ "Add rooms to this community": "Szobák hozzáadása ehhez a közösséghez", "Toolbox": "Szerszámok", "Send Account Data": "Fiók adatok küldése", - "Explore Account Data": "Fiók adatok böngészése" + "Explore Account Data": "Fiók adatok böngészése", + "Appear Offline": "Kapcsolat nélkülinek tűnik", + "Away": "Távol" } From 0a55c87dd33d9422e0c38d1e30ce82a6c4fed404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Wed, 15 Nov 2017 16:30:41 +0000 Subject: [PATCH 007/163] Translated using Weblate (French) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 9e365cde0e..193d9e7d93 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -217,5 +217,7 @@ "Invite to this community": "Inviter à cette communauté", "Toolbox": "Boîte à outils", "Send Account Data": "Envoyer les données du compte", - "Explore Account Data": "Explorer les données du compte" + "Explore Account Data": "Explorer les données du compte", + "Appear Offline": "Apparaître Hors ligne", + "Away": "Absent" } From 311bdf71fb9e48737c3ca30edf125ecd37eb26d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Wed, 15 Nov 2017 22:56:22 +0000 Subject: [PATCH 008/163] Added translation using Weblate (Serbian) --- src/i18n/strings/sr.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/sr.json diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/sr.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 84c5ce1b4e6c02d8ca653a62da748e24d8ba7590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=86=E5=B9=B4?= Date: Thu, 16 Nov 2017 02:38:20 +0000 Subject: [PATCH 009/163] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hans/ --- src/i18n/strings/zh_Hans.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 1d06ef7daf..caaa3d2de8 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -217,5 +217,7 @@ "Register": "注册", "Rooms": "聊天室", "Invite to this community": "邀请加入此社区", - "Add rooms to this community": "添加聊天室到此社区" + "Add rooms to this community": "添加聊天室到此社区", + "Appear Offline": "似乎离线了", + "Away": "离开状态" } From 4657f89b3ecee3dc1e9a13de604efc9c1426e6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Wed, 15 Nov 2017 23:06:32 +0000 Subject: [PATCH 010/163] Translated using Weblate (Serbian) Currently translated at 18.2% (40 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/ --- src/i18n/strings/sr.json | 43 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json index 9e26dfeeb6..966a547f63 100644 --- a/src/i18n/strings/sr.json +++ b/src/i18n/strings/sr.json @@ -1 +1,42 @@ -{} \ No newline at end of file +{ + "Riot is not supported on mobile web. Install the app?": "RIot не ради на мобилном вебу. Инсталирати апликацију?", + "Collecting app version information": "Прикупљам податке о издању апликације", + "Collecting logs": "Прикупљам записнике", + "Uploading report": "Отпремам извештај", + "Waiting for response from server": "Чекам на одговор са сервера", + "Riot Desktop on %(platformName)s": "Riot стони програм за %(platformName)s", + "Unknown device": "Непознати уређај", + "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s преко прегледача %(browserName)s на систему %(osName)s", + "You need to be using HTTPS to place a screen-sharing call.": "Морате користити HTTPS да бисте започели позив са дељењем екрана.", + "Messages containing my display name": "Поруке које садрже моје приказно име", + "Messages containing my user name": "Поруке које садрже моје корисничко име", + "Messages in one-to-one chats": "Поруке у један-на-један ћаскањима", + "Messages in group chats": "Поруке у групним ћаскањима", + "When I'm invited to a room": "Када сам позван у собу", + "Call invitation": "Позивница за позив", + "Messages sent by bot": "Поруке послате од бота", + "Error saving email notification preferences": "Грешка при чувању поставки мејл обавештења", + "An error occurred whilst saving your email notification preferences.": "Догодила се грешка при чувању ваших поставки мејл обавештења.", + "Keywords": "Кључне речи", + "Enter keywords separated by a comma:": "Унесите кључне речи одвојене зарезима:", + "OK": "У реду", + "Failed to change settings": "Нисам успео да променим подешавања", + "Operation failed": "Радња није успела", + "Can't update user notification settings": "Не могу да ажурирам корисничка подешавања обавештења", + "Failed to update keywords": "Нисам успео да ажурирам кључне речи", + "Messages containing keywords": "Поруке које садрже кључне речи", + "Notify for all other messages/rooms": "Обавести за све друге поруке и собе", + "Notify me for anything else": "Обавести ме за било шта друго", + "Enable notifications for this account": "Омогући обавештења за овај налог", + "All notifications are currently disabled for all targets.": "Сва обавештења су тренутно онемогућена за све циљеве.", + "Add an email address above to configure email notifications": "Додајте мејл адресу изнад да бисте подесили мејл обавештења", + "Enable email notifications": "Омогући мејл обавештења", + "Notifications on the following keywords follow rules which can’t be displayed here:": "Обавештења за следеће кључне речи прате правила која не могу бити приказана овде:", + "Unable to fetch notification target list": "Не могу да досегнем списак циљева за обавештења", + "Notification targets": "Циљеви обавештења", + "Advanced notification settings": "Напредна подешавања обавештења", + "There are advanced notifications which are not shown here": "Постоје напредна обавештења која нису приказана овде", + "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Можда сте их подесили у неком другом клијенту а не Riot-у. Не можете их преправљати у Riot-у али се и даље примењују", + "Enable desktop notifications": "Омогући стона обавештења", + "Show message in desktop notification": "Прикажи поруку у стоном обавештењу" +} From 3c9210e3761d4a6e53f45e98a2cbb68d8b9d48c9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 16 Nov 2017 12:09:10 +0000 Subject: [PATCH 011/163] Translated using Weblate (Russian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/ --- src/i18n/strings/ru.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 8ef08f4627..77fb55ffae 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -219,5 +219,7 @@ "Send Account Data": "Отправить данные аккаунта", "Explore Account Data": "Просмотр данных аккаунта", "Away": "Нет на месте", - "Appear Offline": "Отображать как не в сети" + "Appear Offline": "Отображать как не в сети", + "Please install Chrome or Firefox for the best experience.": "Лучший опыт вы получите, установив Chrome или Firefox.", + "Safari and Opera work too.": "Safari и Opera работают тоже." } From 63c4a14dc242d1b8ebc78a08ef7ec3bf5d18b1ac Mon Sep 17 00:00:00 2001 From: Bamstam Date: Thu, 16 Nov 2017 12:37:32 +0000 Subject: [PATCH 012/163] Translated using Weblate (German) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/ --- src/i18n/strings/de_DE.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 44a91dc055..af0f03d3b7 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -219,5 +219,7 @@ "Explore Account Data": "Benutzerkonto-Daten analysieren", "Send Account Data": "Benutzerkonto-Daten senden", "Away": "Abwesend", - "Appear Offline": "Als offline anzeigen" + "Appear Offline": "Als offline anzeigen", + "Safari and Opera work too.": "Safari und Opera sind weitere Alternativen.", + "Please install Chrome or Firefox for the best experience.": "Bitte installiere Chrome oder Firefox für ein optimales Anwendungsergebnis." } From 1e5fabed977447cbd8fbaf4a9684e158b48066e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Thu, 16 Nov 2017 12:58:52 +0000 Subject: [PATCH 013/163] Translated using Weblate (Slovak) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/ --- src/i18n/strings/sk.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index d33b51b755..a3af1a4867 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -215,5 +215,9 @@ "Contributing code to Matrix and Riot": "Prispievanie kódu projektom Matrix a Riot", "Dev chat for the Riot/Web dev team": "Diskusia pre tím vývojárov Riot/Web", "Dev chat for the Dendrite dev team": "Diskusia pre tím vývojárov Dendrite", - "Co-ordination for Riot/Web translators": "Koordinácia prekladov Riot/Web" + "Co-ordination for Riot/Web translators": "Koordinácia prekladov Riot/Web", + "Appear Offline": "Zdá sa byť nedostupný", + "Away": "Preč", + "Please install Chrome or Firefox for the best experience.": "Aby ste s používania mali čo možno najlepší dojem, nainštalujte si Chrome alebo Firefox.", + "Safari and Opera work too.": "Správne fungujú aj Safari a Opera." } From e788f231486729abf48f23ddde7e9f2659e74fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 16 Nov 2017 16:04:24 +0000 Subject: [PATCH 014/163] Translated using Weblate (French) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 193d9e7d93..589d730b7d 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -219,5 +219,7 @@ "Send Account Data": "Envoyer les données du compte", "Explore Account Data": "Explorer les données du compte", "Appear Offline": "Apparaître Hors ligne", - "Away": "Absent" + "Away": "Absent", + "Please install Chrome or Firefox for the best experience.": "Veuillez installer Chrome ou Firefox pour une expérience optimale.", + "Safari and Opera work too.": "Safari et Opera fonctionnent également." } From 38cdc0782d382a5eeaf88f242264fc5729899e5e Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 16 Nov 2017 19:45:23 +0000 Subject: [PATCH 015/163] Translated using Weblate (Hungarian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/ --- src/i18n/strings/hu.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index cf83fb0ca4..1a90d04677 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -219,5 +219,7 @@ "Send Account Data": "Fiók adatok küldése", "Explore Account Data": "Fiók adatok böngészése", "Appear Offline": "Kapcsolat nélkülinek tűnik", - "Away": "Távol" + "Away": "Távol", + "Please install Chrome or Firefox for the best experience.": "A legjobb élmény érdekében telepíts Chromeot vagy Firefoxot.", + "Safari and Opera work too.": "Működik Safari és Opera böngészővel is." } From eff2c140f62e13af775607b5068199b1c791650d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Thu, 16 Nov 2017 21:07:36 +0000 Subject: [PATCH 016/163] Translated using Weblate (Serbian) Currently translated at 27.8% (61 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/ --- src/i18n/strings/sr.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json index 966a547f63..21d85c931e 100644 --- a/src/i18n/strings/sr.json +++ b/src/i18n/strings/sr.json @@ -38,5 +38,26 @@ "There are advanced notifications which are not shown here": "Постоје напредна обавештења која нису приказана овде", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Можда сте их подесили у неком другом клијенту а не Riot-у. Не можете их преправљати у Riot-у али се и даље примењују", "Enable desktop notifications": "Омогући стона обавештења", - "Show message in desktop notification": "Прикажи поруку у стоном обавештењу" + "Show message in desktop notification": "Прикажи поруку у стоном обавештењу", + "Enable audible notifications in web client": "Омогући звучна обавештења у веб клијенту", + "Off": "Искључено", + "On": "Укључено", + "Noisy": "Бучно", + "Failed to set direct chat tag": "Нисам успео да поставим ознаку директног ћаскања", + "Failed to remove tag %(tagName)s from room": "Нисам успео да уклоним ознаку %(tagName)s са собе", + "Failed to add tag %(tagName)s to room": "Нисам успео да додам ознаку %(tagName)s на собу", + "Search…": "Претрага…", + "Search": "Претрага", + "This Room": "Ова соба", + "All Rooms": "Све собе", + "Sunday": "Недеља", + "Monday": "Понедељак", + "Tuesday": "Уторак", + "Wednesday": "Среда", + "Thursday": "Четвртак", + "Friday": "Петак", + "Saturday": "Субота", + "Today": "Данас", + "Yesterday": "Јуче", + "Custom Server Options": "Опције прилагођеног сервера" } From ee35fdb4835b8176c958ac554838595ac49b2f54 Mon Sep 17 00:00:00 2001 From: Walter Date: Fri, 17 Nov 2017 20:19:00 +0000 Subject: [PATCH 017/163] Translated using Weblate (Ukrainian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/uk/ --- src/i18n/strings/uk.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 2e3cf61285..459430f15f 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -216,5 +216,10 @@ "Add rooms to this community": "Добавити кімнати в це суспільство", "Toolbox": "Панель інструментів", "Send Account Data": "Відправити данні аккаунта", - "Explore Account Data": "Продивитись данні аккаунта" + "Explore Account Data": "Продивитись данні аккаунта", + "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.": "Ви можете використовувати параметри користувача сервера для входа на другі сервера Matrix, вказав другий URL-адресу домашнього сервера.
Це дозволяє використовувати Riot з обліковим записом Matrix який існує на другому домашньому сервері.

Окрім цього, можливо встановити ідентифікаційний сервер користувача, але ви не зможете запросити других користувачів та бути запрошенному використовуючи адресу електронної пошти.", + "Appear Offline": "Відображати як не в мережі", + "Away": "Нема на місці", + "Please install Chrome or Firefox for the best experience.": "Краще встановіть Chrome або Firefox.", + "Safari and Opera work too.": "Safari та Opera працюють теж." } From 5132d2132b5d544352dd3a972fb7a91b8391da2f Mon Sep 17 00:00:00 2001 From: dark159123 Date: Sat, 18 Nov 2017 20:45:02 +0000 Subject: [PATCH 018/163] Translated using Weblate (Danish) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/da/ --- src/i18n/strings/da.json | 187 +++++++++++++++++++++++++++++++++++---- 1 file changed, 171 insertions(+), 16 deletions(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index bcd3da6f3f..f669b2f0ae 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -6,8 +6,8 @@ "Couldn't find a matching Matrix room": "Kunne ikke finde et matchende Matrix-rum", "Custom Server Options": "Brugerdefinerede serverindstillinger", "delete the alias.": "Slet aliaset.", - "Direct Chat": "Personligt Chat", - "Directory": "Rum fortegnelse", + "Direct Chat": "Personlig Chat", + "Directory": "Rum katalog", "Dismiss": "Afskedige", "Enable audible notifications in web client": "Aktivér hørbare underretninger i webklienten", "Enable desktop notifications": "Aktivér desktop meddelelser", @@ -22,22 +22,22 @@ "Failed to update keywords": "Kunne ikke opdatere søgeord", "Failed to get protocol list from Home Server": "Kunne ikke få protokolliste fra Home Server", "Failed to get public room list": "Kunne ikke få offentlig rumliste", - "Failed to set Direct Message status of room": "Kunne ikke indstille direkte beskedstatus for rumet", + "Failed to set Direct Message status of room": "Kunne ikke indstille Direkte Beskedstatus for rummet", "Favourite": "Favorit", "Fetching third party location failed": "Hentning af tredjeparts placering mislykkedes", "Files": "Filer", - "Filter room names": "Filtrer rumnavne", + "Filter room names": "Filtrér rumnavne", "Forget": "Glem", "Guests can join": "Gæster kan deltage", "Invite to this room": "Inviter til dette rum", "Keywords": "Søgeord", - "Leave": "Forlade", + "Leave": "Forlad", "Low Priority": "Lav prioritet", "Members": "Medlemmer", "No rooms to show": "Ingen rum at vise", "Noisy": "Støjende", "Notification targets": "Meddelelsesmål", - "Notifications": "Meddelser", + "Notifications": "Notifikationer", "Notifications on the following keywords follow rules which can’t be displayed here:": "Meddelelser om følgende søgeord følger regler, der ikke kan vises her:", "Notify for all other messages/rooms": "Underret om alle andre meddelelser / rum", "Notify me for anything else": "Underret mig om noget andet", @@ -45,22 +45,177 @@ "On": "Tændt", "Operation failed": "Operation mislykkedes", "powered by Matrix": "Drevet af Matrix", - "Reject": "Afvise", - "Remove": "Fjerne", - "Remove from Directory": "Fjern fra fortegnelse", + "Reject": "Afvis", + "Remove": "Fjern", + "Remove from Directory": "Fjern fra Katalog", "Riot does not know how to join a room on this network": "Riot ved ikke, hvordan man kan deltage i et rum på dette netværk", - "Room not found": "Rumet ikke fundet", + "Room not found": "Rummet ikke fundet", "Search for a room": "Søg efter et rum", "The Home Server may be too old to support third party networks": "Hjemmeserveren kan være for gammel til at understøtte tredjepartsnetværk", "There are advanced notifications which are not shown here": "Der er avancerede meddelelser, som ikke vises her", "The server may be unavailable or overloaded": "Serveren kan være utilgængelig eller overbelastet", "Unable to fetch notification target list": "Kan ikke hente meddelelsesmålliste", - "Unable to join network": "Kan ikke deltage i netværket", - "Unable to look up room ID from server": "Kunne ikke slå op på rum-id fra server", + "Unable to join network": "Kan ikke forbinde til netværket", + "Unable to look up room ID from server": "Kunne ikke slå rum-id op på server", "unknown error code": "Ukendt fejlkode", - "Unnamed room": "Unnamed rum", - "World readable": "Læselig til alle", - "You are not receiving desktop notifications": "Du modtager ikke desktop meddelelser", + "Unnamed room": "Unavngivet rum", + "World readable": "Læselig af alle", + "You are not receiving desktop notifications": "Du modtager ikke skrivebordsmeddelelser", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du har muligvis konfigureret dem i en anden klient end Riot. Du kan ikke tune dem i Riot, men de gælder stadig", - "Close": "Luk" + "Close": "Luk", + "Riot is not supported on mobile web. Install the app?": "Riot understøtter ikke mobilhjemmesider. Vil du installere app'en?", + "Collecting app version information": "Indsamler app versionsoplysninger", + "Collecting logs": "Indsamler logfiler", + "Uploading report": "Uploader rapport", + "Waiting for response from server": "Venter på svar fra server", + "Riot Desktop on %(platformName)s": "Riot Desktop på %(platformName)s", + "Unknown device": "Ukendt enhed", + "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s på %(osName)s", + "You need to be using HTTPS to place a screen-sharing call.": "Du skal bruge HTTPS for at lave skærm-delings-opkald.", + "Messages containing my display name": "Beskeder der indeholder mit viste navn", + "Messages containing my user name": "Beskeder der indeholder mit brugernavn", + "Messages in one-to-one chats": "Beskeder i en-til-en chats", + "Messages in group chats": "Beskeder i gruppechats", + "When I'm invited to a room": "Når jeg bliver inviteret til et rum", + "Call invitation": "Opkalds invitation", + "Messages sent by bot": "Beskeder sendt af en bot", + "OK": "OK", + "Messages containing keywords": "Beskeder der indeholder keywords", + "Advanced notification settings": "Avancerede notifikationsindstillinger", + "Show message in desktop notification": "Vis besked i skrivebordsnotifikation", + "Failed to set direct chat tag": "Kunne ikke markere rummet som direkte chat", + "Failed to remove tag %(tagName)s from room": "Kunne ikke fjerne tag(s): %(tagName)s fra rummet", + "Failed to add tag %(tagName)s to room": "Kunne ikke tilføje tag(s): %(tagName)s til rummet", + "Search…": "Søg…", + "Search": "Søg", + "This Room": "Dette rum", + "All Rooms": "Alle rum", + "Sunday": "Søndag", + "Monday": "Mandag", + "Tuesday": "Tirsdag", + "Wednesday": "Onsdag", + "Thursday": "Torsdag", + "Friday": "Fredag", + "Saturday": "Lørdag", + "Today": "I dag", + "Yesterday": "I går", + "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.": "Du kan bruge de brugerdefinerede server indstillinger til at logge ind på andre Matrix servere ved at skrive en anden Home Server adresse.
Dette tillader dig at bruge Riot med en eksisterende Matrix konto på en anden home server.

Du kan også indstille en brugerdefineret identity server men så vil du ikke kunne invitere brugere ved hjælp af deres emailadresse eller selv blive inviteret med emailadresse.", + "What's New": "Hvad er nyt", + "Update": "Opdater", + "What's new?": "Hvad er nyt?", + "Appear Offline": "Fremstå Offline", + "Away": "Ikke til stede", + "A new version of Riot is available.": "En ny version a Riot er tilgængelig.", + "To return to your account in future you need to set a password": "For at komme ind på din konto i fremtiden skal du indstille et password", + "Set Password": "Indstil Password", + "Error encountered (%(errorDetail)s).": "En fejl er opstået (%(errorDetail)s).", + "Checking for an update...": "Checker om der er en opdatering...", + "No update available.": "Ingen opdatering tilgængelig.", + "Downloading update...": "Downloader opdatering...", + "Warning": "Advarsel", + "You cannot delete this image. (%(code)s)": "Du kan ikke slette dette billede. (%(code)s)", + "Uploaded on %(date)s by %(user)s": "Uploadet den %(date)s af %(user)s", + "Download this file": "Download denne fil", + "Please describe the bug and/or send logs.": "Beskriv venligst fejlen og/eller send logs.", + "Loading bug report module": "Indlæser fejlrepporterings modul", + "Bug report sent": "Fejl rapporteret", + "Thank you!": "Tak!", + "Failed to send report: ": "Kunne ikke sende rapport: ", + "Cancel": "Afbryd", + "Report a bug": "Rapportér en fejl", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Beskriv venlist fejlen. Hvad gjorde du? Hvad forventede du ville ske? Hvad skete rent faktisk?", + "Describe your problem here.": "Beskriv dit problem her.", + "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:": "For at diagnosticere problemer vil logs fra denne klient blive sendt sammen med fejlrapporten. Hvis du vil foretrække kun at sende teksten foroven, bedes du fjerne fluebenet:", + "Send logs": "Send logs", + "Send": "Send", + "Unavailable": "Utilgængelig", + "Changelog": "Ændringslog", + "Back": "Tilbage", + "Send Custom Event": "Send Brugerdefineret Begivenhed", + "You must specify an event type!": "Du skal angive en begivenhedstype!", + "Event sent!": "Begivenhed sendt!", + "Failed to send custom event.": "Kunne ikke sende brugerdefinerede begivenhed.", + "Event Type": "Begivenhedstype", + "State Key": "Tilstandsnøgle", + "Event Content": "Begivenhedsindhold", + "Send Account Data": "Send Konto Data", + "Filter results": "Filtrér resultater", + "Explore Room State": "Udforsk Rum Tilstand", + "Edit": "Rediger", + "Explore Account Data": "Udforsk Konto Data", + "Toolbox": "Værktøjer", + "Developer Tools": "Udviklingsværktøjer", + "You have successfully set a password!": "Du har succesfuldt indstillet et password!", + "You have successfully set a password and an email address!": "Du har succesfuldt indstillet et password og en emailadresse!", + "You can now return to your account after signing out, and sign in on other devices.": "Du kan nu vende tilbage til din konto efter at have logget ud og logge ind på andre enheder.", + "Remember, you can always set an email address in user settings if you change your mind.": "Husk, du kan altid indstille en emailadresse i dine bruger indstillinger hvis du ombestemmer dig.", + "Continue": "Fortsæt", + "Failed to change password. Is your password correct?": "Kunne ikke ændre password. Er dit password korrekt?", + "(HTTP status %(httpStatus)s)": "(HTTP tilstand %(httpStatus)s)", + "Please set a password!": "Indstil venligst et password!", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Dette vil tillade dig at vende tilbage til din konto efter at have logget ud og at logge ind på andre enheder.", + "You cannot delete this message. (%(code)s)": "Du kan ikke slette denne besked. (%(code)s)", + "Resend": "Send igen", + "Cancel Sending": "Stop Forsendelse", + "Forward Message": "Videresend Besked", + "Unpin Message": "Fasthold ikke længere Besked", + "Pin Message": "Fasthold Besked", + "View Source": "Se Kilde", + "View Decrypted Source": "Se Dekrypteret Kilde", + "Unhide Preview": "Vis Forhåndsvisning", + "Permalink": "Permanent link", + "Quote": "Citat", + "Source URL": "Kilde URL", + "Failed to forget room %(errCode)s": "Kunne ikke glemme rummet %(errCode)s", + "All messages (loud)": "Alle beskeder (høj)", + "All messages": "Alle beskeder", + "Mentions only": "Kun nævninger", + "Mute": "Sæt på lydløs", + "Sorry, your browser is not able to run Riot.": "Beklager, din browser kan ikke køre Riot.", + "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot bruger mange avancerede browser funktioner, hvoraf nogle af dem ikke er tilgængelige eller er eksperimentelle i din browser.", + "Please install Chrome or Firefox for the best experience.": "Installer venligst Chrome eller Firefox for den bedste oplevelse.", + "Safari and Opera work too.": "Safari og Opera virker også.", + "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 nuværnde broser kan udseendet og fornemmelsen af programmet være helt forkert og nogle funktioner virker måske ikke. Hvis du alligevel vil prøve så kan du fortsætte, men det er på egen risiko!", + "I understand the risks and wish to continue": "Jeg forstår risikoen og ønsker at fortsætte", + "Couldn't load home page": "Kunne ikke indlæse startsiden", + "Login": "Log ind", + "Register": "Registrér", + "Rooms": "Rum", + "Hide panel": "Gem panel", + "Invite to this community": "Inviter til dette fællesskab", + "Add rooms to this community": "Tilføj rum til dette fællesskab", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Slet rumaliaset %(alias)s og fjern %(name)s fra kataloget?", + "Remove %(name)s from the directory?": "Fjern %(name)s fra kataloget?", + "remove %(name)s from the directory.": "fjern %(name)s fra kataloget.", + "more": "mere", + "Expand panel": "Udvid panel", + "Collapse panel": "Slå panel sammen", + "Welcome to Riot.im": "Velkommen til Riot.im", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentraliseret, krypteret chat & samarbejde baseret på [matrix]", + "Search the room directory": "Søg i rumkataloget", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Masser af rum ekistere allerede i Matrix, forbundet til eksisterende netværk (Slack, IRC, Gitter osv.) eller selvstændige. Tjek kataloget ud!", + "Chat with Riot Bot": "Chat med Riot Bot", + "Get started with some tips from Riot Bot!": "Kom godt i gang med nogle tips fra Riot Bot!", + "General discussion about Matrix and Riot": "Generel diskussion om Matrix og Riot", + "Discussion of all things Matrix!": "Diskussion om alt der har med Matrix at gøre!", + "Riot/Web & Desktop chat": "Riot/Web- & Desktopchat", + "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 tekniske diskussioner", + "Running Matrix services": "Drift af Matrix tjenester", + "Community-run support for Synapse": "Fællesskabsstyret hjælp til Synapse", + "Admin support for Dendrite": "Adminstrationshjælp til Dendrite", + "Announcements about Synapse releases": "Announceringer om Synapse udgivelser", + "Support for those using and running matrix-appservice-irc": "Hjælp til dem der bruger og kører matrix-appservice-irc", + "Building services on Matrix": "Bygning af tjenester på Matrix", + "Support for those using the Matrix spec": "Hjælp til dem der anvender Matrix speciffikationen", + "Design and implementation of E2E in Matrix": "Design og implementering af E2E i Matrix", + "Implementing VR services with Matrix": "Implementering af VR tjenester med Matrix", + "Implementing VoIP services with Matrix": "Implementering af VoIP tjenester med Matrix", + "Discussion of the Identity Service API": "Diskussion af Identity Service API'en", + "Support for those using, running and writing other bridges": "Hjælp til dem der bruger, driver og skriver andre bridges", + "Contributing code to Matrix and Riot": "Biddrag med kode til Matrix og Riot", + "Dev chat for the Riot/Web dev team": "Udviklerchat til Riot/Web udviklerholdet", + "Dev chat for the Dendrite dev team": "Udviklerchat til Dendrite udviklerholdet", + "Co-ordination for Riot/Web translators": "Co-ordination af Riot/Web oversættere" } From 08be00a15422b2204d20fea708064c037b23dda3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Sat, 18 Nov 2017 21:36:10 +0000 Subject: [PATCH 019/163] Translated using Weblate (Serbian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/ --- src/i18n/strings/sr.json | 160 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json index 21d85c931e..2df46220c8 100644 --- a/src/i18n/strings/sr.json +++ b/src/i18n/strings/sr.json @@ -59,5 +59,163 @@ "Saturday": "Субота", "Today": "Данас", "Yesterday": "Јуче", - "Custom Server Options": "Опције прилагођеног сервера" + "Custom Server Options": "Опције прилагођеног сервера", + "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.": "Можете користити опције прилагођеног сервера за пријаву у друге Матрикс сервере навођењем другачије адресе кућног сервера.
Ово вам омогућава да користите Riot са постојећим Матрикс налогомна другом кућном серверу.

Такође, можете поставити прилагођени идентитески сервер али нећете моћи да позивате кориснике по мејл адреси а ни други вас.", + "Dismiss": "Одбаци", + "powered by Matrix": "покреће Матрикс (Matrix)", + "You are not receiving desktop notifications": "Не примате стона обавештења", + "Enable them now": "Омогућите их сада", + "What's New": "Шта је ново", + "Update": "Ажурирај", + "What's new?": "Шта је ново?", + "Appear Offline": "Прикажи себе као ван мреже", + "Away": "Одустан", + "A new version of Riot is available.": "Ново издање RIot-а је доступно.", + "To return to your account in future you need to set a password": "Да бисте се вратили на ваш налог у будућности, морате поставити лозинку", + "Set Password": "Постави лозинку", + "Error encountered (%(errorDetail)s).": "Догодила се грешка (%(errorDetail)s).", + "Checking for an update...": "Проверавам ажурирања...", + "No update available.": "Нема нових ажурирања.", + "Downloading update...": "Преузимам ажурирање...", + "Warning": "Упозорење", + "Error": "Грешка", + "You cannot delete this image. (%(code)s)": "Не можете обрисати ову слику. (%(code)s)", + "Uploaded on %(date)s by %(user)s": "Отпремљено датума %(date)s од корисника %(user)s", + "Remove": "Уклони", + "Close": "Затвори", + "Download this file": "Преузми ову датотеку", + "Please describe the bug and/or send logs.": "Опишите грешку и/или пошаљите записнике.", + "Loading bug report module": "Учитавам модул за извештавање о грешкама", + "Bug report sent": "Извештај о грешци послат", + "Thank you!": "Хвала вам!", + "Failed to send report: ": "Нисам успео да пошаљем извештај: ", + "Cancel": "Откажи", + "Report a bug": "Пријави грешку", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Опишите грешку. Шта сте урадили? Шта сте очекивали да се догоди? Шта се заправо догодило?", + "Describe your problem here.": "Опишите ваш проблем овде.", + "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:": "Да бисмо проучили проблеме, послаћемо записнике са овог клијента уз овај извештај о грешци. Уколико само желите да пошаљете текст изнад, дештиклирајте:", + "Send logs": "Пошаљи записнике", + "Send": "Пошаљи", + "Unavailable": "Недоступан", + "Changelog": "Записник о изменама", + "Back": "Назад", + "Send Custom Event": "Пошаљи прилагођени догађај", + "You must specify an event type!": "Морате навести врсту догађаја!", + "Event sent!": "Догађај је послат!", + "Failed to send custom event.": "Нисам успео да пошаљем прилагођени догађај.", + "Event Type": "Врста догађаја", + "State Key": "Кључ стања", + "Event Content": "Садржај догађаја", + "Send Account Data": "Пошаљи податке налога", + "Filter results": "Филтрирај резултате", + "Explore Room State": "Истражи стање собе", + "Edit": "Уреди", + "Explore Account Data": "Истражи податке налога", + "Toolbox": "Алатница", + "Developer Tools": "Програмерске алатке", + "You have successfully set a password!": "Успешно сте поставили лозинку!", + "You have successfully set a password and an email address!": "Успешно сте поставили лозинку и мејл адресу!", + "You can now return to your account after signing out, and sign in on other devices.": "Можете се вратити у ваш налог након што се одјавите и пријавите поново, на другим уређајима.", + "Remember, you can always set an email address in user settings if you change your mind.": "Запамтите, увек можете поставити мејл адресу у корисничким подешавањима, уколико се предомислите.", + "Continue": "Настави", + "Failed to change password. Is your password correct?": "Нисам успео да променим лозинку. Да ли је ваша лозинка исправна?", + "(HTTP status %(httpStatus)s)": "(HTTP стање %(httpStatus)s)", + "Please set a password!": "Поставите лозинку!", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Ово ће вам омогућити да се вратите у ваш налог након што се одјавите и пријавите, на другим уређајима.", + "You cannot delete this message. (%(code)s)": "Не можете обрисати ову поруку. (%(code)s)", + "Resend": "Поново пошаљи", + "Cancel Sending": "Откажи слање", + "Forward Message": "Проследи поруку", + "Unpin Message": "Откачи поруку", + "Pin Message": "Закачи поруку", + "View Source": "Погледај извор", + "View Decrypted Source": "Погледај дешифровани извор", + "Unhide Preview": "Откриј преглед", + "Permalink": "Трајна веза", + "Quote": "Цитирај", + "Source URL": "Адреса извора", + "Failed to set Direct Message status of room": "Нисам успео да подесим стање директне поруке собе", + "unknown error code": "непознати код грешке", + "Failed to forget room %(errCode)s": "Нисам успео да заборавим собу %(errCode)s", + "All messages (loud)": "Све поруке (гласно)", + "All messages": "Све поруке", + "Mentions only": "Само спомињања", + "Mute": "Утишај", + "Leave": "Напусти", + "Forget": "Заборави", + "Reject": "Одбаци", + "Favourite": "Омиљено", + "Low Priority": "Најмања важност", + "Direct Chat": "Директно ћаскање", + "Sorry, your browser is not able to run Riot.": "Нажалост, ваш прегледач не може да покреће Riot.", + "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot користи напредне могућности прегледача од којих неке нису доступне или су у пробној фази, у вашем прегледачу.", + "Please install Chrome or Firefox for the best experience.": "Инсталирајте Хром (Chrome) или Фајерфокс (Firefox) за најбољи угођај.", + "Safari and Opera work too.": "Сафари и Опера такође раде.", + "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!": "Са вашим тренутним прегледачем изглед и угођај ове апликације може бити скроз неправилан и неке могућности можда неће радити. Уколико желите да ипак пробате, можете наставити али ћете бити без подршке за било које проблеме на које налетите!", + "I understand the risks and wish to continue": "Разумем опасност и желим да наставим", + "Couldn't load home page": "Нисам могао да учитам почетну страну", + "Login": "Пријава", + "Register": "Регистрација", + "Invite to this room": "Позови у ову собу", + "Members": "Чланови", + "Files": "Датотеке", + "Notifications": "Обавештења", + "Rooms": "Собе", + "Hide panel": "Сакриј површ", + "Invite to this community": "Позови у ову заједницу", + "Add rooms to this community": "Додај собе у ову заједницу", + "Failed to get protocol list from Home Server": "Нисам успео да добијем списак протокола од кућног сервера", + "The Home Server may be too old to support third party networks": "Кућни сервер је можда сувише застарео да би подржао мреже трећих страна", + "Failed to get public room list": "Нисам успео да добавим списак јавних соба", + "The server may be unavailable or overloaded": "Сервер је можда недоступан или преоптерећен", + "Unnamed room": "Неименована соба", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Обрисати алијас собе %(alias)s и уклонити %(name)s из фасцикле?", + "Remove %(name)s from the directory?": "Уклонити %(name)s из фасцикле?", + "Remove from Directory": "Уклони из фасцикле", + "remove %(name)s from the directory.": "уклони %(name)s из фасцикле.", + "delete the alias.": "обриши алијас.", + "Unable to join network": "Не могу да приступим мрежи", + "Riot does not know how to join a room on this network": "Riot не зна како да приступи соби на овој мрежи", + "Room not found": "Соба није пронађена", + "Couldn't find a matching Matrix room": "Не могу да нађем одговарајућу Матрикс собу", + "Fetching third party location failed": "Добављање локације треће стране није успело", + "Unable to look up room ID from server": "Не могу да погледам ИБ собе на серверу", + "World readable": "Читљиво за све", + "Guests can join": "Гости могу приступити", + "Directory": "Фасцикла", + "No rooms to show": "Нема соба за приказ", + "Search for a room": "Потражи собу", + "#example": "#пример", + "more": "више", + "Expand panel": "Прошири површ", + "Collapse panel": "Скупи површ", + "Filter room names": "Филтрирај називе соба", + "Welcome to Riot.im": "Добродошли у Riot.im", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Децентрализовано, шифровано ћаскање и сарадња коју покреће [matrix]", + "Search the room directory": "Претражи фасциклу са собама", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Много соба већ постоји у Матриксу, неке су повезане на постојеће мреже (Slack, IRC, Gitter итд.) а неке независне. Погледајте фасциклу!", + "Chat with Riot Bot": "Ћаскајте са Riot ботом", + "Get started with some tips from Riot Bot!": "Крените уз пар савета од Riot бота!", + "General discussion about Matrix and Riot": "Општи разговори о Матриксу и Riot-у", + "Discussion of all things Matrix!": "Разговори о свим Матрикс стварима!", + "Riot/Web & Desktop chat": "Riot/веб и стоно ћаскање", + "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS и matrix-ios-sdk ћаскање", + "Riot/Android & matrix-android-sdk chat": "Riot/Андроид и matrix-android-sdk ћаскање", + "Matrix technical discussions": "Технички разговори о Матриксу", + "Running Matrix services": "Покренуте Матрикс услуге", + "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": "Стварање услуга уз помоћ Матрикса", + "Support for those using the Matrix spec": "Подршка за оне који користе Матрикс спецификацију", + "Design and implementation of E2E in Matrix": "Дизајн и имплементација E2E у Матриксу", + "Implementing VR services with Matrix": "Израда услуга за ВР уз Матрикс", + "Implementing VoIP services with Matrix": "Израда VoIP услуга уз Матрикс", + "Discussion of the Identity Service API": "Разговори о API-ју идентитетског сервиса", + "Support for those using, running and writing other bridges": "Подршка за оне који користе, одржавају и пишу друге мостове", + "Contributing code to Matrix and Riot": "Додавање кода у Матрикс и 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/веб преводиоце" } From e4f7cbe85c1d1bda25e3595f78e335ee3f2f7248 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sun, 19 Nov 2017 03:11:40 +0000 Subject: [PATCH 020/163] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index fc5dd6ec6d..4b0b1e9b90 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -217,5 +217,9 @@ "Add rooms to this community": "新增聊天室到此社群", "Toolbox": "工具箱", "Send Account Data": "傳送帳號資料", - "Explore Account Data": "探索帳號資料" + "Explore Account Data": "探索帳號資料", + "Appear Offline": "顯示為離線", + "Away": "離開", + "Please install Chrome or Firefox for the best experience.": "請安裝 ChromeFirefox 以取得最佳體驗。", + "Safari and Opera work too.": "SafariOpera 也可以運作。" } From cecaca61a3a03465578a4ad93801685545e8f85b Mon Sep 17 00:00:00 2001 From: Jan Kudrik Date: Sun, 19 Nov 2017 13:52:06 +0000 Subject: [PATCH 021/163] Translated using Weblate (Czech) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/cs/ --- src/i18n/strings/cs.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 8b85502610..17c68117cc 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -217,5 +217,9 @@ "Unpin Message": "Odepnout zprávu", "Toolbox": "Sada nástrojů", "Send Account Data": "Poslat data o účtu", - "Explore Account Data": "Prozkoumat data o účtu" + "Explore Account Data": "Prozkoumat data o účtu", + "Appear Offline": "Jevit se offline", + "Away": "Pryč", + "Please install Chrome or Firefox for the best experience.": "Pro nejlepší zážitek si prosím nainstalujte Chrome nebo Firefox.", + "Safari and Opera work too.": "Safari a Opera fungují taky." } From 26269986f512c015754c2c1863b31491b6e57ffc Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 19 Nov 2017 15:36:28 +0000 Subject: [PATCH 022/163] move piwik whitelists to conf and add piwik config.json info to readme Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- README.md | 5 +++++ config.sample.json | 2 ++ 2 files changed, 7 insertions(+) diff --git a/README.md b/README.md index 1da2063212..273f448b29 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,11 @@ You can configure the app by copying `config.sample.json` to anything else since it is used to isolate the privileges of file attachments to this domain. Default: `usercontent.riot.im`. This needs to contain v1.html from https://github.com/matrix-org/usercontent/blob/master/v1.html +1. `piwik`: an object containing the following properties: + 1. `url`: The URL of the Piwik instance to use for collecting Analytics + 1. `whitelistedHSUrls`: a list of HS URLs to not redact from the Analytics + 1. `whitelistedISUrls`: a list of IS URLs to not redact from the Analytics + 1. `siteId`: The Piwik Site ID to use when sending Analytics to the Piwik server configured above Running as a Desktop app ======================== diff --git a/config.sample.json b/config.sample.json index 016517cd2c..6e83cec2d1 100644 --- a/config.sample.json +++ b/config.sample.json @@ -24,6 +24,8 @@ "welcomeUserId": "@riot-bot:matrix.org", "piwik": { "url": "https://piwik.riot.im/", + "whitelistedHSUrls": ["https://matrix.org"], + "whitelistedISUrls": ["https://vector.im", "https://matrix.org"], "siteId": 1 } } From f7a26ddb915143918e93a0fea89a0b7d0394355d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 19 Nov 2017 20:46:40 +0000 Subject: [PATCH 023/163] fix (race?) broken tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- test/app-tests/joining.js | 5 +++++ test/app-tests/loading.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/test/app-tests/joining.js b/test/app-tests/joining.js index 29da3413b3..fc380e7d58 100644 --- a/test/app-tests/joining.js +++ b/test/app-tests/joining.js @@ -16,6 +16,9 @@ limitations under the License. /* joining.js: tests for the various paths when joining a room */ +import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg'; +import Platform from '../../src/vector/platform'; + require('skin-sdk'); var jssdk = require('matrix-js-sdk'); @@ -85,6 +88,8 @@ describe('joining a room', function () { localStorage.setItem("mx_access_token", ACCESS_TOKEN ); localStorage.setItem("mx_user_id", USER_ID); + PlatformPeg.set(new Platform()); + var mc = ( {throw new Error("unimplemented");}} diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js index a7e7c9851b..dab616577a 100644 --- a/test/app-tests/loading.js +++ b/test/app-tests/loading.js @@ -16,6 +16,9 @@ limitations under the License. /* loading.js: test the myriad paths we have for loading the application */ +import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg'; +import Platform from '../../src/vector/platform'; + import 'skin-sdk'; import React from 'react'; @@ -137,6 +140,8 @@ describe('loading:', function () { default_is_url: DEFAULT_IS_URL, }, opts.config || {}); + PlatformPeg.set(new Platform()); + var params = parseQs(windowLocation); matrixChat = ReactDOM.render( Date: Sat, 25 Nov 2017 14:12:12 +0000 Subject: [PATCH 024/163] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 4b0b1e9b90..48655147eb 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -176,7 +176,7 @@ "Implementing VoIP services with Matrix": "使用 Matrix 實作 VoIP 服務", "Discussion of the Identity Service API": "識別服務 API 的討論", "Support for those using, running and writing other bridges": "那些使用、執行與撰寫其他橋接的支援", - "Contributing code to Matrix and Riot": "貢獻程式碼給 Matrix 與 Riot", + "Contributing code to Matrix and Riot": "為 Matrix 和 Riot 做出貢獻", "Dev chat for the Riot/Web dev team": "Riot/Web 開發團隊的開發聊天", "Dev chat for the Dendrite dev team": "Dendrite 開發團隊的開發聊天", "Co-ordination for Riot/Web translators": "Riot/Web 翻譯者的協調區", From 9ec1f9b07da4bcf53bf402f62965aecca623dd66 Mon Sep 17 00:00:00 2001 From: xmeta Date: Wed, 22 Nov 2017 17:49:26 +0000 Subject: [PATCH 025/163] Translated using Weblate (Japanese) Currently translated at 32.8% (72 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ja/ --- src/i18n/strings/ja.json | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 97a0640e0f..4bd46f3f59 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -52,5 +52,24 @@ "Filter room names": "部屋名検索", "Forget": "忘れる", "Leave": "退室", - "Files": "添付ファイル" + "Files": "添付ファイル", + "Unknown device": "不明な端末", + "Collecting app version information": "アプリのバージョン情報を収集", + "Collecting logs": "ログの収集", + "Uploading report": "レポートのアップロード", + "Messages containing my display name": "自身の表示名を含むメッセージ", + "Messages containing my user name": "自身のユーザー名を含むメッセージ", + "Messages in one-to-one chats": "一対一のチャットでのメッセージ", + "Messages in group chats": "グループチャットのメッセージ", + "When I'm invited to a room": "部屋に招待された時", + "Messages sent by bot": "ボットから送信されたメッセージ", + "Error saving email notification preferences": "電子メール通知設定の保存中にエラー", + "An error occurred whilst saving your email notification preferences.": "電子メール通知設定を保存中にエラーが発生しました。", + "Keywords": "キーワード", + "Enter keywords separated by a comma:": "キーワードをコンマで区切って入力:", + "OK": "OK", + "Operation failed": "操作に失敗しました", + "Can't update user notification settings": "ユーザー通知の設定を更新できません", + "Failed to update keywords": "キーワードの更新に失敗しました", + "Messages containing keywords": "keywordsを含むメッセージ" } From a7ac003064783995065a2d61a1ff26f62075f5fe Mon Sep 17 00:00:00 2001 From: Mateo Castro Date: Mon, 27 Nov 2017 16:13:39 +0000 Subject: [PATCH 026/163] Translated using Weblate (Spanish) Currently translated at 95.8% (210 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/ --- src/i18n/strings/es.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index b0fbdaa844..1cdce766bd 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -132,8 +132,8 @@ "What's New": "Novedades", "What's new?": "¿Qué hay de nuevo?", "Waiting for response from server": "Esperando una respuesta del servidor", - "You have successfully set a password and an email address!": "¡Ha establecido exitosamente la contraseña y la dirección de email!", - "You have successfully set a password!": "¡Ha establecido exitosamente una contraseña!", + "You have successfully set a password and an email address!": "¡Has establecido exitosamente una contraseña y una dirección de correo electrónico!", + "You have successfully set a password!": "¡Has establecido exitosamente una contraseña!", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s en %(osName)s", "All messages (loud)": "Todos los mensajes (ruidoso)", "All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.", @@ -193,5 +193,23 @@ "Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).", "Couldn't load home page": "No se puede cargar la página principal", "Bug report sent": "Informe de fallo enviado", - "Thank you!": "¡Gracias!" + "Thank you!": "¡Gracias!", + "Show message in desktop notification": "Mostrar mensaje en la notificación del escritorio", + "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.": "Puedes usar las opciones del servidor personalizado para acceder a otros servidores Matrix especificando un LUR de servidor de Hogar distinto.
Esto te permite usar Riot con una cuenta Matrix existente en un servidor de hogar distinto.

También podrías establecer un servidor de identidad personalizado pero no podrías invitar a otros usuarios o ser invitado por correo electrónico.", + "Appear Offline": "Muéstrate fuera de linea", + "Away": "Distante", + "Back": "Atrás", + "Send Custom Event": "Envía Evento Acomodado", + "You must specify an event type!": "Debes especificar un tipo de evento!", + "Event sent!": "Evento enviado!", + "Failed to send custom event.": "Ha fallado el envio del evento acomodado.", + "Event Type": "Tipo de Evento", + "State Key": "Llave del Estado", + "Event Content": "Contenido del Evento", + "Send Account Data": "Envía Datos de la Cuenta", + "Filter results": "Filtra los resultados", + "Explore Room State": "Explora el Estado del Cuarto", + "Edit": "Edita", + "Explore Account Data": "Explora los Datos de la Cuenta", + "Toolbox": "Caja de Herramientas" } From 43578d23664368cc63201ae89317fd68465dd00e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 28 Nov 2017 22:16:53 +0000 Subject: [PATCH 027/163] make FilteredList controlled, such that it can externally persist filter Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/dialogs/DevtoolsDialog.js | 87 +++++++++++++------ 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js index a7155ad12d..85ab40292d 100644 --- a/src/components/views/dialogs/DevtoolsDialog.js +++ b/src/components/views/dialogs/DevtoolsDialog.js @@ -244,6 +244,8 @@ class SendAccountData extends GenericEditor { class FilteredList extends React.Component { static propTypes = { children: PropTypes.any, + query: PropTypes.string, + onChange: PropTypes.func, }; constructor(props, context) { @@ -251,12 +253,17 @@ class FilteredList extends React.Component { this.onQuery = this.onQuery.bind(this); this.state = { - query: '', + query: this.props.query, }; } + componentWillReceiveProps(nextProps) { + if (this.state.query !== nextProps.query) this.setState({ query: nextProps.query }); + } + onQuery(ev) { this.setState({ query: ev.target.value }); + if (this.props.onChange) this.props.onChange(ev.target.value); } filterChildren() { @@ -295,11 +302,16 @@ class RoomStateExplorer extends DevtoolsComponent { this.onBack = this.onBack.bind(this); this.editEv = this.editEv.bind(this); + this.onQueryEventType = this.onQueryEventType.bind(this); + this.onQueryStateKey = this.onQueryStateKey.bind(this); this.state = { eventType: null, event: null, editing: false, + + queryEventType: '', + queryStateKey: '', }; } @@ -331,6 +343,14 @@ class RoomStateExplorer extends DevtoolsComponent { this.setState({ editing: true }); } + onQueryEventType(filterEventType) { + this.setState({ queryEventType: filterEventType }); + } + + onQueryStateKey(filterStateKey) { + this.setState({ queryStateKey: filterStateKey }); + } + render() { if (this.state.event) { if (this.state.editing) { @@ -352,41 +372,47 @@ class RoomStateExplorer extends DevtoolsComponent { ; } - const rows = []; + let list = null; const classes = 'mx_DevTools_RoomStateExplorer_button'; if (this.state.eventType === null) { - Object.keys(this.roomStateEvents).forEach((evType) => { - const stateGroup = this.roomStateEvents[evType]; - const stateKeys = Object.keys(stateGroup); + list = + { + Object.keys(this.roomStateEvents).map((evType) => { + const stateGroup = this.roomStateEvents[evType]; + const stateKeys = Object.keys(stateGroup); - let onClickFn; - if (stateKeys.length > 1) { - onClickFn = this.browseEventType(evType); - } else if (stateKeys.length === 1) { - onClickFn = this.onViewSourceClick(stateGroup[stateKeys[0]]); + let onClickFn; + if (stateKeys.length > 1) { + onClickFn = this.browseEventType(evType); + } else if (stateKeys.length === 1) { + onClickFn = this.onViewSourceClick(stateGroup[stateKeys[0]]); + } + + return ; + }) } - - rows.push(); - }); + ; } else { - const evType = this.state.eventType; - const stateGroup = this.roomStateEvents[evType]; - Object.keys(stateGroup).forEach((stateKey) => { - const ev = stateGroup[stateKey]; - rows.push(); - }); + const stateGroup = this.roomStateEvents[this.state.eventType]; + + list = + { + Object.keys(stateGroup).map((stateKey) => { + const ev = stateGroup[stateKey]; + return ; + }) + } + ; } return
- - { rows } - + { list }
@@ -408,11 +434,14 @@ class AccountDataExplorer extends DevtoolsComponent { this.onBack = this.onBack.bind(this); this.editEv = this.editEv.bind(this); this._onChange = this._onChange.bind(this); + this.onQueryEventType = this.onQueryEventType.bind(this); this.state = { isRoomAccountData: false, event: null, editing: false, + + queryEventType: '', }; } @@ -448,6 +477,10 @@ class AccountDataExplorer extends DevtoolsComponent { this.setState({ editing: true }); } + onQueryEventType(queryEventType) { + this.setState({ queryEventType }); + } + render() { if (this.state.event) { if (this.state.editing) { @@ -482,7 +515,7 @@ class AccountDataExplorer extends DevtoolsComponent { return
- + { rows }
From fd63aac406d73ef97b5de07de007d5d7485601d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20Koreck=C3=BD?= Date: Wed, 29 Nov 2017 10:30:44 +0000 Subject: [PATCH 028/163] Translated using Weblate (Czech) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/cs/ --- src/i18n/strings/cs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 17c68117cc..6e65f0c7d7 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -210,7 +210,7 @@ "Register": "Zaregistrovat", "Rooms": "Místnosti", "Invite to this community": "Pozvat do této komunity", - "Add rooms to this community": "Přidat místnosti do této komunity", + "Add rooms to this community": "Přidat místnosti do této skupiny", "State Key": "Stavový klíč", "Send Custom State Event": "Poslat vlastní stavovou událost", "Explore Room State": "Prohlížet stav místnosti", From 452fe44795af210bbade8b719d8c7884d5032bc1 Mon Sep 17 00:00:00 2001 From: Moo Date: Fri, 1 Dec 2017 22:15:02 +0000 Subject: [PATCH 029/163] Added translation using Weblate (Lithuanian) --- src/i18n/strings/lt.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/lt.json diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/lt.json @@ -0,0 +1 @@ +{} \ No newline at end of file From a3e26982231e00f3515eccbe9a020a7f6704b5d5 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Sun, 3 Dec 2017 13:05:37 +0000 Subject: [PATCH 030/163] Translated using Weblate (Esperanto) Currently translated at 84.4% (185 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/ --- src/i18n/strings/eo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 6dcf080954..61367d6a42 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -91,7 +91,7 @@ "Notify me for anything else": "Sciigu min por ĉio alia", "Off": "Malŝaltita", "On": "Ŝaltita", - "Operation failed": "La operacio malsukcesis", + "Operation failed": "Ago malsukcesis", "Permalink": "Konstanta ligilo", "Please describe the bug and/or send logs.": "Bonvolu priskribi la cimon kaj/aŭ sendi protokolojn.", "Remove %(name)s from the directory?": "Forigi %(name)s el la dosierujo?", From 491bb4fd1dacd609da52e6403359ee8936e553df Mon Sep 17 00:00:00 2001 From: Moo Date: Sun, 3 Dec 2017 21:49:24 +0000 Subject: [PATCH 031/163] Translated using Weblate (Lithuanian) Currently translated at 39.7% (87 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lt/ --- src/i18n/strings/lt.json | 90 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 9e26dfeeb6..bf79a8fb69 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -1 +1,89 @@ -{} \ No newline at end of file +{ + "Waiting for response from server": "Laukiama atsakymo iš serverio", + "Unknown device": "Nežinomas įrenginys", + "Collecting app version information": "Renkama programėlės versijos informacija", + "Collecting logs": "Renkami žurnalai", + "Uploading report": "Išsiunčiama ataskaita", + "Keywords": "Raktažodžiai", + "Enter keywords separated by a comma:": "Įveskite kableliais atskirtus raktažodžius:", + "OK": "Gerai", + "Failed to change settings": "Nepavyko pakeisti nustatymų", + "Operation failed": "Operacija nepavyko", + "Failed to update keywords": "Nepavyko atnaujinti raktažodžių", + "Enable email notifications": "Įjungti pranešimus el. paštu", + "Advanced notification settings": "Išplėstiniai pranešimų nustatymai", + "Enable desktop notifications": "Įjungti pranešimus darbalaukyje", + "Sunday": "Sekmadienis", + "Monday": "Pirmadienis", + "Tuesday": "Antradienis", + "Wednesday": "Trečiadienis", + "Thursday": "Ketvirtadienis", + "Friday": "Penktadienis", + "Saturday": "Šeštadienis", + "Today": "Šiandien", + "Yesterday": "Vakar", + "powered by Matrix": "veikia su Matrix", + "What's New": "Kas naujo", + "What's new?": "Kas naujo?", + "A new version of Riot is available.": "Yra prieinama nauja Riot versija.", + "To return to your account in future you need to set a password": "Norėdami ateityje sugrįžti į savo paskyrą, turite nusistatyti slaptažodį", + "Set Password": "Nustatyti slaptažodį", + "Checking for an update...": "Tikrinama ar yra atnaujinimų...", + "No update available.": "Nėra prieinamų atnaujinimų.", + "Downloading update...": "Atsiunčiamas atnaujinimas...", + "Warning": "Įspėjimas", + "Error": "Klaida", + "You cannot delete this image. (%(code)s)": "Jūs negalite ištrinti šio paveikslo. (%(code)s)", + "Remove": "Šalinti", + "Close": "Užverti", + "Download this file": "Atsisiųsti šį failą", + "Thank you!": "Ačiū!", + "Cancel": "Atsisakyti", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Aprašykite klaidą. Ką darėte? Ko tikėjotės? Kas iš tikrųjų nutiko?", + "Describe your problem here.": "Čia aprašykite savo problemą.", + "Changelog": "Keitinių žurnalas", + "Back": "Atgal", + "You must specify an event type!": "Privalote nurodyti įvykio tipą!", + "Event sent!": "Įvykis išsiųstas!", + "Event Type": "Įvykio tipas", + "Toolbox": "Parankinė", + "You have successfully set a password!": "Jūs sėkmingai nusistatėte slaptažodį!", + "You have successfully set a password and an email address!": "Jūs sėkmingai nusistatėte slaptažodį ir el. pašto adresą!", + "Continue": "Tęsti", + "(HTTP status %(httpStatus)s)": "(HTTP būsena %(httpStatus)s)", + "Please set a password!": "Prašome nusistatyti slaptažodį!", + "You cannot delete this message. (%(code)s)": "Negalite ištrinti šios žinutės. (%(code)s)", + "Cancel Sending": "Atsisakyti siuntimo", + "Forward Message": "Persiųsti žinutę", + "Unpin Message": "Atsegti žinutę", + "Pin Message": "Prisegti žinutę", + "Permalink": "Pastovioji nuoroda", + "unknown error code": "nežinomas klaidos kodas", + "Reject": "Atmesti", + "Sorry, your browser is not able to run Riot.": "Atleiskite, jūsų naršyklė negali paleisti Riot.", + "I understand the risks and wish to continue": "Aš suprantu riziką ir noriu tęsti", + "Login": "Prisijungti", + "Register": "Registruotis", + "Files": "Failai", + "Notifications": "Pranešimai", + "Rooms": "Kambariai", + "Hide panel": "Slėpti skydelį", + "Invite to this community": "Pakviesti į šią bendruomenę", + "The server may be unavailable or overloaded": "Gali būti, kad serveris yra neprieinamas arba perkrautas", + "Unnamed room": "Kambarys be pavadinimo", + "Remove from Directory": "Šalinti iš katalogo", + "remove %(name)s from the directory.": "šalinti %(name)s iš katalogo.", + "Unable to join network": "Nepavyko prisijungti prie tinklo", + "Riot does not know how to join a room on this network": "Riot nežino kaip prisijungti prie kambario šiame tinkle", + "Room not found": "Kambarys nerastas", + "Couldn't find a matching Matrix room": "Nepavyko rasti atitinkamo Matrix kambario", + "Directory": "Katalogas", + "#example": "#pavyzdys", + "more": "daugiau", + "Expand panel": "Išskleisti skydelį", + "Collapse panel": "Suskleisti skydelį", + "Welcome to Riot.im": "Sveiki atvykę į Riot.im", + "Chat with Riot Bot": "Kalbėtis su Riot robotu", + "General discussion about Matrix and Riot": "Bendros diskusijos apie Matrix ir Riot", + "Matrix technical discussions": "Matrix techninės diskusijos" +} From fb1afdab1cb1ad1ea609b0766d686f7bc746d1f1 Mon Sep 17 00:00:00 2001 From: Sulejman Delic Date: Fri, 8 Dec 2017 09:19:00 +0000 Subject: [PATCH 032/163] Added translation using Weblate (Bosnian) --- src/i18n/strings/bs.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/bs.json diff --git a/src/i18n/strings/bs.json b/src/i18n/strings/bs.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/bs.json @@ -0,0 +1 @@ +{} \ No newline at end of file From db3bd1dbf04660884507eb8246f3008b7a4a055a Mon Sep 17 00:00:00 2001 From: Szimszon Date: Fri, 8 Dec 2017 17:49:56 +0000 Subject: [PATCH 033/163] Translated using Weblate (Hungarian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/ --- src/i18n/strings/hu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 1a90d04677..200c29f78c 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -132,7 +132,7 @@ "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": "Elküld", "Send logs": "Naplók elküldése", "This Room": "Ebben a szobában", "Unavailable": "Elérhetetlen", From 68706a92090a7efd4ceed9e0638a7736c87b9cd9 Mon Sep 17 00:00:00 2001 From: vricci Date: Tue, 5 Dec 2017 17:42:31 +0000 Subject: [PATCH 034/163] Translated using Weblate (Italian) Currently translated at 97.7% (214 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index a162340fbc..9d1eebd526 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -207,5 +207,14 @@ "Event Content": "Contenuto dell'Evento", "State Key": "Chiave dello Stato", "Show message in desktop notification": "Mostra i messaggi nelle notifiche desktop", - "Edit": "Modifica" + "Edit": "Modifica", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.
Questo permette di usare Matrix con un account esistente su un home server diverso.

È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.", + "Appear Offline": "Appari offline", + "Away": "Assente", + "Explore Account Data": "Esplora dati account", + "Toolbox": "Strumenti", + "Please install Chrome or Firefox for the best experience.": "Installa Chrome o Firefox per la migliore esperienza d'uso.", + "Safari and Opera work too.": "Anche Safari e Opera vanno bene.", + "Register": "Registrati", + "Rooms": "Stanze" } From e24ffeea449f963b58bf6dd9fefa740990695077 Mon Sep 17 00:00:00 2001 From: Moo Date: Thu, 7 Dec 2017 21:49:40 +0000 Subject: [PATCH 035/163] Translated using Weblate (Lithuanian) Currently translated at 40.1% (88 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lt/ --- src/i18n/strings/lt.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index bf79a8fb69..bc5e4321bf 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -85,5 +85,6 @@ "Welcome to Riot.im": "Sveiki atvykę į Riot.im", "Chat with Riot Bot": "Kalbėtis su Riot robotu", "General discussion about Matrix and Riot": "Bendros diskusijos apie Matrix ir Riot", - "Matrix technical discussions": "Matrix techninės diskusijos" + "Matrix technical discussions": "Matrix techninės diskusijos", + "Riot is not supported on mobile web. Install the app?": "Riot nėra palaikoma naršant svetainėje mobiliaisiais įrenginiais. Įdiegti programėlę?" } From 10c6f24a8325376c62db690e35f00c0949e46b38 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 10 Dec 2017 12:46:12 +0000 Subject: [PATCH 036/163] CSS and Context Menu tweaks for Rich Quoting/Replies Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 4 +-- .../views/rooms/_Autocomplete.scss | 29 +++++++++++++++++-- .../views/rooms/_EventTile.scss | 4 +-- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index d8f9a4daa2..dfff031fc9 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -171,8 +171,8 @@ module.exports = React.createClass({ onQuoteClick: function() { dis.dispatch({ - action: 'quote', - text: this.props.eventTileOps.getInnerText(), + action: 'quote_event', + event: this.props.mxEvent, }); this.closeMenu(); }, diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss index 6bf3f3b60a..8ce81c0dea 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss @@ -1,4 +1,17 @@ .mx_Autocomplete { + position: absolute; + bottom: 0; + z-index: 1001; + width: 100%; + border: 1px solid $primary-hairline-color; + background: $primary-bg-color; + border-bottom: none; + border-radius: 4px 4px 0 0; + max-height: 50vh; + overflow: auto +} + +.mx_Quoting { position: absolute; bottom: 0; z-index: 1000; @@ -11,7 +24,7 @@ overflow: auto } -.mx_Autocomplete_ProviderSection { +.mx_Autocomplete_ProviderSection, .mx_Quoting_section { border-bottom: 1px solid $primary-hairline-color; } @@ -74,13 +87,25 @@ outline: none; } -.mx_Autocomplete_provider_name { +.mx_Autocomplete_provider_name, .mx_Quoting_header { margin: 12px; color: $primary-fg-color; font-weight: 400; opacity: 0.4; } +.mx_Quoting_title { + float: left; +} + +.mx_Quoting_cancel { + float: right; +} + +.mx_Quoting_clear { + clear: both; +} + /* styling for common completion elements */ .mx_Autocomplete_Completion_subtitle { font-style: italic; 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 cfc46e85ab..b4a4242025 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 @@ -109,7 +109,7 @@ limitations under the License. /* this is used for the tile for the event which is selected via the URL. * TODO: ultimately we probably want some transition on here. */ -.mx_EventTile_selected .mx_EventTile_line { +.mx_EventTile_selected > .mx_EventTile_line { border-left: $accent-color 5px solid; padding-left: 60px; background-color: $event-selected-color; @@ -209,7 +209,7 @@ limitations under the License. visibility: visible; } -.mx_EventTile_selected .mx_MessageTimestamp { +.mx_EventTile_selected > div > a > .mx_MessageTimestamp { left: 3px; width: auto; } From 8e66665bbdde38cc04bee2353e3d33e4ec0f6d49 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Tue, 12 Dec 2017 10:22:28 +0000 Subject: [PATCH 037/163] Translated using Weblate (Esperanto) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/ --- src/i18n/strings/eo.json | 172 +++++++++++++++++++++++---------------- 1 file changed, 103 insertions(+), 69 deletions(-) diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 61367d6a42..afdf93b28f 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -1,96 +1,96 @@ { - "A new version of Riot is available.": "Nova versio de \"Riot\" haveblas.", + "A new version of Riot is available.": "Nova versio de Riot haveblas.", "All messages": "Ĉiuj mesaĝoj", - "All messages (loud)": "Ĉiuj mesaĝoj (lauta)", - "All Rooms": "Ĉiuj babilejoj", + "All messages (loud)": "Ĉiuj mesaĝoj (laŭte)", + "All Rooms": "Ĉiuj ĉambroj", "Cancel": "Nuligi", "delete the alias.": "Forviŝi la kromnomon.", - "Describe your problem here.": "Priskribi vian problemon ĉi tie.", - "Direct Chat": "Rekta babilejo", + "Describe your problem here.": "Priskribu vian problemon ĉi tie.", + "Direct Chat": "Rekta babilo", "Directory": "Dosierujo", - "Dismiss": "Eksigu", - "Download this file": "Elŝutu ĉi-tiun dosieron", + "Dismiss": "Rezigni", + "Download this file": "Elŝuti ĉi tiun dosieron", "#example": "#ekzemplo", "Files": "Dosieroj", "Forget": "Forgesi", "Guests can join": "Gastoj povas aliĝi", - "I understand the risks and wish to continue": "Mi komprenas la riskonj kaj volas daŭrigi", - "Invite to this room": "Inviti en ĉi tiun babilejon", + "I understand the risks and wish to continue": "Mi komprenas la riskojn kaj volas daŭrigi", + "Invite to this room": "Inviti al ĉi tiu ĉambro", "Keywords": "Ŝlosilvortoj", "Leave": "Foriri", "Low Priority": "Malalta prioritato", "Messages containing my display name": "Mesaĝoj enhavantaj mian vidigan nomon", "Messages containing keywords": "Mesaĝoj enhavantaj ŝlosilovortojn", "Messages containing my user name": "Mesaĝoj enhavantaj mian uzantnomon", - "Messages in group chats": "Mesaĝoj en grupaj babilejoj", + "Messages in group chats": "Mesaĝoj en grupaj babiloj", "Mute": "Silentigi", - "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Bonvolu priskribi la cimon. Kion vi faris? Kion vi atendis okazi? Kion fakte okazis?", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Bonvolu priskribi la cimon. Kion vi faris? Kion vi atendis? Kio fakte okazis?", "Please install Chrome or Firefox for the best experience.": "Bonvolu instali \"Chrome\"\"Firefox\" por la plej bona sperto.", - "powered by Matrix": "funkciigata de \"Matrix\"", - "Quote": "Citu", - "Reject": "Malakcepti", + "powered by Matrix": "funkciigata de Matrix", + "Quote": "Citi", + "Reject": "Rifuzi", "Resend": "Resendi", "Room not found": "Babilejo ne trovita", "Search": "Serĉi", "Search…": "Serĉi…", "Search for a room": "Serĉi babilejon", "Send": "Sendi", - "This Room": "Ĉi tiu Babilejo", + "This Room": "Ĉi tiu ĉambro", "Add an email address above to configure email notifications": "Aldonu retadreson supre por agordi retpoŝtajn sciigojn", - "Advanced notification settings": "Agordoj de sciigoj specialaj", + "Advanced notification settings": "Specialaj agordoj de sciigoj", "Call invitation": "Invito al voko", - "All notifications are currently disabled for all targets.": "Ĉiuj sciigoj estas malvalidigitaj por ĉiu aparato.", - "An error occurred whilst saving your email notification preferences.": "Eraro okazis dum konservado de agordoj por retpoŝtaj sciigoj.", - "Cancel Sending": "Nuligi sendadon", - "Can't update user notification settings": "Ne eblas ĝisdatigi la agordojn de sciigoj al uzanto", + "All notifications are currently disabled for all targets.": "Ĉiuj sciigoj nun estas malŝaltitaj por ĉiuj aparatoj.", + "An error occurred whilst saving your email notification preferences.": "Eraro okazis dum konservado de agordoj pri retpoŝtaj sciigoj.", + "Cancel Sending": "Nuligi sendon", + "Can't update user notification settings": "Agordoj de sciigoj al uzanto ne ĝisdatigeblas", "Changelog": "Protokolo de ŝanĝoj", "Close": "Fermi", "Collapse panel": "Kaŝi panelon", - "Collecting app version information": "Kolektante informon pri versio de la aplikaĵo", + "Collecting app version information": "Kolektanta informon pri versio de la aplikaĵo", "Collecting logs": "Kolektante protokolon", "Couldn't find a matching Matrix room": "Ne eblis trovi kongruantan ejon Matrix", - "Custom Server Options": "Opcioj pri personigo de servilo", + "Custom Server Options": "Propraj servilaj elektoj", "customServer_text": "Vi povas uzi opciojn personigitajn de la servilo por ensaluti en aliajn servilojn Matrix specifante alian adreson URL-an de alia servilo Home.
Tio permesas al vi uzi Riot per ekzistanta konto en alia Home servilo.

Vi povas ankaŭ agordi servilon identecan personigita, sed ne eblos inviti uzantojn pere de retpoŝtadreso, aŭ esti invitita pere de retpoŝtadreso vi mem.", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Forviŝi la kromnomon de la ejo %(alias)s and forigi %(name)s el la dosierujo?", - "Enable audible notifications in web client": "Ebligi aŭdeblajn sciigojn en la retkliento", - "Enable desktop notifications": "Ebligi labortablajn sciigojn", - "Enable email notifications": "Ebligi retpoŝtajn sciigojn", - "Enable notifications for this account": "Ebligi sciigojn por tiu ĉi konto", - "Enable them now": "Ebligi ilin nun", - "Enter keywords separated by a comma:": "Entajpi ŝlosilvortojn apartigitaj per komoj:", + "Enable audible notifications in web client": "Ŝalti aŭdeblajn sciigojn en la retkliento", + "Enable desktop notifications": "Ŝalti labortablajn sciigojn", + "Enable email notifications": "Ŝalti retpoŝtajn sciigojn", + "Enable notifications for this account": "Ŝalti sciigojn por tiu ĉi konto", + "Enable them now": "Ŝalti ilin nun", + "Enter keywords separated by a comma:": "Entajpu ŝlosilvortojn apartigitajn per komoj:", "Error": "Eraro", "Error saving email notification preferences": "Eraro konservante agordojn pri retpoŝtaj sciigoj", "Expand panel": "Pli grandigi panelon", - "Failed to add tag %(tagName)s to room": "Malsukcesis aldoni etikedon %(tagName)s al la ejo", + "Failed to add tag %(tagName)s to room": "Malsukcesis aldoni etikedon %(tagName)s al la ĉambro", "Failed to change settings": "Malsukcesis ŝanĝi la agordojn", - "Failed to forget room %(errCode)s": "Malsukcesis forgesi la ejon %(errCode)s", + "Failed to forget room %(errCode)s": "Malsukcesis forgesi ĉambron %(errCode)s", "Failed to update keywords": "Malsukcesis ĝisdatigi la ŝlosilvortojn", "Failed to get protocol list from Home Server": "Malsukcesis obteni la liston de protokoloj por la servilo Home", "Failed to get public room list": "Malsukcesis obteni la liston de publikaj ejoj", - "Failed to remove tag %(tagName)s from room": "Malsukcesis forigi la etikedon %(tagName)s el la ejo", + "Failed to remove tag %(tagName)s from room": "Malsukcesis forigi etikedon %(tagName)s el la ĉambro", "Failed to send report: ": "Malsukcesis sendi raporton: ", - "Failed to set direct chat tag": "Malsukcesis agordi la etikedon de rekta babilejo", - "Failed to set Direct Message status of room": "Malsukcesis agordi la staton de Rekta Mesaĝo de la ejo", + "Failed to set direct chat tag": "Malsukcesis agordi la etikedon de rekta babilo", + "Failed to set Direct Message status of room": "Malsukcesis agordi staton de rekta mesaĝo al la ĉambro", "Forward Message": "Plusendi mesaĝon", "Hide panel": "Kaŝi panelon", - "(HTTP status %(httpStatus)s)": "(stato HTTP %(httpStatus)s)", + "(HTTP status %(httpStatus)s)": "(stato de HTTP %(httpStatus)s)", "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:": "Por diagnozi problemojn, protokoloj el tiu ĉi kliento sendiĝos kune kun tiu ĉi raporto de eraro. Se vi preferas sendi nur la supran tekston, bonvolu malŝalti:", - "Login": "Ensaluti", - "Loading bug report module": "Ŝarĝante modulon pri eraroraporto", - "Members": "Membroj", + "Login": "Saluti", + "Loading bug report module": "Enleganta cimraportan modulon", + "Members": "Anoj", "Mentions only": "Nur mencioj", - "Messages in one-to-one chats": "Mesaĝoj en unu-je-unu babilejoj", - "Messages sent by bot": "Mesaĝoj sendita per roboto", + "Messages in one-to-one chats": "Mesaĝoj en duopaj babiloj", + "Messages sent by bot": "Mesaĝoj senditaj per roboto", "more": "pli", - "No rooms to show": "Neniu ejo por montri", + "No rooms to show": "Neniuj ĉambroj por montro", "Noisy": "Brua", - "Notification targets": "Celo de sciigoj", + "Notification targets": "Celoj de sciigoj", "Notifications": "Sciigoj", - "Notifications on the following keywords follow rules which can’t be displayed here:": "La sciigoj de la sekvaj ŝlosilvortoj sekvas regulojn kiuj ne povas esti montrataj ĉi tie:", + "Notifications on the following keywords follow rules which can’t be displayed here:": "La sciigoj de la jenaj ŝlosilvortoj sekvas regulojn kiuj ne povas esti montrataj ĉi tie:", "Notify for all other messages/rooms": "Sciigu min por ĉiu alia babilejo", - "Notify me for anything else": "Sciigu min por ĉio alia", - "Off": "Malŝaltita", - "On": "Ŝaltita", + "Notify me for anything else": "Sciigu min pri ĉio alia", + "Off": "For", + "On": "Ek", "Operation failed": "Ago malsukcesis", "Permalink": "Konstanta ligilo", "Please describe the bug and/or send logs.": "Bonvolu priskribi la cimon kaj/aŭ sendi protokolojn.", @@ -101,36 +101,36 @@ "Report a bug": "Raporti cimon", "Riot Desktop on %(platformName)s": "Riot Labortablo sur %(platformName)s", "Riot does not know how to join a room on this network": "Riot ne scias kiel aliĝi al ejo en tiu ĉi reto", - "Riot is not supported on mobile web. Install the app?": "Riot ne estas subtenita je mobile web. Instali la aplikaĵon?", - "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uzas multajn specialajn trajtojn, kelkaj ne estas disponeblaj aŭ estas eksperimentaj en via nuna retumilo.", + "Riot is not supported on mobile web. Install the app?": "Riot ne estas subtenata sur poŝkomputila reto. Ĉu instali la aplikaĵon?", + "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uzas multajn specialajn funkciojn, el kiuj kelkaj ne disponeblas aŭ estas eksperimentaj en via nuna foliumilo.", "Send logs": "Sendi protokolojn", "Source URL": "Fonta URL", - "Sorry, your browser is not able to run Riot.": "Pardonu, via retumilo ne kapablas funkciigi Riot.", + "Sorry, your browser is not able to run Riot.": "Pardonu, via foliumilo ne kapablas funkciigi klienton Riot.", "The Home Server may be too old to support third party networks": "La servilo Home povas esti tro malnova por subteni retoj de ekstera liveranto", - "There are advanced notifications which are not shown here": "Estas specialaj sciigoj kiuj ne estas montritaj ĉi tie", + "There are advanced notifications which are not shown here": "Ekzistas specialaj sciigoj, kiuj ne montriĝas ĉi tie", "The server may be unavailable or overloaded": "La servilo povas esti maldisponebla aŭ tro ŝarĝita", - "Unable to fetch notification target list": "Ne eblis obteni la liston de celoj por sciigoj", + "Unable to fetch notification target list": "Malsukcesis akiri la liston de celoj por sciigoj", "Unable to join network": "Ne eblis kuniĝi kun la reto", "Unable to look up room ID from server": "Ne eblis trovi la identigon el la servilo", - "Unavailable": "Maldisponebla", + "Unavailable": "Nedisponebla", "Unhide Preview": "Malkaŝi antaŭrigardon", "Unknown device": "Nekonata aparato", - "unknown error code": "kodo de nekonata eraro", - "Unnamed room": "Nekonata ejo", + "unknown error code": "nekonata kodo de eraro", + "Unnamed room": "Sennoma ĉambro", "Update": "Ĝisdatigi", - "Uploaded on %(date)s by %(user)s": "Alŝutita je %(date)s per %(user)s", + "Uploaded on %(date)s by %(user)s": "Alŝutita je %(date)s de %(user)s", "Uploading report": "Alŝutante raporton", "View Decrypted Source": "Vidi malĉifritan fonton", "View Source": "Vidi fonton", "What's New": "Kio novas", "What's new?": "Kio novas?", "Waiting for response from server": "Atendante respondon el la servilo", - "When I'm invited to a room": "Kiam mi estas invitita en ejon", - "World readable": "Legebla tutmonde", - "You cannot delete this image. (%(code)s)": "Vi ne povas forviŝi tiun ĉi bildon. (%(code)s)", - "You cannot delete this message. (%(code)s)": "Vi ne povas forviŝi tiun ĉi mesaĝon. (%(code)s)", - "You are not receiving desktop notifications": "Vi ne estas ricevante sciigojn labortablan", - "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Vi eble agordis ilin en kliento kiu ne estis Riot. Vi ne povas agordi ilin en Riot sed ili ankoraŭ validas", + "When I'm invited to a room": "Kiam mi estas invitita al ĉambro", + "World readable": "Legebla de ĉiuj", + "You cannot delete this image. (%(code)s)": "Vi ne povas forigi tiun ĉi bildon. (%(code)s)", + "You cannot delete this message. (%(code)s)": "Vi ne povas forigi tiun ĉi mesaĝon. (%(code)s)", + "You are not receiving desktop notifications": "Vi ne ricevadas sciigojn labortablajn", + "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Vi eble agordis ilin en alia kliento. Vi ne povas agordi ilin en Riot, sed ili ankoraŭ validas", "Sunday": "Dimanĉo", "Monday": "Lundo", "Tuesday": "Mardo", @@ -141,8 +141,8 @@ "Today": "Hodiaŭ", "Yesterday": "Hieraŭ", "OK": "Bone", - "You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por starigi ekranan vokon.", - "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!": "Kun via nuna retumilo, la aspekto kaj funkciado de la aplikaĵo povas esti tute malĝusta, kaj kelkaj aŭ ĉiu funkcioj eble ne funkcios. Se vi volas provi ĉiuokaze vi rajtas daŭrigi, sed ne estos subteno se vi trafas problemojn!", + "You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.", + "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!": "Kun via nuna foliumilo, la aspekto kaj funkciado de la aplikaĵo povas esti tute malĝusta, kaj kelkaj aŭ ĉiu funkcioj eble ne tute funkcios. Se vi tamen volas provi, vi povas daŭrigi, sed vi ricevos nenian subtenon se vi renkontos problemojn!", "Welcome to Riot.im": "Bonvenon al Riot.im", "Decentralised, encrypted chat & collaboration powered by [matrix]": "Malcentra, ĉifrita babilejo & kunlaboro povigita de [matrix]", "Search the room directory": "Serĉi la ejan dosierujon", @@ -171,20 +171,54 @@ "Dev chat for the Dendrite dev team": "Programista babilado por la programteamo de Dendrite", "Co-ordination for Riot/Web translators": "Kunordigado por tradukistoj de Riot/Web", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multaj ejoj jam ekzistas en Matrix, ligitaj al ekzistantaj retoj (Slock, IRC, Gitter, ktp) aŭ sendependaj. Kontrolu la dosierujon!", - "Failed to change password. Is your password correct?": "Malsukcesis ŝanĝi la pasvorton. Ĉu via pasvorto pravas?", + "Failed to change password. Is your password correct?": "Malsukcesis ŝanĝi la pasvorton. Ĉu via pasvorto estas ĝusta?", "You have successfully set a password!": "Vi sukcese agordis pasvorton!", - "You can now return to your account after signing out, and sign in on other devices.": "Vi nun rajtas reiri al via konto post elsaluto, kaj ensaluti per aliaj aparatoj.", + "You can now return to your account after signing out, and sign in on other devices.": "Vi nun rajtas reveni al via konto post adiaŭo, kaj saluti per ĝi kun aliaj aparatoj.", "Continue": "Daŭrigi", "Please set a password!": "Bonvolu agordi pasvorton!", - "This will allow you to return to your account after signing out, and sign in on other devices.": "Tio ĉi permesos vin reiri al via konto post elsaluto, kaj ensaluti per alia aparato.", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Tio ĉi permesos al vi reveni al via konto post adiaŭo, kaj saluti kun alia aparato.", "You have successfully set a password and an email address!": "Vi sukcese agordis pasvorton kaj retpoŝtadreson!", - "Remember, you can always set an email address in user settings if you change your mind.": "Memoru, vi ĉiam povas agordi retpoŝtadreson en via uzanta agordo se vi decidas ŝanĝi ĝin poste.", + "Remember, you can always set an email address in user settings if you change your mind.": "Memoru: vi ĉiam povas agordi retpoŝtadreson en viaj agordoj por uzantoj.", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s je %(osName)s", "Safari and Opera work too.": "Safari kaj Opera ankaŭ funkcias.", - "Favourite": "Plej ŝatata", + "Favourite": "Ŝatata", "Fetching third party location failed": "Venigado de ekstere liverita loko malsukcesis", "Filter room names": "Filtri nomojn de ejoj", "Warning": "Averto", - "Checking for an update...": "Kontrolanta por ĝisdatigo...", - "No update available.": "Ĝisdatigo ne estas disponata." + "Checking for an update...": "Serĉanta ĝisdatigojn…", + "No update available.": "Neniuj ĝisdatigoj haveblas.", + "Unpin Message": "Malfiksi mesaĝon", + "Rooms": "Ĉambroj", + "Show message in desktop notification": "Montradi mesaĝojn en labortablaj sciigoj", + "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.": "Vi povas uzi proprajn servilajn elektojn por saluti aliajn servilojn de Matrix, per specifo de alia hejmservila URL.
Tio permesas al vi uzi klienton Riot kun jama konto de Matrix en alia hejmservilo.

Vi ankaŭ povas agordi propran identigan servilon, sed vi ne povos inviti uzantojn per retpoŝtadreso, aŭ esti invitata per retpoŝtadreso mem.", + "Appear Offline": "Montriĝi kiel eksterreta", + "Away": "Foresta", + "To return to your account in future you need to set a password": "Por reveni al via konto estonte, vi devas agordi pasvorton", + "Set Password": "Agordi pasvorton", + "Error encountered (%(errorDetail)s).": "Eraro okazis (%(errorDetail)s).", + "Downloading update...": "Elŝutanta ĝisdatigon…", + "Bug report sent": "Cimraporto sendiĝis", + "Thank you!": "Dankon!", + "Back": "Reen", + "Send Custom Event": "Sendi propran okazon", + "You must specify an event type!": "Vi devas specifi tipon de okazo!", + "Event sent!": "Okazo sendiĝis!", + "Failed to send custom event.": "Malsukcesis sendi propran okazon.", + "Event Type": "Tipo de okazo", + "State Key": "Stata ŝlosilo", + "Event Content": "Enhavo de okazo", + "Send Account Data": "Sendi kontajn informojn", + "Filter results": "Filtri rezultojn", + "Explore Room State": "Esplori staton de ĉambro", + "Edit": "Redakti", + "Explore Account Data": "Esplori kontajn datumojn", + "Toolbox": "Ilaro", + "Developer Tools": "Evoluigiloj", + "Pin Message": "Fiksi mesaĝon", + "Please install Chrome or Firefox for the best experience.": "Bonvolu instali ĤromonFajrovulpon por plej bona sperto.", + "Safari and Opera work too.": "Ankaŭ Safario kaj Opero funkcias.", + "Couldn't load home page": "Malsukcesis enlegi hejmpaĝon", + "Register": "Registriĝi", + "Invite to this community": "Inviti al tiu ĉi komunumo", + "Add rooms to this community": "Aldoni ĉambrojn al ĉi tiu komunumo" } From 54a9ccdee759d38b24f3597a8e4fc70a980117c2 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 12 Dec 2017 23:36:10 +0000 Subject: [PATCH 038/163] throw new quoting behind flags Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index dfff031fc9..f2a106749d 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -170,10 +170,17 @@ module.exports = React.createClass({ }, onQuoteClick: function() { - dis.dispatch({ - action: 'quote_event', - event: this.props.mxEvent, - }); + if (SettingsStore.isFeatureEnabled("feature_rich_quoting")) { + dis.dispatch({ + action: 'quote_event', + event: this.props.mxEvent, + }); + } else { + dis.dispatch({ + action: 'quote', + text: this.props.eventTileOps.getInnerText(), + }); + } this.closeMenu(); }, From 4bc99b7f01c7b9488c748b05cb722ccb7217190d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 12 Dec 2017 23:40:02 +0000 Subject: [PATCH 039/163] move QuotePreview CSS out to own file Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/skins/vector/css/_components.scss | 1 + .../views/rooms/_Autocomplete.scss | 30 ++-------------- .../views/rooms/_QuotePreview.scss | 35 +++++++++++++++++++ 3 files changed, 39 insertions(+), 27 deletions(-) create mode 100644 src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 0dd6a1b1b7..0166585148 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -70,6 +70,7 @@ @import "./matrix-react-sdk/views/rooms/_RoomTile.scss"; @import "./matrix-react-sdk/views/rooms/_SearchableEntityList.scss"; @import "./matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss"; +@import "./matrix-react-sdk/views/rooms/_QuotePreview.scss"; @import "./matrix-react-sdk/views/settings/_DevicesPanel.scss"; @import "./matrix-react-sdk/views/settings/_IntegrationsManager.scss"; @import "./matrix-react-sdk/views/voip/_CallView.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss index 8ce81c0dea..732ada088b 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_Autocomplete.scss @@ -11,20 +11,7 @@ overflow: auto } -.mx_Quoting { - position: absolute; - bottom: 0; - z-index: 1000; - width: 100%; - border: 1px solid $primary-hairline-color; - background: $primary-bg-color; - border-bottom: none; - border-radius: 4px 4px 0 0; - max-height: 50vh; - overflow: auto -} - -.mx_Autocomplete_ProviderSection, .mx_Quoting_section { +.mx_Autocomplete_ProviderSection { border-bottom: 1px solid $primary-hairline-color; } @@ -87,25 +74,13 @@ outline: none; } -.mx_Autocomplete_provider_name, .mx_Quoting_header { +.mx_Autocomplete_provider_name { margin: 12px; color: $primary-fg-color; font-weight: 400; opacity: 0.4; } -.mx_Quoting_title { - float: left; -} - -.mx_Quoting_cancel { - float: right; -} - -.mx_Quoting_clear { - clear: both; -} - /* styling for common completion elements */ .mx_Autocomplete_Completion_subtitle { font-style: italic; @@ -115,3 +90,4 @@ .mx_Autocomplete_Completion_description { color: gray; } + diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss new file mode 100644 index 0000000000..f0fb62b8e6 --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss @@ -0,0 +1,35 @@ +.mx_QuotePreview { + position: absolute; + bottom: 0; + z-index: 1000; + width: 100%; + border: 1px solid $primary-hairline-color; + background: $primary-bg-color; + border-bottom: none; + border-radius: 4px 4px 0 0; + max-height: 50vh; + overflow: auto +} + +.mx_QuotePreview_section { + border-bottom: 1px solid $primary-hairline-color; +} + +.mx_QuotePreview_header { + margin: 12px; + color: $primary-fg-color; + font-weight: 400; + opacity: 0.4; +} + +.mx_QuotePreview_title { + float: left; +} + +.mx_QuotePreview_cancel { + float: right; +} + +.mx_QuotePreview_clear { + clear: both; +} From 0c7b15db478879c893f5f1cb5ecc1f26561a830c Mon Sep 17 00:00:00 2001 From: Tirifto Date: Tue, 12 Dec 2017 10:47:39 +0000 Subject: [PATCH 040/163] Translated using Weblate (Esperanto) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/ --- src/i18n/strings/eo.json | 88 ++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index afdf93b28f..ebb289bc72 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -4,7 +4,7 @@ "All messages (loud)": "Ĉiuj mesaĝoj (laŭte)", "All Rooms": "Ĉiuj ĉambroj", "Cancel": "Nuligi", - "delete the alias.": "Forviŝi la kromnomon.", + "delete the alias.": "forigi la kromnomon.", "Describe your problem here.": "Priskribu vian problemon ĉi tie.", "Direct Chat": "Rekta babilo", "Directory": "Dosierujo", @@ -30,10 +30,10 @@ "Quote": "Citi", "Reject": "Rifuzi", "Resend": "Resendi", - "Room not found": "Babilejo ne trovita", + "Room not found": "Ĉambro ne troviĝis", "Search": "Serĉi", "Search…": "Serĉi…", - "Search for a room": "Serĉi babilejon", + "Search for a room": "Serĉi ĉambron", "Send": "Sendi", "This Room": "Ĉi tiu ĉambro", "Add an email address above to configure email notifications": "Aldonu retadreson supre por agordi retpoŝtajn sciigojn", @@ -45,13 +45,13 @@ "Can't update user notification settings": "Agordoj de sciigoj al uzanto ne ĝisdatigeblas", "Changelog": "Protokolo de ŝanĝoj", "Close": "Fermi", - "Collapse panel": "Kaŝi panelon", + "Collapse panel": "Maletendi panelon", "Collecting app version information": "Kolektanta informon pri versio de la aplikaĵo", "Collecting logs": "Kolektante protokolon", - "Couldn't find a matching Matrix room": "Ne eblis trovi kongruantan ejon Matrix", + "Couldn't find a matching Matrix room": "Malsukcesis trovi kongruan ĉambron en Matrix", "Custom Server Options": "Propraj servilaj elektoj", "customServer_text": "Vi povas uzi opciojn personigitajn de la servilo por ensaluti en aliajn servilojn Matrix specifante alian adreson URL-an de alia servilo Home.
Tio permesas al vi uzi Riot per ekzistanta konto en alia Home servilo.

Vi povas ankaŭ agordi servilon identecan personigita, sed ne eblos inviti uzantojn pere de retpoŝtadreso, aŭ esti invitita pere de retpoŝtadreso vi mem.", - "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Forviŝi la kromnomon de la ejo %(alias)s and forigi %(name)s el la dosierujo?", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Ĉu forigi la ĉambran kromnomon %(alias)s kaj forigi %(name)s de la ujo?", "Enable audible notifications in web client": "Ŝalti aŭdeblajn sciigojn en la retkliento", "Enable desktop notifications": "Ŝalti labortablajn sciigojn", "Enable email notifications": "Ŝalti retpoŝtajn sciigojn", @@ -60,13 +60,13 @@ "Enter keywords separated by a comma:": "Entajpu ŝlosilvortojn apartigitajn per komoj:", "Error": "Eraro", "Error saving email notification preferences": "Eraro konservante agordojn pri retpoŝtaj sciigoj", - "Expand panel": "Pli grandigi panelon", + "Expand panel": "Etendi panelon", "Failed to add tag %(tagName)s to room": "Malsukcesis aldoni etikedon %(tagName)s al la ĉambro", "Failed to change settings": "Malsukcesis ŝanĝi la agordojn", "Failed to forget room %(errCode)s": "Malsukcesis forgesi ĉambron %(errCode)s", "Failed to update keywords": "Malsukcesis ĝisdatigi la ŝlosilvortojn", - "Failed to get protocol list from Home Server": "Malsukcesis obteni la liston de protokoloj por la servilo Home", - "Failed to get public room list": "Malsukcesis obteni la liston de publikaj ejoj", + "Failed to get protocol list from Home Server": "Malsukcesis akiri liston de protokoloj el la hejmservilo", + "Failed to get public room list": "Malsukcesis akiri liston de publikaj ĉambroj", "Failed to remove tag %(tagName)s from room": "Malsukcesis forigi etikedon %(tagName)s el la ĉambro", "Failed to send report: ": "Malsukcesis sendi raporton: ", "Failed to set direct chat tag": "Malsukcesis agordi la etikedon de rekta babilo", @@ -82,7 +82,7 @@ "Messages in one-to-one chats": "Mesaĝoj en duopaj babiloj", "Messages sent by bot": "Mesaĝoj senditaj per roboto", "more": "pli", - "No rooms to show": "Neniuj ĉambroj por montro", + "No rooms to show": "Neniuj ĉambroj montreblas", "Noisy": "Brua", "Notification targets": "Celoj de sciigoj", "Notifications": "Sciigoj", @@ -94,24 +94,24 @@ "Operation failed": "Ago malsukcesis", "Permalink": "Konstanta ligilo", "Please describe the bug and/or send logs.": "Bonvolu priskribi la cimon kaj/aŭ sendi protokolojn.", - "Remove %(name)s from the directory?": "Forigi %(name)s el la dosierujo?", + "Remove %(name)s from the directory?": "Ĉu forigi %(name)s de la ujo?", "Remove": "Forigi", - "remove %(name)s from the directory.": "forigi %(name)s el la dosierujo.", - "Remove from Directory": "Forigi el Dosierujo", + "remove %(name)s from the directory.": "forigi %(name)s de la ujo.", + "Remove from Directory": "Forigi de ujo", "Report a bug": "Raporti cimon", "Riot Desktop on %(platformName)s": "Riot Labortablo sur %(platformName)s", - "Riot does not know how to join a room on this network": "Riot ne scias kiel aliĝi al ejo en tiu ĉi reto", + "Riot does not know how to join a room on this network": "Riot ne scias aliĝi al ĉambroj en tiu ĉi reto", "Riot is not supported on mobile web. Install the app?": "Riot ne estas subtenata sur poŝkomputila reto. Ĉu instali la aplikaĵon?", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uzas multajn specialajn funkciojn, el kiuj kelkaj ne disponeblas aŭ estas eksperimentaj en via nuna foliumilo.", "Send logs": "Sendi protokolojn", "Source URL": "Fonta URL", "Sorry, your browser is not able to run Riot.": "Pardonu, via foliumilo ne kapablas funkciigi klienton Riot.", - "The Home Server may be too old to support third party networks": "La servilo Home povas esti tro malnova por subteni retoj de ekstera liveranto", + "The Home Server may be too old to support third party networks": "La hejmservilo povas esti tro malnova por subteni retojn de eksteraj liverantoj", "There are advanced notifications which are not shown here": "Ekzistas specialaj sciigoj, kiuj ne montriĝas ĉi tie", - "The server may be unavailable or overloaded": "La servilo povas esti maldisponebla aŭ tro ŝarĝita", + "The server may be unavailable or overloaded": "La servilo povas esti nedisponebla aŭ troŝarĝita", "Unable to fetch notification target list": "Malsukcesis akiri la liston de celoj por sciigoj", - "Unable to join network": "Ne eblis kuniĝi kun la reto", - "Unable to look up room ID from server": "Ne eblis trovi la identigon el la servilo", + "Unable to join network": "Malsukcesis konektiĝi al la reto", + "Unable to look up room ID from server": "Ĉambra identigaĵo ne akireblas de la servilo", "Unavailable": "Nedisponebla", "Unhide Preview": "Malkaŝi antaŭrigardon", "Unknown device": "Nekonata aparato", @@ -143,34 +143,34 @@ "OK": "Bone", "You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.", "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!": "Kun via nuna foliumilo, la aspekto kaj funkciado de la aplikaĵo povas esti tute malĝusta, kaj kelkaj aŭ ĉiu funkcioj eble ne tute funkcios. Se vi tamen volas provi, vi povas daŭrigi, sed vi ricevos nenian subtenon se vi renkontos problemojn!", - "Welcome to Riot.im": "Bonvenon al Riot.im", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "Malcentra, ĉifrita babilejo & kunlaboro povigita de [matrix]", - "Search the room directory": "Serĉi la ejan dosierujon", - "Chat with Riot Bot": "Babili kun la roboto Riot Bot", - "Get started with some tips from Riot Bot!": "Eki per sugesto de la roboto Riot Bot!", + "Welcome to Riot.im": "Bonvenu al Riot.im", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Malcentra, ĉifrita babilado & kunlaboro povigita de [matrix]", + "Search the room directory": "Serĉi en la ĉambrujo", + "Chat with Riot Bot": "Babilu kun la roboto Riot Bot", + "Get started with some tips from Riot Bot!": "Komencu kun kelkaj sugestoj de la roboto Riot Bot!", "General discussion about Matrix and Riot": "Ĝenerala diskutado pri Matrix kaj Riot", - "Discussion of all things Matrix!": "Diskutado pri ĉio rilate al Matrix!", - "Riot/Web & Desktop chat": "Diskudato labortabla pri Riot/Web", - "Riot/iOS & matrix-ios-sdk chat": "Diskutado pri Riot/iOS & matrix-ios-sdk", - "Riot/Android & matrix-android-sdk chat": "Diskutado pri Riot/Android & matrix-android-sdk", - "Matrix technical discussions": "Teknikaj diskutoj pri Matrix", - "Running Matrix services": "Funkciigado de servoj Matrix", + "Discussion of all things Matrix!": "Diskutado pri ĉio rilata al Matrix!", + "Riot/Web & Desktop chat": "Babilado pri Riot ĉe reto kaj labortablo", + "Riot/iOS & matrix-ios-sdk chat": "Babilado pri Riot ĉe iOS kaj matrix-ios-sdk", + "Riot/Android & matrix-android-sdk chat": "Babilado pri Riot ĉe Android kaj matrix-android-sdk", + "Matrix technical discussions": "Teĥnikaj diskutoj pri Matrix", + "Running Matrix services": "Funkciigado de servoj de Matrix", "Community-run support for Synapse": "Komunuma subtenado de Synapse", "Admin support for Dendrite": "Administra subtenado por Dendrite", - "Announcements about Synapse releases": "Anoncoj pri eldonoj Synapse", + "Announcements about Synapse releases": "Anoncoj pri eldonoj de Synapse", "Support for those using and running matrix-appservice-irc": "Subteno por tiuj, kiuj uzas kaj funkciigas matrix-appservice-irc", - "Building services on Matrix": "Konstruante servojn per Matrix", - "Support for those using the Matrix spec": "Subteno por tiuj, kiuj uzas la specifon Matrix", - "Design and implementation of E2E in Matrix": "Dizajno kaj realigo de E2E en Matrix", - "Implementing VR services with Matrix": "Realigi VR-servojn per Matrix", - "Implementing VoIP services with Matrix": "Realigi VoIP-servojn per Matrix", - "Discussion of the Identity Service API": "Diskutado pri la API de Identiga Servo", - "Support for those using, running and writing other bridges": "Subteno por tiuj, kiuj uzas, funkciigas kaj skribas aliajn pontojn", - "Contributing code to Matrix and Riot": "Kontribui kodon al Matrix kaj Riot", - "Dev chat for the Riot/Web dev team": "Programista babilado por la programteamo de Riot/Web", - "Dev chat for the Dendrite dev team": "Programista babilado por la programteamo de Dendrite", - "Co-ordination for Riot/Web translators": "Kunordigado por tradukistoj de Riot/Web", - "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multaj ejoj jam ekzistas en Matrix, ligitaj al ekzistantaj retoj (Slock, IRC, Gitter, ktp) aŭ sendependaj. Kontrolu la dosierujon!", + "Building services on Matrix": "Konstruado de servoj sur Matrix", + "Support for those using the Matrix spec": "Subteno por tiuj, kiuj uzas la specifaĵon de Matrix", + "Design and implementation of E2E in Matrix": "Fasonado kaj realigado de ĝiscela ĉifrado en Matrix", + "Implementing VR services with Matrix": "Realigado de VR-servoj en Matrix", + "Implementing VoIP services with Matrix": "Realigado de VoIP-servoj en Matrix", + "Discussion of the Identity Service API": "Diskutado pri API de la identiga servo", + "Support for those using, running and writing other bridges": "Subteno por tiuj, kiuj uzas, funkciigas, aŭ evoluigas aliajn pontojn", + "Contributing code to Matrix and Riot": "Kontribuado de kodo al Matrix kaj Riot", + "Dev chat for the Riot/Web dev team": "Babilado por la programista skipo de Riot ĉe reto", + "Dev chat for the Dendrite dev team": "Babilado por la programista skipo de Dendrite", + "Co-ordination for Riot/Web translators": "Kunordigado por tradukistoj de Riot ĉe reto", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multaj ĉambroj jam ekzistas en Matrix; kaj sendependaj, kaj ligitaj kun jamaj retoj (Slock, IRC, Gitter, ktp.). Rigardu la ĉambrujon!", "Failed to change password. Is your password correct?": "Malsukcesis ŝanĝi la pasvorton. Ĉu via pasvorto estas ĝusta?", "You have successfully set a password!": "Vi sukcese agordis pasvorton!", "You can now return to your account after signing out, and sign in on other devices.": "Vi nun rajtas reveni al via konto post adiaŭo, kaj saluti per ĝi kun aliaj aparatoj.", @@ -182,8 +182,8 @@ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s je %(osName)s", "Safari and Opera work too.": "Safari kaj Opera ankaŭ funkcias.", "Favourite": "Ŝatata", - "Fetching third party location failed": "Venigado de ekstere liverita loko malsukcesis", - "Filter room names": "Filtri nomojn de ejoj", + "Fetching third party location failed": "Malsukcesis trovi lokon de ekstera liveranto", + "Filter room names": "Filtri nomojn de ĉambroj", "Warning": "Averto", "Checking for an update...": "Serĉanta ĝisdatigojn…", "No update available.": "Neniuj ĝisdatigoj haveblas.", From e746d2331e008ca5bac9d893d0ba2f92c26e531f Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 8 Dec 2017 19:02:48 +0000 Subject: [PATCH 041/163] Translated using Weblate (Russian) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/ --- src/i18n/strings/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 77fb55ffae..93f543903b 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -132,7 +132,7 @@ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot использует многие передовые возможности браузера, некоторые из которых недоступны или являются экспериментальным в вашем текущем браузере.", "Search": "Поиск", "Search…": "Поиск.…", - "Send": "Отослать", + "Send": "Отправить", "Send logs": "Отправка журналов", "Sorry, your browser is not able to run Riot.": "К сожалению, ваш браузер не способен запустить Riot.", "This Room": "Эта комната", From 091dfd6e54115d046dd5bebefda0ee234d313839 Mon Sep 17 00:00:00 2001 From: Juho Ylikorpi Date: Thu, 14 Dec 2017 18:19:17 +0000 Subject: [PATCH 042/163] Translated using Weblate (Finnish) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/ --- src/i18n/strings/fi.json | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 9b63f9843f..5956a38559 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -95,7 +95,7 @@ "Failed to change settings": "Asetusten muuttaminen epäonnistui", "Failed to forget room %(errCode)s": "Huoneen unohtaminen epäonnistui %(errCode)s", "Failed to update keywords": "Avainsanojen päivittäminen epäonnistui", - "Enable audible notifications in web client": "Ota käyttöön äänelliset ilmoitukset webasiakasohjelmassa", + "Enable audible notifications in web client": "Ota käyttöön äänelliset ilmoitukset", "Enable desktop notifications": "Ota käyttöön työpöytäilmoitukset", "Enable email notifications": "Ota käyttöön sähköposti-ilmoitukset", "Enable notifications for this account": "Ota käyttöön ilmoitukset tälle tilille", @@ -205,5 +205,21 @@ "Event sent!": "Tapahtuma lähetetty!", "Event Type": "Tapahtuman tyyppi", "Event Content": "Tapahtuman sisältö", - "State Key": "Tila-avain" + "State Key": "Tila-avain", + "Show message in desktop notification": "Näytä viestit työpöydän ilmoituksissa", + "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.": "Voit käyttää edistyksellisiä asetuksia kirjautuaksesi muille Matrix palvelimille, määrittelemällä kotipalvelimen URL-osoitteen.
Tämän avulla voit käyttää Riot:ia olemassa olevalla toisen Matrix palvelimen käyttäjätilillä.

Voit myös asettaa valinnaisen identiteettipalvelimen, mutta et voi kutsua käyttäjiä sähköpostiosoitteella tai tulla kutsutuksi.", + "Appear Offline": "Offline-tila", + "Away": "Poissa", + "Send Account Data": "Lähetä tilin tiedot", + "Edit": "Muokkaa", + "Explore Account Data": "Tilitiedot", + "Toolbox": "Työkalut", + "Unpin Message": "Poista viestin kiinnitys", + "Pin Message": "Kiinnitä viesti", + "Please install Chrome or Firefox for the best experience.": "Asenna Chrome tai Firefox parhaan käyttökokemuksen saavuttamiseksi.", + "Safari and Opera work too.": "Safari ja Opera ovat myös tuettuja.", + "Register": "Rekisteröidy", + "Rooms": "Huoneet", + "Invite to this community": "Kutsu tähän yhteisöön", + "Add rooms to this community": "Lisää huoneita yhteisöön" } From 9c38794ad588474e8b3201ae1a985dca5551a536 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 15 Dec 2017 18:37:44 +0000 Subject: [PATCH 043/163] Style datesep inside Quote Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/skins/vector/css/_components.scss | 1 + .../views/elements/_Quote.scss | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 0166585148..c2725aeb9c 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -39,6 +39,7 @@ @import "./matrix-react-sdk/views/elements/_RichText.scss"; @import "./matrix-react-sdk/views/elements/_RoleButton.scss"; @import "./matrix-react-sdk/views/elements/_ToolTipButton.scss"; +@import "./matrix-react-sdk/views/elements/_Quote.scss"; @import "./matrix-react-sdk/views/groups/_GroupPublicityToggle.scss"; @import "./matrix-react-sdk/views/groups/_GroupRoomList.scss"; @import "./matrix-react-sdk/views/groups/_GroupUserSettings.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss new file mode 100644 index 0000000000..2ccde389d6 --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss @@ -0,0 +1,22 @@ +/* +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_Quote .mx_DateSeparator { + font-size: 1em !important; + margin-bottom: 0; + padding-bottom: 1px; + bottom: -5px; +} From cc1ee16dec47e4b69e4e80aefabcaf04f8a3ab77 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sat, 16 Dec 2017 14:38:15 +0000 Subject: [PATCH 044/163] Translated using Weblate (Basque) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/ --- src/i18n/strings/eu.json | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 140f349893..2d7a809265 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -193,5 +193,32 @@ "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:": "Arazoak diagnostikatzeko, bezero honen egunkariak bidaliko dira arazte-txosten honekin. Testua besterik ez baduzu bidali nahi, desmarkatu:", "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!": "Zure oraingo nabigatzailearekin aplikazioaren itxura eta portaera guztiz okerra izan daiteke, eta funtzio batzuk ez dira ibiliko. Hala ere aurrera jarraitu dezakezu saiatu nahi baduzu, baina zure erantzukizunaren menpe geratzen dira aurkitu ditzakezun arazoak!", "Bug report sent": "Arazte-txostena bidali da", - "Thank you!": "Eskerrik asko!" + "Thank you!": "Eskerrik asko!", + "Show message in desktop notification": "Erakutsi mezua mahaigaineko jakinarazpenean", + "Appear Offline": "Agertu deskonektatuta", + "Away": "Teklatutik at", + "Back": "Atzera", + "Send Custom Event": "Bidali gertaera pertsonalizatua", + "You must specify an event type!": "Gertaera mota bat zehaztu behar duzu!", + "Event sent!": "Gertaera bidalita!", + "Failed to send custom event.": "Huts egin du gertaera pertsonalizatua bidaltzean.", + "Event Type": "Gertaera mota", + "State Key": "Egoera gakoa", + "Event Content": "Gertaeraren edukia", + "Send Account Data": "Bidali kontuaren datuak", + "Filter results": "Iragazi emaitzak", + "Explore Room State": "Miatu gelaren egoera", + "Edit": "Editatu", + "Explore Account Data": "Miatu kantuaren datuak", + "Toolbox": "Tresna-kutxa", + "Developer Tools": "Garatzaile-tresnak", + "Unpin Message": "Desfinkatu mezua", + "Pin Message": "Finkatu mezua", + "Please install Chrome or Firefox for the best experience.": "Instalatu Chrome edo Firefox esperientzia onena izateko.", + "Safari and Opera work too.": "Safari eta Opera badabiltza ere.", + "Register": "Eman izena", + "Rooms": "Gelak", + "Invite to this community": "Gonbidatu komunitate honetara", + "Add rooms to this community": "Gehitu gelak komunitate honetara", + "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.": "Zerbitzari pertsonalizatuaren aukerak erabili ditzakezu beste Matrix zerbitzarietan saioa hasteko, han beste hasiera-zerbitzari baten URLa sartuz.
Horrela Riot aurretik duzun kontu batekin erabili dezakezu beste hasiera-zerbitzari batean.

Identitate-zerbitzari pertsonalizatu bat ezarri dezakezu ere, baina orduan ezin izango dituzu erabiltzaileak e-mail helbidea erabiliz gonbidatu, edo ezin izan izango zaituzte zu e-mail helbidea erabiliz gonbidatu." } From 304d281ed2ae4801cba26441ee948f30ab2b791c Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 16 Dec 2017 19:01:56 +0000 Subject: [PATCH 045/163] change reply to be its own thing Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 38 ++++++++++++------- src/i18n/strings/en_EN.json | 3 +- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index f2a106749d..84bebc1341 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -25,6 +25,7 @@ import { _t } from 'matrix-react-sdk/lib/languageHandler'; const Modal = require('matrix-react-sdk/lib/Modal'); const Resend = require("matrix-react-sdk/lib/Resend"); import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; +import {makeEventPermalink} from 'matrix-react-sdk/lib/matrix-to'; module.exports = React.createClass({ displayName: 'MessageContextMenu', @@ -170,17 +171,18 @@ module.exports = React.createClass({ }, onQuoteClick: function() { - if (SettingsStore.isFeatureEnabled("feature_rich_quoting")) { - dis.dispatch({ - action: 'quote_event', - event: this.props.mxEvent, - }); - } else { - dis.dispatch({ - action: 'quote', - text: this.props.eventTileOps.getInnerText(), - }); - } + dis.dispatch({ + action: 'quote', + text: this.props.eventTileOps.getInnerText(), + }); + this.closeMenu(); + }, + + onReplyClick: function() { + dis.dispatch({ + action: 'quote_event', + event: this.props.mxEvent, + }); this.closeMenu(); }, @@ -197,6 +199,7 @@ module.exports = React.createClass({ let permalinkButton; let externalURLButton; let quoteButton; + let replyButton; if (eventStatus === 'not_sent') { resendButton = ( @@ -268,8 +271,8 @@ module.exports = React.createClass({ // XXX: if we use room ID, we should also include a server where the event can be found (other than in the domain of the event ID) permalinkButton = ( ); @@ -279,6 +282,14 @@ module.exports = React.createClass({ { _t('Quote') }
); + + if (SettingsStore.isFeatureEnabled("feature_rich_quoting")) { + replyButton = ( +
+ { _t('Reply') } +
+ ); + } } // Bridges can provide a 'external_url' to link back to the source. @@ -304,6 +315,7 @@ module.exports = React.createClass({ {unhidePreviewButton} {permalinkButton} {quoteButton} + {replyButton} {externalURLButton}
); diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index c1857e3149..cdca2570c3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -217,5 +217,6 @@ "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" + "Co-ordination for Riot/Web translators": "Co-ordination for Riot/Web translators", + "Reply": "Reply" } From 2961e1949ff3d0208983465fccb9eb29683cdf3c Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 16 Dec 2017 19:05:18 +0000 Subject: [PATCH 046/163] delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 72 +++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index 84bebc1341..62bffa7621 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -16,14 +16,14 @@ limitations under the License. 'use strict'; -const React = require('react'); +import React from 'react'; -const MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); -const dis = require('matrix-react-sdk/lib/dispatcher'); -const sdk = require('matrix-react-sdk'); +import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; +import dis from 'matrix-react-sdk/lib/dispatcher'; +import sdk from 'matrix-react-sdk'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; -const Modal = require('matrix-react-sdk/lib/Modal'); -const Resend = require("matrix-react-sdk/lib/Resend"); +import Modal from 'matrix-react-sdk/lib/Modal'; +import Resend from "matrix-react-sdk/lib/Resend"; import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; import {makeEventPermalink} from 'matrix-react-sdk/lib/matrix-to'; @@ -108,15 +108,14 @@ module.exports = React.createClass({ onFinished: (proceed) => { if (!proceed) return; - MatrixClientPeg.get().redactEvent( - this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() - ).catch(function(e) { + const cli = MatrixClientPeg.get(); + cli.redactEvent(this.props.mxEvent.getRoomId(), this.props.mxEvent.getId()).catch(function(e) { const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); // display error message stating you couldn't delete this. const code = e.errcode || e.statusCode; Modal.createTrackedDialog('You cannot delete this message', '', ErrorDialog, { title: _t('Error'), - description: _t('You cannot delete this message. (%(code)s)', {code: code}) + description: _t('You cannot delete this message. (%(code)s)', {code}), }); }).done(); }, @@ -139,12 +138,12 @@ module.exports = React.createClass({ onPinClick: function() { MatrixClientPeg.get().getStateEvent(this.props.mxEvent.getRoomId(), 'm.room.pinned_events', '') - .catch(e => { + .catch((e) => { // Intercept the Event Not Found error and fall through the promise chain with no event. if (e.errcode === "M_NOT_FOUND") return null; throw e; }) - .then(event => { + .then((event) => { const eventIds = (event ? event.pinned : []) || []; if (!eventIds.includes(this.props.mxEvent.getId())) { // Not pinned - add @@ -154,7 +153,8 @@ module.exports = React.createClass({ eventIds.splice(eventIds.indexOf(this.props.mxEvent.getId()), 1); } - MatrixClientPeg.get().sendStateEvent(this.props.mxEvent.getRoomId(), 'm.room.pinned_events', {pinned: eventIds}, ''); + const cli = MatrixClientPeg.get(); + cli.sendStateEvent(this.props.mxEvent.getRoomId(), 'm.room.pinned_events', {pinned: eventIds}, ''); }); this.closeMenu(); }, @@ -193,10 +193,8 @@ module.exports = React.createClass({ let cancelButton; let forwardButton; let pinButton; - let viewSourceButton; let viewClearSourceButton; let unhidePreviewButton; - let permalinkButton; let externalURLButton; let quoteButton; let replyButton; @@ -237,14 +235,14 @@ module.exports = React.createClass({ if (this.state.canPin) { pinButton = (
- {this._isPinned() ? _t('Unpin Message') : _t('Pin Message')} + { this._isPinned() ? _t('Unpin Message') : _t('Pin Message') }
); } } } - viewSourceButton = ( + const viewSourceButton = (
{ _t('View Source') }
@@ -269,7 +267,7 @@ module.exports = React.createClass({ } // XXX: if we use room ID, we should also include a server where the event can be found (other than in the domain of the event ID) - permalinkButton = ( + const permalinkButton = (
{ _t('Permalink') } @@ -293,30 +291,30 @@ module.exports = React.createClass({ } // Bridges can provide a 'external_url' to link back to the source. - if( typeof(this.props.mxEvent.event.content.external_url) === "string") { - externalURLButton = ( - - ); + if (typeof(this.props.mxEvent.event.content.external_url) === "string") { + externalURLButton = ( + + ); } return (
- {resendButton} - {redactButton} - {cancelButton} - {forwardButton} - {pinButton} - {viewSourceButton} - {viewClearSourceButton} - {unhidePreviewButton} - {permalinkButton} - {quoteButton} - {replyButton} - {externalURLButton} + { resendButton } + { redactButton } + { cancelButton } + { forwardButton } + { pinButton } + { viewSourceButton } + { viewClearSourceButton } + { unhidePreviewButton } + { permalinkButton } + { quoteButton } + { replyButton } + { externalURLButton }
); }, From 0ea8efcaf4bb729c0aadbc9bf78f797a6ec81107 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Sat, 16 Dec 2017 14:23:00 +0000 Subject: [PATCH 047/163] Translated using Weblate (Esperanto) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/ --- src/i18n/strings/eo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index ebb289bc72..e32b699ffb 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -21,7 +21,7 @@ "Low Priority": "Malalta prioritato", "Messages containing my display name": "Mesaĝoj enhavantaj mian vidigan nomon", "Messages containing keywords": "Mesaĝoj enhavantaj ŝlosilovortojn", - "Messages containing my user name": "Mesaĝoj enhavantaj mian uzantnomon", + "Messages containing my user name": "Mesaĝoj enhavantaj mian salutnomon", "Messages in group chats": "Mesaĝoj en grupaj babiloj", "Mute": "Silentigi", "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Bonvolu priskribi la cimon. Kion vi faris? Kion vi atendis? Kio fakte okazis?", From dc3f7f3cd16a39eead2410168657afe007f14286 Mon Sep 17 00:00:00 2001 From: Juho Ylikorpi Date: Sun, 17 Dec 2017 09:41:27 +0000 Subject: [PATCH 048/163] Translated using Weblate (Finnish) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/ --- src/i18n/strings/fi.json | 62 ++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 5956a38559..954d67e466 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -27,7 +27,7 @@ "Files": "Tiedostot", "Forget": "Unohda", "I understand the risks and wish to continue": "Ymmärrän riskit ja haluan jatkaa", - "Invite to this room": "Kutsu tähän huoneeseen", + "Invite to this room": "Kutsu käyttäjiä", "Keywords": "Avainsanat", "Leave": "Poistu", "Login": "Kirjaudu sisään", @@ -63,7 +63,7 @@ "Unnamed room": "Nimeämätön huone", "Update": "Päivitä", "View Source": "Näytä lähde", - "Waiting for response from server": "Odotetaan palvelimen vastausta", + "Waiting for response from server": "Odotetaan vastausta palvelimelta", "Monday": "Maanantai", "Tuesday": "Tiistai", "Wednesday": "Keskiviikko", @@ -72,20 +72,20 @@ "Saturday": "Lauantai", "Today": "Tänään", "Yesterday": "Eilen", - "OK": "Selvä", + "OK": "OK", "Warning": "Varoitus", "Checking for an update...": "Tarkistetaan päivityksen saatavuutta...", "No update available.": "Ei päivityksiä saatavilla.", "Downloading update...": "Ladataan päivitystä...", - "Welcome to Riot.im": "Tervetuloa Riot.im:ään", - "Search the room directory": "Hae huonehakemistosta", + "Welcome to Riot.im": "Tervetuloa Riot.im -palveluun", + "Search the room directory": "Hae hakemistosta", "Continue": "Jatka", "Set Password": "Aseta salasana", "Safari and Opera work too.": "Safari ja Opera toimivat myös.", "Collapse panel": "Piilota paneeli", - "Collecting app version information": "Kerätään sovelluksen versiotietoja", - "Collecting logs": "Kerätään lokitietoja", - "Custom Server Options": "Omat palvelinasetukset", + "Collecting app version information": "Haetaan versiotietoja", + "Collecting logs": "Haetaan lokitietoja", + "Custom Server Options": "Palvelinasetukset", "customServer_text": "Voit käyttää palvelinasetuksia muille Matrix-palvelimille kirjautumiseen asettamalla oman kotipalvelinosoitteen.
Näin voit käyttää Riotia toisella kotipalvelimella sijaitsevan Matrix-käyttäjän kanssa.

Voit myös asettaa oman tunnistautumispalvelimen, mutta sinua ei voi kutsua etkä voi kutsua muita sähköpostiosoitteella.", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Poista huonetunnus %(alias)s ja poista %(name)s hakemistosta?", "Enable them now": "Ota käyttöön nyt", @@ -106,15 +106,15 @@ "Failed to send report: ": "Raportin lähettäminen epäonnistui: ", "Failed to set direct chat tag": "Suoran viestittelyn tagin asettaminen epäonnistui", "Fetching third party location failed": "Kolmannen osapuolen paikan haku epäonnistui", - "Filter room names": "Suodata huoneiden nimet", + "Filter room names": "Suodata", "Forward Message": "Edelleenlähetä viesti", "Guests can join": "Vieraat voivat liittyä", "Hide panel": "Piilota paneeli", "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:": "Diagnoosin helpottamiseksi lokitietoja tältä laitteelta lähetetään tämän bugiraportin mukana. Poista ruksi jos haluat lätettää vain ylläolevan tekstin:", "Loading bug report module": "Ladataan bugiraportointimoduuli", - "Messages containing my display name": "Näyttönimeni sisältävät viestit", + "Messages containing my display name": "Viestit joissa mainitaan nimimerkkini", "Messages containing keywords": "Avainsanoja sisältävät viestit", - "Messages containing my user name": "Käyttäjänimeni sisältävät viestit", + "Messages containing my user name": "Viestit joissa mainitaan käyttäjänimeni", "Messages in group chats": "Viestit ryhmäkeskusteluissa", "Messages in one-to-one chats": "Viestit henkilökohtaisissa keskusteluissa", "Messages sent by bot": "Bottien lähettämät viestit", @@ -127,7 +127,7 @@ "Remove %(name)s from the directory?": "Poista %(name)s hakemistosta?", "remove %(name)s from the directory.": "poista %(name)s hakemistosta.", "Remove from Directory": "Poista hakemistosta", - "Riot Desktop on %(platformName)s": "Riot Desktop järjestelmällä %(platformName)s", + "Riot Desktop on %(platformName)s": "Riot Desktop %(platformName)s", "Riot does not know how to join a room on this network": "Riot ei tiedä miten liittya huoneeseen tässä verkossa", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot käyttää monia selainominaisuuksia, joista osa selaimesi ei tue tai ne ovat kokeellisia.", "Sorry, your browser is not able to run Riot.": "Valitettavasti Riot ei toimi selaimessasi.", @@ -137,7 +137,7 @@ "Unable to look up room ID from server": "Huone-ID:n haku palvelimelta epäonnistui", "Unhide Preview": "Näytä ennakkokatselu", "Uploaded on %(date)s by %(user)s": "Ladattu %(date)s käyttäjän %(user)s toimesta", - "Uploading report": "Ladataan raportti", + "Uploading report": "Ladataan raporttia", "View Decrypted Source": "Näytä purettu lähdekoodi", "What's New": "Mikä on uutta", "What's new?": "Mikä on uutta?", @@ -147,23 +147,23 @@ "You cannot delete this message. (%(code)s)": "Et voi poistaa tätä viestiä. (%(code)s)", "You are not receiving desktop notifications": "Et vastaanota työpöytäilmoituksia", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Olet saattanut muuttaa niitä toisessa asiakasohjelmassa kuin Riot. Et voi muuttaa niitä Riotissa mutta ne pätevät kuitenkin", - "You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS:ää voidaaksesi soittaa ruudunjakopuhelun.", + "You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS -yhteyttä, jotta voit jakaa ruudun.", "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!": "Nykyisellä selaimellasi ohjelman ulkonäkö voi olla aivan virheellinen, ja jotkut ominaisuudet eivät saata toimia. Voit jatkaa jos haluat kokeilla mutta et voi odottaa saavasi apua mahdollisesti ilmeneviin ongelmiin!", - "Chat with Riot Bot": "Keskustele Riot-botin kanssa", - "Get started with some tips from Riot Bot!": "Pääse käyntiin Riot-botin vinkkien avulla!", - "General discussion about Matrix and Riot": "Yleistä Matrix- ja Riot-keskustelua", + "Chat with Riot Bot": "Keskustele Riot Botin kanssa", + "Get started with some tips from Riot Bot!": "Aloita Riot Botin vinkkien avulla!", + "General discussion about Matrix and Riot": "Matrix- ja Riot keskustelut", "Discussion of all things Matrix!": "Keskustelu kaikesta Matrixiin liittyvästä!", "Riot/Web & Desktop chat": "Riot/Web & Työpöytä-keskustelu", "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk -keskustelu", "Riot/Android & matrix-android-sdk chat": "Riot/Android & matrix-android-sdk -keskustelu", - "Matrix technical discussions": "Matrix tekniset keskustelut", + "Matrix technical discussions": "Tekniset keskustelut", "Running Matrix services": "Matrix-palvelujen ylläpito", "Community-run support for Synapse": "Yhteisön tarjoama Synapse-tuki", "Admin support for Dendrite": "Dendrite ylläpitotuki", "Announcements about Synapse releases": "Ilmoitukset uusista Synapse-julkaisuista", "Error encountered (%(errorDetail)s).": "Virhe: %(errorDetail)s.", "Support for those using and running matrix-appservice-irc": "Tuki niille jotka käyttävät ja ajavat matrix-appservice-irc", - "Building services on Matrix": "Palvelujen rakentaminen Matrixin avulla", + "Building services on Matrix": "Palveluiden rakentaminen Matrixin avulla", "Support for those using the Matrix spec": "Tuki Matrix-spesifikaation käyttäjille", "Implementing VR services with Matrix": "VR-palvelujen implementointi Matrixin avulla", "Implementing VoIP services with Matrix": "VoIP-palvelujen implementointi Matrixin avulla", @@ -172,7 +172,7 @@ "Dev chat for the Riot/Web dev team": "Kehittäjäkeskustelu Riot/Web kehitystiimille", "Dev chat for the Dendrite dev team": "Kehittäjäkeskustelu Dendrite kehitystiimille", "Co-ordination for Riot/Web translators": "Riot/Web kääntäjien koordinointi", - "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrixissa on jo olemassa monia huoneita jotka on linkitetty olemassa oleviin verkkoihin (Slack, IRC, Gitter, jne) tai itsenäisiin. Tutustu hakemistoon!", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrixissa on olemassa monia huoneita, jotka on linkitetty olemassa oleviin verkkoihin (Slack, IRC, Gitter yms.). Tutustu hakemistoon!", "Failed to change password. Is your password correct?": "Salasanan muuttaminen epäonnistui. Onko salasanasi oikein?", "You have successfully set a password!": "Olet onnistuneesti asettanut salasanan!", "You can now return to your account after signing out, and sign in on other devices.": "Voit nyt palata tilillesi kirjauduttua ulos, sekä kirjautua muilla laitteilla.", @@ -186,27 +186,27 @@ "Failed to set Direct Message status of room": "Huoneen suoran viestittelyn tilan asettaminen epäonnistui", "(HTTP status %(httpStatus)s)": "(HTTP tila %(httpStatus)s)", "Notify for all other messages/rooms": "Ilmoita kaikista muista viesteistä/huoneista", - "powered by Matrix": "Matrix-pohjainen", - "Riot is not supported on mobile web. Install the app?": "Riot ei tue mobiiliselaimia. Asenna sovellus?", + "powered by Matrix": "Matrix", + "Riot is not supported on mobile web. Install the app?": "Riot ei tue laitettasi. Asenna mobiilisovellus?", "Thank you!": "Kiitos!", "Design and implementation of E2E in Matrix": "Matrix päästä-päähän salauksen suunnittelu ja implementointi", - "Contributing code to Matrix and Riot": "Osallistu Matrix ja Riot kehitykseen", - "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s selaimella %(browserName)s käyttöjärjestelmällä %(osName)s", + "Contributing code to Matrix and Riot": "Osallistu kehitystyöhön", + "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s %(browserName)s %(osName)s", "There are advanced notifications which are not shown here": "On kehittyneitä ilmoituksia joita ei näytetä tässä", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "Matrix-pohjainen hajautettu, salattu viestittely ja yhteistyö", - "Back": "Palaa", - "Developer Tools": "Kehitystyökalut", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Salattua ja vikasietoista viestintää Matrix -teknologialla", + "Back": "Takaisin", + "Developer Tools": "Kehitystila", "Failed to send custom event.": "Kustomoidun tapahtuman lähettäminen epäonnistui.", - "Filter results": "Suodata tuloksia", + "Filter results": "Suodata", "Send Custom Event": "Lähetä kustomoitu tapahtuma", "Send Custom State Event": "Lähetä kustomoitu tilatapahtuma", - "Explore Room State": "Tutki huoneen tilaa", + "Explore Room State": "Huoneen tila", "You must specify an event type!": "Sinun on määritettävä tapahtuman tyyppi!", "Event sent!": "Tapahtuma lähetetty!", "Event Type": "Tapahtuman tyyppi", "Event Content": "Tapahtuman sisältö", "State Key": "Tila-avain", - "Show message in desktop notification": "Näytä viestit työpöydän ilmoituksissa", + "Show message in desktop notification": "Näytä viestit ilmoituskeskuksessa", "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.": "Voit käyttää edistyksellisiä asetuksia kirjautuaksesi muille Matrix palvelimille, määrittelemällä kotipalvelimen URL-osoitteen.
Tämän avulla voit käyttää Riot:ia olemassa olevalla toisen Matrix palvelimen käyttäjätilillä.

Voit myös asettaa valinnaisen identiteettipalvelimen, mutta et voi kutsua käyttäjiä sähköpostiosoitteella tai tulla kutsutuksi.", "Appear Offline": "Offline-tila", "Away": "Poissa", @@ -220,6 +220,6 @@ "Safari and Opera work too.": "Safari ja Opera ovat myös tuettuja.", "Register": "Rekisteröidy", "Rooms": "Huoneet", - "Invite to this community": "Kutsu tähän yhteisöön", + "Invite to this community": "Kutsu käyttäjiä", "Add rooms to this community": "Lisää huoneita yhteisöön" } From b16dcbc057bb726c9ce09fed777362e7a131e0aa Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 18 Dec 2017 19:28:19 +0000 Subject: [PATCH 049/163] styling for on-demand quote nest traversal Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../vector/css/matrix-react-sdk/views/elements/_Quote.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss index 2ccde389d6..0af555b5aa 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_Quote.scss @@ -20,3 +20,7 @@ limitations under the License. padding-bottom: 1px; bottom: -5px; } + +.mx_Quote_show { + cursor: pointer; +} From 67746b021a7d84b9656209012fb71667b7943feb Mon Sep 17 00:00:00 2001 From: IMIN <2reeseenmin@gmail.com> Date: Mon, 18 Dec 2017 21:34:17 +0000 Subject: [PATCH 050/163] Translated using Weblate (Korean) Currently translated at 90.8% (199 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/ --- src/i18n/strings/ko.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json index 62bea2ebd6..a98c7c2f70 100644 --- a/src/i18n/strings/ko.json +++ b/src/i18n/strings/ko.json @@ -191,5 +191,14 @@ "Error encountered (%(errorDetail)s).": "오류가 일어났어요 (%(errorDetail)s).", "No update available.": "업데이트가 없어요.", "Downloading update...": "업데이트를 받는 중...", - "Couldn't load home page": "중심 화면을 불러올 수 없어요" + "Couldn't load home page": "중심 화면을 불러올 수 없어요", + "Show message in desktop notification": "컴퓨터 알림에서 내용 보이기", + "Appear Offline": "미접속으로 표시하기", + "Bug report sent": "오류 보고서를 보냈어요", + "Thank you!": "감사합니다!", + "Back": "돌아가기", + "Edit": "수정하기", + "Toolbox": "도구상자", + "Developer Tools": "개발자 도구", + "Register": "등록" } From 17e0d3f8a0fc3bf0464fb3e723f72de8190de6e7 Mon Sep 17 00:00:00 2001 From: Xose M Date: Wed, 20 Dec 2017 06:27:41 +0000 Subject: [PATCH 051/163] Translated using Weblate (Galician) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/gl/ --- src/i18n/strings/gl.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 3fec05e9f3..0bf86d935d 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -217,5 +217,9 @@ "Register": "Rexistrar", "Rooms": "Salas", "Invite to this community": "Convidar a esta comunidade", - "Add rooms to this community": "Engadir salas a esta comunidade" + "Add rooms to this community": "Engadir salas a esta comunidade", + "Appear Offline": "Aparecer fora de liña", + "Away": "Fóra", + "Please install Chrome or Firefox for the best experience.": "Por favor instale Chrome ou Firefox para a mellor experiencia de usuaria.", + "Safari and Opera work too.": "Safari e Opera tamén funcionan." } From 8a7477f50cba19d98d901007b87561a52a181382 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 20 Dec 2017 20:40:41 +0000 Subject: [PATCH 052/163] Highlight ViewSource and Devtools ViewSource Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/ViewSource.js | 15 +++--- .../views/dialogs/DevtoolsDialog.js | 9 +++- src/components/views/elements/Highlight.js | 51 +++++++++++++++++++ src/skins/vector/css/_components.scss | 1 + .../vector-web/views/elements/_Highlight.scss | 21 ++++++++ 5 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 src/components/views/elements/Highlight.js create mode 100644 src/skins/vector/css/vector-web/views/elements/_Highlight.scss diff --git a/src/components/structures/ViewSource.js b/src/components/structures/ViewSource.js index a0e198cecc..8f60ae886c 100644 --- a/src/components/structures/ViewSource.js +++ b/src/components/structures/ViewSource.js @@ -16,14 +16,17 @@ limitations under the License. 'use strict'; -var React = require('react'); +import React from 'react'; +import PropTypes from 'prop-types'; +import Highlight from '../views/elements/Highlight'; + module.exports = React.createClass({ displayName: 'ViewSource', propTypes: { - content: React.PropTypes.object.isRequired, - onFinished: React.PropTypes.func.isRequired, + content: PropTypes.object.isRequired, + onFinished: PropTypes.func.isRequired, }, componentDidMount: function() { @@ -45,9 +48,9 @@ module.exports = React.createClass({ render: function() { return (
-
-                    {JSON.stringify(this.props.content, null, 2)}
-                
+ + { JSON.stringify(this.props.content, null, 2) } +
); } diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js index 5d9168f5c2..1b2af377c3 100644 --- a/src/components/views/dialogs/DevtoolsDialog.js +++ b/src/components/views/dialogs/DevtoolsDialog.js @@ -17,6 +17,7 @@ limitations under the License. import React from 'react'; import PropTypes from 'prop-types'; import sdk from 'matrix-react-sdk'; +import Highlight from '../elements/Highlight'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; @@ -343,7 +344,9 @@ class RoomStateExplorer extends DevtoolsComponent { return
-
{ JSON.stringify(this.state.event.event, null, 2) }
+ + { JSON.stringify(this.state.event.event, null, 2) } +
@@ -459,7 +462,9 @@ class AccountDataExplorer extends DevtoolsComponent { return
-
{ JSON.stringify(this.state.event.event, null, 2) }
+ + { JSON.stringify(this.state.event.event, null, 2) } +
diff --git a/src/components/views/elements/Highlight.js b/src/components/views/elements/Highlight.js new file mode 100644 index 0000000000..1251264e37 --- /dev/null +++ b/src/components/views/elements/Highlight.js @@ -0,0 +1,51 @@ +/* +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. +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 PropTypes from 'prop-types'; +import {highlightBlock} from 'highlight.js'; + +export default class Highlight extends React.Component { + static propTypes = { + className: PropTypes.string, + children: PropTypes.node, + }; + + constructor(props, context) { + super(props, context); + + this._ref = this._ref.bind(this); + } + + componentDidUpdate() { + if (this._el) highlightBlock(this._el); + } + + _ref(el) { + this._el = el; + this.componentDidUpdate(); + } + + render() { + const { className, children } = this.props; + + return
+            { children }
+        
; + } +} diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 0dd6a1b1b7..c01a7dcf85 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -91,6 +91,7 @@ @import "./vector-web/views/dialogs/_SetEmailDialog.scss"; @import "./vector-web/views/dialogs/_SetPasswordDialog.scss"; @import "./vector-web/views/directory/_NetworkDropdown.scss"; +@import "./vector-web/views/elements/_Highlight.scss"; @import "./vector-web/views/elements/_ImageView.scss"; @import "./vector-web/views/elements/_InlineSpinner.scss"; @import "./vector-web/views/elements/_Spinner.scss"; diff --git a/src/skins/vector/css/vector-web/views/elements/_Highlight.scss b/src/skins/vector/css/vector-web/views/elements/_Highlight.scss new file mode 100644 index 0000000000..9b35844ffa --- /dev/null +++ b/src/skins/vector/css/vector-web/views/elements/_Highlight.scss @@ -0,0 +1,21 @@ +/* +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. +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_Highlight { + /* inhibit hljs styling */ + background: none !important; + color: $light-fg-color !important; +} From 1f26a17b29a8b61fd8b7df0dc0fbfc974627cfa5 Mon Sep 17 00:00:00 2001 From: Joachim Nielandt Date: Tue, 19 Dec 2017 19:16:34 +0000 Subject: [PATCH 053/163] Translated using Weblate (Dutch) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/ --- src/i18n/strings/nl.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 558f9c681d..177336c7ad 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -205,5 +205,21 @@ "Event sent!": "Event verstuurd!", "Event Type": "Event-type", "Event Content": "Event-inhoud", - "State Key": "Toestandssleutel" + "State Key": "Toestandssleutel", + "Show message in desktop notification": "Toon boodschap in bureaublad popup", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Je kan de custom server opties gebruiken om op andere Matrix server in te loggen door een andere Home server URL op te geven.
Dit laat je toe om Riot te gebruiken met een bestaande Matrix account op een andere home server.

Je kan ook een custom identiteits-server opzetten maar dan kan je geen gebruikers uitnodigen via hun email adres, of zelf uitgenodigd worden via je email adres.", + "Appear Offline": "Lijk offline", + "Away": "Afwezig", + "Send Account Data": "Stuur account informatie", + "Edit": "Aanpassen", + "Explore Account Data": "Bekijk account informatie", + "Unpin Message": "Maak pin los", + "Pin Message": "Bericht vastpinnen", + "Please install Chrome or Firefox for the best experience.": "Installeer alstublieft Chrome of Firefox voor de beste gebruikerservaring.", + "Safari and Opera work too.": "Safari en Opera werken ook.", + "Register": "Registreer", + "Rooms": "Kamers", + "Invite to this community": "Nodig uit in deze community", + "Add rooms to this community": "Voeg kamers toe aan deze community", + "Toolbox": "Eigenschappen" } From ec5c960ebb15ffebf6540bd837076efe25e5d365 Mon Sep 17 00:00:00 2001 From: Nathan van Beelen Date: Fri, 22 Dec 2017 08:10:53 +0000 Subject: [PATCH 054/163] Translated using Weblate (Dutch) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/ --- src/i18n/strings/nl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 177336c7ad..a415d3e108 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -57,7 +57,7 @@ "No rooms to show": "Geen kamers om te laten zien", "Noisy": "Luidruchtig", "Notification targets": "Meldingsdoelen", - "Notifications": "Meldingen", + "Notifications": "Notificaties", "Notifications on the following keywords follow rules which can’t be displayed here:": "Meldingen op de volgende trefwoorden volgen regels die hier niet kunnen worden getoond:", "Notify for all other messages/rooms": "Stuur een melding voor alle andere berichten/kamers", "Notify me for anything else": "Stuur een melding voor al het andere", From 34a3ef7e1dbba64a98215713736e8ed06f60286e Mon Sep 17 00:00:00 2001 From: Osoitz Date: Mon, 1 Jan 2018 10:32:49 +0000 Subject: [PATCH 055/163] Translated using Weblate (Basque) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/ --- src/i18n/strings/eu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 2d7a809265..97b9ac0dda 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -120,7 +120,7 @@ "Unhide Preview": "Ez ezkutatu aurrebista", "Unknown device": "Gailu ezezaguna", "unknown error code": "errore kode ezezaguna", - "Unnamed room": "Izenik gabeko gela", + "Unnamed room": "Izen gabeko gela", "Update": "Eguneratu", "Uploaded on %(date)s by %(user)s": "%(user)s erabiltzaileak %(date)s (e)an igota", "Uploading report": "Igoera txostena", @@ -130,7 +130,7 @@ "What's new?": "Zer dago berri?", "Waiting for response from server": "Zerbitzariaren erantzunaren zain", "When I'm invited to a room": "Gela batetara gonbidatzen nautenean", - "World readable": "Denek irakurtzeko moduan", + "World readable": "Munduak irakurgarria", "You cannot delete this image. (%(code)s)": "Ezin duzu irudi hau ezabatu. (%(code)s)", "You cannot delete this message. (%(code)s)": "Ezin duzu mezu hau ezabatu. (%(code)s)", "You are not receiving desktop notifications": "Ez dituzu mahaigaineko jakinarazpenak jasotzen", From f3f608b35fb398c3c033a3c638df625bdbb1026d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20Koreck=C3=BD?= Date: Sat, 30 Dec 2017 14:28:57 +0000 Subject: [PATCH 056/163] Translated using Weblate (Czech) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/cs/ --- src/i18n/strings/cs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 6e65f0c7d7..36ed3789ef 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -100,7 +100,7 @@ "Today": "Dnes", "Yesterday": "Včera", "OK": "OK", - "Warning": "Varování", + "Warning": "Upozornění", "Checking for an update...": "Kontrola aktualizací...", "An error occurred whilst saving your email notification preferences.": "Při ukládání nastavení e-mailových upozornění nastala chyba.", "Collecting app version information": "Sbírání informací o verzi aplikace", From 2660e70e00fd3f0527591e591aed8b8ff01ea67f Mon Sep 17 00:00:00 2001 From: Joachim Nielandt Date: Fri, 22 Dec 2017 19:01:48 +0000 Subject: [PATCH 057/163] Translated using Weblate (Dutch) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/ --- src/i18n/strings/nl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index a415d3e108..77262dc1c0 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -129,7 +129,7 @@ "Riot is not supported on mobile web. Install the app?": "Riot wordt niet ondersteund op het mobiele web. Wil je de app installeren?", "Search": "Zoeken", "Search…": "Zoeken…", - "Send": "Versturen", + "Send": "Verstuur", "Send logs": "Logboeken versturen", "Sorry, your browser is not able to run Riot.": "Sorry, uw browser werkt niet met Riot.", "This Room": "Deze kamer", From 760b961e19c671985d8e057200045a72fa37fb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Tue, 26 Dec 2017 17:56:03 +0000 Subject: [PATCH 058/163] Translated using Weblate (Slovak) Currently translated at 100.0% (219 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/ --- src/i18n/strings/sk.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index a3af1a4867..f2e9147bd9 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -94,7 +94,7 @@ "Describe your problem here.": "Tu popíšte váš problém.", "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:": "S cieľom lepšej diagnostiky problému sa spolu s vašim hlásením odošlú záznami o činnosti programu Riot. Ak si želáte odoslať len text hlásenia, odškrtnite nasledujúce pole:", "Send logs": "Zahrnúť záznamy", - "Send": "Poslať", + "Send": "Odoslať", "Unavailable": "Nedostupné", "Changelog": "Zoznam zmien", "Back": "Naspäť", From 33cf966f34f2e62448d8e838636398d556dd8092 Mon Sep 17 00:00:00 2001 From: Sejo Date: Fri, 29 Dec 2017 06:54:50 +0000 Subject: [PATCH 059/163] Translated using Weblate (Spanish) Currently translated at 99.0% (217 of 219 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/ --- src/i18n/strings/es.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 1cdce766bd..6607fb87dd 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -72,7 +72,7 @@ "Riot does not know how to join a room on this network": "Riot no sabe cómo unirse a una sala en esta red", "Room not found": "Sala no encontrada", "Search for a room": "Buscar sala", - "Source URL": "URL de origen", + "Source URL": "URL de Origen", "The Home Server may be too old to support third party networks": "El Home Server puede ser demasiado antiguo para soportar redes de terceros", "There are advanced notifications which are not shown here": "Hay notificaciones avanzadas que no se muestran aquí", "The server may be unavailable or overloaded": "El servidor puede estar no disponible o sobrecargado", @@ -204,12 +204,19 @@ "Event sent!": "Evento enviado!", "Failed to send custom event.": "Ha fallado el envio del evento acomodado.", "Event Type": "Tipo de Evento", - "State Key": "Llave del Estado", + "State Key": "Llave de estado", "Event Content": "Contenido del Evento", "Send Account Data": "Envía Datos de la Cuenta", "Filter results": "Filtra los resultados", "Explore Room State": "Explora el Estado del Cuarto", "Edit": "Edita", "Explore Account Data": "Explora los Datos de la Cuenta", - "Toolbox": "Caja de Herramientas" + "Toolbox": "Caja de Herramientas", + "Developer Tools": "Herramientas de Desarrollo", + "Please install Chrome or Firefox for the best experience.": "Por favor instala Chrome o Firefox para una experiencia óptima.", + "Safari and Opera work too.": "Safari y Opera también funcionan.", + "Register": "Registro", + "Rooms": "Salas", + "Invite to this community": "Invita a esta comunidad", + "Add rooms to this community": "Agrega salas a esta comunidad" } From 3788fde711d5d5a0f761c9b853000f5d1a4692bb Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 5 Jan 2018 23:16:21 +0000 Subject: [PATCH 060/163] Add a tooltip to members button and badge with actual count Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/RightPanel.js | 11 ++++++----- src/i18n/strings/en_EN.json | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index 2a19794fe0..778c01149f 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -266,6 +266,7 @@ module.exports = React.createClass({ let inviteGroup; let membersBadge; + let membersTitle = _t('Members'); if ((this.state.phase == this.Phase.RoomMemberList || this.state.phase === this.Phase.RoomMemberInfo) && this.props.roomId ) { @@ -273,10 +274,10 @@ module.exports = React.createClass({ const room = cli.getRoom(this.props.roomId); let userIsInRoom; if (room) { - membersBadge = formatCount(room.getJoinedMembers().length); - userIsInRoom = room.hasMembershipState( - this.context.matrixClient.credentials.userId, 'join', - ); + const numMembers = room.getJoinedMembers().length; + membersTitle = _t('%(numMembers)s Members', { numMembers }); + membersBadge =
{ formatCount(numMembers) }
; + userIsInRoom = room.hasMembershipState(this.context.matrixClient.credentials.userId, 'join'); } if (userIsInRoom) { @@ -298,7 +299,7 @@ module.exports = React.createClass({ let headerButtons = []; if (this.props.roomId) { headerButtons = [ - Date: Fri, 5 Jan 2018 23:19:43 +0000 Subject: [PATCH 061/163] delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/RightPanel.js | 58 ++++++++++++------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index 778c01149f..da1e711741 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -24,7 +24,7 @@ import sdk from 'matrix-react-sdk'; import dis from 'matrix-react-sdk/lib/dispatcher'; import { MatrixClient } from 'matrix-js-sdk'; import Analytics from 'matrix-react-sdk/lib/Analytics'; -import rate_limited_func from 'matrix-react-sdk/lib/ratelimitedfunc'; +import RateLimitedFunc from 'matrix-react-sdk/lib/ratelimitedfunc'; import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton'; import { showGroupInviteDialog, showGroupAddRoomDialog } from 'matrix-react-sdk/lib/GroupAddressPicker'; import GroupStoreCache from 'matrix-react-sdk/lib/stores/GroupStoreCache'; @@ -58,8 +58,8 @@ class HeaderButton extends React.Component {
{ this.props.badge ? this.props.badge :   }
- - { this.props.isHighlighted ?
:
} + + { this.props.isHighlighted ?
:
} ; } @@ -184,18 +184,17 @@ module.exports = React.createClass({ onRoomStateMember: function(ev, state, member) { // redraw the badge on the membership list - if (this.state.phase == this.Phase.RoomMemberList && member.roomId === this.props.roomId) { + if (this.state.phase === this.Phase.RoomMemberList && member.roomId === this.props.roomId) { this._delayedUpdate(); - } - else if (this.state.phase === this.Phase.RoomMemberInfo && member.roomId === this.props.roomId && + } else if (this.state.phase === this.Phase.RoomMemberInfo && member.roomId === this.props.roomId && member.userId === this.state.member.userId) { // refresh the member info (e.g. new power level) this._delayedUpdate(); } }, - _delayedUpdate: new rate_limited_func(function() { - this.forceUpdate(); + _delayedUpdate: new RateLimitedFunc(function() { + this.forceUpdate(); // eslint-disable-line babel/no-invalid-this }, 500), onAction: function(payload) { @@ -267,7 +266,7 @@ module.exports = React.createClass({ let membersBadge; let membersTitle = _t('Members'); - if ((this.state.phase == this.Phase.RoomMemberList || this.state.phase === this.Phase.RoomMemberInfo) + if ((this.state.phase === this.Phase.RoomMemberList || this.state.phase === this.Phase.RoomMemberInfo) && this.props.roomId ) { const cli = this.context.matrixClient; @@ -282,7 +281,7 @@ module.exports = React.createClass({ if (userIsInRoom) { inviteGroup = - +
@@ -293,7 +292,7 @@ module.exports = React.createClass({ const isPhaseGroup = [ this.Phase.GroupMemberInfo, - this.Phase.GroupMemberList + this.Phase.GroupMemberList, ].includes(this.state.phase); let headerButtons = []; @@ -337,54 +336,54 @@ module.exports = React.createClass({ // button on these 2 screens or you won't be able to re-expand the panel. headerButtons.push(
- +
, ); } let panel =
; if (!this.props.collapsed) { - if (this.props.roomId && this.state.phase == this.Phase.RoomMemberList) { + if (this.props.roomId && this.state.phase === this.Phase.RoomMemberList) { panel = ; - } else if (this.props.groupId && this.state.phase == this.Phase.GroupMemberList) { + } else if (this.props.groupId && this.state.phase === this.Phase.GroupMemberList) { panel = ; } else if (this.state.phase === this.Phase.GroupRoomList) { panel = ; - } else if (this.state.phase == this.Phase.RoomMemberInfo) { + } else if (this.state.phase === this.Phase.RoomMemberInfo) { panel = ; - } else if (this.state.phase == this.Phase.GroupMemberInfo) { + } else if (this.state.phase === this.Phase.GroupMemberInfo) { panel = ; - } else if (this.state.phase == this.Phase.GroupRoomInfo) { + } else if (this.state.phase === this.Phase.GroupRoomInfo) { panel = ; - } else if (this.state.phase == this.Phase.NotificationPanel) { + } else if (this.state.phase === this.Phase.NotificationPanel) { panel = ; - } else if (this.state.phase == this.Phase.FilePanel) { + } else if (this.state.phase === this.Phase.FilePanel) { panel = ; } } if (!panel) { - panel =
; + panel =
; } if (this.props.groupId && this.state.isUserPrivilegedInGroup) { inviteGroup = isPhaseGroup ? ( - +
{ _t('Invite to this community') }
) : ( - +
@@ -393,19 +392,16 @@ module.exports = React.createClass({ ); } - let classes = classNames( - "mx_RightPanel", "mx_fadable", - { - "collapsed": this.props.collapsed, - "mx_fadable_faded": this.props.disabled, - } - ); + const classes = classNames("mx_RightPanel", "mx_fadable", { + "collapsed": this.props.collapsed, + "mx_fadable_faded": this.props.disabled, + }); return (
); + if (SettingsStore.isFeatureEnabled("feature_rich_quoting")) { + replyButton = ( +
+ { _t('Reply') } +
+ ); + } + if (this.state.canPin) { pinButton = (
@@ -280,14 +288,6 @@ module.exports = React.createClass({ { _t('Quote') }
); - - if (SettingsStore.isFeatureEnabled("feature_rich_quoting")) { - replyButton = ( -
- { _t('Reply') } -
- ); - } } // Bridges can provide a 'external_url' to link back to the source. From 5aec6840bf804cfa26daf4dce7fe4ad9403c900c Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 11 Jan 2018 19:33:21 +0000 Subject: [PATCH 071/163] Add cursor:pointer so that it actually looks clickable Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss index f0fb62b8e6..86fd79d473 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_QuotePreview.scss @@ -28,6 +28,7 @@ .mx_QuotePreview_cancel { float: right; + cursor: pointer; } .mx_QuotePreview_clear { From b023cc790b91202b5d40d5565cfb6f6ed41d7769 Mon Sep 17 00:00:00 2001 From: Klaus Marx Date: Thu, 11 Jan 2018 11:06:29 +0000 Subject: [PATCH 072/163] Translated using Weblate (German) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/ --- src/i18n/strings/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 3498c1d9df..ef9264dcb6 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -74,7 +74,7 @@ "Mentions only": "Nur, wenn du erwähnt wirst", "Mute": "Stummschalten", "Permalink": "Permanenter Link", - "Quote": "Zitieren", + "Quote": "Zitat", "Remove %(name)s from the directory?": "Soll der Raum %(name)s aus dem Verzeichnis entfernt werden?", "remove %(name)s from the directory.": "entferne %(name)s aus dem Verzeichnis.", "Resend": "Erneut senden", From b99e87ba0a27dbbcaa435a2a9240159e5d430818 Mon Sep 17 00:00:00 2001 From: Neo_Chen Date: Sat, 25 Nov 2017 14:12:12 +0000 Subject: [PATCH 073/163] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 48655147eb..6a463e6705 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -221,5 +221,6 @@ "Appear Offline": "顯示為離線", "Away": "離開", "Please install Chrome or Firefox for the best experience.": "請安裝 ChromeFirefox 以取得最佳體驗。", - "Safari and Opera work too.": "SafariOpera 也可以運作。" + "Safari and Opera work too.": "SafariOpera 也可以運作。", + "Reply": "回覆" } From 22c024cc94e280545cf4901c6e8d7ed555d5b271 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:33:58 +0000 Subject: [PATCH 074/163] Refactor DateSep, use new Dateutils.formatFullDateNoTime as it is not desired for it to include the time. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/messages/DateSeparator.js | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/src/components/views/messages/DateSeparator.js b/src/components/views/messages/DateSeparator.js index 5d579e5d89..4dcac99da2 100644 --- a/src/components/views/messages/DateSeparator.js +++ b/src/components/views/messages/DateSeparator.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2018 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. @@ -15,8 +16,9 @@ limitations under the License. */ import React from 'react'; +import PropTypes from 'prop-types'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; -import {formatFullDate} from 'matrix-react-sdk/lib/DateUtils'; +import {formatFullDateNoTime} from 'matrix-react-sdk/lib/DateUtils'; function getdaysArray() { return [ @@ -30,30 +32,30 @@ function getdaysArray() { ]; } -module.exports = React.createClass({ - displayName: 'DateSeparator', - render: function() { - var date = new Date(this.props.ts); - var today = new Date(); - var yesterday = new Date(); - var days = getdaysArray(); - yesterday.setDate(today.getDate() - 1); - var label; - if (date.toDateString() === today.toDateString()) { - label = _t('Today'); - } - else if (date.toDateString() === yesterday.toDateString()) { - label = _t('Yesterday'); - } - else if (today.getTime() - date.getTime() < 6 * 24 * 60 * 60 * 1000) { - label = days[date.getDay()]; - } - else { - label = formatFullDate(date, this.props.showTwelveHour); - } +export class DateSeparator extends React.Component { + static propTypes = { + ts: PropTypes.number.isRequired, + }; - return ( -

{ label }

- ); + getLabel() { + const date = new Date(this.props.ts); + const today = new Date(); + const yesterday = new Date(); + const days = getdaysArray(); + yesterday.setDate(today.getDate() - 1); + + if (date.toDateString() === today.toDateString()) { + return _t('Today'); + } else if (date.toDateString() === yesterday.toDateString()) { + return _t('Yesterday'); + } else if (today.getTime() - date.getTime() < 6 * 24 * 60 * 60 * 1000) { + return days[date.getDay()]; + } else { + return formatFullDateNoTime(date); + } } -}); + + render() { + return

{ this.getLabel() }

; + } +} From b65fdf6ab0572b5ebe26636897736fab9e4d7172 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:35:53 +0000 Subject: [PATCH 075/163] refactor MessageTimestamp, as it was missing a PropTypes def for ts Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/messages/MessageTimestamp.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js index 3d972e4c16..eafa25daf1 100644 --- a/src/components/views/messages/MessageTimestamp.js +++ b/src/components/views/messages/MessageTimestamp.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2018 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. @@ -14,24 +15,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; - import React from 'react'; +import PropTypes from 'prop-types'; import {formatFullDate, formatTime} from 'matrix-react-sdk/lib/DateUtils'; -module.exports = React.createClass({ - displayName: 'MessageTimestamp', +export class MessageTimestamp extends React.Component { + static propTypes = { + ts: PropTypes.number.isRequired, + showTwelveHour: PropTypes.bool, + }; - propTypes: { - showTwelveHour: React.PropTypes.bool, - }, - - render: function() { + render() { const date = new Date(this.props.ts); return ( - + { formatTime(date, this.props.showTwelveHour) } ); - }, -}); + } +} From f97395f40fc95e011f6d43540a8eae5a724ab1c3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:41:44 +0000 Subject: [PATCH 076/163] change exports to default to retain compatibility with existing imports Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/messages/DateSeparator.js | 2 +- src/components/views/messages/MessageTimestamp.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/messages/DateSeparator.js b/src/components/views/messages/DateSeparator.js index 4dcac99da2..2e081bc69b 100644 --- a/src/components/views/messages/DateSeparator.js +++ b/src/components/views/messages/DateSeparator.js @@ -32,7 +32,7 @@ function getdaysArray() { ]; } -export class DateSeparator extends React.Component { +export default class DateSeparator extends React.Component { static propTypes = { ts: PropTypes.number.isRequired, }; diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js index eafa25daf1..6d43306708 100644 --- a/src/components/views/messages/MessageTimestamp.js +++ b/src/components/views/messages/MessageTimestamp.js @@ -19,7 +19,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {formatFullDate, formatTime} from 'matrix-react-sdk/lib/DateUtils'; -export class MessageTimestamp extends React.Component { +export default class MessageTimestamp extends React.Component { static propTypes = { ts: PropTypes.number.isRequired, showTwelveHour: PropTypes.bool, From e2ef885aa6b0b25532165dc0eaa5163c7e6c4b20 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sat, 13 Jan 2018 01:55:47 +0000 Subject: [PATCH 077/163] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 6a463e6705..c7bf1ce944 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -43,14 +43,14 @@ "Messages sent by bot": "由機器人送出的訊息", "more": "更多", "Mute": "靜音", - "No rooms to show": "無聊天室可顯示", + "No rooms to show": "未顯示聊天室", "Noisy": "吵鬧", "Notifications": "通知", "Off": "關閉", "On": "開啟", "Operation failed": "操作失敗", "powered by Matrix": "由 Matrix 架設", - "Quote": "引述", + "Quote": "引用", "Remove": "移除", "Resend": "重新傳送", "Room not found": "找不到聊天室", @@ -66,7 +66,7 @@ "Unhide Preview": "取消隱藏預覽", "Unknown device": "未知裝置", "unknown error code": "未知的錯誤代碼", - "Unnamed room": "無命名的聊天室", + "Unnamed room": "未命名的聊天室", "Update": "更新", "Uploaded on %(date)s by %(user)s": "由 %(user)s 在 %(date)s 上傳", "Uploading report": "上傳報告", @@ -109,7 +109,7 @@ "Filter room names": "過濾聊天室名稱", "Forget": "忘記", "Forward Message": "轉寄訊息", - "Guests can join": "訪客可以加入", + "Guests can join": "訪客可加入", "Hide panel": "隱藏面板", "I understand the risks and wish to continue": "我了解這些風險並願意繼續", "Invite to this room": "邀請加入這個聊天室", @@ -141,7 +141,7 @@ "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": "公開可讀", + "World readable": "所有人可讀", "You cannot delete this image. (%(code)s)": "你不能刪除這個圖片。(%(code)s)", "You are not receiving desktop notifications": "你將不會收到桌面通知", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "你也許不曾在其它 Riot 之外的客戶端設定它們。在 Riot 底下你無法調整它們但其仍然可用", From a50e9d2b6b96d4d40c00153606c7eb4311a7fc28 Mon Sep 17 00:00:00 2001 From: toriko Date: Sat, 13 Jan 2018 04:13:21 +0000 Subject: [PATCH 078/163] Translated using Weblate (Japanese) Currently translated at 33.1% (73 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ja/ --- src/i18n/strings/ja.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 4bd46f3f59..5be8352a34 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -63,7 +63,7 @@ "Messages in group chats": "グループチャットのメッセージ", "When I'm invited to a room": "部屋に招待された時", "Messages sent by bot": "ボットから送信されたメッセージ", - "Error saving email notification preferences": "電子メール通知設定の保存中にエラー", + "Error saving email notification preferences": "電子メール通知設定の保存エラー", "An error occurred whilst saving your email notification preferences.": "電子メール通知設定を保存中にエラーが発生しました。", "Keywords": "キーワード", "Enter keywords separated by a comma:": "キーワードをコンマで区切って入力:", @@ -71,5 +71,6 @@ "Operation failed": "操作に失敗しました", "Can't update user notification settings": "ユーザー通知の設定を更新できません", "Failed to update keywords": "キーワードの更新に失敗しました", - "Messages containing keywords": "keywordsを含むメッセージ" + "Messages containing keywords": "keywordsを含むメッセージ", + "Add an email address above to configure email notifications": "メール通知を設定するために、メールアドレスを追加してください" } From c269abd434c24df194b7024021ce9ee958a9db96 Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Tue, 16 Jan 2018 09:40:15 +0000 Subject: [PATCH 079/163] CSS required as part of moving TagPanel from react-dnd to react-beautiful-dnd --- .../vector/css/matrix-react-sdk/structures/_TagPanel.scss | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss index b557710b26..91199a11e7 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss @@ -29,11 +29,13 @@ limitations under the License. display: flex; flex-direction: column; align-items: center; - margin-top: 65px; + padding-top: 65px; + + flex-grow: 1; } .mx_TagPanel .mx_TagTile { - margin: 6px 0px; + padding: 6px 3px; opacity: 0.5; } .mx_TagPanel .mx_TagTile:focus, @@ -44,7 +46,7 @@ limitations under the License. .mx_TagPanel .mx_TagTile.mx_TagTile_selected { /* To offset border of mx_TagTile_avatar */ - margin: 3px 0px; + padding: 3px 0px; } .mx_TagPanel .mx_TagTile.mx_TagTile_selected .mx_TagTile_avatar { From 4386d45a972802d48d81d3016fdfd3a50a55ee87 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@googlemail.com> Date: Tue, 16 Jan 2018 10:27:47 +0000 Subject: [PATCH 080/163] remove 'use strict' --- src/components/views/elements/Highlight.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/views/elements/Highlight.js b/src/components/views/elements/Highlight.js index 1251264e37..8706bb05a5 100644 --- a/src/components/views/elements/Highlight.js +++ b/src/components/views/elements/Highlight.js @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; - import React from 'react'; import PropTypes from 'prop-types'; import {highlightBlock} from 'highlight.js'; From 6f47a9b8c34a1b258f79181a6f3c1537c2eda953 Mon Sep 17 00:00:00 2001 From: Xose M Date: Tue, 16 Jan 2018 11:00:45 +0000 Subject: [PATCH 081/163] Translated using Weblate (Galician) Currently translated at 99.5% (219 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/gl/ --- src/i18n/strings/gl.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 0bf86d935d..499ee1e8f7 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -59,7 +59,7 @@ "Filter room names": "Filtrar nomes de sala", "Forget": "Esquecer", "Forward Message": "Reenviar mensaxe", - "Guests can join": "Convidadas pódense unir", + "Guests can join": "Convidados pódense unir", "Hide panel": "Agochar panel", "(HTTP status %(httpStatus)s)": "(Estado HTTP %(httpStatus)s)", "I understand the risks and wish to continue": "Entendos os riscos e desexo continuar", @@ -79,8 +79,8 @@ "Messages in one-to-one chats": "Mensaxes en chats un-a-un", "Messages sent by bot": "Mensaxes enviadas por bot", "more": "máis", - "Mute": "Calar", - "No rooms to show": "Non hai salas que mostrar", + "Mute": "Acalar", + "No rooms to show": "Sen salas que mostrar", "Noisy": "Ruidoso", "Notification targets": "Obxetivos das notificacións", "Notifications": "Notificacións", @@ -139,7 +139,7 @@ "What's new?": "Qué hai de novo?", "Waiting for response from server": "Agardando pola resposta do servidor", "When I'm invited to a room": "Cando son convidado a unha sala", - "World readable": "Visible por todo o mundo", + "World readable": "Visible por todos", "You cannot delete this image. (%(code)s)": "Non pode eliminar esta imaxe. (%(code)s)", "You cannot delete this message. (%(code)s)": "Non pode eliminar esta mensaxe. (%(code)s)", "You are not receiving desktop notifications": "Non está a recibir notificacións de escritorio", @@ -212,7 +212,7 @@ "Edit": "Editar", "Send Account Data": "Enviar datos da conta", "Explore Account Data": "Explorar datos da conta", - "Unpin Message": "Non fixar mensaxe", + "Unpin Message": "Desfixar mensaxe", "Pin Message": "Fixar mensaxe", "Register": "Rexistrar", "Rooms": "Salas", From 3481283af8f9921fcd7b5c8eb4941822b123434b Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Thu, 18 Jan 2018 17:54:12 +0000 Subject: [PATCH 082/163] Swap RoomList to react-beautiful-dnd Includes themeing See matrix-org/matrix-react-sdk#1711 --- package.json | 1 + src/components/structures/RoomSubList.js | 38 +-- src/components/views/rooms/DNDRoomTile.js | 253 +++--------------- .../views/rooms/_RoomTile.scss | 2 + src/skins/vector/css/themes/_base.scss | 1 + src/skins/vector/css/themes/_dark.scss | 3 +- .../vector-web/structures/_RoomSubList.scss | 4 + .../vector/themes/status/css/_status.scss | 1 + 8 files changed, 68 insertions(+), 235 deletions(-) diff --git a/package.json b/package.json index 556f0c724c..65f866dcaf 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "pako": "^1.0.5", "prop-types": "^15.5.10", "react": "^15.6.0", + "react-beautiful-dnd": "^4.0.1", "react-dnd": "^2.1.4", "react-dnd-html5-backend": "^2.1.2", "react-dom": "^15.6.0", diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 251c65226c..15f56c0069 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -20,8 +20,8 @@ limitations under the License. var React = require('react'); var ReactDOM = require('react-dom'); var classNames = require('classnames'); -var DropTarget = require('react-dnd').DropTarget; var sdk = require('matrix-react-sdk'); +import { Droppable } from 'react-beautiful-dnd'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; var dis = require('matrix-react-sdk/lib/dispatcher'); var Unread = require('matrix-react-sdk/lib/Unread'); @@ -32,6 +32,7 @@ var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/A import Modal from 'matrix-react-sdk/lib/Modal'; import { KeyCode } from 'matrix-react-sdk/lib/Keyboard'; + // turn this on for drop & drag console debugging galore var debug = false; @@ -326,9 +327,7 @@ var RoomSubList = React.createClass({ }); }, - calcManualOrderTagData: function(room) { - const index = this.state.sortedList.indexOf(room); - + calcManualOrderTagData: function(index) { // we sort rooms by the lexicographic ordering of the 'order' metadata on their tags. // for convenience, we calculate this for now a floating point number between 0.0 and 1.0. @@ -375,12 +374,14 @@ var RoomSubList = React.createClass({ makeRoomTiles: function() { var self = this; var DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile"); - return this.state.sortedList.map(function(room) { + return this.state.sortedList.map(function(room, index) { // XXX: is it evil to pass in self as a prop to RoomTile? return ( ; } - return connectDropTarget( -
- { this._getHeaderJsx() } - { subList } -
- ); + const subListContent =
+ { this._getHeaderJsx() } + { subList } +
; + + return this.props.editable ? + { (provided, snapshot) => ( +
+ { subListContent } +
+ ) } +
: subListContent; } else { var Loader = sdk.getComponent("elements.Spinner"); @@ -585,11 +592,4 @@ var RoomSubList = React.createClass({ } }); -// Export the wrapped version, inlining the 'collect' functions -// to more closely resemble the ES7 -module.exports = -DropTarget('RoomTile', roomListTarget, function(connect) { - return { - connectDropTarget: connect.dropTarget(), - } -})(RoomSubList); +module.exports = RoomSubList; diff --git a/src/components/views/rooms/DNDRoomTile.js b/src/components/views/rooms/DNDRoomTile.js index 430906d21b..1adb2a79a3 100644 --- a/src/components/views/rooms/DNDRoomTile.js +++ b/src/components/views/rooms/DNDRoomTile.js @@ -14,227 +14,50 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; - import React from 'react'; -import {DragSource} from 'react-dnd'; -import {DropTarget} from 'react-dnd'; - -import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; -import sdk from 'matrix-react-sdk'; -import { _t } from 'matrix-react-sdk/lib/languageHandler'; +import { Draggable } from 'react-beautiful-dnd'; import RoomTile from 'matrix-react-sdk/lib/components/views/rooms/RoomTile'; -import * as Rooms from 'matrix-react-sdk/lib/Rooms'; -import Modal from 'matrix-react-sdk/lib/Modal'; -/** - * Defines a new Component, DNDRoomTile that wraps RoomTile, making it draggable. - * Requires extra props: - * roomSubList: React.PropTypes.object.isRequired, - * refreshSubList: React.PropTypes.func.isRequired, - */ +export default class DNDRoomTile extends React.Component { + constructor() { + super(); + this.getStyle = this.getStyle.bind(this); + } -/** - * Specifies the drag source contract. - * Only `beginDrag` function is required. - */ -var roomTileSource = { - canDrag: function(props, monitor) { - return props.roomSubList.props.editable; - }, - - beginDrag: function (props) { - // Return the data describing the dragged item - var item = { - room: props.room, - originalList: props.roomSubList, - originalIndex: props.roomSubList.findRoomTile(props.room).index, - targetList: props.roomSubList, // at first target is same as original - // lastTargetRoom: null, - // lastYOffset: null, - // lastYDelta: null, + getStyle(isDragging) { + const result = { + transform: isDragging ? "scale(1.05, 1.05)" : "none", + transition: "transform 0.2s", }; - - if (props.roomSubList.debug) console.log("roomTile beginDrag for " + item.room.roomId); - - // doing this 'correctly' with state causes react-dnd to break seemingly due to the state transitions - props.room._dragging = true; - - return item; - }, - - endDrag: function (props, monitor, component) { - var item = monitor.getItem(); - - if (props.roomSubList.debug) console.log("roomTile endDrag for " + item.room.roomId + " with didDrop=" + monitor.didDrop()); - - props.room._dragging = false; - if (monitor.didDrop()) { - if (props.roomSubList.debug) console.log("force updating component " + item.targetList.props.label); - item.targetList.forceUpdate(); // as we're not using state - } - - const prevTag = item.originalList.props.tagName; - const newTag = item.targetList.props.tagName; - - if (monitor.didDrop() && item.targetList.props.editable) { - // Evil hack to get DMs behaving - if ((prevTag === undefined && newTag === 'im.vector.fake.direct') || - (prevTag === 'im.vector.fake.direct' && newTag === undefined) - ) { - Rooms.guessAndSetDMRoom( - item.room, newTag === 'im.vector.fake.direct', - ).done(() => { - item.originalList.removeRoomTile(item.room); - }, (err) => { - const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - console.error("Failed to set direct chat tag " + err); - Modal.createTrackedDialog('Failed to set direct chat tag', '', ErrorDialog, { - title: _t('Failed to set direct chat tag'), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - return; - } - - // More evilness: We will still be dealing with moving to favourites/low prio, - // but we avoid ever doing a request with 'im.vector.fake.direct`. - - // if we moved lists, remove the old tag - if (prevTag && prevTag !== 'im.vector.fake.direct' && - item.targetList !== item.originalList - ) { - // commented out attempts to set a spinner on our target component as component is actually - // the original source component being dragged, not our target. To fix we just need to - // move all of this to endDrop in the target instead. FIXME later. - - //component.state.set({ spinner: component.state.spinner ? component.state.spinner++ : 1 }); - MatrixClientPeg.get().deleteRoomTag(item.room.roomId, prevTag).finally(function() { - //component.state.set({ spinner: component.state.spinner-- }); - }).catch(function(err) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - console.error("Failed to remove tag " + prevTag + " from room: " + err); - Modal.createTrackedDialog('Failed to remove tag from room', '', ErrorDialog, { - title: _t('Failed to remove tag %(tagName)s from room', {tagName: prevTag}), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - } - - var newOrder= {}; - if (item.targetList.props.order === 'manual') { - newOrder['order'] = item.targetList.calcManualOrderTagData(item.room); - } - - // if we moved lists or the ordering changed, add the new tag - if (newTag && newTag !== 'im.vector.fake.direct' && - (item.targetList !== item.originalList || newOrder) - ) { - MatrixClientPeg.get().setRoomTag(item.room.roomId, newTag, newOrder).catch(function(err) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - console.error("Failed to add tag " + newTag + " to room: " + err); - Modal.createTrackedDialog('Failed to add tag to room', '', ErrorDialog, { - title: _t('Failed to add tag %(tagName)s to room', {tagName: newTag}), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - } - } - else { - // cancel the drop and reset our original position - if (props.roomSubList.debug) console.log("cancelling drop & drag"); - props.roomSubList.moveRoomTile(item.room, item.originalIndex); - if (item.targetList && item.targetList !== item.originalList) { - item.targetList.removeRoomTile(item.room); - } - } + return result; } -}; -var roomTileTarget = { - canDrop: function() { - return false; - }, + render() { + const props = this.props; - hover: function(props, monitor) { - var item = monitor.getItem(); - //var off = monitor.getClientOffset(); - // console.log("hovering on room " + props.room.roomId + ", isOver=" + monitor.isOver()); - - //console.log("item.targetList=" + item.targetList + ", roomSubList=" + props.roomSubList); - - var switchedTarget = false; - if (item.targetList !== props.roomSubList) { - // we've switched target, so remove the tile from the previous target. - // n.b. the previous target might actually be the source list. - if (props.roomSubList.debug) console.log("switched target sublist"); - switchedTarget = true; - item.targetList.removeRoomTile(item.room); - item.targetList = props.roomSubList; - } - - if (!item.targetList.props.editable) return; - - if (item.targetList.props.order === 'manual') { - if (item.room.roomId !== props.room.roomId && props.room !== item.lastTargetRoom) { - // find the offset of the target tile in the list. - var roomTile = props.roomSubList.findRoomTile(props.room); - // shuffle the list to add our tile to that position. - props.roomSubList.moveRoomTile(item.room, roomTile.index); - } - - // stop us from flickering between our droptarget and the previous room. - // whenever the cursor changes direction we have to reset the flicker-damping. -/* - var yDelta = off.y - item.lastYOffset; - - if ((yDelta > 0 && item.lastYDelta < 0) || - (yDelta < 0 && item.lastYDelta > 0)) - { - // the cursor changed direction - forget our previous room - item.lastTargetRoom = null; - } - else { - // track the last room we were hovering over so we can stop - // bouncing back and forth if the droptarget is narrower than - // the other list items. The other way to do this would be - // to reduce the size of the hittarget on the list items, but - // can't see an easy way to do that. - item.lastTargetRoom = props.room; - } - - if (yDelta) item.lastYDelta = yDelta; - item.lastYOffset = off.y; -*/ - } - else if (switchedTarget) { - if (!props.roomSubList.findRoomTile(item.room).room) { - // add to the list in the right place - props.roomSubList.moveRoomTile(item.room, 0); - } - // we have to sort the list whatever to recalculate it - props.roomSubList.sortList(); - } - }, -}; - -// Export the wrapped version, inlining the 'collect' functions -// to more closely resemble the ES7 -module.exports = -DropTarget('RoomTile', roomTileTarget, function(connect, monitor) { - return { - // Call this function inside render() - // to let React DnD handle the drag events: - connectDropTarget: connect.dropTarget(), - isOver: monitor.isOver(), + return
+ + { (provided, snapshot) => { + return ( +
+
+
+ +
+
+ { provided.placeholder } +
+ ); + } } +
+
; } -})( -DragSource('RoomTile', roomTileSource, function(connect, monitor) { - return { - // Call this function inside render() - // to let React DnD handle the drag events: - connectDragSource: connect.dragSource(), - // You can ask the monitor about the current drag state: - isDragging: monitor.isDragging() - }; -})(RoomTile)); +} diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss index 842228b9c3..c9e7022e22 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss @@ -20,6 +20,8 @@ limitations under the License. font-size: 13px; display: block; height: 34px; + + background-color: $secondary-accent-color; } .mx_RoomTile_tooltip { diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss index d5e862aec6..35fc1a7908 100644 --- a/src/skins/vector/css/themes/_base.scss +++ b/src/skins/vector/css/themes/_base.scss @@ -104,6 +104,7 @@ $roomtile-name-color: rgba(69, 69, 69, 0.8); $roomtile-selected-bg-color: rgba(255, 255, 255, 0.8); $roomtile-focused-bg-color: rgba(255, 255, 255, 0.9); +$roomsublist-background: #badece; $roomsublist-label-fg-color: $h3-color; $roomsublist-label-bg-color: $tertiary-accent-color; $roomsublist-chevron-color: $accent-color; diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss index 60ffeca8ee..b0ca76b8b6 100644 --- a/src/skins/vector/css/themes/_dark.scss +++ b/src/skins/vector/css/themes/_dark.scss @@ -100,9 +100,10 @@ $rte-code-bg-color: #000; // ******************** $roomtile-name-color: rgba(186, 186, 186, 0.8); -$roomtile-selected-bg-color: rgba(255, 255, 255, 0.05); +$roomtile-selected-bg-color: #333; $roomtile-focused-bg-color: rgba(255, 255, 255, 0.2); +$roomsublist-background: #222; $roomsublist-label-fg-color: $h3-color; $roomsublist-label-bg-color: $tertiary-accent-color; $roomsublist-chevron-color: $accent-color; diff --git a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss index db1fb170e5..a2863460ad 100644 --- a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss +++ b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss @@ -18,6 +18,8 @@ limitations under the License. display: table; table-layout: fixed; width: 100%; + + background-color: $roomsublist-background; } .mx_RoomSubList_labelContainer { @@ -155,6 +157,8 @@ limitations under the License. position: relative; cursor: pointer; font-size: 13px; + + background-color: $secondary-accent-color; } .collapsed .mx_RoomSubList_ellipsis { diff --git a/src/skins/vector/themes/status/css/_status.scss b/src/skins/vector/themes/status/css/_status.scss index ed60b83d63..be4c3c7fd7 100644 --- a/src/skins/vector/themes/status/css/_status.scss +++ b/src/skins/vector/themes/status/css/_status.scss @@ -160,6 +160,7 @@ $roomtile-name-color: #ffffff; $roomtile-selected-bg-color: #465561; $roomtile-focused-bg-color: #6d8597; +$roomsublist-background: #465561; $roomsublist-label-fg-color: #ffffff; $roomsublist-label-bg-color: $secondary-accent-color; $roomsublist-chevron-color: #ffffff; From d55d3658f08563daa8ccf1511dd4f67423f2f8fd Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Thu, 18 Jan 2018 18:08:18 +0000 Subject: [PATCH 083/163] Use classNames instead of inline `style` Theres no benefit to using inline styles --- src/components/views/rooms/DNDRoomTile.js | 17 +++++++++-------- .../matrix-react-sdk/views/rooms/_RoomTile.scss | 9 +++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/components/views/rooms/DNDRoomTile.js b/src/components/views/rooms/DNDRoomTile.js index 1adb2a79a3..129e3f4597 100644 --- a/src/components/views/rooms/DNDRoomTile.js +++ b/src/components/views/rooms/DNDRoomTile.js @@ -18,18 +18,19 @@ import React from 'react'; import { Draggable } from 'react-beautiful-dnd'; import RoomTile from 'matrix-react-sdk/lib/components/views/rooms/RoomTile'; +import classNames from 'classnames'; + export default class DNDRoomTile extends React.Component { constructor() { super(); - this.getStyle = this.getStyle.bind(this); + this.getClassName = this.getClassName.bind(this); } - getStyle(isDragging) { - const result = { - transform: isDragging ? "scale(1.05, 1.05)" : "none", - transition: "transform 0.2s", - }; - return result; + getClassName(isDragging) { + return classNames({ + "mx_DNDRoomTile": true, + "mx_DNDRoomTile_dragging": isDragging, + }); } render() { @@ -49,7 +50,7 @@ export default class DNDRoomTile extends React.Component { {...provided.draggableProps} {...provided.dragHandleProps} > -
+
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss index c9e7022e22..a59cd3e80b 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomTile.scss @@ -157,6 +157,15 @@ limitations under the License. background-color: $roomtile-selected-bg-color; } +.mx_DNDRoomTile { + transform: none; + transition: transform 0.2s; +} + +.mx_DNDRoomTile_dragging { + transform: scale(1.05, 1.05); +} + .mx_RoomTile:focus { filter: none ! important; background-color: $roomtile-focused-bg-color; From 68f19f9558d33ff67e692553f77593af7dd5eb80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Sat, 18 Nov 2017 21:37:55 +0000 Subject: [PATCH 084/163] Translated using Weblate (Serbian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/ --- src/i18n/strings/sr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json index 2df46220c8..77214f2312 100644 --- a/src/i18n/strings/sr.json +++ b/src/i18n/strings/sr.json @@ -217,5 +217,6 @@ "Contributing code to Matrix and Riot": "Додавање кода у Матрикс и 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/веб преводиоце" + "Co-ordination for Riot/Web translators": "Координација за Riot/веб преводиоце", + "Reply": "Одговори" } From 4504ff954aeb44225f4eee9efadba246a8e1a1c3 Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Fri, 19 Jan 2018 10:10:13 +0000 Subject: [PATCH 085/163] Add `sudo: required` to travis config --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 94ed745cd8..bc3fce38df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,10 @@ dist: trusty # we don't need sudo, so can run in a container, which makes startup much # quicker. -sudo: false +# +# unfortunately we do temporarily require sudo as a workaround for +# https://github.com/travis-ci/travis-ci/issues/8836 +sudo: required language: node_js node_js: From 883ee4ec754c8cdf13879aed0f0e4e44ec931c88 Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Fri, 19 Jan 2018 13:35:11 +0000 Subject: [PATCH 086/163] Remove react-dnd --- package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/package.json b/package.json index 65f866dcaf..87d2aa4329 100644 --- a/package.json +++ b/package.json @@ -75,8 +75,6 @@ "prop-types": "^15.5.10", "react": "^15.6.0", "react-beautiful-dnd": "^4.0.1", - "react-dnd": "^2.1.4", - "react-dnd-html5-backend": "^2.1.2", "react-dom": "^15.6.0", "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef", "sanitize-html": "^1.11.1", From 8855cc294e732777a986a37069584b6a0dd58eeb Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Wed, 13 Dec 2017 22:57:24 +0000 Subject: [PATCH 087/163] converge on 'noisy' to mean noisy notifs --- src/components/views/context_menus/RoomTileContextMenu.js | 2 +- src/i18n/strings/ar.json | 2 +- src/i18n/strings/be.json | 2 +- src/i18n/strings/ca.json | 2 +- src/i18n/strings/cs.json | 2 +- src/i18n/strings/de_DE.json | 2 +- src/i18n/strings/el.json | 2 +- src/i18n/strings/en_EN.json | 2 +- src/i18n/strings/en_US.json | 2 +- src/i18n/strings/eo.json | 2 +- src/i18n/strings/es.json | 2 +- src/i18n/strings/eu.json | 2 +- src/i18n/strings/fa.json | 2 +- src/i18n/strings/fi.json | 2 +- src/i18n/strings/fr.json | 2 +- src/i18n/strings/gl.json | 2 +- src/i18n/strings/he.json | 2 +- src/i18n/strings/hu.json | 2 +- src/i18n/strings/id.json | 2 +- src/i18n/strings/it.json | 2 +- src/i18n/strings/ja.json | 2 +- src/i18n/strings/ko.json | 2 +- src/i18n/strings/lv.json | 2 +- src/i18n/strings/ml.json | 2 +- src/i18n/strings/nb_NO.json | 2 +- src/i18n/strings/nl.json | 2 +- src/i18n/strings/pl.json | 2 +- src/i18n/strings/pt.json | 2 +- src/i18n/strings/pt_BR.json | 2 +- src/i18n/strings/ru.json | 2 +- src/i18n/strings/sk.json | 2 +- src/i18n/strings/sv.json | 2 +- src/i18n/strings/ta.json | 2 +- src/i18n/strings/te.json | 2 +- src/i18n/strings/th.json | 2 +- src/i18n/strings/tr.json | 2 +- src/i18n/strings/uk.json | 2 +- src/i18n/strings/zh_Hans.json | 2 +- src/i18n/strings/zh_Hant.json | 2 +- 39 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js index 1518bb22b4..36602cfac6 100644 --- a/src/components/views/context_menus/RoomTileContextMenu.js +++ b/src/components/views/context_menus/RoomTileContextMenu.js @@ -275,7 +275,7 @@ module.exports = React.createClass({
- { _t('All messages (loud)') } + { _t('All messages (noisy)') }
diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json index d5952825af..edd99017da 100644 --- a/src/i18n/strings/ar.json +++ b/src/i18n/strings/ar.json @@ -8,7 +8,7 @@ "All Rooms": "كل الغُرف", "Safari and Opera work too.": "متصفح سافاري و متصفح أوبرا يعملان أيضاً.", "Add an email address above to configure email notifications": "أضف بريداً إلكترونياً أعلاه من أجل تعديل إعدادت تنبيهات البريد الإلكتروني", - "All messages (loud)": "كل الرسائل (صوت مرتفع)", + "All messages (noisy)": "كل الرسائل (صوت مرتفع)", "All notifications are currently disabled for all targets.": "كل التنبيهات غير مفعلة حالياً للجميع.", "An error occurred whilst saving your email notification preferences.": "حدث خطأ ما خلال حفظ إعدادات التنبيهات للبريد الإلكتروني.", "Call invitation": "دعوة لمحادثة", diff --git a/src/i18n/strings/be.json b/src/i18n/strings/be.json index 479c5c656f..fe8cd43483 100644 --- a/src/i18n/strings/be.json +++ b/src/i18n/strings/be.json @@ -1,7 +1,7 @@ { "Add an email address above to configure email notifications": "Дадайце адрас электроннай пошты вышэй, каб наладзіць апавяшчэнні", "All messages": "Усе паведамленні", - "All messages (loud)": "Усе паведамленні (гучна)", + "All messages (noisy)": "Усе паведамленні (гучна)", "All notifications are currently disabled for all targets.": "Усе апавяшчэнні ў цяперашні час адключаныя для ўсіх мэтаў.", "An error occurred whilst saving your email notification preferences.": "Адбылася памылка падчас захавання налады апавяшчэнняў па электроннай пошце.", "Cancel Sending": "Адмяніць адпраўку", diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index fe82e8146b..fdfa90b9f4 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -14,7 +14,7 @@ "Failed to remove tag %(tagName)s from room": "No s'ha pogut esborrar l'etiqueta %(tagName)s de la sala", "Filter room names": "Filtra els noms de les sales", "Couldn't load home page": "No s'ha pogut carregar la pàgina d'inici", - "All messages (loud)": "Tots els missatges (sorollós)", + "All messages (noisy)": "Tots els missatges (sorollós)", "Mentions only": "Només mencions", "Mute": "Silenciat", "Direct Chat": "Xat directe", diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 8b85502610..47bb806234 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -42,7 +42,7 @@ "Messages sent by bot": "Zprávy poslané robotem", "more": "více", "Mute": "Ztlumit", - "All messages (loud)": "Všechny zprávy (hlasitě)", + "All messages (noisy)": "Všechny zprávy (hlasitě)", "Couldn't load home page": "Nepodařilo se nahrát úvodní stránku", "All notifications are currently disabled for all targets.": "Veškeré notifikace jsou aktuálně pro všechny cíle vypnuty.", "Cancel Sending": "Zrušit odesílání", diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 196bdc9a36..bc45c2405e 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -62,7 +62,7 @@ "On": "An", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du hast sie eventuell auf einem anderen Matrix-Client und nicht in Riot konfiguriert. Sie können in Riot nicht verändert werden, gelten aber trotzdem", "All messages": "Alle Nachrichten", - "All messages (loud)": "Alle Nachrichten (laut)", + "All messages (noisy)": "Alle Nachrichten (laut)", "Cancel Sending": "Senden abbrechen", "Close": "Schließen", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Soll der Raum-Alias %(alias)s gelöscht und der %(name)s aus dem Verzeichnis entfernt werden?", diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index a3d72487c9..1e8cf01bfc 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -29,7 +29,7 @@ "Collecting app version information": "Συγκέντρωση πληροφοριών σχετικά με την έκδοση της εφαρμογής", "customServer_text": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις για να εισέλθετε σε άλλους διακομιστές Matrix επιλέγοντας μια διαφορετική διεύθυνση για το διακομιστή.
Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή Riot με έναν υπάρχοντα λογαριασμό σε διαφορετικό διακομιστή.

Επίσης μπορείτε να επιλέξετε ένα διαφορετικό διακομιστή ταυτότητας αλλά δεν θα έχετε τη δυνατότητα να προσκαλέσετε άλλους χρήστες ή να σας προσκαλέσουν μέσω μηνυμάτων ηλεκτρονικής αλληλογραφίας.", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s μέσω %(browserName)s σε %(osName)s", - "All messages (loud)": "Όλα τα μηνύματα (δυνατά)", + "All messages (noisy)": "Όλα τα μηνύματα (δυνατά)", "delete the alias.": "διέγραψε το ψευδώνυμο.", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Διαγραφή του ψευδώνυμου %(alias)s και αφαίρεση του %(name)s από το ευρετήριο;", "Dismiss": "Απόρριψη", diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index cdca2570c3..e3db4e76c0 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -137,7 +137,7 @@ "Failed to set Direct Message status of room": "Failed to set Direct Message status of room", "unknown error code": "unknown error code", "Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s", - "All messages (loud)": "All messages (loud)", + "All messages (noisy)": "All messages (noisy)", "All messages": "All messages", "Mentions only": "Mentions only", "Mute": "Mute", diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index 012b1f5da1..5d24c945e5 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -5,7 +5,7 @@ "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 messages (noisy)": "All messages (noisy)", "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.", diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 6dcf080954..d9f88cae55 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -1,7 +1,7 @@ { "A new version of Riot is available.": "Nova versio de \"Riot\" haveblas.", "All messages": "Ĉiuj mesaĝoj", - "All messages (loud)": "Ĉiuj mesaĝoj (lauta)", + "All messages (noisy)": "Ĉiuj mesaĝoj (lauta)", "All Rooms": "Ĉiuj babilejoj", "Cancel": "Nuligi", "delete the alias.": "Forviŝi la kromnomon.", diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index b0fbdaa844..5a7505a7d0 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -135,7 +135,7 @@ "You have successfully set a password and an email address!": "¡Ha establecido exitosamente la contraseña y la dirección de email!", "You have successfully set a password!": "¡Ha establecido exitosamente una contraseña!", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s en %(osName)s", - "All messages (loud)": "Todos los mensajes (ruidoso)", + "All messages (noisy)": "Todos los mensajes (ruidoso)", "All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.", "Collecting app version information": "Recolectando información de la versión de la aplicación", "Collecting logs": "Recolectando registros", diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 140f349893..bd5e5c84c7 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -5,7 +5,7 @@ "Add an email address above to configure email notifications": "Gehitu e-mail helbide bat goian e-mail bidezko jakinarazpenak konfiguratzeko", "Advanced notification settings": "Jakinarazpen aurreratuen ezarpenak", "All messages": "Mezu guztiak", - "All messages (loud)": "Mezu guztiak (ozen)", + "All messages (noisy)": "Mezu guztiak (ozen)", "All Rooms": "Gela guztiak", "All notifications are currently disabled for all targets.": "Une honetan jakinarazpen guztiak helburu guztietarako desgaituta daude.", "An error occurred whilst saving your email notification preferences.": "Errore bat gertatu da zure e-mail bidezko jakinarazpenen hobespenak gordetzean.", diff --git a/src/i18n/strings/fa.json b/src/i18n/strings/fa.json index 2ecdd44570..6570b0210d 100644 --- a/src/i18n/strings/fa.json +++ b/src/i18n/strings/fa.json @@ -1,7 +1,7 @@ { "A new version of Riot is available.": "نسخه‌ی جدید از رایوت موجود است.", "All messages": "همه‌ی پیام‌ها", - "All messages (loud)": "همه‌ی پیام‌ها(بلند)", + "All messages (noisy)": "همه‌ی پیام‌ها(بلند)", "All Rooms": "همه‌ی گپ‌ها", "Cancel Sending": "فرستادن را لغو کن", "Changelog": "تغییراتِ به‌وجودآمده", diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 9b63f9843f..7e8c0dd378 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -4,7 +4,7 @@ "Add an email address above to configure email notifications": "Lisää sähköpostiosoite yllä saadaksesi ilmoituksia sähköpostiisi", "Advanced notification settings": "Lisäasetukset ilmoituksille", "All messages": "Kaikki viestit", - "All messages (loud)": "Kaikki viestit (äänekkäästi)", + "All messages (noisy)": "Kaikki viestit (äänekkäästi)", "All Rooms": "Kaikki huoneet", "All notifications are currently disabled for all targets.": "Kaikki ilmoitukset on kytketty pois kaikilta kohteilta.", "An error occurred whilst saving your email notification preferences.": "Sähköposti-ilmoitusasetuksia tallettaessa tapahtui virhe.", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 9e365cde0e..294e4fbd39 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1,7 +1,7 @@ { "Add an email address above to configure email notifications": "Ajouter une adresse e-mail pour la configuration des notifications par e-mail", "All messages": "Tous les messages", - "All messages (loud)": "Tous les messages (fort)", + "All messages (noisy)": "Tous les messages (fort)", "All notifications are currently disabled for all targets.": "Toutes les notifications sont désactivées pour tous les appareils.", "An error occurred whilst saving your email notification preferences.": "Une erreur est survenue lors de la sauvegarde de vos préférences de notification par e-mail.", "Cancel Sending": "Annuler l'envoi", diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 3fec05e9f3..0c7f183031 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -5,7 +5,7 @@ "Add an email address above to configure email notifications": "Engada un enderezo de correo electrónico para configurar as notificacións", "Advanced notification settings": "Axustes avanzados de notificación", "All messages": "Todas as mensaxes", - "All messages (loud)": "Todas as mensaxes (alto)", + "All messages (noisy)": "Todas as mensaxes (alto)", "All Rooms": "Todas as Salas", "All notifications are currently disabled for all targets.": "Todas as notificacións están deshabilitadas para todos os destinos.", "An error occurred whilst saving your email notification preferences.": "Algo fallou mentras se gardaban as súas preferencias de notificaicón.", diff --git a/src/i18n/strings/he.json b/src/i18n/strings/he.json index 44363527a7..6026f2d9e6 100644 --- a/src/i18n/strings/he.json +++ b/src/i18n/strings/he.json @@ -3,7 +3,7 @@ "Add an email address above to configure email notifications": "הוסף כתובת דואר אלקטורני למעלה בכדי להגדיר התראות", "Advanced notification settings": "הגדרות מתקדמות להתראות", "All messages": "כל ההודעות", - "All messages (loud)": "כל ההודעות (צעקה)", + "All messages (noisy)": "כל ההודעות (צעקה)", "All Rooms": "כל החדרים", "All notifications are currently disabled for all targets.": "התראות מנוטרלות לכלל המערכת.", "An error occurred whilst saving your email notification preferences.": "קרתה שגיאה בזמן שמירת הגדרות התראה באמצעות הדואר האלקטרוני.", diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 4fe423371d..c6a6e6db20 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2,7 +2,7 @@ "Add an email address above to configure email notifications": "E-mail értesítés beállításához írd be az e-mail címed", "Advanced notification settings": "Haladó értesítési beállítások", "All messages": "Minden üzenet", - "All messages (loud)": "Minden üzenet (hangos)", + "All messages (noisy)": "Minden üzenet (hangos)", "All notifications are currently disabled for all targets.": "Minden céleszközön minden értesítés tiltva van.", "An error occurred whilst saving your email notification preferences.": "Hiba történt az e-mail értesítés beállításánál.", "Call invitation": "Hívás meghívó", diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 28c65ffd6b..f2d8804bb9 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -5,7 +5,7 @@ "Add an email address above to configure email notifications": "Tambahkan alamat email di atas untuk konfigurasi notifikasi email", "Advanced notification settings": "Pengaturan notifikasi lanjutan", "All messages": "Semua pesan", - "All messages (loud)": "Semua pesan (keras)", + "All messages (noisy)": "Semua pesan (keras)", "All Rooms": "Semua Ruang", "All notifications are currently disabled for all targets.": "Semua notifikasi saat ini dinonaktifkan untuk semua target.", "An error occurred whilst saving your email notification preferences.": "Terjadi kesalahan saat menyimpan preferensi notifikasi email Anda.", diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index a162340fbc..bd70c95824 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -4,7 +4,7 @@ "Add an email address above to configure email notifications": "Aggiungi un indirizzo email sopra per configurare le notifiche via email", "Advanced notification settings": "Impostazioni di notifica avanzate", "All messages": "Tutti i messaggi", - "All messages (loud)": "Tutti i messaggi (rumoroso)", + "All messages (noisy)": "Tutti i messaggi (rumoroso)", "All Rooms": "Tutte le stanze", "An error occurred whilst saving your email notification preferences.": "Si è verificato un errore durante il salvataggio delle tue preferenze sulle notifiche email.", "Call invitation": "Invito ad una chiamata", diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 97a0640e0f..e5812923b9 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -1,6 +1,6 @@ { "All messages": "全ての発言", - "All messages (loud)": "全ての発言(通知音あり)", + "All messages (noisy)": "全ての発言(通知音あり)", "Cancel": "取消", "Close": "閉じる", "Direct Chat": "対話", diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json index 62bea2ebd6..c769e4ea3f 100644 --- a/src/i18n/strings/ko.json +++ b/src/i18n/strings/ko.json @@ -3,7 +3,7 @@ "Add an email address above to configure email notifications": "이메일 알림을 설정하기 위해 이메일 주소를 추가해주세요", "Advanced notification settings": "고급 알림 설정", "All messages": "모든 메시지", - "All messages (loud)": "모든 메시지 (크게)", + "All messages (noisy)": "모든 메시지 (크게)", "All Rooms": "모든 방", "All notifications are currently disabled for all targets.": "현재 모든 알림이 모든 상대에게서 꺼졌어요.", "An error occurred whilst saving your email notification preferences.": "이메일 알림을 설정하다가 오류가 일어났어요.", diff --git a/src/i18n/strings/lv.json b/src/i18n/strings/lv.json index 7114e9d5e3..c71e991f3c 100644 --- a/src/i18n/strings/lv.json +++ b/src/i18n/strings/lv.json @@ -5,7 +5,7 @@ "Add an email address above to configure email notifications": "Pievieno augšā epasta adresi, lai konfigurētu epasta notifikāciju paziņojumus", "Advanced notification settings": "Īpašie notifikāciju uzstādījumi", "All messages": "Visas ziņas", - "All messages (loud)": "Visas ziņas (skaļi)", + "All messages (noisy)": "Visas ziņas (skaļi)", "All Rooms": "Visas istabas", "All notifications are currently disabled for all targets.": "Visi notifikāciju paziņojumi ir atspējoti visiem saņēmējiem.", "An error occurred whilst saving your email notification preferences.": "Radās kļūda saglabājot tavus epasta notifikāciju ziņu uzstādījumus.", diff --git a/src/i18n/strings/ml.json b/src/i18n/strings/ml.json index 47bdfd8e98..7608450287 100644 --- a/src/i18n/strings/ml.json +++ b/src/i18n/strings/ml.json @@ -1,7 +1,7 @@ { "Add an email address above to configure email notifications": "ഇ മെയില്‍ അറിയിപ്പുകൾ ലഭിക്കാന്‍ മുകളില്‍ ഇ-മെയില്‍ വിലാസം നല്‍കൂ", "All messages": "എല്ലാ സന്ദേശങ്ങളും", - "All messages (loud)": "എല്ലാ സന്ദേശങ്ങളും (ഉച്ചത്തിൽ)", + "All messages (noisy)": "എല്ലാ സന്ദേശങ്ങളും (ഉച്ചത്തിൽ)", "%(appName)s via %(browserName)s on %(osName)s": "%(osName)sല്‍ %(browserName)s വഴി %(appName)s", "Safari and Opera work too.": "സഫാരിയിലുംപിന്നെ ഓപ്പേറയിലുംപ്രവര്‍ത്തിക്കുന്നു.", "A new version of Riot is available.": "റയട്ടിന്റെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്.", diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json index 91bb33d848..71980bd26a 100644 --- a/src/i18n/strings/nb_NO.json +++ b/src/i18n/strings/nb_NO.json @@ -2,7 +2,7 @@ "Add an email address above to configure email notifications": "Legg til en epost adresse for å sette opp epost varsling", "Advanced notification settings": "Avanserte varslingsinnstillinger", "All messages": "Alle meldinger", - "All messages (loud)": "Alle meldinger (høy)", + "All messages (noisy)": "Alle meldinger (høy)", "All notifications are currently disabled for all targets.": "Alle varsler er deaktivert for alle mottakere.", "An error occurred whilst saving your email notification preferences.": "En feil oppsto i forbindelse med lagring av epost varsel innstillinger.", "Cancel Sending": "Avbryt sending", diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 558f9c681d..938e7714ef 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -2,7 +2,7 @@ "Add an email address above to configure email notifications": "Voeg een e-mailadres toe om e-mailmeldingen te ontvangen", "Advanced notification settings": "Geavanceerde meldingsinstellingen", "All messages": "Alle berichten", - "All messages (loud)": "Alle berichten (luid)", + "All messages (noisy)": "Alle berichten (luid)", "All notifications are currently disabled for all targets.": "Alle meldingen zijn momenteel uitgeschakeld voor alle doelen.", "An error occurred whilst saving your email notification preferences.": "Er is een fout opgetreden tijdens het opslaan van uw e-mailmeldingsvoorkeuren.", "Call invitation": "Oproep-uitnodiging", diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 7566963c52..31fdfbe6e5 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -5,7 +5,7 @@ "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 messages (noisy)": "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.", diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 6d4274f1ea..d8f314991a 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -1,7 +1,7 @@ { "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)", + "All messages (noisy)": "Todas as mensagens (alto)", "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", diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 681339d1e2..40df7d6049 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -1,7 +1,7 @@ { "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", "All messages": "Todas as mensagens", - "All messages (loud)": "Todas as mensagens (alto)", + "All messages (noisy)": "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.", "Call invitation": "Convite para chamada", "Cancel Sending": "Cancelar o envio", diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 48415323bd..2d033fb987 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -63,7 +63,7 @@ "You are not receiving desktop notifications": "Вы не получаете уведомления на рабочем столе", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Возможно вы настроили их не в Riot, а в другом Matrix-клиенте. Настроить их в Riot не удастся, но они будут в нем применяться", "All messages": "Все сообщения", - "All messages (loud)": "Все сообщения (со звуком)", + "All messages (noisy)": "Все сообщения (со звуком)", "Cancel Sending": "Отменить отправку", "Close": "Закрыть", "Download this file": "Скачать этот файл", diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 01ecc78819..5aaedc9b83 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -135,7 +135,7 @@ "Failed to set Direct Message status of room": "Nepodarilo sa nastaviť stav miestnosti priama konverzácia", "unknown error code": "neznámy kód chyby", "Failed to forget room %(errCode)s": "Nepodarilo sa zabudnuť miestnosť %(errCode)s", - "All messages (loud)": "Všetky správy (hlučné)", + "All messages (noisy)": "Všetky správy (hlučné)", "All messages": "Všetky správy", "Mentions only": "Len zmienky", "Mute": "Umlčať", diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 75b060c287..79a97362bb 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -2,7 +2,7 @@ "Add an email address above to configure email notifications": "Lägg till en epostadress här för att konfigurera epostaviseringar", "Advanced notification settings": "Avancerade aviseringsinställingar", "All messages": "Alla meddelanden", - "All messages (loud)": "Alla meddelanden (högljudd)", + "All messages (noisy)": "Alla meddelanden (högljudd)", "All notifications are currently disabled for all targets.": "Alla aviseringar är för tillfället avstängda för alla mål.", "An error occurred whilst saving your email notification preferences.": "Ett fel uppstod då epostaviseringsinställningarna sparades.", "Call invitation": "Inbjudan till samtal", diff --git a/src/i18n/strings/ta.json b/src/i18n/strings/ta.json index dc6a593e3b..8fe8a443d1 100644 --- a/src/i18n/strings/ta.json +++ b/src/i18n/strings/ta.json @@ -4,7 +4,7 @@ "Add an email address above to configure email notifications": "மின்னஞ்சல் மூலம் அறிவிப்புகளை பெற உங்கள் மின்னஞ்சல் முகவரியை மேலே இணைக்கவும்", "Advanced notification settings": "மேம்பட்ட அறிவிப்பிற்கான அமைப்புகள்", "All messages": "அனைத்து செய்திகள்", - "All messages (loud)": "அனைத்து செய்திகள் (உரக்க)", + "All messages (noisy)": "அனைத்து செய்திகள் (உரக்க)", "All Rooms": "அனைத்து அறைகள்", "All notifications are currently disabled for all targets.": "அனைத்து இலக்குகளுக்கான அனைத்து அறிவுப்புகளும் தற்போது முடக்கி வைக்கப்பட்டுள்ளது.", "An error occurred whilst saving your email notification preferences.": "உங்கள் மின்னஞ்சல் அறிவிப்பு விருப்பங்களை சேமிப்பதில் ஏதோ பிழை ஏற்பட்டுள்ளது.", diff --git a/src/i18n/strings/te.json b/src/i18n/strings/te.json index b7af70a2ca..e50d78fa05 100644 --- a/src/i18n/strings/te.json +++ b/src/i18n/strings/te.json @@ -16,7 +16,7 @@ "Add an email address above to configure email notifications": "ఇమెయిల్ ప్రకటనలను రూపశిల్పం చేయడానికి ఎగువ ఇమెయిల్ చిరునామాను జోడించండి", "Advanced notification settings": "ఆధునిక తాఖీదు అమరిక", "All messages": "అన్ని సందేశాలు", - "All messages (loud)": "అన్ని సందేశాలు (గట్టిగ)", + "All messages (noisy)": "అన్ని సందేశాలు (గట్టిగ)", "All Rooms": "అన్ని గదులు", "Call invitation": "మాట్లాడడానికి ఆహ్వానం", "Cancel Sending": "పంపడాన్ని ఆపేయండి", diff --git a/src/i18n/strings/th.json b/src/i18n/strings/th.json index 973f4319a2..5b27b81080 100644 --- a/src/i18n/strings/th.json +++ b/src/i18n/strings/th.json @@ -81,7 +81,7 @@ "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)": "ทุกข้อความ (เสียงดัง)", + "All messages (noisy)": "ทุกข้อความ (เสียงดัง)", "Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง", "Directory": "ไดเรกทอรี", "Enable audible notifications in web client": "เปิดใช้งานเสียงแจ้งเตือนบนเว็บไคลเอนต์", diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json index 23537b9919..b0fcc46b66 100644 --- a/src/i18n/strings/tr.json +++ b/src/i18n/strings/tr.json @@ -5,7 +5,7 @@ "Add an email address above to configure email notifications": "E-posta bildirimlerini yapılandırmak için yukarıya bir e-posta adresi ekleyin", "Advanced notification settings": "Gelişmiş bildirim ayarları", "All messages": "Tüm mesajlar", - "All messages (loud)": "Tüm mesajlar (uzun)", + "All messages (noisy)": "Tüm mesajlar (uzun)", "All Rooms": "Tüm Odalar", "All notifications are currently disabled for all targets.": "Tüm bildirimler şu anda tüm hedefler için devre dışı bırakılmıştır.", "An error occurred whilst saving your email notification preferences.": "E-posta bildirim tercihlerinizi kaydetme işlemi sırasında bir hata oluştu.", diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 2e3cf61285..5cf95b3847 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -1,7 +1,7 @@ { "A new version of Riot is available.": "Доступне оновлення для Riot.", "All messages": "Усі повідомлення", - "All messages (loud)": "Усі повідомлення (гучно)", + "All messages (noisy)": "Усі повідомлення (гучно)", "All Rooms": "Усі кімнати", "All notifications are currently disabled for all targets.": "Сповіщення для усіх цілей на даний момент вимкнені.", "An error occurred whilst saving your email notification preferences.": "Під час збереження налаштувань сповіщень е-поштою трапилася помилка.", diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 0a1465b4cf..4a7b3a325b 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -10,7 +10,7 @@ "Add an email address above to configure email notifications": "请在上方输入电子邮件地址以接收邮件通知", "Advanced notification settings": "通知高级设置", "All messages": "全部消息", - "All messages (loud)": "全部消息(高亮)", + "All messages (noisy)": "全部消息(高亮)", "All Rooms": "全部聊天室", "All notifications are currently disabled for all targets.": "当前所有目标的通知均已禁用。", "An error occurred whilst saving your email notification preferences.": "保存邮件通知首选项设定时出现错误。", diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index fc5dd6ec6d..ab35f46c12 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -8,7 +8,7 @@ "Safari and Opera work too.": "SafariOpera 也能使用。", "Advanced notification settings": "進階通知設定", "All messages": "所有訊息", - "All messages (loud)": "所有訊息(吵鬧)", + "All messages (noisy)": "所有訊息(吵鬧)", "All Rooms": "所有的聊天室", "Call invitation": "通話邀請", "Cancel": "取消", From 37b5de2251902d3974ebde1a6c4ceba5e8a4127e Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 19 Jan 2018 16:52:24 +0000 Subject: [PATCH 088/163] update triaging a bit --- README.md | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 273f448b29..b32bbea743 100644 --- a/README.md +++ b/README.md @@ -319,31 +319,51 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md). Triaging issues =============== -Issues will be triaged by the core team using the following primary set of tags: +Issues will be triaged by the core team using the below set of tags. -priority: +Tags are meant to be used in combination - e.g.: + * P1 critical bug == really urgent stuff that should be next in the bugfixing todo list + * "release blocker" == stuff which is blocking us from cutting the next release. + * P1 feature type:voip == what VoIP features should we be working on next? -* P1: top priority; typically blocks releases +priority: **compulsory** + +* P1: top priority - i.e. pool of stuff which we should be working on next * P2: still need to fix, but lower than P1 * P3: non-urgent -* P4: intereseting idea - bluesky some day +* P4: interesting idea - bluesky some day * P5: recorded for posterity/to avoid duplicates. No intention to resolves right now. -bug or feature: +bug or feature: **compulsory** * bug * feature -bug severity: +bug severity: **compulsory, if bug** -* cosmetic - feature works functionally but UI/UX is broken * critical - whole app doesn't work * major - entire feature doesn't work * minor - partially broken feature (but still usable) +* cosmetic - feature works functionally but UI/UX is broken -additional categories: +types +* type:* - refers to a particular part of the app; used to filter bugs + on a given topic - e.g. VOIP, signup, timeline, etc. + +additional categories (self-explanatory): * release blocker * ui/ux (think of this as cosmetic) * network (specific to network conditions) -* platform (platform specific) +* platform specific +* accessibility +* maintenance +* performance +* i18n +* blocked - whether this issue currently can't be progressed due to outside factors + +community engagement +* easy +* hacktoberfest +* bounty? - proposal to be included in a bounty programme +* bounty - included in Status Open Bounty From 189b7236aff45b79a21e7074c211322cd0df0815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Tue, 26 Dec 2017 17:56:03 +0000 Subject: [PATCH 089/163] Translated using Weblate (Slovak) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/ --- src/i18n/strings/sk.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index f2e9147bd9..34ce52b255 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -219,5 +219,6 @@ "Appear Offline": "Zdá sa byť nedostupný", "Away": "Preč", "Please install Chrome or Firefox for the best experience.": "Aby ste s používania mali čo možno najlepší dojem, nainštalujte si Chrome alebo Firefox.", - "Safari and Opera work too.": "Správne fungujú aj Safari a Opera." + "Safari and Opera work too.": "Správne fungujú aj Safari a Opera.", + "Reply": "Odpovedať" } From 4eeb7989f6d6960617ff0d771b82e50b1493baa1 Mon Sep 17 00:00:00 2001 From: pebles Date: Sat, 20 Jan 2018 16:33:28 +0000 Subject: [PATCH 090/163] Translated using Weblate (Spanish) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/ --- src/i18n/strings/es.json | 53 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 6607fb87dd..a9da177d29 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -7,7 +7,7 @@ "Cancel Sending": "Cancelar envío", "Can't update user notification settings": "No se puede actualizar la configuración de notificaciones del usuario", "Close": "Cerrar", - "Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincidiera", + "Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincida.", "Custom Server Options": "Opciones de Servidor Personalizado", "customServer_text": "Puedes utilizar las opciones de servidor personalizadas para iniciar sesión en otros servidores Matrix especificando una URL de Home server distinta.
Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.

También puedes configurar un servidor de identidad personalizado, pero no podrás ni invitar usuarios ni ser invitado a través de tu dirección de correo electrónico.", "delete the alias.": "borrar el alias.", @@ -107,19 +107,19 @@ "Safari and Opera work too.": "Safari y Opera también funcionan.", "A new version of Riot is available.": "Una nueva versión de Riot está disponible.", "Cancel": "Cancelar", - "Describe your problem here.": "Describa su problema aquí.", + "Describe your problem here.": "Describe el problema aquí.", "Forward Message": "Reenviar mensaje", "Hide panel": "Ocultar panel", "(HTTP status %(httpStatus)s)": "(estado HTTP %(httpStatus)s)", "I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar", "Changelog": "Registro de cambios", "Collapse panel": "Colapsar panel", - "Remember, you can always set an email address in user settings if you change your mind.": "Recuerde que, si es necesario, puede establecer una dirección de email en las preferencias de usuario.", + "Remember, you can always set an email address in user settings if you change your mind.": "Recuerda que si es necesario puedes establecer una dirección de email en las preferencias de usuario.", "All Rooms": "Todas las salas", "Expand panel": "Expandir panel", - "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 los problemas, los registros de este cliente serán enviados adjuntos a este informe de fallo. Si quisiera enviar el texto anterior solamente, entonces desmarque:", + "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 los problemas, los registros de este cliente serán enviados adjuntos a este informe de fallo. Si quisieras enviar el texto anterior solamente, entonces desmarca:", "Login": "Iniciar sesión", - "Report a bug": "Informe de un fallo", + "Report a bug": "Informar de un fallo", "Search…": "Buscar…", "Send": "Enviar", "Send logs": "Enviar registros", @@ -132,8 +132,8 @@ "What's New": "Novedades", "What's new?": "¿Qué hay de nuevo?", "Waiting for response from server": "Esperando una respuesta del servidor", - "You have successfully set a password and an email address!": "¡Has establecido exitosamente una contraseña y una dirección de correo electrónico!", - "You have successfully set a password!": "¡Has establecido exitosamente una contraseña!", + "You have successfully set a password and an email address!": "¡Has establecido una nueva contraseña y dirección de correo electrónico!", + "You have successfully set a password!": "¡Has establecido una nueva contraseña!", "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s en %(osName)s", "All messages (loud)": "Todos los mensajes (ruidoso)", "All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.", @@ -145,7 +145,7 @@ "Messages containing keywords": "Mensajes que contienen palabras clave", "Notify for all other messages/rooms": "Notificar para todos los demás mensajes/salas", "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Por favor describa el error. ¿Qué acción ejecutó? ¿Cuál era el resultado que esperaba? ¿Que pasó realmente?", - "Please describe the bug and/or send logs.": "Por favor describa el error y/o envíe los registros.", + "Please describe the bug and/or send logs.": "Por favor describe el error y/o envía los registros.", "Please install Chrome or Firefox for the best experience.": "Por favor instale Google Chrome o Mozilla Firefox para una mejor experiencia.", "powered by Matrix": "con el poder de Matrix", "Riot Desktop on %(platformName)s": "Riot Desktop en %(platformName)s", @@ -154,7 +154,7 @@ "You need to be using HTTPS to place a screen-sharing call.": "Debes usar HTTPS para hacer una llamada con pantalla compartida.", "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!": "En su navegador actual, la apariencia y comportamiento de la aplicación puede ser completamente incorrecta, y algunas de las características podrían no funcionar. Si aún desea probarlo puede continuar, pero ¡no podremos ofrecer soporte por cualquier problema que pudiese tener!", "Welcome to Riot.im": "Bienvenido a Riot.im", - "Decentralised, encrypted chat & collaboration powered by [matrix]": "Conversaciones & colaboración cifradas y descentralizadas con el poder de [matrix]", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas & colaboración con el poder de [matrix]", "Search the room directory": "Buscar en el directorio de salas", "Chat with Riot Bot": "Conversar con el Bot de Riot", "Get started with some tips from Riot Bot!": "¡Comenzar con algunos consejos de Riot Bot!", @@ -183,40 +183,43 @@ "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Muchas salas ya están disponibles en Matrix, enlazadas a redes existentes (Slack, IRC, Gitter, etc) o independientes. ¡Revisa el directorio!", "You can now return to your account after signing out, and sign in on other devices.": "Ahora puedes regresar a tu cuenta después de cerrar tu sesión, e iniciar sesión en otros dispositivos.", "Please set a password!": "¡Por favor establece una contraseña!", - "This will allow you to return to your account after signing out, and sign in on other devices.": "Esto le permitirá regresar a su cuenta después de cerrar sesión, así como iniciar sesión en otros dispositivos.", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Esto te permitirá regresar a tu cuenta después de cerrar sesión, así como iniciar sesión en otros dispositivos.", "Warning": "Advertencia", "Checking for an update...": "Comprobando actualizaciones...", "No update available.": "No hay actualizaciones disponibles.", "Downloading update...": "Descargando actualizaciones...", - "To return to your account in future you need to set a password": "Para regresar a su cuenta en el futuro Ud. debe establecer una contraseña", - "Set Password": "Establezca la contraseña", + "To return to your account in future you need to set a password": "Para regresar a tu cuenta en el futuro debes establecer una contraseña", + "Set Password": "Establecer contraseña", "Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).", "Couldn't load home page": "No se puede cargar la página principal", "Bug report sent": "Informe de fallo enviado", "Thank you!": "¡Gracias!", "Show message in desktop notification": "Mostrar mensaje en la notificación del escritorio", - "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.": "Puedes usar las opciones del servidor personalizado para acceder a otros servidores Matrix especificando un LUR de servidor de Hogar distinto.
Esto te permite usar Riot con una cuenta Matrix existente en un servidor de hogar distinto.

También podrías establecer un servidor de identidad personalizado pero no podrías invitar a otros usuarios o ser invitado por correo electrónico.", - "Appear Offline": "Muéstrate fuera de linea", - "Away": "Distante", + "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.": "Puedes usar las opciones del servidor personalizado para acceder a otros servidores Matrix especificando su URL.
Esto te permite usar Riot con una cuenta Matrix existente en un servidor doméstico distinto.

También puedes establecer un servidor de identidad personalizado pero no podrás invitar a otros usuarios usando su dirección de correo electrónico, y tampoco ser invitado por el tuyo.", + "Appear Offline": "Mostrarse Desconectado", + "Away": "Ausente", "Back": "Atrás", - "Send Custom Event": "Envía Evento Acomodado", + "Send Custom Event": "Enviar Evento Personalizado", "You must specify an event type!": "Debes especificar un tipo de evento!", "Event sent!": "Evento enviado!", - "Failed to send custom event.": "Ha fallado el envio del evento acomodado.", + "Failed to send custom event.": "Ha fallado el envio del evento personalizado.", "Event Type": "Tipo de Evento", - "State Key": "Llave de estado", + "State Key": "Clave de estado", "Event Content": "Contenido del Evento", - "Send Account Data": "Envía Datos de la Cuenta", - "Filter results": "Filtra los resultados", - "Explore Room State": "Explora el Estado del Cuarto", - "Edit": "Edita", - "Explore Account Data": "Explora los Datos de la Cuenta", + "Send Account Data": "Enviar Datos de la Cuenta", + "Filter results": "Filtrar resultados", + "Explore Room State": "Explorar Estado de la Sala", + "Edit": "Editar", + "Explore Account Data": "Explorar Datos de la Cuenta", "Toolbox": "Caja de Herramientas", "Developer Tools": "Herramientas de Desarrollo", "Please install Chrome or Firefox for the best experience.": "Por favor instala Chrome o Firefox para una experiencia óptima.", "Safari and Opera work too.": "Safari y Opera también funcionan.", "Register": "Registro", "Rooms": "Salas", - "Invite to this community": "Invita a esta comunidad", - "Add rooms to this community": "Agrega salas a esta comunidad" + "Invite to this community": "Invitar a esta comunidad", + "Add rooms to this community": "Agregar salas a esta comunidad", + "Unpin Message": "Desmarcar Mensaje", + "Pin Message": "Marcar Mensaje", + "Reply": "Responder" } From 888a77b4bbb2c96d95076bdd1d529ac30208dfbb Mon Sep 17 00:00:00 2001 From: "A.G" Date: Sat, 20 Jan 2018 22:56:21 +0000 Subject: [PATCH 091/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 9d1eebd526..b08002bd70 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -216,5 +216,11 @@ "Please install Chrome or Firefox for the best experience.": "Installa Chrome o Firefox per la migliore esperienza d'uso.", "Safari and Opera work too.": "Anche Safari e Opera vanno bene.", "Register": "Registrati", - "Rooms": "Stanze" + "Rooms": "Stanze", + "Send Account Data": "Invia Dati Account", + "Unpin Message": "Sblocca messaggio", + "Pin Message": "Blocca messaggio", + "Add rooms to this community": "Aggiungi stanze a questa community", + "Reply": "Rispondi", + "Invite to this community": "Invita nella communita'" } From 29f05c09d6d12ed6a21647a38f947fc78d7097ac Mon Sep 17 00:00:00 2001 From: vricci Date: Sat, 20 Jan 2018 22:57:56 +0000 Subject: [PATCH 092/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index b08002bd70..b1412c3559 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -217,7 +217,7 @@ "Safari and Opera work too.": "Anche Safari e Opera vanno bene.", "Register": "Registrati", "Rooms": "Stanze", - "Send Account Data": "Invia Dati Account", + "Send Account Data": "Invia dati account", "Unpin Message": "Sblocca messaggio", "Pin Message": "Blocca messaggio", "Add rooms to this community": "Aggiungi stanze a questa community", From 568e1f4f903e96fc02286068f769fdccb4d93859 Mon Sep 17 00:00:00 2001 From: "A.G" Date: Sat, 20 Jan 2018 22:58:41 +0000 Subject: [PATCH 093/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index b1412c3559..b1287582c2 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -211,7 +211,7 @@ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.
Questo permette di usare Matrix con un account esistente su un home server diverso.

È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.", "Appear Offline": "Appari offline", "Away": "Assente", - "Explore Account Data": "Esplora dati account", + "Explore Account Data": "Esplora Dati Account", "Toolbox": "Strumenti", "Please install Chrome or Firefox for the best experience.": "Installa Chrome o Firefox per la migliore esperienza d'uso.", "Safari and Opera work too.": "Anche Safari e Opera vanno bene.", @@ -220,7 +220,7 @@ "Send Account Data": "Invia dati account", "Unpin Message": "Sblocca messaggio", "Pin Message": "Blocca messaggio", - "Add rooms to this community": "Aggiungi stanze a questa community", + "Add rooms to this community": "Aggiungi stanze a questa comunità", "Reply": "Rispondi", "Invite to this community": "Invita nella communita'" } From 52c5293a12c8e101ab718917d0fb4ef3111ec429 Mon Sep 17 00:00:00 2001 From: vricci Date: Sat, 20 Jan 2018 22:58:48 +0000 Subject: [PATCH 094/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index b1287582c2..282185208e 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -211,7 +211,7 @@ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.

You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.
Questo permette di usare Matrix con un account esistente su un home server diverso.

È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.", "Appear Offline": "Appari offline", "Away": "Assente", - "Explore Account Data": "Esplora Dati Account", + "Explore Account Data": "Esplora dati account", "Toolbox": "Strumenti", "Please install Chrome or Firefox for the best experience.": "Installa Chrome o Firefox per la migliore esperienza d'uso.", "Safari and Opera work too.": "Anche Safari e Opera vanno bene.", From ce6338b853b0d80fb0b93dbd7906e514b9b8d567 Mon Sep 17 00:00:00 2001 From: "A.G" Date: Sat, 20 Jan 2018 22:59:04 +0000 Subject: [PATCH 095/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 282185208e..4f20ff63a7 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -222,5 +222,5 @@ "Pin Message": "Blocca messaggio", "Add rooms to this community": "Aggiungi stanze a questa comunità", "Reply": "Rispondi", - "Invite to this community": "Invita nella communita'" + "Invite to this community": "Invita nella comunità'" } From 2b26be73f6863f1399b5a384faa99f8806c0db50 Mon Sep 17 00:00:00 2001 From: pincopallopino Date: Sat, 20 Jan 2018 22:59:12 +0000 Subject: [PATCH 096/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 4f20ff63a7..cd8d0efb48 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -220,7 +220,7 @@ "Send Account Data": "Invia dati account", "Unpin Message": "Sblocca messaggio", "Pin Message": "Blocca messaggio", - "Add rooms to this community": "Aggiungi stanze a questa comunità", + "Add rooms to this community": "Aggiungi stanze a questa community", "Reply": "Rispondi", "Invite to this community": "Invita nella comunità'" } From 3e5833e9f2f5202a6d29e9b7344c6218ba95ce9a Mon Sep 17 00:00:00 2001 From: "A.G" Date: Sat, 20 Jan 2018 22:59:22 +0000 Subject: [PATCH 097/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index cd8d0efb48..6059d05de4 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -222,5 +222,5 @@ "Pin Message": "Blocca messaggio", "Add rooms to this community": "Aggiungi stanze a questa community", "Reply": "Rispondi", - "Invite to this community": "Invita nella comunità'" + "Invite to this community": "Invita nella comunità" } From 77d8fe3ef196f5ea4dde26628069c92b84ec60c5 Mon Sep 17 00:00:00 2001 From: pincopallopino Date: Sat, 20 Jan 2018 22:59:29 +0000 Subject: [PATCH 098/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 6059d05de4..0a2dd4650e 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -222,5 +222,5 @@ "Pin Message": "Blocca messaggio", "Add rooms to this community": "Aggiungi stanze a questa community", "Reply": "Rispondi", - "Invite to this community": "Invita nella comunità" + "Invite to this community": "Invita a questa community" } From 202f0e2163b5f909aca572e5ccac0eebee80f234 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 22 Jan 2018 16:42:08 +0000 Subject: [PATCH 099/163] Add EventTile_quote styling for less margin-right when in QuotePreview Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../vector/css/matrix-react-sdk/views/rooms/_EventTile.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 33edd045a4..48afc86df9 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 @@ -96,6 +96,10 @@ limitations under the License. line-height: 22px; } +.mx_EventTile_quote { + margin-right: 10px; +} + .mx_EventTile_info .mx_EventTile_line { padding-left: 83px; } @@ -115,7 +119,7 @@ limitations under the License. background-color: $event-selected-color; } -.mx_EventTile:hover .mx_EventTile_line, +.mx_EventTile:hover .mx_EventTile_line:not(.mx_EventTile_quote), .mx_EventTile.menu .mx_EventTile_line { background-color: $event-selected-color; From 321f16d8a33af0aa8354441d5c8f8d68a346e867 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 22 Jan 2018 18:54:22 +0000 Subject: [PATCH 100/163] rename variable as it was horrible to read camelCased Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/RightPanel.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index 82933c7449..55f588f212 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -271,15 +271,15 @@ module.exports = React.createClass({ ) { const cli = this.context.matrixClient; const room = cli.getRoom(this.props.roomId); - let userIsInRoom; + let isUserInRoom; if (room) { const numMembers = room.getJoinedMembers().length; membersTitle = _t('%(count)s Members', { count: numMembers }); membersBadge =
{ formatCount(numMembers) }
; - userIsInRoom = room.hasMembershipState(this.context.matrixClient.credentials.userId, 'join'); + isUserInRoom = room.hasMembershipState(this.context.matrixClient.credentials.userId, 'join'); } - if (userIsInRoom) { + if (isUserInRoom) { inviteGroup =
From f5fc86258fc039c8f18e45cffb8770d0f827026a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 22 Jan 2018 18:59:18 +0000 Subject: [PATCH 101/163] s/Highlight/SyntaxHighlight/ Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/ViewSource.js | 6 +++--- src/components/views/dialogs/DevtoolsDialog.js | 10 +++++----- .../elements/{Highlight.js => SyntaxHighlight.js} | 4 ++-- src/skins/vector/css/_components.scss | 2 +- .../{_Highlight.scss => _SyntaxHighlight.scss} | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) rename src/components/views/elements/{Highlight.js => SyntaxHighlight.js} (89%) rename src/skins/vector/css/vector-web/views/elements/{_Highlight.scss => _SyntaxHighlight.scss} (96%) diff --git a/src/components/structures/ViewSource.js b/src/components/structures/ViewSource.js index 8f60ae886c..3a5d35a561 100644 --- a/src/components/structures/ViewSource.js +++ b/src/components/structures/ViewSource.js @@ -18,7 +18,7 @@ limitations under the License. import React from 'react'; import PropTypes from 'prop-types'; -import Highlight from '../views/elements/Highlight'; +import SyntaxHighlight from '../views/elements/SyntaxHighlight'; module.exports = React.createClass({ @@ -48,9 +48,9 @@ module.exports = React.createClass({ render: function() { return (
- + { JSON.stringify(this.props.content, null, 2) } - +
); } diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js index 1b2af377c3..1d8f616c07 100644 --- a/src/components/views/dialogs/DevtoolsDialog.js +++ b/src/components/views/dialogs/DevtoolsDialog.js @@ -17,7 +17,7 @@ limitations under the License. import React from 'react'; import PropTypes from 'prop-types'; import sdk from 'matrix-react-sdk'; -import Highlight from '../elements/Highlight'; +import SyntaxHighlight from '../elements/SyntaxHighlight'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; @@ -344,9 +344,9 @@ class RoomStateExplorer extends DevtoolsComponent { return
- + { JSON.stringify(this.state.event.event, null, 2) } - +
@@ -462,9 +462,9 @@ class AccountDataExplorer extends DevtoolsComponent { return
- + { JSON.stringify(this.state.event.event, null, 2) } - +
diff --git a/src/components/views/elements/Highlight.js b/src/components/views/elements/SyntaxHighlight.js similarity index 89% rename from src/components/views/elements/Highlight.js rename to src/components/views/elements/SyntaxHighlight.js index 8706bb05a5..a7d8f894f4 100644 --- a/src/components/views/elements/Highlight.js +++ b/src/components/views/elements/SyntaxHighlight.js @@ -18,7 +18,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {highlightBlock} from 'highlight.js'; -export default class Highlight extends React.Component { +export default class SyntaxHighlight extends React.Component { static propTypes = { className: PropTypes.string, children: PropTypes.node, @@ -42,7 +42,7 @@ export default class Highlight extends React.Component { render() { const { className, children } = this.props; - return
+        return 
             { children }
         
; } diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 8ac6627005..a3783786cd 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -93,7 +93,7 @@ @import "./vector-web/views/dialogs/_SetEmailDialog.scss"; @import "./vector-web/views/dialogs/_SetPasswordDialog.scss"; @import "./vector-web/views/directory/_NetworkDropdown.scss"; -@import "./vector-web/views/elements/_Highlight.scss"; +@import "./vector-web/views/elements/_SyntaxHighlight.scss"; @import "./vector-web/views/elements/_ImageView.scss"; @import "./vector-web/views/elements/_InlineSpinner.scss"; @import "./vector-web/views/elements/_Spinner.scss"; diff --git a/src/skins/vector/css/vector-web/views/elements/_Highlight.scss b/src/skins/vector/css/vector-web/views/elements/_SyntaxHighlight.scss similarity index 96% rename from src/skins/vector/css/vector-web/views/elements/_Highlight.scss rename to src/skins/vector/css/vector-web/views/elements/_SyntaxHighlight.scss index 9b35844ffa..e97401a160 100644 --- a/src/skins/vector/css/vector-web/views/elements/_Highlight.scss +++ b/src/skins/vector/css/vector-web/views/elements/_SyntaxHighlight.scss @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -.mx_Highlight { +.mx_SyntaxHighlight { /* inhibit hljs styling */ background: none !important; color: $light-fg-color !important; From 13dd8e2c76209611e31ff6a4bff48f67736238b4 Mon Sep 17 00:00:00 2001 From: "A.G" Date: Sat, 20 Jan 2018 23:00:26 +0000 Subject: [PATCH 102/163] Translated using Weblate (Italian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/ --- src/i18n/strings/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 0a2dd4650e..039a0e6f66 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -222,5 +222,5 @@ "Pin Message": "Blocca messaggio", "Add rooms to this community": "Aggiungi stanze a questa community", "Reply": "Rispondi", - "Invite to this community": "Invita a questa community" + "Invite to this community": "Invita a questa comunità" } From 0df6f85843ca193c0b12ca6a1369b2777130adab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Sat, 20 Jan 2018 14:32:31 +0000 Subject: [PATCH 103/163] Translated using Weblate (Slovak) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/ --- src/i18n/strings/sk.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 34ce52b255..510b8887cf 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -130,7 +130,7 @@ "View Decrypted Source": "Zobraziť dešifrovaný zdroj", "Unhide Preview": "Zobraziť náhľad", "Permalink": "Trvalý odkaz", - "Quote": "Citovať", + "Quote": "Citácia", "Source URL": "Pôvodná URL", "Failed to set Direct Message status of room": "Nepodarilo sa nastaviť stav miestnosti priama konverzácia", "unknown error code": "neznámy kód chyby", From d9409232f9f833d6e5a7ddb5384dd355ec9c60d9 Mon Sep 17 00:00:00 2001 From: Ander Punnar Date: Tue, 23 Jan 2018 12:15:08 +0200 Subject: [PATCH 104/163] default url, not domain https://github.com/matrix-org/matrix-react-sdk/blob/master/src/components/views/messages/MFileBody.js#L116 Signed-off-by: Ander Punnar --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b32bbea743..708912cf7e 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ You can configure the app by copying `config.sample.json` to 1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display encrypted file attachments. This MUST be hosted on a completely separate domain to anything else since it is used to isolate the privileges of file attachments to this - domain. Default: `usercontent.riot.im`. This needs to contain v1.html from + domain. Default: `https://usercontent.riot.im/v1.html`. This needs to contain v1.html from https://github.com/matrix-org/usercontent/blob/master/v1.html 1. `piwik`: an object containing the following properties: 1. `url`: The URL of the Piwik instance to use for collecting Analytics From 4d0b02c683811634153f4f6042b32ceb01646eac Mon Sep 17 00:00:00 2001 From: d1d4c Date: Tue, 23 Jan 2018 19:45:22 +0000 Subject: [PATCH 105/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 112 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index fe82e8146b..44d2c2b73f 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -109,5 +109,115 @@ "Back": "Enrere", "Cancel Sending": "Cancel·la l'enviament", "Collapse panel": "Col·lapsa el tauler", - "Developer Tools": "Eines de desenvolupador" + "Developer Tools": "Eines de desenvolupador", + "Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Vols instal·lar l'aplicació per a mòbils?", + "Uploading report": "S'està enviant l'informe", + "Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s", + "You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada de compartir pantalla.", + "When I'm invited to a room": "Quan estic convidat a una sala", + "Error saving email notification preferences": "No s'han pogut gravar les preferències de les notificacions a causa d'un error", + "Keywords": "Paraules clau", + "Operation failed": "No s'ha pogut realitzar l'operació", + "Failed to update keywords": "No s'han pogut actualitzar les paraules clau", + "Notifications on the following keywords follow rules which can’t be displayed here:": "Les notificacions sobre les següents paraules clau segueixen regles que no es poden mostrar aquí:", + "Unable to fetch notification target list": "No s'ha pogut obtenir la llista d'objectius de les notificacions", + "There are advanced notifications which are not shown here": "Hi ha notificacions avançades que no es mostren aquí", + "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "És possible que els hàgiu configurat en un client diferent de Riot. No podeu modificar-los amb Riot, però encara s'apliquen", + "Show message in desktop notification": "Mostra els missatges amb notificacions d'escriptori", + "Search": "Cerca", + "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.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal.
Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent.

També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.", + "powered by Matrix": "amb tecnologia de Matrix", + "Update": "Actualització", + "Appear Offline": "Apareix sense connexió", + "Away": "Absent", + "To return to your account in future you need to set a password": "Per poder tornar al vostre compte en un futur, heu de set a password", + "Set Password": "Establiu una contrasenya", + "Error encountered (%(errorDetail)s).": "S'ha trobat un error (%(errorDetail)s).", + "Uploaded on %(date)s by %(user)s": "Pujat el %(date)s per l'usuari %(user)s", + "Please describe the bug and/or send logs.": "Si us plau, descriviu l'error i/o envia els registres.", + "Loading bug report module": "S'està carregant l'informe del modul", + "Failed to send report: ": "No s'ha pogut enviar l'informe ", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Si us plau, descriviu l'error. Què heu fet, què esperàveu que passes i què sembla haver passat", + "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:": "Per tal de fer un diagnostic del problemes, els registres d'aquesta aplicació s'enviaran amb aquest informe d'error. Si preferiu enviar només el text anterior, desseleccioneu:", + "Send logs": "Envia els registres", + "Send Custom Event": "Envia els esdeveniments personalitzats", + "You must specify an event type!": "Heu d'especificar un tipus d'esdeveniment", + "Event sent!": "S'ha enviat l'esdeveniment", + "Failed to send custom event.": "No s'ha pogut enviar l'esdeveniment personalitzat.", + "Event Type": "Tipus d'esdeveniment", + "State Key": "Clau d'estat", + "Event Content": "Contingut de l'esdeveniment", + "Send Account Data": "Envia les dades del compte", + "Filter results": "Resultats del filtre", + "Explore Room State": "Esbrina els estats de les sales", + "Edit": "Editeu", + "Explore Account Data": "Esbrina les dades dels comptes", + "Toolbox": "Caixa d'eines", + "You have successfully set a password!": "Heu establert correctament la contrasenya", + "You have successfully set a password and an email address!": "Heu establert correctament la vostra contrasenya i l'adreça de correu electrònic", + "You can now return to your account after signing out, and sign in on other devices.": "Ara podreu tornar a entrar al vostre compte des de altres dispositius.", + "Remember, you can always set an email address in user settings if you change your mind.": "Recordeu-ho, si canvieu d'idea, sempre podreu establir una adreça de correu electrònic a las vostra configuració d'usuari.", + "(HTTP status %(httpStatus)s)": "(Estat de l´HTTP %(httpStatus)s)", + "Please set a password!": "Si us plau, establiu una contrasenya", + "This will allow you to return to your account after signing out, and sign in on other devices.": "Això farà possible que pugueu tronar al vostre compte des de qualsevol dispositiu.", + "Forward Message": "Reenvia el missatge", + "Unpin Message": "Desenganxa el missatge", + "Pin Message": "Enganxa el missatge", + "View Source": "Mostra el codi", + "View Decrypted Source": "Mostra el codi desencriptat", + "Unhide Preview": "Mostra la previsualització", + "Quote": "Cita", + "Failed to set Direct Message status of room": "No s'ha pogut establir l'estat del missatge directe de la sala", + "Forget": "Oblida", + "Reject": "Rebutja", + "Sorry, your browser is not able to run Riot.": "Disculpeu, el seu navegador not pot executar Riot.", + "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot utilitza moltes funcions avançades del navegador, algunes de les quals no estan disponibles o són experimentals al vostre navegador actual.", + "Please install Chrome or Firefox for the best experience.": "Si us plau, instal·leu Chrome or Firefox per gaudir d'una millor experiència.", + "Safari and Opera work too.": "Safari i Opera també fan la feina.", + "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!": "Amb el vostre navegador actual, l'aparença de l'aplicació pot ser completament incorrecta i algunes o totes les funcions poden no funcionar correctament. Si voleu provar-ho de totes maneres, podeu continuar, però esteu sols pel que fa als problemes que pugueu trobar!", + "I understand the risks and wish to continue": "Entenc el riscos i desitjo continuar", + "Register": "Registre", + "Rooms": "Sales", + "Hide panel": "Amaga el panel", + "Invite to this community": "Convida a aquesta comunitat", + "Add rooms to this community": "Afegeix sales a aquesta comunitat", + "Failed to get protocol list from Home Server": "No s'ha pogut obtenir la llista de protocols del servidor local", + "The Home Server may be too old to support third party networks": "El servidor local pot ser massa antic per a ser compatible amb xarxes de tercers", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Voleu esborrar de la sala l'alies %(alias)s i retirar %(name)s del directori?", + "Remove %(name)s from the directory?": "Voleu retirar %(name)s del directori?", + "delete the alias.": "esborra l'alies.", + "Unable to join network": "No s'ha pogut unir-se a la xarxa", + "Fetching third party location failed": "S'ha produït un error en obtenir la ubicació de tercers", + "Unable to look up room ID from server": "No s'ha pogut cercar l'ID de la sala en el servidor", + "World readable": "Llegible al món", + "Guests can join": "Els convidats s'hi poden unir", + "Search for a room": "Busca una sala", + "Expand panel": "Expandeix el panel", + "Decentralised, encrypted chat & collaboration powered by [matrix]": "Xat descentralitzat, encriptat & col·laboració amb tecnologia de [matrix]", + "Search the room directory": "Cerqueu el directori de sales", + "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ja existeixen moltes sales a Matrix vinculades a xarxes existents (Slack, IRC, Gitter, etc.) o independents. Feu un cop d'ull al directori!", + "Get started with some tips from Riot Bot!": "Comenceu amb alguns consells de Riot Bot!", + "General discussion about Matrix and Riot": "Debat general sobre Matrix i Riot", + "Discussion of all things Matrix!": "Debats sobre qualsevol cosa de Matrix!", + "Riot/Web & Desktop chat": "Riot/Web & Xat d'escriptori", + "Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & Xat de matrix-ios-sdk", + "Riot/Android & matrix-android-sdk chat": "Riot/Android & Xat matrix-android-sdk", + "Matrix technical discussions": "Debats tècnics sobre Matrix", + "Reply": "Respon", + "Running Matrix services": "Serveis de Matrix en marxa", + "Community-run support for Synapse": "Suport de la comunitat per a Synapse", + "Admin support for Dendrite": "Suport dels administrador per a Dendrite", + "Announcements about Synapse releases": "Anuncis sobre llançaments de Synapse", + "Support for those using and running matrix-appservice-irc": "Suport per a aquells que utilitzen i executen matrix-appservice-irc", + "Building services on Matrix": "Construir serveis a Matrix", + "Support for those using the Matrix spec": "Suport per a aquells que utilitzen l'especificació Matrix", + "Design and implementation of E2E in Matrix": "Disseny i implementació de l'E2E a Matrix", + "Implementing VR services with Matrix": "Implementació de serveis VR amb Matrix", + "Implementing VoIP services with Matrix": "Implementació de serveis VoIP amb Matrix", + "Discussion of the Identity Service API": "Debat sobre l'API Identity Service", + "Support for those using, running and writing other bridges": "Suport per a aquells que utilitzen, executen i escriuen altres ponts", + "Contributing code to Matrix and Riot": "Contribuir amb codi a Matrix i Riot", + "Dev chat for the Riot/Web dev team": "Xat de l'equip de desenvolupadors Riot/Web per a desenvolupadors", + "Dev chat for the Dendrite dev team": "Xat de l'equip Dendrite per a desenvolupadors", + "Co-ordination for Riot/Web translators": "Coordinació per a traductors de Riot/Web" } From c2aa8137bb3cea61bdfa38c55d68704d7f43249e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 23 Jan 2018 20:02:47 +0000 Subject: [PATCH 106/163] sort components scss Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/skins/vector/css/_components.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index a3783786cd..2319ebee84 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -93,10 +93,10 @@ @import "./vector-web/views/dialogs/_SetEmailDialog.scss"; @import "./vector-web/views/dialogs/_SetPasswordDialog.scss"; @import "./vector-web/views/directory/_NetworkDropdown.scss"; -@import "./vector-web/views/elements/_SyntaxHighlight.scss"; @import "./vector-web/views/elements/_ImageView.scss"; @import "./vector-web/views/elements/_InlineSpinner.scss"; @import "./vector-web/views/elements/_Spinner.scss"; +@import "./vector-web/views/elements/_SyntaxHighlight.scss"; @import "./vector-web/views/globals/_MatrixToolbar.scss"; @import "./vector-web/views/messages/_DateSeparator.scss"; @import "./vector-web/views/messages/_MessageTimestamp.scss"; From 22b72985429ee79e882497b6f300879122f36d30 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 23 Jan 2018 20:28:39 +0000 Subject: [PATCH 107/163] add comments Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/elements/SyntaxHighlight.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/views/elements/SyntaxHighlight.js b/src/components/views/elements/SyntaxHighlight.js index a7d8f894f4..82b5ae572c 100644 --- a/src/components/views/elements/SyntaxHighlight.js +++ b/src/components/views/elements/SyntaxHighlight.js @@ -30,10 +30,14 @@ export default class SyntaxHighlight extends React.Component { this._ref = this._ref.bind(this); } + // componentDidUpdate used here for reusability + // componentWillReceiveProps fires too early to call highlightBlock on. componentDidUpdate() { if (this._el) highlightBlock(this._el); } + // call componentDidUpdate because _ref is fired on initial render + // which does not fire componentDidUpdate _ref(el) { this._el = el; this.componentDidUpdate(); From 8b7a941a6e28b1d09749cc0cf35bd1d33d3ff84c Mon Sep 17 00:00:00 2001 From: d1d4c Date: Tue, 23 Jan 2018 19:59:09 +0000 Subject: [PATCH 108/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index 44d2c2b73f..49350312f6 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -3,7 +3,7 @@ "All messages": "Tots els missatges", "Cancel": "Cancel·la", "Close": "Tanca", - "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s a %(osName)s", + "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s per a %(osName)s", "Failed to change password. Is your password correct?": "Hi ha hagut un error al canviar la vostra contrasenya. És correcte la vostra contrasenya?", "Continue": "Continua", "All Rooms": "Totes les sales", @@ -41,24 +41,24 @@ "Favourite": "Favorit", "Files": "Fitxers", "Safari and Opera work too.": "També funcionen el Safari i l'Opera.", - "Add an email address above to configure email notifications": "Afegiu una adreça de correu electrònic més amunt per configurar les notificacions", + "Add an email address above to configure email notifications": "Afegiu més amunt una adreça de correu electrònic per configurar les notificacions", "Advanced notification settings": "Paràmetres avançats de notificacions", "All notifications are currently disabled for all targets.": "Actualment totes les notificacions estan inhabilitades per a tots els objectius.", "An error occurred whilst saving your email notification preferences.": "Hi ha hagut un error al desar les vostres preferències de notificació per correu electrònic.", "Bug report sent": "S'ha enviat l'informe d'error", "Call invitation": "Invitació a la trucada", - "Can't update user notification settings": "No es poden actualitzar els paràmetres de notificació de l'usuari", - "Collecting app version information": "Recol·lectant la informació de la versió de l'aplicació", - "Collecting logs": "Recol·lectant els registres", + "Can't update user notification settings": "No es poden actualitzar els paràmetres de les notificacions de l'usuari", + "Collecting app version information": "S'està recollint la informació de la versió de l'aplicació", + "Collecting logs": "S'està recollint els registres", "Custom Server Options": "Opcions de servidor personalitzat", "Dismiss": "Omet", - "Enter keywords separated by a comma:": "Introdueix paraules clau separades per una coma:", + "Enter keywords separated by a comma:": "Introduïu les paraules clau separades per una coma:", "Login": "Inicia sessió", "Leave": "Abandona", - "Messages containing keywords": "Missatges que contenen paraules clau", + "Messages containing keywords": "Missatges que contenen keywords", "Messages containing my user name": "Missatges que contenen el meu nom d'usuari", - "Messages in group chats": "Missatges a xats de grup", - "Messages containing my display name": "Missatges que contenen el meu nom", + "Messages in group chats": "Missatges en xats de grup", + "Messages containing my display name": "Missatges que contenen el meu nom visible", "Messages in one-to-one chats": "Missatges en xats un a un", "Messages sent by bot": "Missatges enviats pel bot", "more": "més", @@ -85,7 +85,7 @@ "unknown error code": "codi d'error desconegut", "What's New": "Novetats", "What's new?": "Què hi ha de nou?", - "Waiting for response from server": "Esperant una resposta del servidor", + "Waiting for response from server": "S'està esperant una resposta del servidor", "You cannot delete this image. (%(code)s)": "No podeu eliminar aquesta imatge. (%(code)s)", "You cannot delete this message. (%(code)s)": "No podeu eliminar aquest missatge. (%(code)s)", "You are not receiving desktop notifications": "No esteu rebent notificacions d'escriptori", @@ -110,10 +110,10 @@ "Cancel Sending": "Cancel·la l'enviament", "Collapse panel": "Col·lapsa el tauler", "Developer Tools": "Eines de desenvolupador", - "Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Vols instal·lar l'aplicació per a mòbils?", + "Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Voleu instal·lar l'aplicació per a mòbils?", "Uploading report": "S'està enviant l'informe", "Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s", - "You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada de compartir pantalla.", + "You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.", "When I'm invited to a room": "Quan estic convidat a una sala", "Error saving email notification preferences": "No s'han pogut gravar les preferències de les notificacions a causa d'un error", "Keywords": "Paraules clau", From 5c6a265b86c03b06ac1ceb5bc459d399cee80a15 Mon Sep 17 00:00:00 2001 From: d1d4c Date: Wed, 24 Jan 2018 16:37:44 +0000 Subject: [PATCH 109/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index 49350312f6..27384dc5a0 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -21,7 +21,7 @@ "Directory": "Directori", "Failed to set direct chat tag": "No s'ha pogut establir l'etiqueta del xat directe", "Invite to this room": "Convida a aquesta sala", - "No rooms to show": "No hi ha sales a mostrar", + "No rooms to show": "No hi ha cap sala per a mostrar", "Riot does not know how to join a room on this network": "El Riot no sap com unir-se a una sala en aquesta xarxa", "Room not found": "No s'ha trobat la sala", "Unnamed room": "Sala sense nom", @@ -190,7 +190,7 @@ "Fetching third party location failed": "S'ha produït un error en obtenir la ubicació de tercers", "Unable to look up room ID from server": "No s'ha pogut cercar l'ID de la sala en el servidor", "World readable": "Llegible al món", - "Guests can join": "Els convidats s'hi poden unir", + "Guests can join": "Els usuaris d'altres xarxes s'hi poden unir", "Search for a room": "Busca una sala", "Expand panel": "Expandeix el panel", "Decentralised, encrypted chat & collaboration powered by [matrix]": "Xat descentralitzat, encriptat & col·laboració amb tecnologia de [matrix]", From e56b16f7d1536686fad2b14be5e20e62a9779d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=B3=20Albert=20i=20Beltran?= Date: Thu, 25 Jan 2018 18:25:46 +0100 Subject: [PATCH 110/163] Add Catalan --- scripts/copy-res.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/copy-res.js b/scripts/copy-res.js index 701029dbf4..abfd18a26c 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -9,6 +9,7 @@ // This could readily be automated, but it's nice to explicitly // control when we languages are available. const INCLUDE_LANGS = [ + {'value': 'ca', 'label': 'Català'}, {'value': 'da', 'label': 'Dansk'}, {'value': 'de_DE', 'label': 'Deutsch'}, {'value': 'en_EN', 'label': 'English'}, From 662a6297e7c71de5705668cdbd2f8eb6f671312e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 25 Jan 2018 21:06:35 +0000 Subject: [PATCH 111/163] FilteredList, now being a controlled component does not need state Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/dialogs/DevtoolsDialog.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js index e7f66bc0c4..3ce1dfe7d4 100644 --- a/src/components/views/dialogs/DevtoolsDialog.js +++ b/src/components/views/dialogs/DevtoolsDialog.js @@ -252,24 +252,15 @@ class FilteredList extends React.Component { constructor(props, context) { super(props, context); this.onQuery = this.onQuery.bind(this); - - this.state = { - query: this.props.query, - }; - } - - componentWillReceiveProps(nextProps) { - if (this.state.query !== nextProps.query) this.setState({ query: nextProps.query }); } onQuery(ev) { - this.setState({ query: ev.target.value }); if (this.props.onChange) this.props.onChange(ev.target.value); } filterChildren() { - if (this.state.query) { - const lowerQuery = this.state.query.toLowerCase(); + if (this.props.query) { + const lowerQuery = this.props.query.toLowerCase(); return this.props.children.filter((child) => child.key.toLowerCase().includes(lowerQuery)); } return this.props.children; @@ -279,7 +270,7 @@ class FilteredList extends React.Component { return
{ this.filterChildren() } From 2926154dce90671293a28348f00710c3593aee8e Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Thu, 25 Jan 2018 22:30:58 +0100 Subject: [PATCH 112/163] Modify LeftPanel to include a DragDropContext that handles drag and drop for TagPanel and RoomList. This is to allow the future feature of dragging between the two components. --- src/components/structures/LeftPanel.js | 86 ++++++++++++++++--- .../css/vector-web/structures/_LeftPanel.scss | 4 + 2 files changed, 78 insertions(+), 12 deletions(-) diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js index f78835b45b..c1222396e1 100644 --- a/src/components/structures/LeftPanel.js +++ b/src/components/structures/LeftPanel.js @@ -17,22 +17,32 @@ limitations under the License. 'use strict'; import React from 'react'; +import PropTypes from 'prop-types'; import classNames from 'classnames'; +import { DragDropContext } from 'react-beautiful-dnd'; +import { MatrixClient } from 'matrix-js-sdk'; import { KeyCode } from 'matrix-react-sdk/lib/Keyboard'; import sdk from 'matrix-react-sdk'; import dis from 'matrix-react-sdk/lib/dispatcher'; import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; -import CallHandler from 'matrix-react-sdk/lib/CallHandler'; -import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton'; import VectorConferenceHandler from '../../VectorConferenceHandler'; +import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; +import TagOrderActions from 'matrix-react-sdk/lib/actions/TagOrderActions'; +import RoomListActions from 'matrix-react-sdk/lib/actions/RoomListActions'; + + var LeftPanel = React.createClass({ displayName: 'LeftPanel', // NB. If you add props, don't forget to update // shouldComponentUpdate! propTypes: { - collapsed: React.PropTypes.bool.isRequired, + collapsed: PropTypes.bool.isRequired, + }, + + contextTypes: { + matrixClient: PropTypes.instanceOf(MatrixClient), }, getInitialState: function() { @@ -161,8 +171,54 @@ var LeftPanel = React.createClass({ this.setState({ searchFilter: term }); }, + onDragEnd: function(result) { + // Dragged to an invalid destination, not onto a droppable + if (!result.destination) { + return; + } + + const dest = result.destination.droppableId; + + if (dest === 'tag-panel-droppable') { + // Dispatch synchronously so that the TagPanel receives an + // optimistic update from TagOrderStore before the previous + // state is shown. + dis.dispatch(TagOrderActions.moveTag( + this.context.matrixClient, + result.draggableId, + result.destination.index, + ), true); + } else { + this.onRoomTileEndDrag(result); + } + }, + + onRoomTileEndDrag: function(result) { + let newTag = result.destination.droppableId.split('_')[1]; + let prevTag = result.source.droppableId.split('_')[1]; + if (newTag === 'undefined') newTag = undefined; + if (prevTag === 'undefined') prevTag = undefined; + + const roomId = result.draggableId.split('_')[1]; + + const oldIndex = result.source.index; + const newIndex = result.destination.index; + + dis.dispatch(RoomListActions.tagRoom( + this.context.matrixClient, + MatrixClientPeg.get().getRoom(roomId), + prevTag, newTag, + oldIndex, newIndex, + ), true); + }, + + collectRoomList: function(ref) { + this._roomList = ref; + }, + render: function() { const RoomList = sdk.getComponent('rooms.RoomList'); + const TagPanel = sdk.getComponent('structures.TagPanel'); const BottomLeftMenu = sdk.getComponent('structures.BottomLeftMenu'); const CallPreview = sdk.getComponent('voip.CallPreview'); @@ -184,15 +240,21 @@ var LeftPanel = React.createClass({ ); return ( - + +
+ { SettingsStore.isFeatureEnabled("feature_tag_panel") ? :
} + +
+ ); } }); diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss index 8ae1fe152c..a2147a025d 100644 --- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss +++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss @@ -21,6 +21,10 @@ limitations under the License. flex-direction: column; } +.mx_LeftPanel_container { + display: flex; +} + .mx_LeftPanel_hideButton { position: absolute; top: 10px; From 37fe3ac676ee06bd832cfa6762394bcc1bcbcc4c Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Thu, 25 Jan 2018 22:51:40 +0100 Subject: [PATCH 113/163] Prevent RoomTiles from being dragged into other droppables for the time being at least. --- src/components/structures/RoomSubList.js | 18 +++++++++++------- src/components/views/rooms/DNDRoomTile.js | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 15f56c0069..398f2647de 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -572,13 +572,17 @@ var RoomSubList = React.createClass({ { subList }
; - return this.props.editable ? - { (provided, snapshot) => ( -
- { subListContent } -
- ) } -
: subListContent; + return this.props.editable ? + + { (provided, snapshot) => ( +
+ { subListContent } +
+ ) } +
: subListContent; } else { var Loader = sdk.getComponent("elements.Spinner"); diff --git a/src/components/views/rooms/DNDRoomTile.js b/src/components/views/rooms/DNDRoomTile.js index 129e3f4597..b8f8b4026e 100644 --- a/src/components/views/rooms/DNDRoomTile.js +++ b/src/components/views/rooms/DNDRoomTile.js @@ -41,6 +41,7 @@ export default class DNDRoomTile extends React.Component { key={props.room.roomId} draggableId={props.tagName + '_' + props.room.roomId} index={props.index} + type="draggable-RoomTile" > { (provided, snapshot) => { return ( From f6c49a247204c9248f9d28cacb6f5f3dcfb5659a Mon Sep 17 00:00:00 2001 From: Ramon Vilar Date: Thu, 25 Jan 2018 16:10:51 +0000 Subject: [PATCH 114/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index 27384dc5a0..d8ce1161f6 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -41,20 +41,20 @@ "Favourite": "Favorit", "Files": "Fitxers", "Safari and Opera work too.": "També funcionen el Safari i l'Opera.", - "Add an email address above to configure email notifications": "Afegiu més amunt una adreça de correu electrònic per configurar les notificacions", + "Add an email address above to configure email notifications": "Afegiu més amunt un correu electrònic per a configurar les notificacions", "Advanced notification settings": "Paràmetres avançats de notificacions", "All notifications are currently disabled for all targets.": "Actualment totes les notificacions estan inhabilitades per a tots els objectius.", - "An error occurred whilst saving your email notification preferences.": "Hi ha hagut un error al desar les vostres preferències de notificació per correu electrònic.", + "An error occurred whilst saving your email notification preferences.": "S'ha produït un error al desar les vostres preferències de notificació per correu electrònic.", "Bug report sent": "S'ha enviat l'informe d'error", - "Call invitation": "Invitació a la trucada", + "Call invitation": "Invitació de trucada", "Can't update user notification settings": "No es poden actualitzar els paràmetres de les notificacions de l'usuari", "Collecting app version information": "S'està recollint la informació de la versió de l'aplicació", - "Collecting logs": "S'està recollint els registres", + "Collecting logs": "S'estan recopilant els registres", "Custom Server Options": "Opcions de servidor personalitzat", "Dismiss": "Omet", "Enter keywords separated by a comma:": "Introduïu les paraules clau separades per una coma:", "Login": "Inicia sessió", - "Leave": "Abandona", + "Leave": "Surt", "Messages containing keywords": "Missatges que contenen keywords", "Messages containing my user name": "Missatges que contenen el meu nom d'usuari", "Messages in group chats": "Missatges en xats de grup", @@ -63,10 +63,10 @@ "Messages sent by bot": "Missatges enviats pel bot", "more": "més", "Noisy": "Sorollós", - "Notification targets": "Objectius de notificació", + "Notification targets": "Objectius de les notificacions", "Notifications": "Notificacions", - "Notify me for anything else": "Notifica'm per qualsevol altra cosa", - "Notify for all other messages/rooms": "Notifica per a tots els altres missatges/sales", + "Notify me for anything else": "Notifica'm per a qualsevol altra cosa", + "Notify for all other messages/rooms": "Notifica per a tots els altres missatges o sales", "Off": "Apagat", "On": "Engegat", "Permalink": "Enllaç permanent", @@ -100,7 +100,7 @@ "Today": "Avui", "Yesterday": "Ahir", "OK": "D'acord", - "Warning": "Advertència", + "Warning": "Avís", "Checking for an update...": "Comprovant si hi ha actualitzacions...", "No update available.": "No hi ha cap actualització disponible.", "Downloading update...": "Descarregant l'actualització...", @@ -114,8 +114,8 @@ "Uploading report": "S'està enviant l'informe", "Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s", "You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.", - "When I'm invited to a room": "Quan estic convidat a una sala", - "Error saving email notification preferences": "No s'han pogut gravar les preferències de les notificacions a causa d'un error", + "When I'm invited to a room": "Quan sóc convidat a una sala", + "Error saving email notification preferences": "No s'han pogut desar les preferències de les notificacions a causa d'un error", "Keywords": "Paraules clau", "Operation failed": "No s'ha pogut realitzar l'operació", "Failed to update keywords": "No s'han pogut actualitzar les paraules clau", From 7ee205a4475319dc4e173ab8cbc4ee6046a28fde Mon Sep 17 00:00:00 2001 From: d1d4c Date: Fri, 26 Jan 2018 12:43:13 +0000 Subject: [PATCH 115/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index d8ce1161f6..b92aec4349 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -44,7 +44,7 @@ "Add an email address above to configure email notifications": "Afegiu més amunt un correu electrònic per a configurar les notificacions", "Advanced notification settings": "Paràmetres avançats de notificacions", "All notifications are currently disabled for all targets.": "Actualment totes les notificacions estan inhabilitades per a tots els objectius.", - "An error occurred whilst saving your email notification preferences.": "S'ha produït un error al desar les vostres preferències de notificació per correu electrònic.", + "An error occurred whilst saving your email notification preferences.": "S'ha produït un error en desar les vostres preferències de notificació per correu electrònic.", "Bug report sent": "S'ha enviat l'informe d'error", "Call invitation": "Invitació de trucada", "Can't update user notification settings": "No es poden actualitzar els paràmetres de les notificacions de l'usuari", @@ -125,7 +125,7 @@ "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "És possible que els hàgiu configurat en un client diferent de Riot. No podeu modificar-los amb Riot, però encara s'apliquen", "Show message in desktop notification": "Mostra els missatges amb notificacions d'escriptori", "Search": "Cerca", - "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.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal.
Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent.

També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
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.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal.
Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent.

També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.", "powered by Matrix": "amb tecnologia de Matrix", "Update": "Actualització", "Appear Offline": "Apareix sense connexió", @@ -137,8 +137,8 @@ "Please describe the bug and/or send logs.": "Si us plau, descriviu l'error i/o envia els registres.", "Loading bug report module": "S'està carregant l'informe del modul", "Failed to send report: ": "No s'ha pogut enviar l'informe ", - "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Si us plau, descriviu l'error. Què heu fet, què esperàveu que passes i què sembla haver passat", - "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:": "Per tal de fer un diagnostic del problemes, els registres d'aquesta aplicació s'enviaran amb aquest informe d'error. Si preferiu enviar només el text anterior, desseleccioneu:", + "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Si us plau, descriviu l'error. Què heu fet, què esperàveu que passes i què sembla haver passat?", + "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:": "Amb aquest informe d'error, alguns registres d'aquesta aplicació s'enviaran també per tal de fer un diagnostic del problema. Si preferiu enviar només el text anterior, desseleccioneu:", "Send logs": "Envia els registres", "Send Custom Event": "Envia els esdeveniments personalitzats", "You must specify an event type!": "Heu d'especificar un tipus d'esdeveniment", @@ -150,8 +150,8 @@ "Send Account Data": "Envia les dades del compte", "Filter results": "Resultats del filtre", "Explore Room State": "Esbrina els estats de les sales", - "Edit": "Editeu", - "Explore Account Data": "Esbrina les dades dels comptes", + "Edit": "Edita", + "Explore Account Data": "Explora les dades del compte", "Toolbox": "Caixa d'eines", "You have successfully set a password!": "Heu establert correctament la contrasenya", "You have successfully set a password and an email address!": "Heu establert correctament la vostra contrasenya i l'adreça de correu electrònic", From bc4f8c4c2a7a2d77829f4e7ed8e4bce674dd6010 Mon Sep 17 00:00:00 2001 From: Xose M Date: Tue, 16 Jan 2018 11:00:45 +0000 Subject: [PATCH 116/163] Translated using Weblate (Galician) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/gl/ --- src/i18n/strings/gl.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 499ee1e8f7..18810b1eff 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -221,5 +221,6 @@ "Appear Offline": "Aparecer fora de liña", "Away": "Fóra", "Please install Chrome or Firefox for the best experience.": "Por favor instale Chrome ou Firefox para a mellor experiencia de usuaria.", - "Safari and Opera work too.": "Safari e Opera tamén funcionan." + "Safari and Opera work too.": "Safari e Opera tamén funcionan.", + "Reply": "Resposta" } From 88c4cb6eba5945008261d7260397b3f36151e2d2 Mon Sep 17 00:00:00 2001 From: "Iru Cai (vimacs)" Date: Mon, 8 Jan 2018 02:02:11 +0000 Subject: [PATCH 117/163] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hans/ --- src/i18n/strings/zh_Hans.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index b6869606ba..2216cc0a88 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -221,5 +221,6 @@ "Appear Offline": "似乎离线了", "Away": "离开状态", "Please install Chrome or Firefox for the best experience.": "请安装 ChromeFirefox 以获得最佳体验。", - "Safari and Opera work too.": "SafariOpera 也能工作。" + "Safari and Opera work too.": "SafariOpera 也能工作。", + "Reply": "回复" } From 078d1568245a75a9235b75436b07d25c42457147 Mon Sep 17 00:00:00 2001 From: Walter Date: Fri, 17 Nov 2017 20:20:10 +0000 Subject: [PATCH 118/163] Translated using Weblate (Ukrainian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/uk/ --- src/i18n/strings/uk.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 459430f15f..6473f14b8f 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -221,5 +221,6 @@ "Appear Offline": "Відображати як не в мережі", "Away": "Нема на місці", "Please install Chrome or Firefox for the best experience.": "Краще встановіть Chrome або Firefox.", - "Safari and Opera work too.": "Safari та Opera працюють теж." + "Safari and Opera work too.": "Safari та Opera працюють теж.", + "Reply": "Відповісти" } From 11806f2aa2c41ebbcd7732d082dceb79e2e2776f Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sun, 28 Jan 2018 19:52:43 +0000 Subject: [PATCH 119/163] Translated using Weblate (Basque) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/ --- src/i18n/strings/eu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 46a17badae..2b9d6114d1 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -66,12 +66,12 @@ "Low Priority": "Lehentasun baxua", "Members": "Kideak", "Mentions only": "Aipamenak besterik ez", - "Messages containing my display name": "Nire pantaila izena duten mezuak", + "Messages containing my display name": "Nire pantaila-izena duten mezuak", "Messages containing keywords": "Hitz gakoak dituzten mezuak", "Messages containing my user name": "Nire erabiltzaile-izena duten mezuak", "Messages in group chats": "Talde txatetako mezuak", "Messages in one-to-one chats": "Biren arteko txatetako mezuak", - "Messages sent by bot": "botak bidalitako mezuak", + "Messages sent by bot": "Botak bidalitako mezuak", "more": "gehiago", "Mute": "Mututu", "No rooms to show": "Ez dago gelarik erakusteko", From b80be62bb70b1216bff00c49784dcaa2dd89d96b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=B3=20Albert=20i=20Beltran?= Date: Mon, 29 Jan 2018 20:47:05 +0000 Subject: [PATCH 120/163] Translated using Weblate (Catalan) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/ --- src/i18n/strings/ca.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index b92aec4349..7c15945b2a 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -16,7 +16,7 @@ "Couldn't load home page": "No s'ha pogut carregar la pàgina d'inici", "All messages (loud)": "Tots els missatges (sorollós)", "Mentions only": "Només mencions", - "Mute": "Silenciat", + "Mute": "Silencia", "Direct Chat": "Xat directe", "Directory": "Directori", "Failed to set direct chat tag": "No s'ha pogut establir l'etiqueta del xat directe", From 930deaea9de22492b2ba3b20e8eff76eb1cc7ce6 Mon Sep 17 00:00:00 2001 From: Tong Hui Date: Sat, 27 Jan 2018 16:55:36 +0000 Subject: [PATCH 121/163] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hans/ --- src/i18n/strings/zh_Hans.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 2216cc0a88..da5690f5b1 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -219,7 +219,7 @@ "Invite to this community": "邀请加入此社区", "Add rooms to this community": "添加聊天室到此社区", "Appear Offline": "似乎离线了", - "Away": "离开状态", + "Away": "离开", "Please install Chrome or Firefox for the best experience.": "请安装 ChromeFirefox 以获得最佳体验。", "Safari and Opera work too.": "SafariOpera 也能工作。", "Reply": "回复" From ed5162ef4e15a1617dd85eba7e07a303aa3adb73 Mon Sep 17 00:00:00 2001 From: Xose M Date: Mon, 29 Jan 2018 13:41:07 +0000 Subject: [PATCH 122/163] Translated using Weblate (Galician) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/gl/ --- src/i18n/strings/gl.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 18810b1eff..929f5e0d7b 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -21,7 +21,7 @@ "Collecting app version information": "Obtendo información sobre a versión da app", "Collecting logs": "Obtendo rexistros", "Couldn't find a matching Matrix room": "Non coincide con ningunha sala de Matrix", - "Custom Server Options": "Axustes do servidor personalizado", + "Custom Server Options": "Opcións personalizadas do servidor", "customServer_text": "Pode utilizar os axustes do servidor personalizado para conectarse a outros servidores Matrix indicando un URL de Inicio do servidor.
Esto permítelle utilizar Riot con unha conta existente de Matrix nun servidor diferente.

Tamén pode establecer un servidor personalizado de identidade mais non poderá invitar a usuarias a través de enderezos de correo ou ser vostede invitada do mesmo xeito.", "delete the alias.": "borrar alcume.", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Eliminar o alcume da sala %(alias)s e borrar %(name)s do directorio?", @@ -29,7 +29,7 @@ "Developer Tools": "Ferramentas para desenvolver", "Direct Chat": "Chat directo", "Directory": "Directorio", - "Dismiss": "Desbotar", + "Dismiss": "Rexeitar", "Download this file": "Descargue este ficheiro", "Enable audible notifications in web client": "Habilitar notificacións audibles no cliente web", "Enable desktop notifications": "Habilitar notificacións de escritorio", @@ -43,7 +43,7 @@ "Expand panel": "Expandir panel", "Failed to add tag %(tagName)s to room": "Fallou ao engadir a etiqueta %(tagName)s a sala", "Failed to change settings": "Fallo ao cambiar os axustes", - "Failed to forget room %(errCode)s": "Fallou ao esquecer a sala %(errCode)s", + "Failed to forget room %(errCode)s": "Fallo ao esquecer sala %(errCode)s", "Failed to update keywords": "Fallo ao actualizar as palabras chave", "Failed to get protocol list from Home Server": "Fallo ao obter a lista de protocolo desde o servidor", "Failed to get public room list": "Fallo ao obter a lista de salas públicas", @@ -52,7 +52,7 @@ "Failed to send report: ": "Fallo no envío do informe: ", "Failed to set direct chat tag": "Fallo ao establecer etiqueta do chat directo", "Failed to set Direct Message status of room": "Fallo ao establecer o estado Mensaxe Directa da sala", - "Favourite": "Favorito", + "Favourite": "Favorita", "Fetching third party location failed": "Fallo ao obter a localización de terceiros", "Files": "Ficheiros", "Filter results": "Filtrar resultados", @@ -94,7 +94,7 @@ "Please describe the bug. What did you do? What did you expect to happen? What actually happened?": "Por favor describa a incidencia. Que estaba a facer? Que tiña que pasar? Que aconteceu en realidade?", "Please describe the bug and/or send logs.": "Por favor describa a incidencia e/ou envíe o informe.", "Please install Chrome or Firefox for the best experience.": "Por favor instale Chrome ou Firefox para ter a mellor experiencia de uso.", - "powered by Matrix": "funcionando grazas a Matrix", + "powered by Matrix": "funciona grazas a Matrix", "Quote": "Cita", "Reject": "Rexeitar", "Remove %(name)s from the directory?": "Eliminar %(name)s do directorio?", @@ -108,7 +108,7 @@ "Riot is not supported on mobile web. Install the app?": "Riot no se pode executar na web móbil. Instalar a app?", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot utiliza características avanzadas do navegador, algunhas das cales non están dispoñibles ou son experimentales no seu navegador actual.", "Room not found": "Non se atopou a sala", - "Search": "Buscar", + "Search": "Busca", "Search…": "Buscar…", "Search for a room": "Buscar unha sala", "Send": "Enviar", @@ -128,7 +128,7 @@ "Unavailable": "Non dispoñible", "Unhide Preview": "Desagochar a vista previsa", "Unknown device": "Dispositivo descoñecido", - "unknown error code": "código de erro descoñecido", + "unknown error code": "código de fallo descoñecido", "Unnamed room": "Sala sen nome", "Update": "Actualizar", "Uploaded on %(date)s by %(user)s": "Subido a %(date)s por %(user)s", @@ -193,7 +193,7 @@ "Dev chat for the Dendrite dev team": "Chat para o equipo de desenvolvemento de Dendrite", "Co-ordination for Riot/Web translators": "Coordinación para tradutores de Riot/Web", "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Xa existen multitude de salas en Matrix, ligadas a redes existentes (Slack, IRC, Gitter etc) ou independentes. Busque no directorio!", - "Failed to change password. Is your password correct?": "Non se mudou o contrasinal. É correcto o contrasinal introducido?", + "Failed to change password. Is your password correct?": "Fallo ao cambiar o contrasinal. É correcto o contrasinal?", "You have successfully set a password!": "Mudou con éxito o seu contrasinal!", "You can now return to your account after signing out, and sign in on other devices.": "Pode voltar a súa contra tras desconectarse, e conectarse en outros dispositivos.", "Continue": "Continuar", @@ -214,7 +214,7 @@ "Explore Account Data": "Explorar datos da conta", "Unpin Message": "Desfixar mensaxe", "Pin Message": "Fixar mensaxe", - "Register": "Rexistrar", + "Register": "Rexistar", "Rooms": "Salas", "Invite to this community": "Convidar a esta comunidade", "Add rooms to this community": "Engadir salas a esta comunidade", From a26473b722a65381bc86de346f6a622d2680df98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=20=D0=9C=2E=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=9B?= Date: Fri, 26 Jan 2018 20:35:06 +0000 Subject: [PATCH 123/163] Translated using Weblate (Serbian) Currently translated at 100.0% (220 of 220 strings) Translation: Riot Web/riot-web Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/ --- src/i18n/strings/sr.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/sr.json b/src/i18n/strings/sr.json index 77214f2312..25a1f3425a 100644 --- a/src/i18n/strings/sr.json +++ b/src/i18n/strings/sr.json @@ -59,10 +59,10 @@ "Saturday": "Субота", "Today": "Данас", "Yesterday": "Јуче", - "Custom Server Options": "Опције прилагођеног сервера", + "Custom Server Options": "Прилагођене опције сервера", "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.": "Можете користити опције прилагођеног сервера за пријаву у друге Матрикс сервере навођењем другачије адресе кућног сервера.
Ово вам омогућава да користите Riot са постојећим Матрикс налогомна другом кућном серверу.

Такође, можете поставити прилагођени идентитески сервер али нећете моћи да позивате кориснике по мејл адреси а ни други вас.", "Dismiss": "Одбаци", - "powered by Matrix": "покреће Матрикс (Matrix)", + "powered by Matrix": "покреће Матрикс", "You are not receiving desktop notifications": "Не примате стона обавештења", "Enable them now": "Омогућите их сада", "What's New": "Шта је ново", @@ -155,7 +155,7 @@ "I understand the risks and wish to continue": "Разумем опасност и желим да наставим", "Couldn't load home page": "Нисам могао да учитам почетну страну", "Login": "Пријава", - "Register": "Регистрација", + "Register": "Регистровање", "Invite to this room": "Позови у ову собу", "Members": "Чланови", "Files": "Датотеке", From 00b7cc512b3a9f0e0a36e4ea7d1f4a6c3011ff66 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 5 Feb 2018 13:25:09 +0000 Subject: [PATCH 124/163] Split MImageBody into MImageBody,MFileBody to match react-sdk and having the classnames match their components. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/skins/vector/css/_components.scss | 1 + .../views/messages/_MFileBody.scss | 46 +++++++++++++++++++ .../views/messages/_MImageBody.scss | 31 ------------- 3 files changed, 47 insertions(+), 31 deletions(-) create mode 100644 src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 2319ebee84..faf358bd94 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -46,6 +46,7 @@ @import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss"; @import "./matrix-react-sdk/views/login/_ServerConfig.scss"; @import "./matrix-react-sdk/views/messages/_MEmoteBody.scss"; +@import "./matrix-react-sdk/views/messages/_MFileBody.scss"; @import "./matrix-react-sdk/views/messages/_MImageBody.scss"; @import "./matrix-react-sdk/views/messages/_MNoticeBody.scss"; @import "./matrix-react-sdk/views/messages/_MTextBody.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss b/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss new file mode 100644 index 0000000000..77c6241bcb --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss @@ -0,0 +1,46 @@ +/* +Copyright 2015, 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. +*/ + +.mx_MFileBody_download { + color: $accent-color; +} + +.mx_MFileBody_download a { + color: $accent-color; + text-decoration: none; +} + +.mx_MFileBody_download object { + margin-left: -16px; + padding-right: 4px; + margin-top: -4px; + vertical-align: middle; + pointer-events: none; +} + +/* Remove the border and padding for iframes for download links. */ +.mx_MFileBody_download iframe { + margin: 0px; + padding: 0px; + border: none; + width: 100%; + /* Set the height of the iframe to be 1 line of text. + * Iframes don't automatically size themselves to fit their content. + * So either we have to fix the height of the iframe using CSS or + * use javascript's cross-origin postMessage API to communicate how + * big the content of the iframe is. */ + height: 1.5em; +} diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss b/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss index 83ae06160d..1702aac8ad 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/messages/_MImageBody.scss @@ -27,34 +27,3 @@ limitations under the License. border-radius: 1px; */ } - -.mx_MImageBody_download { - color: $accent-color; -} - -.mx_MImageBody_download a { - color: $accent-color; - text-decoration: none; -} - -.mx_MImageBody_download object { - margin-left: -16px; - padding-right: 4px; - margin-top: -4px; - vertical-align: middle; - pointer-events: none; -} - -/* Remove the border and padding for iframes for download links. */ -.mx_MImageBody_download iframe { - margin: 0px; - padding: 0px; - border: none; - width: 100%; - /* Set the height of the iframe to be 1 line of text. - * Iframes don't automatically size themselves to fit their content. - * So either we have to fix the height of the iframe using CSS or - * use javascript's cross-origin postMessage API to communicate how - * big the content of the iframe is. */ - height: 1.5em; -} From 3abf1458fb3146ebeba3901e4ae6f39960eb43c3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 5 Feb 2018 13:25:43 +0000 Subject: [PATCH 125/163] Add cursor:pointer so that calculated CSS includes it for iframe style Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../vector/css/matrix-react-sdk/views/messages/_MFileBody.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss b/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss index 77c6241bcb..6cbce68745 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/messages/_MFileBody.scss @@ -21,6 +21,7 @@ limitations under the License. .mx_MFileBody_download a { color: $accent-color; text-decoration: none; + cursor: pointer; } .mx_MFileBody_download object { From e46f436a472a017889f146bc4fcad1d1b2d379ac Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Tue, 6 Feb 2018 11:50:34 +0000 Subject: [PATCH 126/163] Prefer context.matrixClient in LeftPanel --- src/components/structures/LeftPanel.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js index c1222396e1..398862f22e 100644 --- a/src/components/structures/LeftPanel.js +++ b/src/components/structures/LeftPanel.js @@ -24,7 +24,6 @@ import { MatrixClient } from 'matrix-js-sdk'; import { KeyCode } from 'matrix-react-sdk/lib/Keyboard'; import sdk from 'matrix-react-sdk'; import dis from 'matrix-react-sdk/lib/dispatcher'; -import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; import VectorConferenceHandler from '../../VectorConferenceHandler'; import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; @@ -206,7 +205,7 @@ var LeftPanel = React.createClass({ dis.dispatch(RoomListActions.tagRoom( this.context.matrixClient, - MatrixClientPeg.get().getRoom(roomId), + this.context.matrixClient.getRoom(roomId), prevTag, newTag, oldIndex, newIndex, ), true); @@ -223,7 +222,7 @@ var LeftPanel = React.createClass({ const CallPreview = sdk.getComponent('voip.CallPreview'); let topBox; - if (MatrixClientPeg.get().isGuest()) { + if (this.context.matrixClient.isGuest()) { const LoginBox = sdk.getComponent('structures.LoginBox'); topBox = ; } else { From 83996c09d9a06f34fa11a07ab6c789c31770082f Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Tue, 6 Feb 2018 11:51:46 +0000 Subject: [PATCH 127/163] General delint, cleanup --- .../context_menus/RoomTileContextMenu.js | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js index 36602cfac6..9ddafb83a7 100644 --- a/src/components/views/context_menus/RoomTileContextMenu.js +++ b/src/components/views/context_menus/RoomTileContextMenu.js @@ -20,6 +20,7 @@ limitations under the License. import Promise from 'bluebird'; import React from 'react'; import classNames from 'classnames'; +import PropTypes from 'prop-types'; import sdk from 'matrix-react-sdk'; import { _t, _td } from 'matrix-react-sdk/lib/languageHandler'; import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; @@ -28,14 +29,15 @@ import DMRoomMap from 'matrix-react-sdk/lib/utils/DMRoomMap'; import * as Rooms from 'matrix-react-sdk/lib/Rooms'; import * as RoomNotifs from 'matrix-react-sdk/lib/RoomNotifs'; import Modal from 'matrix-react-sdk/lib/Modal'; +import RoomListActions from 'matrix-react-sdk/lib/actions/RoomListActions'; module.exports = React.createClass({ displayName: 'RoomTileContextMenu', propTypes: { - room: React.PropTypes.object.isRequired, + room: PropTypes.object.isRequired, /* callback called when the menu is dismissed */ - onFinished: React.PropTypes.func, + onFinished: PropTypes.func, }, getInitialState() { @@ -45,7 +47,7 @@ module.exports = React.createClass({ isFavourite: this.props.room.tags.hasOwnProperty("m.favourite"), isLowPriority: this.props.room.tags.hasOwnProperty("m.lowpriority"), isDirectMessage: Boolean(dmRoomMap.getUserIdForRoomId(this.props.room.roomId)), - } + }; }, componentWillMount: function() { @@ -132,22 +134,22 @@ module.exports = React.createClass({ }, _onClickDM: function() { + if (MatrixClientPeg.get().isGuest()) return; + const newIsDirectMessage = !this.state.isDirectMessage; this.setState({ isDirectMessage: newIsDirectMessage, }); - if (MatrixClientPeg.get().isGuest()) return; - Rooms.guessAndSetDMRoom( - this.props.room, newIsDirectMessage + this.props.room, newIsDirectMessage, ).delay(500).finally(() => { // Close the context menu if (this.props.onFinished) { this.props.onFinished(); - }; + } }, (err) => { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createTrackedDialog('Failed to set Direct Message status of room', '', ErrorDialog, { title: _t('Failed to set Direct Message status of room'), description: ((err && err.message) ? err.message : _t('Operation failed')), @@ -165,7 +167,7 @@ module.exports = React.createClass({ // Close the context menu if (this.props.onFinished) { this.props.onFinished(); - }; + } }, _onClickReject: function() { @@ -177,7 +179,7 @@ module.exports = React.createClass({ // Close the context menu if (this.props.onFinished) { this.props.onFinished(); - }; + } }, _onClickForget: function() { @@ -185,8 +187,8 @@ module.exports = React.createClass({ MatrixClientPeg.get().forget(this.props.room.roomId).done(function() { dis.dispatch({ action: 'view_next_room' }); }, function(err) { - var errCode = err.errcode || _td("unknown error code"); - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + const errCode = err.errcode || _td("unknown error code"); + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createTrackedDialog('Failed to forget room', '', ErrorDialog, { title: _t('Failed to forget room %(errCode)s', {errCode: errCode}), description: ((err && err.message) ? err.message : _t('Operation failed')), @@ -196,20 +198,19 @@ module.exports = React.createClass({ // Close the context menu if (this.props.onFinished) { this.props.onFinished(); - }; + } }, _saveNotifState: function(newState) { + if (MatrixClientPeg.get().isGuest()) return; + const oldState = this.state.roomNotifState; const roomId = this.props.room.roomId; - var cli = MatrixClientPeg.get(); - - if (cli.isGuest()) return; this.setState({ roomNotifState: newState, }); - RoomNotifs.setRoomNotifsState(this.props.room.roomId, newState).done(() => { + RoomNotifs.setRoomNotifsState(roomId, newState).done(() => { // delay slightly so that the user can see their state change // before closing the menu return Promise.delay(500).then(() => { @@ -217,7 +218,7 @@ module.exports = React.createClass({ // Close the context menu if (this.props.onFinished) { this.props.onFinished(); - }; + } }); }, (error) => { // TODO: some form of error notification to the user @@ -247,22 +248,22 @@ module.exports = React.createClass({ }, _renderNotifMenu: function() { - var alertMeClasses = classNames({ + const alertMeClasses = classNames({ 'mx_RoomTileContextMenu_notif_field': true, 'mx_RoomTileContextMenu_notif_fieldSet': this.state.roomNotifState == RoomNotifs.ALL_MESSAGES_LOUD, }); - var allNotifsClasses = classNames({ + const allNotifsClasses = classNames({ 'mx_RoomTileContextMenu_notif_field': true, 'mx_RoomTileContextMenu_notif_fieldSet': this.state.roomNotifState == RoomNotifs.ALL_MESSAGES, }); - var mentionsClasses = classNames({ + const mentionsClasses = classNames({ 'mx_RoomTileContextMenu_notif_field': true, 'mx_RoomTileContextMenu_notif_fieldSet': this.state.roomNotifState == RoomNotifs.MENTIONS_ONLY, }); - var muteNotifsClasses = classNames({ + const muteNotifsClasses = classNames({ 'mx_RoomTileContextMenu_notif_field': true, 'mx_RoomTileContextMenu_notif_fieldSet': this.state.roomNotifState == RoomNotifs.MUTE, }); @@ -272,22 +273,22 @@ module.exports = React.createClass({
-
+
{ _t('All messages (noisy)') }
-
+
{ _t('All messages') }
-
+
{ _t('Mentions only') }
-
+
{ _t('Mute') } @@ -322,7 +323,7 @@ module.exports = React.createClass({ return (
-
+
{ leaveText }
@@ -351,17 +352,17 @@ module.exports = React.createClass({ return (
-
+
{ _t('Favourite') }
-
+
{ _t('Low Priority') }
-
+
{ _t('Direct Chat') } @@ -372,7 +373,7 @@ module.exports = React.createClass({ render: function() { const myMember = this.props.room.getMember( - MatrixClientPeg.get().credentials.userId + MatrixClientPeg.get().credentials.userId, ); // Can't set notif level or tags on non-join rooms @@ -389,5 +390,5 @@ module.exports = React.createClass({ { this._renderRoomTagMenu() }
); - } + }, }); From 662942ec295183b185e50883b843c63bd4b3aa42 Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Tue, 6 Feb 2018 11:52:39 +0000 Subject: [PATCH 128/163] Use dispatch to change room tags from RoomTileContextMenu --- .../context_menus/RoomTileContextMenu.js | 44 ++++--------------- 1 file changed, 9 insertions(+), 35 deletions(-) diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js index 9ddafb83a7..06eb347d6c 100644 --- a/src/components/views/context_menus/RoomTileContextMenu.js +++ b/src/components/views/context_menus/RoomTileContextMenu.js @@ -59,42 +59,16 @@ module.exports = React.createClass({ }, _toggleTag: function(tagNameOn, tagNameOff) { - var self = this; - const roomId = this.props.room.roomId; - var cli = MatrixClientPeg.get(); - if (!cli.isGuest()) { - Promise.delay(500).then(function() { - if (tagNameOff !== null && tagNameOff !== undefined) { - cli.deleteRoomTag(roomId, tagNameOff).finally(function() { - // Close the context menu - if (self.props.onFinished) { - self.props.onFinished(); - }; - }).catch(function(err) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - Modal.createTrackedDialog('Failed to remove tag from room 1', '', ErrorDialog, { - title: _t('Failed to remove tag %(tagName)s from room', {tagName: tagNameOff}), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - } + if (!MatrixClientPeg.get().isGuest()) { + Promise.delay(500).then(() => { + dis.dispatch(RoomListActions.tagRoom( + MatrixClientPeg.get(), + this.props.room, + tagNameOff, tagNameOn, + undefined, 0, + ), true); - if (tagNameOn !== null && tagNameOn !== undefined) { - // If the tag ordering meta data is required, it is added by - // the RoomSubList when it sorts its rooms - cli.setRoomTag(roomId, tagNameOn, {}).finally(function() { - // Close the context menu - if (self.props.onFinished) { - self.props.onFinished(); - }; - }).catch(function(err) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - Modal.createTrackedDialog('Failed to remove tag from room 2', '', ErrorDialog, { - title: _t('Failed to remove tag %(tagName)s from room', {tagName: tagNameOn}), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - } + this.props.onFinished(); }); } }, From 95c45362d5ad1dcf286dbf40570cfcde90d5fb1d Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Wed, 7 Feb 2018 12:02:00 +0000 Subject: [PATCH 129/163] Fix horizontal scrollbar under certain circumstances specifically when trailing whitespace is not wrapped onto the next line of the block. Fixes #6077 --- .../css/matrix-react-sdk/views/rooms/_MessageComposer.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss index e6b1a1f0d0..98be3885cc 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss @@ -108,6 +108,10 @@ limitations under the License. padding-top: 2px; } +.mx_MessageComposer .public-DraftStyleDefault-block { + overflow-x: hidden; +} + .mx_MessageComposer_input blockquote { color: $blockquote-fg-color; margin: 0 0 16px; From 4b7561a75ef8cd5996a0e4b9164baa55e908755c Mon Sep 17 00:00:00 2001 From: lukebarnard Date: Wed, 7 Feb 2018 17:40:00 +0000 Subject: [PATCH 130/163] Fix long group name pushing settings cog into void --- .../vector/css/matrix-react-sdk/structures/_GroupView.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss index 300728d274..68b2ba298f 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_GroupView.scss @@ -90,6 +90,8 @@ limitations under the License. .mx_GroupView_header_leftCol { flex: 1; + + overflow: hidden; } .mx_GroupView_header_rightCol { From 495090c9ba41a05cc74acb27dc6bb31782a6ed1a Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 8 Feb 2018 14:08:20 +0000 Subject: [PATCH 131/163] Remove now unused RoomSubList code --- src/components/structures/RoomSubList.js | 117 ----------------------- 1 file changed, 117 deletions(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 398f2647de..8bea76ab6b 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -38,31 +38,6 @@ var debug = false; const TRUNCATE_AT = 10; -var roomListTarget = { - canDrop: function() { - return true; - }, - - drop: function(props, monitor, component) { - if (debug) console.log("dropped on sublist") - }, - - hover: function(props, monitor, component) { - var item = monitor.getItem(); - - if (component.state.sortedList.length == 0 && props.editable) { - if (debug) console.log("hovering on sublist " + props.label + ", isOver=" + monitor.isOver()); - - if (item.targetList !== component) { - item.targetList.removeRoomTile(item.room); - item.targetList = component; - } - - component.moveRoomTile(item.room, 0); - } - }, -}; - var RoomSubList = React.createClass({ displayName: 'RoomSubList', @@ -279,98 +254,6 @@ var RoomSubList = React.createClass({ this.setState(this.state); }, - moveRoomTile: function(room, atIndex) { - if (debug) console.log("moveRoomTile: id " + room.roomId + ", atIndex " + atIndex); - //console.log("moveRoomTile before: " + JSON.stringify(this.state.rooms)); - var found = this.findRoomTile(room); - var rooms = this.state.sortedList; - if (found.room) { - if (debug) console.log("removing at index " + found.index + " and adding at index " + atIndex); - rooms.splice(found.index, 1); - rooms.splice(atIndex, 0, found.room); - } - else { - if (debug) console.log("Adding at index " + atIndex); - rooms.splice(atIndex, 0, room); - } - this.setState({ sortedList: rooms }); - // console.log("moveRoomTile after: " + JSON.stringify(this.state.rooms)); - }, - - // XXX: this isn't invoked via a property method but indirectly via - // the roomList property method. Unsure how evil this is. - removeRoomTile: function(room) { - if (debug) console.log("remove room " + room.roomId); - var found = this.findRoomTile(room); - var rooms = this.state.sortedList; - if (found.room) { - rooms.splice(found.index, 1); - } - else { - console.warn("Can't remove room " + room.roomId + " - can't find it"); - } - this.setState({ sortedList: rooms }); - }, - - findRoomTile: function(room) { - var index = this.state.sortedList.indexOf(room); - if (index >= 0) { - // console.log("found: room: " + room.roomId + " with index " + index); - } - else { - if (debug) console.log("didn't find room"); - room = null; - } - return ({ - room: room, - index: index, - }); - }, - - calcManualOrderTagData: function(index) { - // we sort rooms by the lexicographic ordering of the 'order' metadata on their tags. - // for convenience, we calculate this for now a floating point number between 0.0 and 1.0. - - let orderA = 0.0; // by default we're next to the beginning of the list - if (index > 0) { - const prevTag = this.state.sortedList[index - 1].tags[this.props.tagName]; - if (!prevTag) { - console.error("Previous room in sublist is not tagged to be in this list. This should never happen."); - } else if (prevTag.order === undefined) { - console.error("Previous room in sublist has no ordering metadata. This should never happen."); - } else { - orderA = prevTag.order; - } - } - - let orderB = 1.0; // by default we're next to the end of the list too - if (index < this.state.sortedList.length - 1) { - const nextTag = this.state.sortedList[index + 1].tags[this.props.tagName]; - if (!nextTag) { - console.error("Next room in sublist is not tagged to be in this list. This should never happen."); - } else if (nextTag.order === undefined) { - console.error("Next room in sublist has no ordering metadata. This should never happen."); - } else { - orderB = nextTag.order; - } - } - - const order = (orderA + orderB) / 2.0; - - if (order === orderA || order === orderB) { - console.error("Cannot describe new list position. This should be incredibly unlikely."); - this.state.sortedList.forEach((room, index) => { - MatrixClientPeg.get().setRoomTag( - room.roomId, this.props.tagName, - {order: index / this.state.sortedList.length}, - ); - }); - return index / this.state.sortedList.length; - } - - return order; - }, - makeRoomTiles: function() { var self = this; var DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile"); From 0cdebcce89605e3297cc72fac09038a8d9aa3c38 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Thu, 8 Feb 2018 16:28:42 +0000 Subject: [PATCH 132/163] Move sublist sorting to RoomListStore NB: fixUndefinedOrdering was removed completely because it was code dealing with legacy favourites. see matrix-org/matrix-react-sdk@9b0df191 --- src/components/structures/RoomSubList.js | 114 ++--------------------- 1 file changed, 6 insertions(+), 108 deletions(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 8bea76ab6b..d119e2714a 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -85,13 +85,17 @@ var RoomSubList = React.createClass({ }, componentWillMount: function() { - this.sortList(this.applySearchFilter(this.props.list, this.props.searchFilter), this.props.order); + this.setState({ + sortedList: this.applySearchFilter(this.props.list, this.props.searchFilter), + }); }, componentWillReceiveProps: function(newProps) { // order the room list appropriately before we re-render //if (debug) console.log("received new props, list = " + newProps.list); - this.sortList(this.applySearchFilter(newProps.list, newProps.searchFilter), newProps.order); + this.setState({ + sortedList: this.applySearchFilter(newProps.list, newProps.searchFilter), + }); }, applySearchFilter: function(list, filter) { @@ -139,71 +143,6 @@ var RoomSubList = React.createClass({ }); }, - tsOfNewestEvent: function(room) { - for (var i = room.timeline.length - 1; i >= 0; --i) { - var ev = room.timeline[i]; - if (ev.getTs() && - (Unread.eventTriggersUnreadCount(ev) || - (ev.getSender() === MatrixClientPeg.get().credentials.userId)) - ) { - return ev.getTs(); - } - } - - // we might only have events that don't trigger the unread indicator, - // in which case use the oldest event even if normally it wouldn't count. - // This is better than just assuming the last event was forever ago. - if (room.timeline.length && room.timeline[0].getTs()) { - return room.timeline[0].getTs(); - } else { - return Number.MAX_SAFE_INTEGER; - } - }, - - // TODO: factor the comparators back out into a generic comparator - // so that view_prev_room and view_next_room can do the right thing - - recentsComparator: function(roomA, roomB) { - return this.tsOfNewestEvent(roomB) - this.tsOfNewestEvent(roomA); - }, - - lexicographicalComparator: function(roomA, roomB) { - return roomA.name > roomB.name ? 1 : -1; - }, - - // Generates the manual comparator using the given list - manualComparator: function(roomA, roomB) { - if (!roomA.tags[this.props.tagName] || !roomB.tags[this.props.tagName]) return 0; - - // Make sure the room tag has an order element, if not set it to be the bottom - var a = roomA.tags[this.props.tagName].order; - var b = roomB.tags[this.props.tagName].order; - - // Order undefined room tag orders to the bottom - if (a === undefined && b !== undefined) { - return 1; - } else if (a !== undefined && b === undefined) { - return -1; - } - - return a == b ? this.lexicographicalComparator(roomA, roomB) : ( a > b ? 1 : -1); - }, - - sortList: function(list, order) { - if (list === undefined) list = this.state.sortedList; - if (order === undefined) order = this.props.order; - var comparator; - list = list || []; - if (order === "manual") comparator = this.manualComparator; - if (order === "recent") comparator = this.recentsComparator; - - // Fix undefined orders here, and make sure the backend gets updated as well - this._fixUndefinedOrder(list); - - //if (debug) console.log("sorting list for sublist " + this.props.label + " with length " + list.length + ", this.props.list = " + this.props.list); - this.setState({ sortedList: list.sort(comparator) }); - }, - _shouldShowNotifBadge: function(roomNotifState) { const showBadgeInStates = [RoomNotifs.ALL_MESSAGES, RoomNotifs.ALL_MESSAGES_LOUD]; return showBadgeInStates.indexOf(roomNotifState) > -1; @@ -380,47 +319,6 @@ var RoomSubList = React.createClass({ this.props.onHeaderClick(false); }, - // Fix any undefined order elements of a room in a manual ordered list - // room.tag[tagname].order - _fixUndefinedOrder: function(list) { - if (this.props.order === "manual") { - var order = 0.0; - var self = this; - - // Find the highest (lowest position) order of a room in a manual ordered list - list.forEach(function(room) { - if (room.tags.hasOwnProperty(self.props.tagName)) { - if (order < room.tags[self.props.tagName].order) { - order = room.tags[self.props.tagName].order; - } - } - }); - - // Fix any undefined order elements of a room in a manual ordered list - // Do this one at a time, as each time a rooms tag data is updated the RoomList - // gets triggered and another list is passed in. Doing it one at a time means that - // we always correctly calculate the highest order for the list - stops multiple - // rooms getting the same order. This is only really relevant for the first time this - // is run with historical room tag data, after that there should only be undefined - // in the list at a time anyway. - for (let i = 0; i < list.length; i++) { - if (list[i].tags[self.props.tagName] && list[i].tags[self.props.tagName].order === undefined) { - MatrixClientPeg.get().setRoomTag(list[i].roomId, self.props.tagName, {order: (order + 1.0) / 2.0}).finally(function() { - // Do any final stuff here - }).catch(function(err) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); - console.error("Failed to add tag " + self.props.tagName + " to room" + err); - Modal.createTrackedDialog('Failed to add tag to room', '', ErrorDialog, { - title: _t('Failed to add tag %(tagName)s to room', {tagName: self.props.tagName}), - description: ((err && err.message) ? err.message : _t('Operation failed')), - }); - }); - break; - }; - }; - } - }, - render: function() { var connectDropTarget = this.props.connectDropTarget; var TruncatedList = sdk.getComponent('elements.TruncatedList'); From 62e90ceb0d822111dafe3fbd946c11f4f49afa0e Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Feb 2018 12:20:31 +0000 Subject: [PATCH 133/163] Sanity check URLs with isUrlPermitted Thanks to walle303 for letting us know these weren't being checked. --- src/components/views/context_menus/MessageContextMenu.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index a07d11626d..5bdfde4121 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2018 New Vector Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,6 +26,7 @@ import { _t } from 'matrix-react-sdk/lib/languageHandler'; const Modal = require('matrix-react-sdk/lib/Modal'); const Resend = require("matrix-react-sdk/lib/Resend"); import * as UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; +import { isUrlPermitted } from 'matrix-react-sdk/lib/HtmlUtils'; module.exports = React.createClass({ displayName: 'MessageContextMenu', @@ -275,7 +277,10 @@ module.exports = React.createClass({ } // Bridges can provide a 'external_url' to link back to the source. - if( typeof(this.props.mxEvent.event.content.external_url) === "string") { + if( + typeof(this.props.mxEvent.event.content.external_url) === "string" && + isUrlPermitted(this.props.mxEvent.event.content.external_url) + ) { externalURLButton = (
Date: Fri, 9 Feb 2018 12:36:19 +0000 Subject: [PATCH 134/163] Bump react-sdk version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ac25f8e0ce..92d182d6a9 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "highlight.js": "^9.0.0", "linkifyjs": "^2.1.3", "matrix-js-sdk": "0.9.2", - "matrix-react-sdk": "0.11.3", + "matrix-react-sdk": "0.11.4", "modernizr": "^3.1.0", "pako": "^1.0.5", "prop-types": "^15.5.10", From 1d222e35078d1d8df3be784887bd838fc2a9d3e7 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Feb 2018 12:38:23 +0000 Subject: [PATCH 135/163] v0.13.5 --- electron_app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron_app/package.json b/electron_app/package.json index b33da34fe6..04741bec65 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "0.13.4", + "version": "0.13.5", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "dependencies": { From 30087e5c732f3a947ce017c7d8ff2aad4183e3b0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Feb 2018 12:43:45 +0000 Subject: [PATCH 136/163] Prepare changelog for v0.13.5 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d93444c416..6b66e37aa9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Changes in [0.13.5](https://github.com/vector-im/riot-web/releases/tag/v0.13.5) (2018-02-09) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.13.4...v0.13.5) + + * SECURITY UPDATE: Sanitise URLs from 'external_url'. Thanks to walle303 for contacting + us about this vulnerability. + Changes in [0.13.4](https://github.com/vector-im/riot-web/releases/tag/v0.13.4) (2018-01-03) ============================================================================================ [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.13.3...v0.13.4) From 9e614a54dab55fce7cbb274132d55cca16d08df1 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Feb 2018 12:43:45 +0000 Subject: [PATCH 137/163] v0.13.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 92d182d6a9..8f34b5977e 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.13.4", + "version": "0.13.5", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "repository": { From d47c9d8b6ee6740ef1de3a7f63605ceff68bc77e Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Mon, 12 Feb 2018 18:02:55 +0000 Subject: [PATCH 138/163] Add context menu to TagPanel See https://github.com/matrix-org/matrix-react-sdk/pull/1743 --- .../views/context_menus/TagTileContextMenu.js | 68 +++++++++++++++++++ src/i18n/strings/en_EN.json | 17 ++--- src/skins/vector/css/_components.scss | 5 +- .../structures/_TagPanel.scss | 18 +++++ .../context_menus/_TagTileContextMenu.scss | 44 ++++++++++++ 5 files changed, 142 insertions(+), 10 deletions(-) create mode 100644 src/components/views/context_menus/TagTileContextMenu.js create mode 100644 src/skins/vector/css/vector-web/views/context_menus/_TagTileContextMenu.scss diff --git a/src/components/views/context_menus/TagTileContextMenu.js b/src/components/views/context_menus/TagTileContextMenu.js new file mode 100644 index 0000000000..4ec6c5150f --- /dev/null +++ b/src/components/views/context_menus/TagTileContextMenu.js @@ -0,0 +1,68 @@ +/* +Copyright 2018 New Vector 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 PropTypes from 'prop-types'; +import { _t } from 'matrix-react-sdk/lib/languageHandler'; +import dis from 'matrix-react-sdk/lib/dispatcher'; +import TagOrderActions from 'matrix-react-sdk/lib/actions/TagOrderActions'; +import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; + +export default class TagTileContextMenu extends React.Component { + static propTypes = { + tag: PropTypes.string.isRequired, + /* callback called when the menu is dismissed */ + onFinished: PropTypes.func.isRequired, + }; + + constructor() { + super(); + + this._onViewCommunityClick = this._onViewCommunityClick.bind(this); + this._onRemoveClick = this._onRemoveClick.bind(this); + } + + _onViewCommunityClick() { + dis.dispatch({ + action: 'view_group', + group_id: this.props.tag, + }); + this.props.onFinished(); + } + + _onRemoveClick() { + dis.dispatch(TagOrderActions.removeTag( + // XXX: Context menus don't have a MatrixClient context + MatrixClientPeg.get(), + this.props.tag, + )); + this.props.onFinished(); + } + + render() { + return
+
+ + { _t('View Community') } +
+
+
+ + { _t('Remove') } +
+
; + } +} diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 819c0cfa21..bbb94a609d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -43,9 +43,6 @@ "Off": "Off", "On": "On", "Noisy": "Noisy", - "Failed to set direct chat tag": "Failed to set direct chat tag", - "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room", - "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room", "Search…": "Search…", "Search": "Search", "This Room": "This Room", @@ -68,8 +65,6 @@ "What's New": "What's New", "Update": "Update", "What's new?": "What's new?", - "Appear Offline": "Appear Offline", - "Away": "Away", "A new version of Riot is available.": "A new version of Riot is available.", "To return to your account in future you need to set a password": "To return to your account in future you need to set a password", "Set Password": "Set Password", @@ -126,6 +121,7 @@ "Resend": "Resend", "Cancel Sending": "Cancel Sending", "Forward Message": "Forward Message", + "Reply": "Reply", "Unpin Message": "Unpin Message", "Pin Message": "Pin Message", "View Source": "View Source", @@ -134,6 +130,10 @@ "Permalink": "Permalink", "Quote": "Quote", "Source URL": "Source URL", + "Online": "Online", + "Away": "Away", + "Appear Offline": "Appear Offline", + "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room", "Failed to set Direct Message status of room": "Failed to set Direct Message status of room", "unknown error code": "unknown error code", "Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s", @@ -147,6 +147,7 @@ "Favourite": "Favourite", "Low Priority": "Low Priority", "Direct Chat": "Direct Chat", + "View Community": "View Community", "Sorry, your browser is not able to run Riot.": "Sorry, your browser is not able to run Riot.", "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.", "Please install Chrome or Firefox for the best experience.": "Please install Chrome or Firefox for the best experience.", @@ -156,10 +157,10 @@ "Couldn't load home page": "Couldn't load home page", "Login": "Login", "Register": "Register", - "Invite to this room": "Invite to this room", "Members": "Members", "%(count)s Members|other": "%(count)s Members", "%(count)s Members|one": "%(count)s Member", + "Invite to this room": "Invite to this room", "Files": "Files", "Notifications": "Notifications", "Rooms": "Rooms", @@ -189,6 +190,7 @@ "Search for a room": "Search for a room", "#example": "#example", "more": "more", + "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room", "Expand panel": "Expand panel", "Collapse panel": "Collapse panel", "Filter room names": "Filter room names", @@ -219,6 +221,5 @@ "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", - "Reply": "Reply" + "Co-ordination for Riot/Web translators": "Co-ordination for Riot/Web translators" } diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index faf358bd94..837fe4532f 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -36,10 +36,10 @@ @import "./matrix-react-sdk/views/elements/_EditableItemList.scss"; @import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss"; @import "./matrix-react-sdk/views/elements/_ProgressBar.scss"; +@import "./matrix-react-sdk/views/elements/_Quote.scss"; @import "./matrix-react-sdk/views/elements/_RichText.scss"; @import "./matrix-react-sdk/views/elements/_RoleButton.scss"; @import "./matrix-react-sdk/views/elements/_ToolTipButton.scss"; -@import "./matrix-react-sdk/views/elements/_Quote.scss"; @import "./matrix-react-sdk/views/groups/_GroupPublicityToggle.scss"; @import "./matrix-react-sdk/views/groups/_GroupRoomList.scss"; @import "./matrix-react-sdk/views/groups/_GroupUserSettings.scss"; @@ -65,6 +65,7 @@ @import "./matrix-react-sdk/views/rooms/_PinnedEventTile.scss"; @import "./matrix-react-sdk/views/rooms/_PinnedEventsPanel.scss"; @import "./matrix-react-sdk/views/rooms/_PresenceLabel.scss"; +@import "./matrix-react-sdk/views/rooms/_QuotePreview.scss"; @import "./matrix-react-sdk/views/rooms/_RoomHeader.scss"; @import "./matrix-react-sdk/views/rooms/_RoomList.scss"; @import "./matrix-react-sdk/views/rooms/_RoomPreviewBar.scss"; @@ -72,7 +73,6 @@ @import "./matrix-react-sdk/views/rooms/_RoomTile.scss"; @import "./matrix-react-sdk/views/rooms/_SearchableEntityList.scss"; @import "./matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss"; -@import "./matrix-react-sdk/views/rooms/_QuotePreview.scss"; @import "./matrix-react-sdk/views/settings/_DevicesPanel.scss"; @import "./matrix-react-sdk/views/settings/_IntegrationsManager.scss"; @import "./matrix-react-sdk/views/voip/_CallView.scss"; @@ -89,6 +89,7 @@ @import "./vector-web/views/context_menus/_MessageContextMenu.scss"; @import "./vector-web/views/context_menus/_PresenceContextMenuOption.scss"; @import "./vector-web/views/context_menus/_RoomTileContextMenu.scss"; +@import "./vector-web/views/context_menus/_TagTileContextMenu.scss"; @import "./vector-web/views/dialogs/_ChangelogDialog.scss"; @import "./vector-web/views/dialogs/_DevtoolsDialog.scss"; @import "./vector-web/views/dialogs/_SetEmailDialog.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss b/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss index 91199a11e7..ba745b111f 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_TagPanel.scss @@ -37,6 +37,7 @@ limitations under the License. .mx_TagPanel .mx_TagTile { padding: 6px 3px; opacity: 0.5; + position: relative; } .mx_TagPanel .mx_TagTile:focus, .mx_TagPanel .mx_TagTile:hover, @@ -64,6 +65,23 @@ limitations under the License. left: 5px; } +.mx_TagTile_context_button { + min-width: 15px; + height: 15px; + position: absolute; + right: -5px; + top: 1px; + border-radius: 8px; + background-color: $neutral-badge-color; + color: #ffffff; + font-weight: 600; + font-size: 10px; + text-align: center; + padding-top: 1px; + padding-left: 4px; + padding-right: 4px; +} + .mx_TagPanel_createGroupButton { opacity: 0.5; margin-bottom: 17px; diff --git a/src/skins/vector/css/vector-web/views/context_menus/_TagTileContextMenu.scss b/src/skins/vector/css/vector-web/views/context_menus/_TagTileContextMenu.scss new file mode 100644 index 0000000000..759b92bd68 --- /dev/null +++ b/src/skins/vector/css/vector-web/views/context_menus/_TagTileContextMenu.scss @@ -0,0 +1,44 @@ +/* +Copyright 2018 New Vector 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_TagTileContextMenu_item { + padding-top: 8px; + padding-right: 20px; + padding-bottom: 8px; + cursor: pointer; + white-space: nowrap; + display: flex; + align-items: center; + line-height: 16px; +} + + +.mx_TagTileContextMenu_item_icon { + padding-right: 8px; + padding-left: 4px; + display: inline-block +} + +.mx_TagTileContextMenu_separator { + margin-top: 0; + margin-bottom: 0; + border-bottom-style: none; + border-left-style: none; + border-right-style: none; + border-top-style: solid; + border-top-width: 1px; + border-color: $menu-border-color; +} From e36baa8c3a66cd5d256b5d46ae11b43bd7edd2e5 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Mon, 12 Feb 2018 18:47:29 +0000 Subject: [PATCH 139/163] Fix quotes on import --- src/components/structures/LeftPanel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js index 398862f22e..3260c97559 100644 --- a/src/components/structures/LeftPanel.js +++ b/src/components/structures/LeftPanel.js @@ -26,7 +26,7 @@ import sdk from 'matrix-react-sdk'; import dis from 'matrix-react-sdk/lib/dispatcher'; import VectorConferenceHandler from '../../VectorConferenceHandler'; -import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore"; +import SettingsStore from 'matrix-react-sdk/lib/settings/SettingsStore'; import TagOrderActions from 'matrix-react-sdk/lib/actions/TagOrderActions'; import RoomListActions from 'matrix-react-sdk/lib/actions/RoomListActions'; From 2269c945793e318ae2b03a4c6d8c8dcf68f3fbf6 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Feb 2018 09:44:25 +0000 Subject: [PATCH 140/163] Move groups button to TagPanel --- src/components/structures/BottomLeftMenu.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js index 3aab61a150..5557e74b0f 100644 --- a/src/components/structures/BottomLeftMenu.js +++ b/src/components/structures/BottomLeftMenu.js @@ -167,7 +167,6 @@ module.exports = React.createClass({ const StartChatButton = sdk.getComponent('elements.StartChatButton'); const RoomDirectoryButton = sdk.getComponent('elements.RoomDirectoryButton'); const CreateRoomButton = sdk.getComponent('elements.CreateRoomButton'); - const GroupsButton = sdk.getComponent('elements.GroupsButton'); const SettingsButton = sdk.getComponent('elements.SettingsButton'); return ( @@ -183,7 +182,6 @@ module.exports = React.createClass({
- From 85c0b8dea320b7ce2bdc3d1ec42df862ff019a0f Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Feb 2018 14:15:22 +0000 Subject: [PATCH 141/163] Adjust CSS to prevent scrollbars on message panel spinner when clicking on permalinks/jump to first --- .../vector/css/matrix-react-sdk/structures/_RoomView.scss | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss index 7944d01dc0..9ca3ad529f 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss +++ b/src/skins/vector/css/matrix-react-sdk/structures/_RoomView.scss @@ -96,6 +96,11 @@ limitations under the License. order: 2; } +.mx_RoomView_body .mx_RoomView_messagePanelSpinner { + order: 2; + margin: auto; +} + .mx_RoomView_body .mx_RoomView_statusArea { order: 3; } @@ -113,8 +118,6 @@ limitations under the License. max-width: 960px; margin: auto; - min-height: 100%; - display: flex; flex-direction: column; From 285c4f91d38f72c7283549b7d2821cfcb50632a9 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Feb 2018 15:17:51 +0000 Subject: [PATCH 142/163] Fix TagPanel from collapsing to < 60px when LP collapsed Fixes https://github.com/vector-im/riot-web/issues/6133 --- src/components/structures/LeftPanel.js | 7 ++++++- .../vector/css/matrix-react-sdk/structures/_TagPanel.scss | 2 +- src/skins/vector/css/vector-web/structures/_LeftPanel.scss | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/components/structures/LeftPanel.js b/src/components/structures/LeftPanel.js index 3260c97559..0d9ab641c7 100644 --- a/src/components/structures/LeftPanel.js +++ b/src/components/structures/LeftPanel.js @@ -238,9 +238,14 @@ var LeftPanel = React.createClass({ } ); + const containerClasses = classNames( + "mx_LeftPanel_container", + { "mx_LeftPanel_container_collapsed": this.props.collapsed }, + ); + return ( -
+
{ SettingsStore.isFeatureEnabled("feature_tag_panel") ? :
}