Compare commits

...

90 Commits

Author SHA1 Message Date
David Baker
2ea9fc3f9a v0.12.4 2017-09-20 15:19:10 +01:00
David Baker
d96759b8ad Prepare changelog for v0.12.4 2017-09-20 15:19:10 +01:00
David Baker
e814eb4555 v0.12.4 2017-09-20 15:18:17 +01:00
David Baker
d957f0cdd7 released js-sdk & react-sdk 2017-09-20 15:16:42 +01:00
David Baker
ca50d1f04a v0.12.4-rc.1 2017-09-19 10:57:02 +01:00
David Baker
ab66833c45 Prepare changelog for v0.12.4-rc.1 2017-09-19 10:57:01 +01:00
David Baker
8a4710b270 v0.12.4-rc.1 2017-09-19 10:55:28 +01:00
David Baker
57851cd508 js-sdk & react-sdk rc.1 2017-09-19 10:54:35 +01:00
David Baker
ff8bc1ca68 Merge pull request #5053 from vector-im/dbkr/3pid_invite_update_when_joined
Fix test for new behaviour of 'joining' flag
2017-09-19 10:34:31 +01:00
David Baker
c32e736754 Comment why we don't expect joining flag to reset 2017-09-19 10:23:12 +01:00
Matthew Hodgson
26c8d23c21 Merge pull request #5080 from vector-im/t3chguy/fix-powersave-typo
fix really dumb blunder/typo preventing system from going to sleep.
2017-09-19 08:13:26 +01:00
Michael Telatynski
d97224e69e fix really dumb blunder/typo preventing system from going to sleep.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-19 00:53:44 +01:00
Matthew Hodgson
828e9d5eb4 Merge pull request #4735 from vector-im/t3chguy/devtools
T3chguy/devtools
2017-09-17 23:15:28 +01:00
Matthew Hodgson
662431043e Merge pull request #5042 from turt2live/travis/ignored_users
CSS for unignore button in UserSettings
2017-09-17 22:38:31 +01:00
Matthew Hodgson
7f746ce2c6 Merge pull request #5044 from turt2live/travis/home_page_identity_room
Fix alias on home page for identity room
2017-09-15 16:37:38 +01:00
David Baker
30efd02d22 Fix test for new behaviour of 'joining' flag
It's no longer reset when the join request completes, so don't
assert it. (The important test is later, asserting that the room
object is non-null).
2017-09-15 15:57:37 +01:00
turt2live
a4e33bf46a Fix alias on home page for identity room
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 21:09:57 -06:00
Travis Ralston
ac0f593c7c CSS for unignore button in UserSettings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 15:34:45 -06:00
David Baker
f148844573 Merge pull request #4989 from vector-im/t3chguy/on_copy_tooltip
generic contextual menu for tooltip/responses
2017-09-13 14:27:28 +01:00
Michael Telatynski
2316f4230e install and use prop-types over React.PropTypes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-13 14:23:35 +01:00
David Baker
c140088f82 Merge pull request #5018 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2017-09-12 12:57:36 +01:00
Michael Telatynski
9691173032 Translated using Weblate (Tamil)
Currently translated at 69.8% (146 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ta/
2017-09-12 10:56:54 +00:00
Michael Telatynski
8513ea2a31 Translated using Weblate (Malayalam)
Currently translated at 98.5% (206 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ml/
2017-09-12 10:56:54 +00:00
Michael Telatynski
a5a1b5fcd8 Translated using Weblate (Italian)
Currently translated at 99.5% (208 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2017-09-12 10:56:53 +00:00
Michael Telatynski
30f81e2143 Translated using Weblate (Dutch)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2017-09-12 10:56:53 +00:00
Michael Telatynski
f48cfdcfe0 Translated using Weblate (Catalan)
Currently translated at 54.5% (114 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/
2017-09-12 10:56:53 +00:00
Michael Telatynski
728ffd37b8 Translated using Weblate (Arabic)
Currently translated at 14.8% (31 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ar/
2017-09-12 10:56:53 +00:00
Weblate
2357e7fe41 Merge remote-tracking branch 'origin/develop' into develop 2017-09-11 17:52:19 +00:00
David Baker
f18f13643f Merge pull request #5015 from vector-im/dbkr/active_room_observer
Avoid re-rendering RoomList on room switch
2017-09-11 18:52:15 +01:00
David Baker
3ac154b7da Add comment to update shouldComponentUpdate
if adding new props
2017-09-11 18:30:43 +01:00
David Baker
47ddc6dedf Comment typo 2017-09-11 18:29:20 +01:00
David Baker
82f2e47667 Avoid re-rendering RoomList on room switch
See https://github.com/matrix-org/matrix-react-sdk/pull/1375
2017-09-11 17:06:40 +01:00
Weblate
55c656ead9 Merge remote-tracking branch 'origin/develop' into develop 2017-09-11 16:04:59 +00:00
Balaji Ravichandran
dc6a7e7425 Translated using Weblate (Tamil)
Currently translated at 69.8% (146 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ta/
2017-09-11 16:04:59 +00:00
Akcja Demokracja Open-Source
3a77d8aa21 Translated using Weblate (Polish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pl/
2017-09-11 16:04:59 +00:00
av3n
b7f31d0a64 Translated using Weblate (Italian)
Currently translated at 99.5% (208 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2017-09-11 16:04:59 +00:00
Jan Kudrik
95af34ca99 Translated using Weblate (Czech)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/cs/
2017-09-11 16:04:58 +00:00
David Baker
079f39efed Add New Vector windows build signing cert
As the signing process needs it.
2017-09-11 17:04:10 +01:00
Weblate
83acdee013 Merge remote-tracking branch 'origin/develop' into develop 2017-09-07 15:01:08 +00:00
David Baker
941f92530d Merge pull request #4623 from MurzNN/patch-1
Fix menu on change keyboard language issue #4345
2017-09-07 16:01:04 +01:00
Weblate
942021e4bb Merge remote-tracking branch 'origin/develop' into develop 2017-09-07 13:35:39 +00:00
Ramon Vilar
7a62b058c9 Translated using Weblate (Catalan)
Currently translated at 54.5% (114 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/
2017-09-07 13:35:38 +00:00
David Baker
ff8527c819 Merge pull request #4999 from vector-im/dbkr/fix_missing_isinvite_warning
Make isInvite default to false
2017-09-07 14:35:35 +01:00
David Baker
76be54b2be Make isInvite default to false
as things are assuming it's optional but it isn't which is causing
a ton of warnings.
2017-09-07 13:35:13 +01:00
Ramon Vilar
5511fdd0c3 Added translation using Weblate (Catalan) 2017-09-07 09:12:30 +00:00
Weblate
3c82e61567 Merge remote-tracking branch 'origin/develop' into develop 2017-09-06 17:07:01 +00:00
David Baker
d374425a20 Merge pull request #4991 from vector-im/revert-4939-luke/feature-sticky-date-separators
Revert "Implement sticky date separators"
2017-09-06 18:06:57 +01:00
Kevin Németh
95947323a2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2017-09-06 16:43:33 +00:00
David Baker
38575a653d Revert "Implement sticky date separators" 2017-09-06 17:36:43 +01:00
Weblate
dba05488bf Merge remote-tracking branch 'origin/develop' into develop 2017-09-06 13:38:24 +00:00
David Baker
7202556f45 Don't delete dist dir after putting stuff in it 2017-09-06 14:37:57 +01:00
Michael Telatynski
32ea675c92 fix (C) header
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 14:20:12 +01:00
Weblate
6a5da1011c Merge remote-tracking branch 'origin/develop' into develop 2017-09-06 12:38:46 +00:00
David Baker
8b250bda64 Merge branch 'master' into develop 2017-09-06 13:36:11 +01:00
Weblate
ba6b35ad84 Merge remote-tracking branch 'origin/develop' into develop 2017-09-06 12:29:15 +00:00
Iru Cai (vimacs)
b6a20f6441 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hans/
2017-09-06 12:29:14 +00:00
David Baker
e6d43f9d77 Edit electron build script fior signed win builds
Don't copy them to pub: let the signing process do that
2017-09-06 13:28:21 +01:00
Silke
2e5a79e76c Translated using Weblate (Dutch)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2017-09-06 10:51:17 +00:00
Michael Telatynski
60c2338543 generic contextual menu for tooltip/responses
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:27:04 +01:00
Weblate
8a8aea0927 Merge remote-tracking branch 'origin/develop' into develop 2017-09-05 13:16:25 +00:00
David Baker
b8d9276f29 Merge pull request #4939 from vector-im/luke/feature-sticky-date-separators
Implement sticky date separators
2017-09-05 14:16:21 +01:00
Weblate
89e9a6f583 Merge remote-tracking branch 'origin/develop' into develop 2017-09-05 12:54:55 +00:00
uppps
4327b264bc Translated using Weblate (Spanish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2017-09-05 12:54:55 +00:00
David Baker
4ff9131e61 Redeploy script: don't bail if bundle exists (#4977)
Just don't bother replacing that bundle. Continue redeploying the
rest as other assets (eg translation files) may have changed.
2017-09-05 13:54:51 +01:00
Weblate
f3a9f95477 Merge remote-tracking branch 'origin/develop' into develop 2017-09-05 10:14:05 +00:00
uppps
3615ba2bdb Translated using Weblate (Spanish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2017-09-05 10:14:05 +00:00
uppps
ae287dfc00 Translated using Weblate (Spanish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2017-09-05 10:09:21 +00:00
Jerzy Kołosowski
c39df96b1d Translated using Weblate (Polish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pl/
2017-09-04 20:23:21 +00:00
Stefan Parviainen
b15b4735bb Translated using Weblate (Swedish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sv/
2017-09-04 16:41:05 +00:00
Weblate
cde03565be Merge remote-tracking branch 'origin/develop' into develop 2017-09-04 16:16:53 +00:00
Weblate
d13c712103 Merge remote-tracking branch 'origin/develop' into develop 2017-09-04 16:15:17 +00:00
Stefan Parviainen
4511805e3d Translated using Weblate (Finnish)
Currently translated at 100.0% (209 of 209 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2017-09-04 16:13:23 +00:00
Michael Telatynski
3aa12246ea Merge branch 'develop' into t3chguy/devtools 2017-08-31 17:11:53 +01:00
Michael Telatynski
b84f258f87 add bottom margin to navigation buttons of room state explorer
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 13:49:52 +01:00
Michael Telatynski
68fc202086 remove pointless self vars and DRY render method of send custom events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 09:45:46 +01:00
Michael Telatynski
ce0861d5bd undo `` as its hard to read
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-31 09:25:06 +01:00
Luke Barnard
88228a5a3f Implement sticky date separators
Codep https://github.com/matrix-org/matrix-react-sdk/pull/1353
2017-08-30 14:06:50 +01:00
Michael Telatynski
d14f16f0e9 look at event property of the mxEv, this way we won't have all
the additional internal keys :)

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-27 17:25:51 +01:00
Michael Telatynski
a437f23e9d add i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-26 18:48:24 +01:00
Michael Telatynski
78aa0a59de Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/devtools 2017-08-26 18:29:19 +01:00
Michael Telatynski
61d9c1a57a Merge remote-tracking branch 'remotes/origin/develop' into patch-1 2017-08-24 10:07:04 +01:00
Michael Telatynski
84f4fbe142 DRY up code and change flow to be less destructive
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 23:56:57 +01:00
Michael Telatynski
3fd1a366bf add back button to all pages and widen textarea 2017-08-10 23:13:40 +01:00
Michael Telatynski
4bb8aecc25 Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/devtools 2017-08-10 21:29:58 +01:00
Michael Telatynski
2d4484e0f2 Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/devtools 2017-08-10 16:06:14 +01:00
Michael Telatynski
1b004f170d make eslint happy 2017-08-03 01:10:32 +01:00
Michael Telatynski
9ab30b7b17 fix line-length and copyright header 2017-08-03 01:05:43 +01:00
Michael Telatynski
131d1c74c9 add room state explorer to devtools 2017-08-03 00:59:40 +01:00
Michael Telatynski
6bfdd69279 add devtools dialog 2017-07-31 12:08:41 +01:00
Alexey Murz Korepov
c6bc20cd2a Fix menu on change keyboard language issue #4345
Fix activating menu when changing keyboard language / layout  via Alt-Shift, Alt-Ctrl, Alt-CapsLock, and Alt-Space
2017-07-18 09:23:32 +03:00
31 changed files with 659 additions and 132 deletions

View File

@@ -1,3 +1,38 @@
Changes in [0.12.4](https://github.com/vector-im/riot-web/releases/tag/v0.12.4) (2017-09-20)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.12.4-rc.1...v0.12.4)
* No changes
Changes in [0.12.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.12.4-rc.1) (2017-09-19)
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.12.3...v0.12.4-rc.1)
* Fix test for new behaviour of 'joining' flag
[\#5053](https://github.com/vector-im/riot-web/pull/5053)
* fix really dumb blunder/typo preventing system from going to sleep.
[\#5080](https://github.com/vector-im/riot-web/pull/5080)
* T3chguy/devtools
[\#4735](https://github.com/vector-im/riot-web/pull/4735)
* CSS for unignore button in UserSettings
[\#5042](https://github.com/vector-im/riot-web/pull/5042)
* Fix alias on home page for identity room
[\#5044](https://github.com/vector-im/riot-web/pull/5044)
* generic contextual menu for tooltip/responses
[\#4989](https://github.com/vector-im/riot-web/pull/4989)
* Update from Weblate.
[\#5018](https://github.com/vector-im/riot-web/pull/5018)
* Avoid re-rendering RoomList on room switch
[\#5015](https://github.com/vector-im/riot-web/pull/5015)
* Fix menu on change keyboard language issue #4345
[\#4623](https://github.com/vector-im/riot-web/pull/4623)
* Make isInvite default to false
[\#4999](https://github.com/vector-im/riot-web/pull/4999)
* Revert "Implement sticky date separators"
[\#4991](https://github.com/vector-im/riot-web/pull/4991)
* Implement sticky date separators
[\#4939](https://github.com/vector-im/riot-web/pull/4939)
Changes in [0.12.3](https://github.com/vector-im/riot-web/releases/tag/v0.12.3) (2017-09-06)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.12.3-rc.3...v0.12.3)

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "0.12.3",
"version": "0.12.4",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"dependencies": {

View File

@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF0jCCBLqgAwIBAgIRAISYBqZi3VvCUeSfHXF+cbwwDQYJKoZIhvcNAQELBQAw
gZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYD
VQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
IENBMB4XDTE3MDgyMzAwMDAwMFoXDTIwMDgyMjIzNTk1OVowgdgxETAPBgNVBAUT
CDEwODczNjYxMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRl
IE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxETAPBgNVBBEMCFdDMVIgNEFHMQ8w
DQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEbMBkGA1UECQwSMjYgUmVk
IExpb24gU3F1YXJlMRcwFQYDVQQKDA5OZXcgVmVjdG9yIEx0ZDEXMBUGA1UEAwwO
TmV3IFZlY3RvciBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7
X0HP3oM/SVr6PboD03ndtYTONZDcJ/GJ3EyYi6UNrcbKjuDHwPktx9hjAhNjcVkG
lmuTEPluPj9DbvjaTrers0cQsAS1vJ0RHjLfA93Flg1ys9Q6OThUMw77FtFPtiJU
z5cSYzfFAhn/4dv7BcgGptn+Mv/8CaTu+RUZJUgoSlRWcT1TREmxkzWotbblqsHO
zjDmUg20tL5/qpt6BSWsNespf5udKQFXMtqkczBcLvBLmql0vurVcQy8BibB+Q89
QKwRzwLgaIa7O8WEssFcW8uJe9s0SNtUy8ehbuoSxpA/DbHFwsiDbNA78vp7HrqM
qY6t6OIgLtDYBFCfe/btAgMBAAGjggHaMIIB1jAfBgNVHSMEGDAWgBTfj/MgDOnK
pgTYW1g3Kj2rRtyDSTAdBgNVHQ4EFgQUH+mDOdRkF3bYDxCWEaGB4lxiCxcwDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
EQYJYIZIAYb4QgEBBAQDAgQQMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQYBMCsw
KQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMFUGA1Ud
HwROMEwwSqBIoEaGRGh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4
dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3JsMIGGBggrBgEFBQcBAQR6
MHgwUAYIKwYBBQUHMAKGRGh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JT
QUV4dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUFBzAB
hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wJgYDVR0RBB8wHaAbBggrBgEFBQcI
A6APMA0MC0dCLTEwODczNjYxMA0GCSqGSIb3DQEBCwUAA4IBAQBJ2aH4aixh0aiz
4WKlK+LMVLHpQ2POE3FZYNpAW7o1q2YDGEADXdGrygPE9NCGNBXKo0CAemCYNWfX
Ov/jdoiMfeqW3vrZ66oEy8OqbvJSwK1xmomWuYw3wYPWcPVG+YbWYD2CGdQu8jTz
fzAJCpvAuY3Wji3fQjiecAC7JCSB4fBHa0ALJOmiSqKQUUpkXs5kW7O0lPBnHzNF
2tQGltXMSIrq1QfFtcreMyKlwDOxPIh360dv5aHhaeSRDRKxq7uq5ikQF2gjKx4k
ieg2HRbAW6fVPpFr4zRS5umpeZV3i06i11VQQPS/mA/OBEXyaqzx4mr6B7U6ptrp
jMqiUv2w
-----END CERTIFICATE-----

View File

@@ -84,7 +84,7 @@ let powerSaveBlockerId;
electron.ipcMain.on('app_onAction', function(ev, payload) {
switch (payload.action) {
case 'call_state':
if (powerSaveBlockerId && powerSaveBlockerId.isStarted(powerSaveBlockerId)) {
if (powerSaveBlockerId && electron.powerSaveBlocker.isStarted(powerSaveBlockerId)) {
if (payload.state === 'ended') {
electron.powerSaveBlocker.stop(powerSaveBlockerId);
}

View File

@@ -19,7 +19,7 @@ const {app, shell, Menu} = require('electron');
// Menu template from http://electron.atom.io/docs/api/menu/, edited
const template = [
{
label: 'Edit',
label: '&Edit',
submenu: [
{ role: 'undo' },
{ role: 'redo' },
@@ -33,7 +33,7 @@ const template = [
],
},
{
label: 'View',
label: '&View',
submenu: [
{ type: 'separator' },
{ role: 'resetzoom' },
@@ -45,6 +45,7 @@ const template = [
],
},
{
label: '&Window',
role: 'window',
submenu: [
{ role: 'minimize' },
@@ -52,6 +53,7 @@ const template = [
],
},
{
label: '&Help',
role: 'help',
submenu: [
{
@@ -122,7 +124,7 @@ if (process.platform === 'darwin') {
];
} else {
template.unshift({
label: 'File',
label: '&File',
submenu: [
// For some reason, 'about' does not seem to work on windows.
/*{

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "0.12.3",
"version": "0.12.4",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"repository": {
@@ -66,10 +66,11 @@
"gfm.css": "^1.1.1",
"highlight.js": "^9.0.0",
"linkifyjs": "^2.1.3",
"matrix-js-sdk": "0.8.2",
"matrix-react-sdk": "0.10.3",
"matrix-js-sdk": "0.8.3",
"matrix-react-sdk": "0.10.4",
"modernizr": "^3.1.0",
"pako": "^1.0.5",
"prop-types": "^15.5.10",
"react": "^15.6.0",
"react-dnd": "^2.1.4",
"react-dnd-html5-backend": "^2.1.2",

View File

@@ -249,7 +249,7 @@
<span class="mx_HomePage_desc">_t("Implementing VoIP services with Matrix")</span>
</div>
<div class="mx_HomePage_room">
<a href="#/room/#identity:matrix.org">
<a href="#/room/#matrix-identity:matrix.org">
<img class="mx_HomePage_icon" src="home/rooms/identity.jpg">
<span class="mx_HomePage_name">Matrix Identity</span>
</a>

View File

@@ -13,6 +13,7 @@ import os.path
import subprocess
import sys
import tarfile
import shutil
try:
# python3
@@ -48,11 +49,12 @@ def move_bundles(source, dest):
for f in os.listdir(source):
dst = os.path.join(dest, f)
if os.path.exists(dst):
raise DeployException(
"Not deploying. The bundle includes '%s' which we have previously deployed."
print (
"Skipping bundle. The bundle includes '%s' which we have previously deployed."
% f
)
renames[os.path.join(source, f)] = dst
else:
renames[os.path.join(source, f)] = dst
for (src, dst) in renames.iteritems():
print ("Move %s -> %s" % (src, dst))
@@ -107,9 +109,9 @@ class Deployer:
extracted_bundles = os.path.join(extracted_dir, 'bundles')
move_bundles(source=extracted_bundles, dest=self.bundles_path)
# replace the (hopefully now empty) extracted_bundles dir with a
# symlink to the common dir.
os.rmdir(extracted_bundles)
# replace the extracted_bundles dir (which may not be empty if some
# bundles were skipped) with a symlink to the common dir.
shutil.rmtree(extracted_bundles)
create_relative_symlink(
target=self.bundles_path,
linkname=extracted_bundles,

View File

@@ -94,17 +94,20 @@ distdir="$builddir/electron_app/dist"
pubdir="$projdir/electron_app/pub"
rm -r "$pubdir" || true
mkdir -p "$pubdir"
rm -r "$projdir/electron_app/dist" || true
mkdir -p "$projdir/electron_app/dist/unsigned/"
# Install packages: what the user downloads the first time,
# (DMGs for mac, exe installer for windows)
mkdir -p "$pubdir/install/macos"
cp $distdir/mac/*.dmg "$pubdir/install/macos/"
# Windows installers go to the dist dir because they need signing
mkdir -p "$pubdir/install/win32/ia32/"
cp $distdir/win-ia32/*.exe "$pubdir/install/win32/ia32/"
cp $distdir/win-ia32/*.exe "$projdir/electron_app/dist/unsigned/"
mkdir -p "$pubdir/install/win32/x64/"
cp $distdir/win/*.exe "$pubdir/install/win32/x64/"
cp $distdir/win/*.exe "$projdir/electron_app/dist/unsigned/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
@@ -120,11 +123,11 @@ cp $distdir/win/*.nupkg "$pubdir/update/win32/x64/"
cp $distdir/win/RELEASES "$pubdir/update/win32/x64/"
# Move the debs to the main project dir's dist folder
rm -r "$projdir/electron_app/dist" || true
mkdir -p "$projdir/electron_app/dist"
cp $distdir/*.deb "$projdir/electron_app/dist/"
rm -rf "$builddir"
echo "Riot Desktop is ready to go in $pubdir: this directory can be hosted on your web server."
echo "Unsigned Windows installers have been placed in electron_app/dist/unsigned/ - sign them,"
echo "or just copy them to "$pubdir/install/win32/\<arch\>/""
echo "Once you've done this, $pubdir can be hosted on your web server."
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"

View File

@@ -30,13 +30,14 @@ import VectorConferenceHandler from '../../VectorConferenceHandler';
var LeftPanel = React.createClass({
displayName: 'LeftPanel',
// NB. If you add props, don't forget to update
// shouldComponentUpdate!
propTypes: {
collapsed: React.PropTypes.bool.isRequired,
},
getInitialState: function() {
return {
showCallElement: null,
searchFilter: '',
};
},
@@ -45,26 +46,25 @@ var LeftPanel = React.createClass({
this.focusedElement = null;
},
componentDidMount: function() {
this.dispatcherRef = dis.register(this.onAction);
},
componentWillReceiveProps: function(newProps) {
this._recheckCallElement(newProps.selectedRoom);
},
componentWillUnmount: function() {
dis.unregister(this.dispatcherRef);
},
onAction: function(payload) {
switch (payload.action) {
// listen for call state changes to prod the render method, which
// may hide the global CallView if the call it is tracking is dead
case 'call_state':
this._recheckCallElement(this.props.selectedRoom);
break;
shouldComponentUpdate: function(nextProps, nextState) {
// MatrixChat will update whenever the user switches
// rooms, but propagating this change all the way down
// the react tree is quite slow, so we cut this off
// here. The RoomTiles listen for the room change
// events themselves to know when to update.
// We just need to update if any of these things change.
if (
this.props.collapsed !== nextProps.collapsed ||
this.props.opacity !== nextProps.opacity
) {
return true;
}
if (this.state.searchFilter !== nextState.searchFilter) {
return true;
}
return false;
},
_onFocus: function(ev) {
@@ -152,74 +152,41 @@ var LeftPanel = React.createClass({
}
},
_recheckCallElement: function(selectedRoomId) {
// if we aren't viewing a room with an ongoing call, but there is an
// active call, show the call element - we need to do this to make
// audio/video not crap out
var activeCall = CallHandler.getAnyActiveCall();
var callForRoom = CallHandler.getCallForRoom(selectedRoomId);
var showCall = (activeCall && activeCall.call_state === 'connected' && !callForRoom);
this.setState({
showCallElement: showCall
});
},
onHideClick: function() {
dis.dispatch({
action: 'hide_left_panel',
});
},
onCallViewClick: function() {
var call = CallHandler.getAnyActiveCall();
if (call) {
dis.dispatch({
action: 'view_room',
room_id: call.groupRoomId || call.roomId,
});
}
},
onSearch: function(term) {
this.setState({ searchFilter: term });
},
render: function() {
var RoomList = sdk.getComponent('rooms.RoomList');
var BottomLeftMenu = sdk.getComponent('structures.BottomLeftMenu');
const RoomList = sdk.getComponent('rooms.RoomList');
const BottomLeftMenu = sdk.getComponent('structures.BottomLeftMenu');
const CallPreview = sdk.getComponent('voip.CallPreview');
var topBox;
let topBox;
if (MatrixClientPeg.get().isGuest()) {
var LoginBox = sdk.getComponent('structures.LoginBox');
const LoginBox = sdk.getComponent('structures.LoginBox');
topBox = <LoginBox collapsed={ this.props.collapsed }/>;
}
else {
var SearchBox = sdk.getComponent('structures.SearchBox');
} else {
const SearchBox = sdk.getComponent('structures.SearchBox');
topBox = <SearchBox collapsed={ this.props.collapsed } onSearch={ this.onSearch } />;
}
var classes = "mx_LeftPanel mx_fadable";
let classes = "mx_LeftPanel mx_fadable";
if (this.props.collapsed) {
classes += " collapsed";
}
var callPreview;
if (this.state.showCallElement && !this.props.collapsed) {
var CallView = sdk.getComponent('voip.CallView');
callPreview = (
<CallView
className="mx_LeftPanel_callView" showVoice={true} onClick={this.onCallViewClick}
ConferenceHandler={VectorConferenceHandler} />
);
}
return (
<aside className={classes} style={{ opacity: this.props.opacity }}
onKeyDown={ this._onKeyDown } onFocus={ this._onFocus } onBlur={ this._onBlur }>
{ topBox }
{ callPreview }
<CallPreview ConferenceHandler={VectorConferenceHandler} />
<RoomList
selectedRoom={this.props.selectedRoom}
collapsed={this.props.collapsed}
searchFilter={this.state.searchFilter}
ConferenceHandler={VectorConferenceHandler} />

View File

@@ -75,9 +75,6 @@ var RoomSubList = React.createClass({
order: React.PropTypes.string.isRequired,
// undefined if no room is selected (eg we are showing settings)
selectedRoom: React.PropTypes.string,
// passed through to RoomTile and used to highlight room with `!` regardless of notifications count
isInvite: React.PropTypes.bool,
@@ -104,7 +101,8 @@ var RoomSubList = React.createClass({
getDefaultProps: function() {
return {
onHeaderClick: function() {}, // NOP
onShowMoreRooms: function() {} // NOP
onShowMoreRooms: function() {}, // NOP
isInvite: false,
};
},
@@ -369,7 +367,6 @@ var RoomSubList = React.createClass({
var self = this;
var DNDRoomTile = sdk.getComponent("rooms.DNDRoomTile");
return this.state.sortedList.map(function(room) {
var selected = room.roomId == self.props.selectedRoom;
// XXX: is it evil to pass in self as a prop to RoomTile?
return (
<DNDRoomTile
@@ -377,7 +374,6 @@ var RoomSubList = React.createClass({
roomSubList={ self }
key={ room.roomId }
collapsed={ self.props.collapsed || false}
selected={ selected }
unread={ Unread.doesRoomHaveUnreadMessages(room) }
highlight={ room.getUnreadNotificationCount('highlight') > 0 || self.props.isInvite }
isInvite={ self.props.isInvite }

View File

@@ -0,0 +1,30 @@
/*
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';
export default class GenericTextContextMenu extends React.Component {
static PropTypes = {
message: PropTypes.string.isRequired,
};
render() {
return <div>{ this.props.message }</div>;
}
}

View File

@@ -0,0 +1,276 @@
/*
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.
*/
import React from 'react';
import sdk from 'matrix-react-sdk';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
class SendCustomEvent extends React.Component {
static propTypes = {
roomId: React.PropTypes.string.isRequired,
onBack: React.PropTypes.func.isRequired,
};
constructor(props, context) {
super(props, context);
this._send = this._send.bind(this);
this.onBack = this.onBack.bind(this);
}
state = {
message: null,
};
onBack() {
if (this.state.message) {
this.setState({ message: null });
} else {
this.props.onBack();
}
}
_buttons() {
return <div className="mx_Dialog_buttons">
<button onClick={this.onBack}>{ _t('Back') }</button>
{!this.state.message && <button onClick={this._send}>{ _t('Send') }</button>}
</div>;
}
send(content) {
return MatrixClientPeg.get().sendEvent(this.props.roomId, this.refs.eventType.value, content);
}
async _send() {
let message;
try {
const content = JSON.parse(this.refs.evContent.value);
await this.send(content);
message = _t('Event sent!');
} catch (e) {
message = _t('Failed to send custom event.') + ' (' + e.toString() + ')';
}
this.setState({ message });
}
_additionalFields() {
return <div></div>;
}
render() {
if (this.state.message) {
return <div>
<div className="mx_Dialog_content">
{this.state.message}
</div>
{this._buttons()}
</div>;
}
return <div>
<div className="mx_Dialog_content">
{this._additionalFields()}
<div className="mx_TextInputDialog_label">
<label htmlFor="eventType"> { _t('Event Type') } </label>
</div>
<div>
<input id="eventType" ref="eventType" className="mx_TextInputDialog_input" size="64" />
</div>
<div className="mx_TextInputDialog_label">
<label htmlFor="evContent"> { _t('Event Content') } </label>
</div>
<div>
<textarea id="evContent" ref="evContent" className="mx_TextInputDialog_input" defaultValue={"{\n\n}"} cols="63" rows="5" />
</div>
</div>
{this._buttons()}
</div>;
}
}
class SendCustomStateEvent extends SendCustomEvent {
send(content) {
return MatrixClientPeg.get().sendStateEvent(this.props.roomId, this.refs.eventType.value, content,
this.refs.stateKey.value);
}
_additionalFields() {
return <div>
<div className="mx_TextInputDialog_label">
<label htmlFor="stateKey"> { _t('State Key') } </label>
</div>
<div>
<input id="stateKey" ref="stateKey" className="mx_TextInputDialog_input" size="64" />
</div>
</div>;
}
}
class RoomStateExplorer extends React.Component {
static propTypes = {
roomId: React.PropTypes.string.isRequired,
onBack: React.PropTypes.func.isRequired,
};
constructor(props, context) {
super(props, context);
const room = MatrixClientPeg.get().getRoom(this.props.roomId);
this.roomStateEvents = room.currentState.events;
this.onBack = this.onBack.bind(this);
}
state = {
eventType: null,
event: null,
};
browseEventType(eventType) {
return () => {
this.setState({ eventType });
};
}
onViewSourceClick(event) {
return () => {
this.setState({ event: event.event });
};
}
onBack() {
if (this.state.event) {
this.setState({ event: null });
} else if (this.state.eventType) {
this.setState({ eventType: null });
} else {
this.props.onBack();
}
}
render() {
if (this.state.event) {
return <div className="mx_ViewSource">
<div className="mx_Dialog_content">
<pre>{JSON.stringify(this.state.event, null, 2)}</pre>
</div>
<div className="mx_Dialog_buttons">
<button onClick={this.onBack}>{ _t('Back') }</button>
</div>
</div>;
}
const rows = [];
if (this.state.eventType === null) {
Object.keys(this.roomStateEvents).forEach((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]]);
}
rows.push(<button className="mx_DevTools_RoomStateExplorer_button" key={evType} onClick={onClickFn}>
{ evType }
</button>);
});
} else {
const evType = this.state.eventType;
const stateGroup = this.roomStateEvents[evType];
Object.keys(stateGroup).forEach((stateKey) => {
const ev = stateGroup[stateKey];
rows.push(<button className="mx_DevTools_RoomStateExplorer_button" key={stateKey}
onClick={this.onViewSourceClick(ev)}>
{ stateKey }
</button>);
});
}
return <div>
<div className="mx_Dialog_content">
{rows}
</div>
<div className="mx_Dialog_buttons">
<button onClick={this.onBack}>{ _t('Back') }</button>
</div>
</div>;
}
}
export default class DevtoolsDialog extends React.Component {
static propTypes = {
roomId: React.PropTypes.string.isRequired,
onFinished: React.PropTypes.func.isRequired,
};
state = {
mode: null,
};
constructor(props, context) {
super(props, context);
this.onBack = this.onBack.bind(this);
this.onCancel = this.onCancel.bind(this);
}
componentWillUnmount() {
this._unmounted = true;
}
_setMode(mode) {
return () => {
this.setState({ mode });
};
}
onBack() {
this.setState({ mode: null });
}
onCancel() {
this.props.onFinished(false);
}
render() {
let body;
if (this.state.mode) {
body = <this.state.mode {...this.props} onBack={this.onBack} />;
} else {
body = <div>
<div className="mx_Dialog_content">
<button onClick={this._setMode(SendCustomEvent)}>{ _t('Send Custom Event') }</button>
<button onClick={this._setMode(SendCustomStateEvent)}>{ _t('Send Custom State Event') }</button>
<button onClick={this._setMode(RoomStateExplorer)}>{ _t('Explore Room State') }</button>
</div>
<div className="mx_Dialog_buttons">
<button onClick={this.onCancel}>{ _t('Cancel') }</button>
</div>
</div>;
}
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
return <BaseDialog className="mx_QuestionDialog" onFinished={this.props.onFinished} title={_t('Developer Tools')}>
<div>Room ID: {this.props.roomId}</div>
{ body }
</BaseDialog>;
}
}

View File

@@ -24,7 +24,7 @@
"Couldn't find a matching Matrix room": "لا يمكن إيجاد غرفة مايتركس متطابقة",
"Custom Server Options": "إعدادات السيرفر خاصة",
"delete the alias.": "إلغاء المُعرف.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "إلغاء مُعرف الغرفة %(alias) وحذف %(name) من الدليل؟",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "إلغاء مُعرف الغرفة %(alias)s وحذف %(name)s من الدليل؟",
"Describe your problem here.": "صِف مشكلتك هنا.",
"Direct Chat": "دردشة مباشرة",
"Directory": "دليل",

116
src/i18n/strings/ca.json Normal file
View File

@@ -0,0 +1,116 @@
{
"A new version of Riot is available.": "Hi ha una nova versió del Riot disponible.",
"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",
"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",
"Create new room": "Crea una nova sala",
"Couldn't find a matching Matrix room": "No s'ha pogut trobar una sala de Matrix que coincideixi",
"Failed to add tag %(tagName)s to room": "No s'ha pogut afegir l'etiqueta %(tagName)s a la sala",
"Failed to forget room %(errCode)s": "No s'ha pogut oblidar la sala %(errCode)s",
"Failed to get public room list": "No s'ha pogut obtenir el llistat de sales públiques",
"Failed to join the room": "No s'ha pogut unir a la sala",
"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)",
"Mentions only": "Només mencions",
"Mute": "Silenciat",
"Direct Chat": "Xat directe",
"Directory": "Directori",
"Failed to set direct chat tag": "No s'ha pogut establir l'etiqueta del xat directe",
"Room directory": "Directori de sales",
"Start chat": "Inicia un xat",
"Invite to this room": "Convida a aquesta sala",
"No rooms to show": "No hi ha sales 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",
"#example": "#exemple",
"Settings": "Paràmetres",
"Failed to change settings": "No s'han pogut modificar els paràmetres",
"Enable audible notifications in web client": "Habilita les notificacions d'àudio al client web",
"Enable desktop notifications": "Habilita les notificacions d'escriptori",
"Enable email notifications": "Habilita les notificacions per correu electrònic",
"Enable notifications for this account": "Habilita les notificacions per aquest compte",
"Low Priority": "Baixa prioritat",
"Members": "Membres",
"Changelog": "Registre de canvis",
"Describe your problem here.": "Descriu aquí el teu problema.",
"Download this file": "Descarrega aquest fitxer",
"Enable them now": "Habilita-ho ara",
"Error": "Error",
"Favourite": "Favorit",
"Files": "Fitxers",
"<a href=\"http://apple.com/safari\">Safari</a> and <a href=\"http://opera.com\">Opera</a> work too.": "També funcionen el <a href=\"http://apple.com/safari\">Safari</a> i l'<a href=\"http://opera.com\">Opera</a>.",
"Add an email address above to configure email notifications": "Afegiu una adreça de correu electrònic més amunt 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",
"Custom Server Options": "Opcions de servidor personalitzat",
"Dismiss": "Omet",
"Enter keywords separated by a comma:": "Introdueix paraules clau separades per una coma:",
"Login": "Inicia sessió",
"Leave": "Abandona",
"Messages containing <span>keywords</span>": "Missatges que contenen <span>paraules clau</span>",
"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 one-to-one chats": "Missatges en xats un a un",
"Messages sent by bot": "Missatges enviats pel bot",
"more": "més",
"Noisy": "Sorollós",
"Notification targets": "Objectius de notificació",
"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",
"Off": "Apagat",
"On": "Engegat",
"Permalink": "Enllaç permanent",
"Remove": "Elimina",
"remove %(name)s from the directory.": "elimina %(name)s del directori.",
"Remove from Directory": "Elimina del directori",
"Report a bug": "Informa d'una errada",
"Resend": "Reenvia",
"Search…": "Cerca…",
"Send": "Envia",
"Source URL": "URL origen",
"The server may be unavailable or overloaded": "El servidor pot no estar disponible o sobrecarregat",
"This Room": "Aquesta sala",
" to room": " a la sala",
"Unavailable": "No disponible",
"Unknown device": "Dispositiu desconegut",
"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",
"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",
"Thank you!": "Gràcies!",
"Sunday": "Diumenge",
"Monday": "Dilluns",
"Tuesday": "Dimarts",
"Wednesday": "Dimecres",
"Thursday": "Dijous",
"Friday": "Divendres",
"Saturday": "Dissabte",
"Today": "Avui",
"Yesterday": "Ahir",
"OK": "D'acord",
"Warning": "Advertència",
"Checking for an update...": "Comprovant si hi ha actualitzacions...",
"No update available.": "No hi ha cap actualització disponible.",
"Downloading update...": "Descarregant l'actualització...",
"Welcome page": "Pàgina de benvinguda",
"Welcome to Riot.im": "Benvingut a Riot.im",
"Chat with Riot Bot": "Conversa amb el Bot de Riot"
}

View File

@@ -30,7 +30,7 @@
"Error": "Chyba",
"Failed to change settings": "Nepodařilo se změnit nastavení",
"Failed to get public room list": "Nepodařilo se získat seznam veřejných místností",
"Failed to join the room": "Nepodařilo se vstoupit do místnosti",
"Failed to join the room": "Vstup do místnosti se nezdařil",
"Favourite": "V oblíbených",
"Guests can join": "Hosté mohou vstoupit",
"Guest users can't invite users. Please register to invite.": "Hosté nemohou zvát uživatele. Zaregistrujte se a budete moci zvát.",

View File

@@ -9,6 +9,7 @@
"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 whilst saving your email notification preferences.",
"Back": "Back",
"Bug report sent": "Bug report sent",
"Call invitation": "Call invitation",
"Cancel": "Cancel",
@@ -26,6 +27,7 @@
"delete the alias.": "delete the alias.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?",
"Describe your problem here.": "Describe your problem here.",
"Developer Tools": "Developer Tools",
"Direct Chat": "Direct Chat",
"Directory": "Directory",
"Dismiss": "Dismiss",
@@ -50,6 +52,7 @@
"Failed to get public room list": "Failed to get public room list",
"Failed to join the room": "Failed to join the room",
"Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room",
"Failed to send custom event.": "Failed to send custom event.",
"Failed to send report: ": "Failed to send report: ",
"Failed to set direct chat tag": "Failed to set direct chat tag",
"Failed to set Direct Message status of room": "Failed to set Direct Message status of room",
@@ -117,6 +120,9 @@
"Search for a room": "Search for a room",
"Send": "Send",
"Send logs": "Send logs",
"Send Custom Event": "Send Custom Event",
"Send Custom State Event": "Send Custom State Event",
"Explore Room State": "Explore Room State",
"Settings": "Settings",
"Source URL": "Source URL",
"Sorry, your browser is <b>not</b> able to run Riot.": "Sorry, your browser is <b>not</b> able to run Riot.",
@@ -164,6 +170,10 @@
"Warning": "Warning",
"Checking for an update...": "Checking for an update...",
"Error encountered (%(errorDetail)s).": "Error encountered (%(errorDetail)s).",
"Event sent!": "Event sent!",
"Event Type": "Event Type",
"Event Content": "Event Content",
"State Key": "State Key",
"No update available.": "No update available.",
"Downloading update...": "Downloading update...",
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",

View File

@@ -5,14 +5,14 @@
"An error occurred whilst saving your email notification preferences.": "Se ha producido un error al guardar las preferencias de notificación por email.",
"Call invitation": "Invitación a la llamada",
"Cancel Sending": "Cancelar envío",
"Can't update user notification settings": "No se puede actualizar la configuración de notificación de usuario",
"Can't update user notification settings": "No se puede actualizar la configuración de notificaciones del usuario",
"Close": "Cerrar",
"Create new room": "Crear nueva sala",
"Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincidiera",
"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.<br/>Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.<br/><br/>También puedes configurar un servidor de identidad personalizado, pero no podrás invitar usuarios por dirección de email, ni ser invitado por email por ti mismo.",
"customServer_text": "Puedes utilizar las opciones de servidor personalizadas para iniciar sesión en otros servidores Matrix especificando una URL de Home server distinta.<br/>Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.<br/><br/>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.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar la sala alias %(alias)s y retirar %(name)s del directorio?",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar el alias de la sala %(alias)s y eliminar %(name)s del directorio?",
"Direct Chat": "Conversación directa",
"Directory": "Directorio",
"Download this file": "Descargar este archivo",
@@ -30,9 +30,9 @@
"Failed to change settings": "Error al cambiar la configuración",
"Failed to forget room %(errCode)s": "Falló al olvidar la sala %(errCode)s",
"Failed to update keywords": "Error al actualizar las palabras clave",
"Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos de Home Server",
"Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos desde el Home Server",
"Failed to get public room list": "No se pudo obtener la lista de salas públicas",
"Failed to join the room": "Falló al unirse a la sala",
"Failed to join the room": "Error al unirse a la sala",
"Failed to remove tag %(tagName)s from room": "Error al eliminar la etiqueta %(tagName)s de la sala",
"Failed to set direct chat tag": "Error al establecer la etiqueta de chat directo",
"Failed to set Direct Message status of room": "No se pudo establecer el estado de Mensaje Directo de la sala",
@@ -50,7 +50,7 @@
"Low Priority": "Baja Prioridad",
"Members": "Miembros",
"Mentions only": "Sólo menciones",
"Messages containing my display name": "Mensajes que contienen mi nombre para mostrar",
"Messages containing my display name": "Mensajes que contienen mi nombre",
"Messages containing my user name": "Mensajes que contienen mi nombre de usuario",
"Messages in group chats": "Mensajes en chats de grupo",
"Messages in one-to-one chats": "Mensajes en chats uno a uno",
@@ -125,54 +125,54 @@
"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": "Bitácora de cambios",
"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.",
"All Rooms": "Todas las salas",
"Expand panel": "Expandir panel",
"Failed to": "Falló",
"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, las trazas de este cliente serán enviadas adjuntas a este informe de defecto. Si quisiera enviar el texto anterior solamente, entonces desmarque:",
"Login": "Abrir sesión",
"Report a bug": "Informe un defecto",
"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:",
"Login": "Iniciar sesión",
"Report a bug": "Informe de un fallo",
"Search…": "Buscar…",
"Send": "Enviar",
"Send logs": "Enviar trazas",
"Send logs": "Enviar registros",
"Sorry, your browser is <b>not</b> able to run Riot.": "¡Lo sentimos! Su navegador <b>no puede</b> ejecutar Riot.",
"This Room": "Esta sala",
"Unavailable": "No disponible",
"Unknown device": "Dispositivo desconocido",
"Update": "Actualizar",
"Uploading report": "Enviando informe",
"What's New": "Lo que hay de nuevo",
"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!",
"%(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 en todos los objetivos.",
"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",
"Dismiss": "Omitir",
"Failed to send report: ": "Error al enviar reporte: ",
"Failed to send report: ": "Error al enviar informe: ",
"Loading bug report module": "Cargando módulo de reporte de errores",
"Messages containing <span>keywords</span>": "Mensajes que contienen <span>palabras clave</span>",
"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. 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 install <a href=\"https://www.google.com/chrome\">Chrome</a> or <a href=\"https://getfirefox.com\">Firefox</a> for the best experience.": "Por favor instale <a href=\"https://www.google.com/chrome\">Google Chrome</a> o <a href=\"https://getfirefox.com\">Mozilla Firefox</a> para una mejor experiencia.",
"powered by Matrix": "con el poder de Matrix",
"Riot Desktop on %(platformName)s": "Riot Desktop en %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot no está soportado en navegadores Web móviles. Quieres instalar la aplicación?",
"Riot is not supported on mobile web. Install the app?": "Riot no está soportado en navegadores Web móviles. ¿Quieres instalar la aplicación?",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot usa muchas características avanzadas del navegador, algunas de las cuales no están disponibles en su navegador actual.",
"You are Rioting as a guest. <a>Register</a> or <a>sign in</a> to access more rooms and features!": "Está usando Riot como invitado. ¡<a>Regístrese</a> o <a>inicie sesión</a> para acceder más salas y características!",
"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 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!",
"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 &amp; collaboration powered by [matrix]": "Conversaciones &amp; colaboración cifradas y descentralizadas 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 tips de Riot Bot!",
"Get started with some tips from Riot Bot!": "¡Comenzar con algunos consejos de Riot Bot!",
"General discussion about Matrix and Riot": "Discusión general sobre Matrix y Riot",
"Discussion of all things Matrix!": "¡Discusión sobre todas las cosas de Matrix!",
"Riot/Web &amp; Desktop chat": "Conversaciones de Riot/Web &amp; Desktop",
@@ -206,5 +206,7 @@
"To return to your account in future you need to <u>set a password</u>": "Para regresar a su cuenta en el futuro Ud. debe <u>establecer una contraseña</u>",
"Set Password": "Establezca la contraseña",
"Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).",
"Couldn't load home page": "No se puede cargar la página principal"
"Couldn't load home page": "No se puede cargar la página principal",
"Bug report sent": "Informe de fallo enviado",
"Thank you!": "¡Gracias!"
}

View File

@@ -195,5 +195,17 @@
"You have successfully set a password and an email address!": "Olet onnistuneesti asettanut salasanan ja sähköpostiosoitteen!",
"Remember, you can always set an email address in user settings if you change your mind.": "Muista että voit aina asettaa sähköpostiosoitteen käyttäjäasetuksista jos muutat mielesi.",
"To return to your account in future you need to <u>set a password</u>": "Voidaksesi tulevaisuudessa palata tilillesi sinut pitää <u>asettaa salasana</u>",
"Couldn't load home page": "Kotisivun lataus epäonnistui"
"Couldn't load home page": "Kotisivun lataus epäonnistui",
"Bug report sent": "Virheraportti lähetetty",
"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?",
"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",
"There are advanced notifications which are not shown here": "On kehittyneitä ilmoituksia joita ei näytetä tässä",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Matrix-pohjainen hajautettu, salattu viestittely ja yhteistyö"
}

View File

@@ -129,7 +129,7 @@
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "A jelenlegi bőngésződdel teljesen hibás lehet az alkalmazás kinézete és bizonyos funkciók, ha nem az összes, nem fog működni. Ha mindenképpen ki akarod próbálni, folytathatod de egyedül vagy minden felbukkanó problémával!",
"Messages containing <span>keywords</span>": "Az üzenet <span>kulcsszavakat</span> tartalmaz",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
"A new version of Riot is available.": "Új verzió érhető el a Riot-ból.",
"A new version of Riot is available.": "Elérhető egy új Riot verzió.",
"All Rooms": "Minden szobában",
"Cancel": "Mégse",
"Changelog": "Változások",
@@ -206,5 +206,7 @@
"Error encountered (%(errorDetail)s).": "Hiba történt (%(errorDetail)s).",
"No update available.": "Frissítés nem érthető el.",
"Downloading update...": "Frissítés letöltése...",
"Couldn't load home page": "Kezdőképernyő betöltése sikertelen"
"Couldn't load home page": "Kezdőképernyő betöltése sikertelen",
"Bug report sent": "Hibajelentés elküldve",
"Thank you!": "Köszönjük!"
}

View File

@@ -94,13 +94,13 @@
"powered by Matrix": "offerto da Matrix",
"Quote": "Cita",
"Reject": "Rifiuta",
"Remove %(name)s from the directory?": "Rimuovere %(name) dalla lista?",
"Remove %(name)s from the directory?": "Rimuovere %(name)s dalla lista?",
"Remove": "Rimuovi",
"remove %(name)s from the directory.": "rimuovi %(name) dalla lista.",
"remove %(name)s from the directory.": "rimuovi %(name)s dalla lista.",
"Remove from Directory": "Rimuovi dalla lista",
"Report a bug": "Segnala un errore",
"Resend": "Reinvia",
"Riot Desktop on %(platformName)s": "Riot Desktop su %(platformName)",
"Riot Desktop on %(platformName)s": "Riot Desktop su %(platformName)s",
"Riot does not know how to join a room on this network": "Riot non sa come entrare nella stanza su questa rete",
"Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Vuoi installare l'applicazione?",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot utilizza molte funzioni avanzate del browser, alcune delle quali non sono disponibili o sono sperimentali nel tuo browser attuale.",
@@ -205,5 +205,6 @@
"Discussion of all things Matrix!": "Discussione su tutto quanto riguardi Matrix!",
"Dev chat for the Riot/Web dev team": "Chat per gli sviluppatori di Riot/Web",
"Dev chat for the Dendrite dev team": "Chat per gli sviluppatori di Dendrite",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti già esistenti (Slack, IRC, Gitter ecc) o indipendenti. Dai un'occhiata all'elenco!"
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti già esistenti (Slack, IRC, Gitter ecc) o indipendenti. Dai un'occhiata all'elenco!",
"Thank you!": "Grazie!"
}

View File

@@ -153,7 +153,7 @@
"OK": "ശരി",
"Warning": "മുന്നറിയിപ്പ്",
"Checking for an update...": "അപ്ഡേറ്റ് ഉണ്ടോ എന്ന് തിരയുന്നു...",
"Error encountered (%(errorDetail)s).": "എറര്‍ നേരിട്ടു (%errorDetail)s).",
"Error encountered (%(errorDetail)s).": "എറര്‍ നേരിട്ടു (%(errorDetail)s).",
"No update available.": "അപ്ഡേറ്റുകള്‍ ലഭ്യമല്ല.",
"Downloading update...": "അപ്ഡേറ്റ് ഡൌണ്‍ലോഡ് ചെയ്യുന്നു...",
"You need to be using HTTPS to place a screen-sharing call.": "സ്ക്രീന്‍ ഷെയറിങ്ങ് കോള്‍ നടത്തണമെങ്കില്‍ https ഉപയോഗിക്കണം.",

View File

@@ -86,7 +86,7 @@
"Settings": "Instellingen",
"Source URL": "Bron-URL",
"Start chat": "Gesprek starten",
"The Home Server may be too old to support third party networks": "De home server is misschien te oud om netwerken van derde partijen te ondersteunen",
"The Home Server may be too old to support third party networks": "De thuisserver is misschien te oud om netwerken van derde partijen te ondersteunen",
"There are advanced notifications which are not shown here": "Er zijn geavanceerde notificaties die hier niet getoond worden",
"The server may be unavailable or overloaded": "De server is misschien niet beschikbaar of overbelast",
"This room is inaccessible to guests. You may be able to join if you register.": "Deze kamer is niet toegankelijk voor gasten. Je zou misschien kunnen deelnemen als je geregistreerd bent.",
@@ -196,15 +196,17 @@
"Discussion of the Identity Service API": "Discussie over de Identity Service API",
"Support for those using, running and writing other bridges": "Ondersteuning voor het gebruiken, draaien en ontwikkelen aan andere bruggen",
"Dev chat for the Riot/Web dev team": "Dev-chat voor het Riot/Web ontwikkelteam",
"Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite ontwikkelteam",
"Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite-ontwikkelteam",
"You have successfully set a password and an email address!": "Het instellen van een wachtwoord en e-mailadres is geslaagd!",
"Remember, you can always set an email address in user settings if you change your mind.": "Onthoud dat u altijd een e-mailadres in kan stellen in de gebruikersinstellingen als u zich bedenkt.",
"Warning": "Waarschuwing",
"Checking for an update...": "Aan het kijken voor een update...",
"Error encountered (%(errorDetail)s).": "Fout ondervonden (%errorDetail)s).",
"Error encountered (%(errorDetail)s).": "Fout ondervonden (%(errorDetail)s).",
"No update available.": "Geen update beschikbaar.",
"Downloading update...": "Update aan het downloaden...",
"To return to your account in future you need to <u>set a password</u>": "Om in de toekomst naar je account terug te gaan moet je <u>een wachtwoord instellen</u>",
"Set Password": "Wachtwoord instellen",
"Couldn't load home page": "Kon de home pagina niet laden"
"Couldn't load home page": "Kon de home pagina niet laden",
"Bug report sent": "Bug report verzonden",
"Thank you!": "Bedankt!"
}

View File

@@ -35,7 +35,7 @@
"Collapse panel": "Ukryj panel",
"customServer_text": "Możesz używać opcji serwera niestandardowego do logowania się na inne serwery Matrix, określając inny adres URL serwera domowego.<br/>Pozwala to na wykorzystanie Riot z istniejącym kontem Matrix na innym serwerze domowym.<br/><br/>Można również ustawić niestandardowy serwer tożsamości, ale nie będzie można zapraszać użytkowników adresem e-mail, ani być zaproszonym przez adres e-mailowy.",
"Delete the room alias %(alias)s and remove %(name)s from the directory?": "Usuń alias %(alias)s i usuń %(name)s z katalogu?",
"Dismiss": "Zdymisjonować",
"Dismiss": "Zamknij",
"Drop here %(toAction)s": "Upuść tutaj %(toAction)s",
"Enable audible notifications in web client": "Włącz dźwiękowe powiadomienia w kliencie internetowym",
"Enable email notifications": "Włącz powiadomienia e-mailowe",
@@ -206,5 +206,7 @@
"Error encountered (%(errorDetail)s).": "Wystąpił błąd (%(errorDetail)s).",
"Downloading update...": "Pobieranie aktualizacji...",
"Checking for an update...": "Sprawdzanie aktualizacji...",
"Couldn't load home page": "Nie można załadować strony startowej"
"Couldn't load home page": "Nie można załadować strony startowej",
"Bug report sent": "Raport błędu wysłany",
"Thank you!": "Dziękujemy!"
}

View File

@@ -206,5 +206,7 @@
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk-chatt",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; matrix-android-sdk-chatt",
"Admin support for Dendrite": "Hjälp för administratörer av Dendrite",
"Building services on Matrix": "Bygga tjänster med Matrix"
"Building services on Matrix": "Bygga tjänster med Matrix",
"Bug report sent": "Buggraporten skickades",
"Thank you!": "Tack!"
}

View File

@@ -62,12 +62,12 @@
"Enter keywords separated by a comma:": "ஒரு comma மூலம் முக்கிய வார்த்தைகளை உள்ளிடவும்:",
"Error saving email notification preferences": "மின்னஞ்சல் அறிவிப்பு விருப்பங்களை சேமிப்பதில் கோளாறு",
"Failed to get protocol list from Home Server": "முகப்பு சேவையகத்திலிருந்து நெறிமுறை பட்டியலைப் பெறுவதில் தோல்வி",
"Failed to remove tag %(tagName)s from room": "அறையில் இருந்து குறிச்சொல்% (tagName) களை அகற்றுவது தோல்வியடைந்தது",
"Failed to remove tag %(tagName)s from room": "அறையில் இருந்து குறிச்சொல் %(tagName)s களை அகற்றுவது தோல்வியடைந்தது",
"Failed to set direct chat tag": "நேரடி அரட்டை குறியை அமைப்பதில் தோல்வி",
"Failed to set Direct Message status of room": "அறையின் நேரடி செய்தி நிலையை அமைக்க தவறிவிட்டது",
"Fetching third party location failed": "மூன்றாம் இடத்தில் உள்ள இடம் தோல்வி",
"Forward Message": "முன்னோடி செய்தி",
"(HTTP status %(httpStatus)s)": "(HTTP நிலைகள்% (httpStatus) )",
"(HTTP status %(httpStatus)s)": "(HTTP நிலைகள் %(httpStatus)s)",
"customServer_text": "நீங்கள் மற்ற Matrix வழங்கிகள் உள்நுழைய உங்கள் விருப்பமான வழங்கி இடப்புகளை உபயோகப்படுத்தலாம்.<br/>இது மற்ற வழங்கியில் உங்கள் Matrix கணக்கிணை Riot மூலம் பயன்படுத்த உதவும்.<br/><br/>நீங்கள் மற்ற அடையாள வழங்கியையும் பயன்படுத்தலாம், ஆனால் நீங்கள் மற்ற பயனர்களை மின்னஞ்சல் மூலம் அழைக்கவோ, நீங்கள் அழைக்கப்படவோ இயலாது.",
"Guest users can't invite users. Please register to invite.": "விருந்தினர் பயனர்கள் பயனர்களை அழைக்க முடியாது. தயவுசெய்து அழைக்கவும்.",
"I understand the risks and wish to continue": "நான் அபாயங்களைப் புரிந்துகொண்டு தொடர விரும்புகிறேன்",
@@ -96,9 +96,9 @@
"powered by Matrix": "Matrix-ஆல் ஆனது",
"Quote": "மேற்கோள்",
"Reject": "நிராகரி",
"Remove %(name)s from the directory?": "அடைவிலிருந்து %(name)-ஐ நீக்கலாமா?",
"Remove %(name)s from the directory?": "அடைவிலிருந்து %(name)s-ஐ நீக்கலாமா?",
"Remove": "நீக்கு",
"remove %(name)s from the directory.": "அடைவிலிருந்து %(name)-ஐ நீக்கு.",
"remove %(name)s from the directory.": "அடைவிலிருந்து %(name)s-ஐ நீக்கு.",
"Remove from Directory": "அடைவிலிருந்து நீக்கு",
"Report a bug": "வழுவைத் தெரியப்படுத்து",
"Resend": "மீண்டும் அனுப்பு",
@@ -143,5 +143,6 @@
"World readable": "உலகமே படிக்கும்படி",
"You cannot delete this image. (%(code)s)": "இந்த படத்தை நீங்கள் அழிக்க முடியாது. (%(code)s)",
"You cannot delete this message. (%(code)s)": "இந்த செய்தியை நீங்கள் அழிக்க முடியாது. (%(code)s)",
"You are not receiving desktop notifications": "திரை அறிவிப்புகளை நீங்கள் பெறவில்லை"
"You are not receiving desktop notifications": "திரை அறிவிப்புகளை நீங்கள் பெறவில்லை",
"Bug report sent": "வழு அறிக்கை அனுப்பப்பட்டது"
}

View File

@@ -139,7 +139,7 @@
"Uploaded on %(date)s by %(user)s": "由 %(user)s 在 %(date)s 上传",
"Uploading report": "上传报告",
"View Decrypted Source": "查看解密的来源",
"View Source": "查看源",
"View Source": "查看源",
"What's New": "新鲜事",
"What's new?": "有什么新闻?",
"Waiting for response from server": "正在等待来自服务器的回应",

View File

@@ -74,6 +74,7 @@
@import "./vector-web/views/context_menus/_MessageContextMenu.scss";
@import "./vector-web/views/context_menus/_RoomTileContextMenu.scss";
@import "./vector-web/views/dialogs/_ChangelogDialog.scss";
@import "./vector-web/views/dialogs/_DevtoolsDialog.scss";
@import "./vector-web/views/dialogs/_SetEmailDialog.scss";
@import "./vector-web/views/dialogs/_SetPasswordDialog.scss";
@import "./vector-web/views/directory/_NetworkDropdown.scss";

View File

@@ -80,6 +80,16 @@ limitations under the License.
cursor: pointer;
}
.mx_UserSettings_button.mx_UserSettings_buttonSmall {
height: 36px;
padding: 4px;
padding-left: 7px;
padding-right: 7px;
font-size: 12px;
margin-right: 5px;
line-height: 12px;
}
.mx_UserSettings_button.danger {
background-color: $warning-color;
}

View File

@@ -0,0 +1,19 @@
/*
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_DevTools_RoomStateExplorer_button {
margin-bottom: 10px;
}

View File

@@ -176,8 +176,9 @@ describe('joining a room', function () {
return Promise.delay(1);
}).then(() => {
// We've joined, expect this to false
expect(roomView.state.joining).toBe(false);
// NB. we don't expect the 'joining' flag to reset at any point:
// it will stay set and we observe whether we have Room object for
// the room and whether our member event shows we're joined.
// now send the room down the /sync pipe
httpBackend.when('GET', '/sync').