Compare commits
263 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a89661de44 | ||
|
|
9104a07324 | ||
|
|
a20b9c4c24 | ||
|
|
a09ab52be3 | ||
|
|
669a5e6d01 | ||
|
|
172514f278 | ||
|
|
9163aee0fc | ||
|
|
de4550099e | ||
|
|
eda43aa488 | ||
|
|
66e073f599 | ||
|
|
71d32d1f7d | ||
|
|
46879e2976 | ||
|
|
a3b8c67e79 | ||
|
|
3800fe0c9b | ||
|
|
a329dd6669 | ||
|
|
b99b647538 | ||
|
|
a5fd3114c2 | ||
|
|
3d8fe4a9bc | ||
|
|
c1faa54102 | ||
|
|
c032067a30 | ||
|
|
77ee12ec77 | ||
|
|
85726c604e | ||
|
|
c038a9b443 | ||
|
|
8a8c684ef9 | ||
|
|
b4173f3e08 | ||
|
|
d9f4b7c5e7 | ||
|
|
01e0d5ed70 | ||
|
|
5f03004664 | ||
|
|
7435175a76 | ||
|
|
8cfb0a71a0 | ||
|
|
fa265e498f | ||
|
|
8b0eafe50f | ||
|
|
5b5f205892 | ||
|
|
c4fae201e9 | ||
|
|
48b994d87c | ||
|
|
46f2793563 | ||
|
|
2c952b422b | ||
|
|
3e924941c3 | ||
|
|
2a25c6aaa4 | ||
|
|
02e23e48b3 | ||
|
|
d969a96cd2 | ||
|
|
4a7c2318dd | ||
|
|
cc31d336dd | ||
|
|
8aa46ba700 | ||
|
|
a7ac9408b8 | ||
|
|
5ac891d70e | ||
|
|
16be9e4774 | ||
|
|
730e3077c1 | ||
|
|
76a6aad354 | ||
|
|
c58a11c537 | ||
|
|
570eacc8e1 | ||
|
|
305570d8e3 | ||
|
|
993fd04353 | ||
|
|
05816fca36 | ||
|
|
4d95e7ec67 | ||
|
|
871733388c | ||
|
|
89ee32a32d | ||
|
|
d0e1d60969 | ||
|
|
013aa0b6a9 | ||
|
|
caeaf29cb7 | ||
|
|
5b8012d471 | ||
|
|
f1b1a27e8f | ||
|
|
84ddc114e3 | ||
|
|
e371f01bb5 | ||
|
|
ad944c0b39 | ||
|
|
be9f0194c5 | ||
|
|
2d20ea3595 | ||
|
|
4264aaed29 | ||
|
|
37318fc485 | ||
|
|
c8c43403b4 | ||
|
|
886f060f68 | ||
|
|
d93d2e94ed | ||
|
|
b199f55d1c | ||
|
|
04afd0232b | ||
|
|
5935e3b145 | ||
|
|
322a708d81 | ||
|
|
f8102105a9 | ||
|
|
c411eabdac | ||
|
|
6b7909c732 | ||
|
|
d283b4161c | ||
|
|
33834b4933 | ||
|
|
aa190f0fd3 | ||
|
|
d08628901a | ||
|
|
bbc9693865 | ||
|
|
0b3487981c | ||
|
|
1a916435da | ||
|
|
7f0c8216ae | ||
|
|
6004d02b98 | ||
|
|
7e3527ff9c | ||
|
|
86185e8186 | ||
|
|
66ca5f3c47 | ||
|
|
2d504f12d5 | ||
|
|
cde8fcde8f | ||
|
|
0f9dff6a15 | ||
|
|
703179be22 | ||
|
|
2309457522 | ||
|
|
afc863f315 | ||
|
|
b72fab29e7 | ||
|
|
bb9b6f8a22 | ||
|
|
d4b0487373 | ||
|
|
3aa9c58200 | ||
|
|
9d6adbc3c3 | ||
|
|
288c4098aa | ||
|
|
6f688102e7 | ||
|
|
1b1247e224 | ||
|
|
008939cff7 | ||
|
|
963dee62fd | ||
|
|
269e82edc9 | ||
|
|
07dba2b6e0 | ||
|
|
b061d8238e | ||
|
|
6a52758cc7 | ||
|
|
d14d881780 | ||
|
|
de6d72fe3e | ||
|
|
f4e6828949 | ||
|
|
b799a6eb84 | ||
|
|
788a6f0527 | ||
|
|
2b4b38d4ca | ||
|
|
36802afe92 | ||
|
|
c20776a264 | ||
|
|
7cc67372b6 | ||
|
|
02718fd730 | ||
|
|
4ad9e9ae6f | ||
|
|
5e2d7ac4bd | ||
|
|
6613016970 | ||
|
|
79b6974bd1 | ||
|
|
21b6a32263 | ||
|
|
b3da4dd75a | ||
|
|
79d0990c38 | ||
|
|
f452e8216b | ||
|
|
cabccf67fa | ||
|
|
addb01ad0f | ||
|
|
8f0cf3c62a | ||
|
|
3702eb2c2a | ||
|
|
ec77b20729 | ||
|
|
122ef6e9da | ||
|
|
a978ed7d20 | ||
|
|
2171c90888 | ||
|
|
6c79cd37af | ||
|
|
0de91afd3d | ||
|
|
9103bacaaf | ||
|
|
897a73793f | ||
|
|
8e777ecc26 | ||
|
|
a47b9eb27c | ||
|
|
887de50f5a | ||
|
|
f21352f558 | ||
|
|
a8f5fc611c | ||
|
|
43560816f4 | ||
|
|
6e1df78942 | ||
|
|
9571ceb642 | ||
|
|
cca49792fc | ||
|
|
1933b9094e | ||
|
|
3519cd7191 | ||
|
|
3efb466674 | ||
|
|
a9720a5b7f | ||
|
|
264bce7ca9 | ||
|
|
0ada7b5d26 | ||
|
|
5393f875ce | ||
|
|
cf88ddbbce | ||
|
|
dc7549c0db | ||
|
|
ae8ba13ab1 | ||
|
|
d94a0264b2 | ||
|
|
9bb1f99bd9 | ||
|
|
0059c3ceb9 | ||
|
|
2da4ce2ab4 | ||
|
|
f050349ce6 | ||
|
|
6c50aa14ad | ||
|
|
37b75eaf31 | ||
|
|
3e37f21edf | ||
|
|
16f8b7ae29 | ||
|
|
914b6cd42c | ||
|
|
f2bdb41dd8 | ||
|
|
088f2852f6 | ||
|
|
bcf4ed0f0a | ||
|
|
ebed5e7bcf | ||
|
|
40361d2e36 | ||
|
|
2e50f7eea7 | ||
|
|
223e55de44 | ||
|
|
f7136d19b9 | ||
|
|
622ea3ead6 | ||
|
|
7598942800 | ||
|
|
ef16ef4272 | ||
|
|
395c5ddab2 | ||
|
|
5a18e60c05 | ||
|
|
9a0944bf6f | ||
|
|
f254a806d5 | ||
|
|
3f0de699f0 | ||
|
|
869c379264 | ||
|
|
8ae4298637 | ||
|
|
eac628ddcf | ||
|
|
050b7fe4df | ||
|
|
79f70e00d0 | ||
|
|
8947f160b8 | ||
|
|
b1cf1a2d1a | ||
|
|
a8a6c538fa | ||
|
|
9be8c1c8b0 | ||
|
|
6b317798dc | ||
|
|
9fa8b7a9b3 | ||
|
|
d9c2b34249 | ||
|
|
e367690e4b | ||
|
|
2f7b43dcfa | ||
|
|
2c83458f35 | ||
|
|
dde3f93822 | ||
|
|
ffd802f726 | ||
|
|
55ea61b36c | ||
|
|
44c15df58e | ||
|
|
17649dc2b1 | ||
|
|
5d8b246ef1 | ||
|
|
0f159c5d77 | ||
|
|
f2b9bd4c49 | ||
|
|
bbd1974eb4 | ||
|
|
6f04841e4b | ||
|
|
7c4cef614e | ||
|
|
f8ed536bb8 | ||
|
|
2657df8f3f | ||
|
|
9687575c86 | ||
|
|
d42e7e9122 | ||
|
|
ae359cae41 | ||
|
|
aa9420dbcc | ||
|
|
9c2e45a9f9 | ||
|
|
4a2d7b29b7 | ||
|
|
9b7cae01e4 | ||
|
|
64d4bf52c4 | ||
|
|
38da4da8dd | ||
|
|
9cce879d4c | ||
|
|
e12724a95a | ||
|
|
2ee5014b0b | ||
|
|
72970aa4fd | ||
|
|
398033e7ce | ||
|
|
d328cab538 | ||
|
|
96f0d3a04e | ||
|
|
da7550e0a4 | ||
|
|
eaebafc29a | ||
|
|
c412406956 | ||
|
|
dbd82c7425 | ||
|
|
da5008bab1 | ||
|
|
9c9da4345b | ||
|
|
eed6a01efa | ||
|
|
0159699d1b | ||
|
|
1262a1ef08 | ||
|
|
8e67450477 | ||
|
|
b2d4432ba9 | ||
|
|
503ea3d973 | ||
|
|
efa603939b | ||
|
|
a1c06c5a0e | ||
|
|
fb79373a6d | ||
|
|
846cebe9ff | ||
|
|
8eac445ddc | ||
|
|
1b60743910 | ||
|
|
1a49459b81 | ||
|
|
62d1e4937c | ||
|
|
636529bb36 | ||
|
|
37126b3f76 | ||
|
|
16726c7e16 | ||
|
|
bfc62e04f0 | ||
|
|
2bcadfab83 | ||
|
|
d04e0f441d | ||
|
|
7c17272c83 | ||
|
|
6886dbcbd4 | ||
|
|
15203bb32b | ||
|
|
c8b8efd47a | ||
|
|
e5398f4345 | ||
|
|
e077bea046 | ||
|
|
cd18764287 |
24
.eslintrc.js
@@ -1,3 +1,23 @@
|
||||
module.exports = {
|
||||
extends: ["./node_modules/matrix-react-sdk/.eslintrc.js"],
|
||||
}
|
||||
"extends": ["matrix-org", "matrix-org/react"],
|
||||
"env": {
|
||||
"browser": true,
|
||||
"node": true,
|
||||
},
|
||||
"rules": {
|
||||
"quotes": "off",
|
||||
},
|
||||
"overrides": [{
|
||||
"files": ["src/**/*.{ts, tsx}"],
|
||||
"extends": ["matrix-org/ts", "matrix-org/react"],
|
||||
"env": {
|
||||
"browser": true,
|
||||
},
|
||||
"rules": {
|
||||
"quotes": "off",
|
||||
// While converting to ts we allow this
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"prefer-promise-reject-errors": "off",
|
||||
},
|
||||
}],
|
||||
};
|
||||
|
||||
170
CHANGELOG.md
@@ -1,3 +1,173 @@
|
||||
Changes in [1.7.5](https://github.com/vector-im/element-web/releases/tag/v1.7.5) (2020-09-01)
|
||||
=============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.5-rc.1...v1.7.5)
|
||||
|
||||
## Security notice
|
||||
|
||||
Element Web 1.7.5 fixes an issue where encrypted state events could break incoming call handling.
|
||||
Thanks to @awesome-michael from Awesome Technologies for responsibly disclosing this via Matrix's
|
||||
Security Disclosure Policy.
|
||||
|
||||
## All changes
|
||||
|
||||
* Upgrade to React SDK 3.3.0 and JS SDK 8.2.0
|
||||
|
||||
Changes in [1.7.5-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.5-rc.1) (2020-08-26)
|
||||
=======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.4...v1.7.5-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.3.0-rc.1 and JS SDK 8.2.0-rc.1
|
||||
* Update from Weblate
|
||||
[\#15045](https://github.com/vector-im/element-web/pull/15045)
|
||||
* Document .well-known E2EE secure backup setting
|
||||
[\#15003](https://github.com/vector-im/element-web/pull/15003)
|
||||
* Add docs for communities v2 prototyping feature flag
|
||||
[\#15013](https://github.com/vector-im/element-web/pull/15013)
|
||||
* Update links in README.md to point to Element
|
||||
[\#14973](https://github.com/vector-im/element-web/pull/14973)
|
||||
* Make kabyle translation available
|
||||
[\#15027](https://github.com/vector-im/element-web/pull/15027)
|
||||
* Change Riot to Element in readme
|
||||
[\#15016](https://github.com/vector-im/element-web/pull/15016)
|
||||
* Update links to element in the readme
|
||||
[\#15014](https://github.com/vector-im/element-web/pull/15014)
|
||||
* Link to Element in F-Droid as well
|
||||
[\#15002](https://github.com/vector-im/element-web/pull/15002)
|
||||
* Settings v3: Update documentation and configs for new feature flag behaviour
|
||||
[\#14986](https://github.com/vector-im/element-web/pull/14986)
|
||||
* Update jitsi.md with Element Android details
|
||||
[\#14952](https://github.com/vector-im/element-web/pull/14952)
|
||||
* TypeScript: enable es2019 lib for newer definitions
|
||||
[\#14983](https://github.com/vector-im/element-web/pull/14983)
|
||||
* Add reaction preview labs flags to develop
|
||||
[\#14979](https://github.com/vector-im/element-web/pull/14979)
|
||||
* Document new labs tweaks
|
||||
[\#14958](https://github.com/vector-im/element-web/pull/14958)
|
||||
|
||||
Changes in [1.7.4](https://github.com/vector-im/element-web/releases/tag/v1.7.4) (2020-08-17)
|
||||
=============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.4-rc.1...v1.7.4)
|
||||
|
||||
* Upgrade to React SDK 3.2.0 and JS SDK 8.1.0
|
||||
|
||||
Changes in [1.7.4-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.4-rc.1) (2020-08-13)
|
||||
=======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.3...v1.7.4-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.2.0-rc.1 and JS SDK 8.1.0-rc.1
|
||||
* Update policy links to element.io
|
||||
[\#14905](https://github.com/vector-im/element-web/pull/14905)
|
||||
* Update from Weblate
|
||||
[\#14949](https://github.com/vector-im/element-web/pull/14949)
|
||||
* Try to close notification on all platforms which support it, not just
|
||||
electron
|
||||
[\#14939](https://github.com/vector-im/element-web/pull/14939)
|
||||
* Update bug report submission URL
|
||||
[\#14903](https://github.com/vector-im/element-web/pull/14903)
|
||||
* Fix arm docker build
|
||||
[\#14522](https://github.com/vector-im/element-web/pull/14522)
|
||||
|
||||
Changes in [1.7.3](https://github.com/vector-im/element-web/releases/tag/v1.7.3) (2020-08-05)
|
||||
=============================================================================================
|
||||
|
||||
## Security notice
|
||||
|
||||
Element Web 1.7.3 (as well as the earlier release 1.7.2) fixes an issue where
|
||||
replying to a specially formatted message would make it seem like the replier
|
||||
said something they did not. Thanks to Sorunome for responsibly disclosing this
|
||||
via Matrix's Security Disclosure Policy.
|
||||
|
||||
Element Web 1.7.3 (as well as the earlier release 1.7.2) fixes an issue where an
|
||||
unexpected language ID in a code block could cause Element to crash. Thanks to
|
||||
SakiiR for responsibly disclosing this via Matrix's Security Disclosure Policy.
|
||||
|
||||
## All changes
|
||||
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.3-rc.1...v1.7.3)
|
||||
|
||||
* Upgrade to React SDK 3.1.0 and JS SDK 8.0.1
|
||||
|
||||
Changes in [1.7.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.7.3-rc.1) (2020-07-31)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.2...v1.7.3-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.1.0-rc.1 and JS SDK 8.0.1-rc.1
|
||||
* Make Lojban translation available
|
||||
[\#14703](https://github.com/vector-im/riot-web/pull/14703)
|
||||
* Update from Weblate
|
||||
[\#14841](https://github.com/vector-im/riot-web/pull/14841)
|
||||
* Remove redundant lint dependencies
|
||||
[\#14810](https://github.com/vector-im/riot-web/pull/14810)
|
||||
* Bump elliptic from 6.5.2 to 6.5.3
|
||||
[\#14826](https://github.com/vector-im/riot-web/pull/14826)
|
||||
* Update mobile config intercept URL
|
||||
[\#14796](https://github.com/vector-im/riot-web/pull/14796)
|
||||
* Fix typo in https://
|
||||
[\#14791](https://github.com/vector-im/riot-web/pull/14791)
|
||||
|
||||
Changes in [1.7.2](https://github.com/vector-im/riot-web/releases/tag/v1.7.2) (2020-07-27)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.1...v1.7.2)
|
||||
|
||||
* Upgrade to React SDK 3.0.0 and JS SDK 8.0.0
|
||||
* Update from Weblate
|
||||
[\#14778](https://github.com/vector-im/riot-web/pull/14778)
|
||||
* Capitalize letters
|
||||
[\#14566](https://github.com/vector-im/riot-web/pull/14566)
|
||||
* Configure eslint package and fix lint issues
|
||||
[\#14673](https://github.com/vector-im/riot-web/pull/14673)
|
||||
* Riot → Element
|
||||
[\#14581](https://github.com/vector-im/riot-web/pull/14581)
|
||||
* Remove labs info for the new room list
|
||||
[\#14603](https://github.com/vector-im/riot-web/pull/14603)
|
||||
* Convince Webpack to use development on CI
|
||||
[\#14593](https://github.com/vector-im/riot-web/pull/14593)
|
||||
* Move dev dep to the right place
|
||||
[\#14572](https://github.com/vector-im/riot-web/pull/14572)
|
||||
* Bump lodash from 4.17.15 to 4.17.19
|
||||
[\#14552](https://github.com/vector-im/riot-web/pull/14552)
|
||||
* Update all mobile links to match marketing site
|
||||
[\#14541](https://github.com/vector-im/riot-web/pull/14541)
|
||||
|
||||
Changes in [1.7.1](https://github.com/vector-im/riot-web/releases/tag/v1.7.1) (2020-07-16)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.0...v1.7.1)
|
||||
|
||||
* Upgrade to React SDK 2.10.1
|
||||
* Fix SSO session ID paramater
|
||||
[\#14544](https://github.com/vector-im/riot-web/pull/14544)
|
||||
* Run pngcrush on vector-icons
|
||||
[\#14488](https://github.com/vector-im/riot-web/pull/14488)
|
||||
* Fix hosting signup link
|
||||
[\#14502](https://github.com/vector-im/riot-web/pull/14502)
|
||||
* Use the right protocol for SSO URLs
|
||||
[\#14513](https://github.com/vector-im/riot-web/pull/14513)
|
||||
* Fix mstile-310x150 by renaming it
|
||||
[\#14485](https://github.com/vector-im/riot-web/pull/14485)
|
||||
* Update blog and twitter links to point to Element
|
||||
[\#14478](https://github.com/vector-im/riot-web/pull/14478)
|
||||
|
||||
Changes in [1.7.0](https://github.com/vector-im/riot-web/releases/tag/v1.7.0) (2020-07-15)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.6.8...v1.7.0)
|
||||
|
||||
* App name changed from Riot to Element
|
||||
* Upgrade to React SDK 2.10.0
|
||||
* Remove redundant enum
|
||||
[\#14472](https://github.com/vector-im/riot-web/pull/14472)
|
||||
* Remove font scaling from labs
|
||||
[\#14355](https://github.com/vector-im/riot-web/pull/14355)
|
||||
* Update documentation and remove labs flag for new room list
|
||||
[\#14375](https://github.com/vector-im/riot-web/pull/14375)
|
||||
* Update from Weblate
|
||||
[\#14434](https://github.com/vector-im/riot-web/pull/14434)
|
||||
* Release the irc layout from labs
|
||||
[\#14350](https://github.com/vector-im/riot-web/pull/14350)
|
||||
* Fix welcomeBackgroundUrl array causing background to change during use
|
||||
[\#14368](https://github.com/vector-im/riot-web/pull/14368)
|
||||
* Be more explicit about type when calling platform startUpdater
|
||||
[\#14299](https://github.com/vector-im/riot-web/pull/14299)
|
||||
|
||||
Changes in [1.6.8](https://github.com/vector-im/riot-web/releases/tag/v1.6.8) (2020-07-03)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.6.8-rc.1...v1.6.8)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Builder
|
||||
FROM node:10 as builder
|
||||
FROM node:12 as builder
|
||||
|
||||
# Support custom branches of the react-sdk and js-sdk. This also helps us build
|
||||
# images of riot-web develop.
|
||||
@@ -9,7 +9,10 @@ ARG REACT_SDK_BRANCH="master"
|
||||
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
|
||||
ARG JS_SDK_BRANCH="master"
|
||||
|
||||
RUN apt-get update && apt-get install -y git dos2unix
|
||||
RUN apt-get update && apt-get install -y git dos2unix \
|
||||
# These packages are required for building Canvas on architectures like Arm
|
||||
# See https://www.npmjs.com/package/canvas#compiling
|
||||
build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
|
||||
114
README.md
@@ -1,80 +1,80 @@
|
||||
Riot
|
||||
====
|
||||
Element
|
||||
=======
|
||||
|
||||
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix
|
||||
Element (formerly known as Vector and Riot) is a Matrix web client built using the [Matrix
|
||||
React SDK](https://github.com/matrix-org/matrix-react-sdk).
|
||||
|
||||
Supported Environments
|
||||
======================
|
||||
|
||||
Riot has several tiers of support for different environments:
|
||||
Element has several tiers of support for different environments:
|
||||
|
||||
* Supported
|
||||
* Definition: Issues **actively triaged**, regressions **block** the release
|
||||
* Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes
|
||||
* Latest release of official Riot Desktop app on desktop OSes
|
||||
* Latest release of official Element Desktop app on desktop OSes
|
||||
* Desktop OSes means macOS, Windows, and Linux versions for desktop devices
|
||||
that are actively supported by the OS vendor and receive security updates
|
||||
* Experimental
|
||||
* Definition: Issues **accepted**, regressions **do not block** the release
|
||||
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
||||
* Element as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
||||
* Mobile web for current stable version of Chrome, Firefox, and Safari on Android, iOS, and iPadOS
|
||||
* Not supported
|
||||
* Definition: Issues only affecting unsupported environments are **closed**
|
||||
* Everything else
|
||||
|
||||
For accessing Riot on an Android or iOS device, we currently recommend the
|
||||
native apps [riot-android](https://github.com/vector-im/riot-android)
|
||||
and [riot-ios](https://github.com/vector-im/riot-ios).
|
||||
For accessing Element on an Android or iOS device, we currently recommend the
|
||||
native apps [element-android](https://github.com/vector-im/element-android)
|
||||
and [element-ios](https://github.com/vector-im/element-ios).
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
The easiest way to test Riot is to just use the hosted copy at https://riot.im/app.
|
||||
The `develop` branch is continuously deployed by Jenkins at https://riot.im/develop
|
||||
The easiest way to test Element is to just use the hosted copy at https://app.element.io.
|
||||
The `develop` branch is continuously deployed by Jenkins at https://develop.element.io
|
||||
for those who like living dangerously.
|
||||
|
||||
To host your own copy of Riot, the quickest bet is to use a pre-built
|
||||
released version of Riot:
|
||||
To host your own copy of Element, the quickest bet is to use a pre-built
|
||||
released version of Element:
|
||||
|
||||
1. Download the latest version from https://github.com/vector-im/riot-web/releases
|
||||
1. Download the latest version from https://github.com/vector-im/element-web/releases
|
||||
1. Untar the tarball on your web server
|
||||
1. Move (or symlink) the `riot-x.x.x` directory to an appropriate name
|
||||
1. Configure the correct caching headers in your webserver (see below)
|
||||
1. If desired, copy `config.sample.json` to `config.json` and edit it
|
||||
as desired. See the [configuration docs](docs/config.md) for details.
|
||||
1. Enter the URL into your browser and log into Riot!
|
||||
1. Enter the URL into your browser and log into Element!
|
||||
|
||||
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
|
||||
at https://packages.riot.im/riot-release-key.asc.
|
||||
|
||||
Note that for the security of your chats will need to serve Riot
|
||||
Note that for the security of your chats will need to serve Element
|
||||
over HTTPS. Major browsers also do not allow you to use VoIP/video
|
||||
chats over HTTP, as WebRTC is only usable over HTTPS.
|
||||
There are some exceptions like when using localhost, which is
|
||||
considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
|
||||
and thus allowed.
|
||||
|
||||
To install Riot as a desktop application, see [Running as a desktop
|
||||
To install Element as a desktop application, see [Running as a desktop
|
||||
app](#running-as-a-desktop-app) below.
|
||||
|
||||
Important Security Note
|
||||
=======================
|
||||
|
||||
We do not recommend running Riot from the same domain name as your Matrix
|
||||
We do not recommend running Element from the same domain name as your Matrix
|
||||
homeserver. The reason is the risk of XSS (cross-site-scripting)
|
||||
vulnerabilities that could occur if someone caused Riot to load and render
|
||||
vulnerabilities that could occur if someone caused Element to load and render
|
||||
malicious user generated content from a Matrix API which then had trusted
|
||||
access to Riot (or other apps) due to sharing the same domain.
|
||||
access to Element (or other apps) due to sharing the same domain.
|
||||
|
||||
We have put some coarse mitigations into place to try to protect against this
|
||||
situation, but it's still not good practice to do it in the first place. See
|
||||
https://github.com/vector-im/riot-web/issues/1977 for more details.
|
||||
https://github.com/vector-im/element-web/issues/1977 for more details.
|
||||
|
||||
Building From Source
|
||||
====================
|
||||
|
||||
Riot is a modular webapp built with modern ES6 and uses a Node.js build system.
|
||||
Element is a modular webapp built with modern ES6 and uses a Node.js build system.
|
||||
Ensure you have the latest LTS version of Node.js installed.
|
||||
|
||||
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
|
||||
@@ -82,13 +82,13 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
|
||||
|
||||
1. Install or update `node.js` so that your `node` is at least v10.x.
|
||||
1. Install `yarn` if not present already.
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
|
||||
1. Switch to the riot-web directory: `cd riot-web`.
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/element-web.git`.
|
||||
1. Switch to the element-web directory: `cd element-web`.
|
||||
1. Install the prerequisites: `yarn install`.
|
||||
* If you're using the `develop` branch, then it is recommended to set up a
|
||||
proper development environment (see [Setting up a dev
|
||||
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
||||
can use https://riot.im/develop - the continuous integration release of
|
||||
can use https://develop.element.io - the continuous integration release of
|
||||
the develop branch.
|
||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
@@ -97,18 +97,18 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
|
||||
web server.
|
||||
|
||||
Note that `yarn dist` is not supported on Windows, so Windows users can run `yarn build`,
|
||||
which will build all the necessary files into the `webapp` directory. The version of Riot
|
||||
which will build all the necessary files into the `webapp` directory. The version of Element
|
||||
will not appear in Settings without using the dist script. You can then mount the
|
||||
`webapp` directory on your webserver to actually serve up the app, which is entirely static content.
|
||||
|
||||
Running as a Desktop app
|
||||
========================
|
||||
|
||||
Riot can also be run as a desktop app, wrapped in Electron. You can download a
|
||||
pre-built version from https://riot.im/download/desktop/ or, if you prefer,
|
||||
Element can also be run as a desktop app, wrapped in Electron. You can download a
|
||||
pre-built version from https://element.io/get-started or, if you prefer,
|
||||
build it yourself.
|
||||
|
||||
To build it yourself, follow the instructions at https://github.com/vector-im/riot-desktop.
|
||||
To build it yourself, follow the instructions at https://github.com/vector-im/element-desktop.
|
||||
|
||||
Many thanks to @aviraldg for the initial work on the Electron integration.
|
||||
|
||||
@@ -117,7 +117,7 @@ Other options for running as a desktop app:
|
||||
|
||||
```bash
|
||||
yarn global add nativefier
|
||||
nativefier https://riot.im/app/
|
||||
nativefier https://app.element.io/
|
||||
```
|
||||
|
||||
The [configuration docs](docs/config.md#desktop-app-configuration) show how to
|
||||
@@ -126,31 +126,31 @@ override the desktop app's default settings if desired.
|
||||
Running from Docker
|
||||
===================
|
||||
|
||||
The Docker image can be used to serve riot-web as a web server. The easiest way to use
|
||||
The Docker image can be used to serve element-web as a web server. The easiest way to use
|
||||
it is to use the prebuilt image:
|
||||
```bash
|
||||
docker run -p 80:80 vectorim/riot-web
|
||||
```
|
||||
|
||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
|
||||
if your custom config was located at `/etc/element-web/config.json` then your Docker command
|
||||
would be:
|
||||
```bash
|
||||
docker run -p 80:80 -v /etc/riot-web/config.json:/app/config.json vectorim/riot-web
|
||||
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/riot-web
|
||||
```
|
||||
|
||||
To build the image yourself:
|
||||
```bash
|
||||
git clone https://github.com/vector-im/riot-web.git riot-web
|
||||
cd riot-web
|
||||
git clone https://github.com/vector-im/element-web.git element-web
|
||||
cd element-web
|
||||
git checkout master
|
||||
docker build -t vectorim/riot-web .
|
||||
docker build .
|
||||
```
|
||||
|
||||
If you're building a custom branch, or want to use the develop branch, check out the appropriate
|
||||
riot-web branch and then run:
|
||||
element-web branch and then run:
|
||||
```bash
|
||||
docker build -t vectorim/riot-web:develop \
|
||||
docker build -t \
|
||||
--build-arg USE_CUSTOM_SDKS=true \
|
||||
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
|
||||
--build-arg REACT_SDK_BRANCH="develop" \
|
||||
@@ -162,19 +162,19 @@ docker build -t vectorim/riot-web:develop \
|
||||
config.json
|
||||
===========
|
||||
|
||||
Riot supports a variety of settings to configure default servers, behaviour, themes, etc.
|
||||
Element supports a variety of settings to configure default servers, behaviour, themes, etc.
|
||||
See the [configuration docs](docs/config.md) for more details.
|
||||
|
||||
Labs Features
|
||||
=============
|
||||
|
||||
Some features of Riot may be enabled by flags in the `Labs` section of the settings.
|
||||
Some of these features are described in [labs.md](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md).
|
||||
Some features of Element may be enabled by flags in the `Labs` section of the settings.
|
||||
Some of these features are described in [labs.md](https://github.com/vector-im/element-web/blob/develop/docs/labs.md).
|
||||
|
||||
Caching requirements
|
||||
====================
|
||||
|
||||
Riot requires the following URLs not to be cached, when/if you are serving Riot from your own webserver:
|
||||
Element requires the following URLs not to be cached, when/if you are serving Element from your own webserver:
|
||||
```
|
||||
/config.*.json
|
||||
/i18n
|
||||
@@ -186,20 +186,20 @@ Riot requires the following URLs not to be cached, when/if you are serving Riot
|
||||
Development
|
||||
===========
|
||||
|
||||
Before attempting to develop on Riot you **must** read the [developer guide
|
||||
Before attempting to develop on Element you **must** read the [developer guide
|
||||
for `matrix-react-sdk`](https://github.com/matrix-org/matrix-react-sdk#developer-guide), which
|
||||
also defines the design, architecture and style for Riot too.
|
||||
also defines the design, architecture and style for Element too.
|
||||
|
||||
Before starting work on a feature, it's best to ensure your plan aligns well
|
||||
with our vision for Riot. Please chat with the team in
|
||||
[#riot-dev:matrix.org](https://matrix.to/#/#riot-dev:matrix.org) before you
|
||||
with our vision for Element. Please chat with the team in
|
||||
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before you
|
||||
start so we can ensure it's something we'd be willing to merge.
|
||||
|
||||
You should also familiarise yourself with the ["Here be Dragons" guide
|
||||
](https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM)
|
||||
to the tame & not-so-tame dragons (gotchas) which exist in the codebase.
|
||||
|
||||
The idea of Riot is to be a relatively lightweight "skin" of customisations on
|
||||
The idea of Element is to be a relatively lightweight "skin" of customisations on
|
||||
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
|
||||
higher and lower level React components useful for building Matrix communication
|
||||
apps using React.
|
||||
@@ -207,15 +207,15 @@ apps using React.
|
||||
After creating a new component you must run `yarn reskindex` to regenerate
|
||||
the `component-index.js` for the app (used in future for skinning).
|
||||
|
||||
Please note that Riot is intended to run correctly without access to the public
|
||||
Please note that Element is intended to run correctly without access to the public
|
||||
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
|
||||
hosted by external CDNs or servers but instead please package all dependencies
|
||||
into Riot itself.
|
||||
into Element itself.
|
||||
|
||||
Setting up a dev environment
|
||||
============================
|
||||
|
||||
Much of the functionality in Riot is actually in the `matrix-react-sdk` and
|
||||
Much of the functionality in Element is actually in the `matrix-react-sdk` and
|
||||
`matrix-js-sdk` modules. It is possible to set these up in a way that makes it
|
||||
easy to track the `develop` branches in git and to make local changes without
|
||||
having to manually rebuild each time.
|
||||
@@ -243,11 +243,11 @@ yarn install
|
||||
popd
|
||||
```
|
||||
|
||||
Finally, build and start Riot itself:
|
||||
Finally, build and start Element itself:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/vector-im/riot-web.git
|
||||
cd riot-web
|
||||
git clone https://github.com/vector-im/element-web.git
|
||||
cd element-web
|
||||
git checkout develop
|
||||
yarn link matrix-js-sdk
|
||||
yarn link matrix-react-sdk
|
||||
@@ -275,7 +275,7 @@ bundle.css.map 116 kB 0 [emitted] main
|
||||
Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
|
||||
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
Open http://127.0.0.1:8080/ in your browser to see your newly built Element.
|
||||
|
||||
**Note**: The build script uses inotify by default on Linux to monitor directories
|
||||
for changes. If the inotify watch limit is too low your build will silently fail.
|
||||
@@ -299,12 +299,12 @@ ___
|
||||
When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
|
||||
automatically picked up by webpack and built.
|
||||
|
||||
If you add or remove any components from the Riot skin, you will need to rebuild
|
||||
If you add or remove any components from the Element skin, you will need to rebuild
|
||||
the skin's index by running, `yarn reskindex`.
|
||||
|
||||
If any of these steps error with, `file table overflow`, you are probably on a mac
|
||||
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
|
||||
You'll need to do this in each new terminal you open before building Riot.
|
||||
You'll need to do this in each new terminal you open before building Element.
|
||||
|
||||
Running the tests
|
||||
-----------------
|
||||
@@ -336,7 +336,7 @@ To add a new translation, head to the [translating doc](docs/translating.md).
|
||||
|
||||
For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
||||
|
||||
[<img src="https://translate.riot.im/widgets/riot-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.riot.im/engage/riot-web/?utm_source=widget)
|
||||
[<img src="https://translate.riot.im/widgets/element-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.riot.im/engage/element-web/?utm_source=widget)
|
||||
|
||||
Triaging issues
|
||||
===============
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"disable_guests": false,
|
||||
"disable_login_language_selector": false,
|
||||
"disable_3pid_login": false,
|
||||
"brand": "Riot",
|
||||
"brand": "Element",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"integrations_widgets_urls": [
|
||||
@@ -22,15 +22,11 @@
|
||||
"https://scalar-staging.vector.im/api",
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"defaultCountryCode": "GB",
|
||||
"showLabsSettings": false,
|
||||
"features": {
|
||||
"feature_new_spinner": "labs",
|
||||
"feature_pinning": "labs",
|
||||
"feature_custom_status": "labs",
|
||||
"feature_custom_tags": "labs",
|
||||
"feature_state_counters": "labs"
|
||||
"feature_new_spinner": false
|
||||
},
|
||||
"default_federate": true,
|
||||
"default_theme": "light",
|
||||
|
||||
@@ -4,13 +4,13 @@ Configuration
|
||||
You can configure the app by copying `config.sample.json` to
|
||||
`config.json` and customising it:
|
||||
|
||||
For a good example, see https://riot.im/develop/config.json.
|
||||
For a good example, see https://develop.element.io/config.json.
|
||||
|
||||
1. `default_server_config` sets the default homeserver and identity server URL for
|
||||
Riot to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
|
||||
Element to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
|
||||
with added support for a `server_name` under the `m.homeserver` section to display
|
||||
a custom homeserver name. Alternatively, the config can contain a `default_server_name`
|
||||
instead which is where Riot will go to get that same object, although this option is
|
||||
instead which is where Element will go to get that same object, although this option is
|
||||
deprecated - see the `.well-known` link above for more information on using this option.
|
||||
Note that the `default_server_name` is used to get a complete server configuration
|
||||
whereas the `server_name` in the `default_server_config` is for display purposes only.
|
||||
@@ -18,16 +18,16 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
`default_is_url`, however these are deprecated. They are maintained for backwards
|
||||
compatibility with older configurations. `default_is_url` is respected only
|
||||
if `default_hs_url` is used.
|
||||
* Riot will fail to load if a mix of `default_server_config`, `default_server_name`, or
|
||||
* Element will fail to load if a mix of `default_server_config`, `default_server_name`, or
|
||||
`default_hs_url` is specified. When multiple sources are specified, it is unclear
|
||||
which should take priority and therefore the application cannot continue.
|
||||
* As of Riot 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or
|
||||
exposed to the user in the `labs` section of settings. The available
|
||||
optional experimental features vary from release to release and are [documented](labs.md). The feature flag process is
|
||||
[documented](feature-flags.md) as well.
|
||||
1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled
|
||||
or present. Useful for getting at settings which may be otherwise hidden.
|
||||
* As of Element 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||
1. `features`: Lookup of optional features that may be force-enabled (`true`) or force-disabled (`false`).
|
||||
When features are not listed here, their defaults will be used, and users can turn them on/off if `showLabsSettings`
|
||||
allows them to. The available optional experimental features vary from release to release and are
|
||||
[documented](labs.md). The feature flag process is [documented](feature-flags.md) as well.
|
||||
1. `showLabsSettings`: Shows the "labs" tab of user settings. Useful to allow users to turn on experimental features
|
||||
they might not otherwise have access to.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
homeserver know what email template to use when talking to you.
|
||||
1. `branding`: Configures various branding and logo details, such as:
|
||||
@@ -42,7 +42,7 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
1. `adminMessageMD`: An extra message to show on the reporting dialog to
|
||||
mention homeserver-specific policies. Accepts Markdown.
|
||||
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
|
||||
server is not Riot and normally not your homeserver either. The integration server settings
|
||||
server is not Element and normally not your homeserver either. The integration server settings
|
||||
may be left blank to disable integrations.
|
||||
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
|
||||
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
|
||||
@@ -65,10 +65,10 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
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
|
||||
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
|
||||
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
|
||||
1. `embeddedPages`: Configures the pages displayed in portions of Element that
|
||||
embed static files, such as:
|
||||
1. `welcomeUrl`: Initial content shown on the outside of the app when not
|
||||
logged in. Defaults to `welcome.html` supplied with Riot.
|
||||
logged in. Defaults to `welcome.html` supplied with Element.
|
||||
1. `homeUrl`: Content shown on the inside of the app when a specific room is
|
||||
not selected. By default, no home page is configured. If one is set, a
|
||||
button to access it will be shown in the top left menu.
|
||||
@@ -80,7 +80,7 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
is special cased to the `default_theme` in the config file).
|
||||
1. `disable_custom_urls`: disallow the user to change the
|
||||
default homeserver when signing up or logging in.
|
||||
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
|
||||
1. `permalinkPrefix`: Used to change the URL that Element generates permalinks with.
|
||||
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
|
||||
Set this to your Riot instance URL if you run an unfederated server (eg:
|
||||
"https://riot.example.org").
|
||||
@@ -103,14 +103,14 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
Defaults to true (room federation enabled).
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Riot
|
||||
appear in some websites like Facebook, and indeed Riot itself. This has to be
|
||||
hosted on riot.im. This is the image used if links to your copy of Element
|
||||
appear in some websites like Facebook, and indeed Element itself. This has to be
|
||||
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
|
||||
not possible for this to be an option in config.json. If you'd like to change
|
||||
it, you can build Riot, but run
|
||||
it, you can build Element, but run
|
||||
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
each time you download a new version of Element.
|
||||
|
||||
Identity servers
|
||||
================
|
||||
@@ -119,10 +119,10 @@ The identity server is used for inviting other users to a room via third party
|
||||
identifiers like emails and phone numbers. It is not used to store your password
|
||||
or account information.
|
||||
|
||||
As of Riot 1.4.0, all identity server functions are optional and you are
|
||||
As of Element 1.4.0, all identity server functions are optional and you are
|
||||
prompted to agree to terms before data is sent to the identity server.
|
||||
|
||||
Riot will check multiple sources when looking for an identity server to use in
|
||||
Element will check multiple sources when looking for an identity server to use in
|
||||
the following order of preference:
|
||||
|
||||
1. The identity server set in the user's account data
|
||||
@@ -132,7 +132,7 @@ the following order of preference:
|
||||
login
|
||||
3. The identity server provided by the Riot config file
|
||||
|
||||
If none of these sources have an identity server set, then Riot will prompt the
|
||||
If none of these sources have an identity server set, then Element will prompt the
|
||||
user to set an identity server first when attempting to use features that
|
||||
require one.
|
||||
|
||||
|
||||
32
docs/e2ee.md
@@ -1,16 +1,42 @@
|
||||
# End to end encryption by default
|
||||
|
||||
By default, Riot will create encrypted DM rooms if the user you are chatting with has keys uploaded on their account.
|
||||
For private room creation, Riot will default to encryption on but give you the choice to opt-out.
|
||||
By default, Element will create encrypted DM rooms if the user you are chatting with has keys uploaded on their account.
|
||||
For private room creation, Element will default to encryption on but give you the choice to opt-out.
|
||||
|
||||
## Disabling encryption by default
|
||||
|
||||
Set the following on your homeserver's
|
||||
`/.well-known/matrix/client` config:
|
||||
|
||||
```json
|
||||
{
|
||||
"im.vector.riot.e2ee": {
|
||||
"io.element.e2ee": {
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Secure backup
|
||||
|
||||
By default, Element strongly encourages (but does not require) users to set up
|
||||
Secure Backup so that cross-signing identity key and message keys can be
|
||||
recovered in case of a disaster where you lose access to all active devices.
|
||||
|
||||
## Requiring secure backup
|
||||
|
||||
To require Secure Backup to be configured before Element can be used, set the
|
||||
following on your homeserver's `/.well-known/matrix/client` config:
|
||||
|
||||
```json
|
||||
{
|
||||
"io.element.e2ee": {
|
||||
"secure_backup_required": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Compatibility
|
||||
|
||||
The settings above were first proposed under a `im.vector.riot.e2ee` key, which
|
||||
is now deprecated. Element will check for either key, preferring
|
||||
`io.element.e2ee` if both exist.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Feature flags
|
||||
|
||||
When developing new features for Riot, we use feature flags to give us more
|
||||
When developing new features for Element, we use feature flags to give us more
|
||||
flexibility and control over when and where those features are enabled.
|
||||
|
||||
For example, flags make the following things possible:
|
||||
@@ -35,7 +35,7 @@ clients commit to doing the associated clean up work once a feature stabilises.
|
||||
When starting work on a feature, we should create a matching feature flag:
|
||||
|
||||
1. Add a new
|
||||
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
|
||||
of the form:
|
||||
```js
|
||||
"feature_cats": {
|
||||
@@ -47,17 +47,9 @@ When starting work on a feature, we should create a matching feature flag:
|
||||
```
|
||||
2. Check whether the feature is enabled as appropriate:
|
||||
```js
|
||||
SettingsStore.isFeatureEnabled("feature_cats")
|
||||
SettingsStore.getValue("feature_cats")
|
||||
```
|
||||
3. Add the feature to the set of labs on
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json):
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "labs"
|
||||
},
|
||||
```
|
||||
4. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
3. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
|
||||
With these steps completed, the feature is disabled by default, but can be
|
||||
enabled on develop and nightly by interested users for testing.
|
||||
@@ -67,7 +59,7 @@ The following lists a few common options.
|
||||
|
||||
## Enabling by default on develop and nightly
|
||||
|
||||
Set the feature to `enable` in the
|
||||
Set the feature to `true` in the
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and
|
||||
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json)
|
||||
@@ -75,34 +67,37 @@ configs:
|
||||
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "enable"
|
||||
"feature_cats": true
|
||||
},
|
||||
```
|
||||
|
||||
## Enabling by default on staging, app, and release
|
||||
|
||||
Set the feature to `enable` in the
|
||||
Set the feature to `true` in the
|
||||
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
|
||||
and
|
||||
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
|
||||
configs.
|
||||
|
||||
**Warning:** While this does mean the feature is enabled by default for
|
||||
https://riot.im and official Riot Desktop builds, it will not be enabled by
|
||||
default for self-hosted installs, custom desktop builds, etc. To cover those
|
||||
cases as well, the best options at the moment are converting to a regular
|
||||
setting defaulted on or to remove the flag. Simply enabling the existing flag by
|
||||
default in `Settings.js`
|
||||
[does not work currently](https://github.com/vector-im/riot-web/issues/10360).
|
||||
**Note:** The above will only enable the feature for https://app.element.io and official Element
|
||||
Desktop builds. It will not be enabled for self-hosted installed, custom desktop builds, etc. To
|
||||
cover these cases, change the setting's `default` in `Settings.ts` to `true`.
|
||||
|
||||
## Feature deployed successfully
|
||||
|
||||
Once we're confident that a feature is working well, we should remove the flag:
|
||||
Once we're confident that a feature is working well, we should remove or convert the flag.
|
||||
|
||||
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
2. Remove all `isFeatureEnabled` lines that test for the feature's setting
|
||||
If the feature is meant to be turned off/on by the user:
|
||||
1. Remove `isFeature` from the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
|
||||
2. Change the `default` to `true` (if desired).
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
4. Celebrate! 🥳
|
||||
|
||||
If the feature is meant to be forced on (non-configurable):
|
||||
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
|
||||
2. Remove all `getValue` lines that test for the feature.
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. If applicable, remove the feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json),
|
||||
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json),
|
||||
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json),
|
||||
@@ -110,26 +105,3 @@ Once we're confident that a feature is working well, we should remove the flag:
|
||||
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
|
||||
configs
|
||||
5. Celebrate! 🥳
|
||||
|
||||
## Convert to a regular setting (optional)
|
||||
|
||||
Sometimes we decide a feature should always be user-controllable as a setting
|
||||
even after it has been fully deployed. In that case, we would craft a new,
|
||||
regular setting:
|
||||
|
||||
1. Remove the feature flag from
|
||||
[settings](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
and add a regular setting with the appropriate levels for your feature
|
||||
2. Replace the `isFeatureEnabled` lines with `getValue` or similar calls
|
||||
according to the [settings
|
||||
docs](https://github.com/matrix-org/matrix-react-sdk/blob/develop/docs/settings.md)
|
||||
(checking carefully, as we may want a different mix of code paths when the
|
||||
feature is always present but gated by a setting)
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json),
|
||||
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json),
|
||||
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json),
|
||||
and
|
||||
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
|
||||
configs
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Jitsi wrapper developer docs
|
||||
|
||||
*If you're looking for information on how to set up Jitsi in your Riot, see
|
||||
*If you're looking for information on how to set up Jitsi in your Element, see
|
||||
[jitsi.md](./jitsi.md) instead.*
|
||||
|
||||
These docs are for developers wondering how the different conference buttons work
|
||||
within Riot. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
|
||||
within Element. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
|
||||
|
||||
## Brief introduction to widgets
|
||||
|
||||
@@ -17,8 +17,8 @@ in the react-sdk), though for some widgets special integration can be done. v2 w
|
||||
have a `data` object which helps achieve that special integration, though v1 widgets
|
||||
are best iframed and left alone.
|
||||
|
||||
Widgets have a `postMessage` API they can use to interact with Riot, which also allows
|
||||
Riot to interact with them. Typically this is most used by the sticker picker (an
|
||||
Widgets have a `postMessage` API they can use to interact with Element, which also allows
|
||||
Element to interact with them. Typically this is most used by the sticker picker (an
|
||||
account-level widget), though widgets like the Jitsi widget will request permissions to
|
||||
get 'stuck' into the room list during a conference.
|
||||
|
||||
@@ -28,7 +28,7 @@ Widgets can be added with the `/addwidget <url>` command.
|
||||
|
||||
Integration managers (like Scalar and Dimension) are accessible via the 4 squares in
|
||||
the top right of the room and provide a simple UI over top of bridges, bots, and other
|
||||
stuff to plug into a room. They are a separate service to Riot and are thus iframed
|
||||
stuff to plug into a room. They are a separate service to Element and are thus iframed
|
||||
in a dialog as well. They also have a `postMessage` API they can use to interact with
|
||||
the client to create things like widgets, give permissions to bridges, and generally
|
||||
set everything up for the integration the user is working with.
|
||||
@@ -51,7 +51,7 @@ over `postMessage`, even if they aren't going to be using the widget APIs).
|
||||
|
||||
Widgets added with the `/addwidget` command will *not* be wrapped as they are not going
|
||||
through an integration manager. The widgets themselves *should* also work outside of
|
||||
Riot. Widgets currently have a "pop out" button which opens them in a new tab and
|
||||
Element. Widgets currently have a "pop out" button which opens them in a new tab and
|
||||
therefore have no connection back to Riot.
|
||||
|
||||
## Jitsi widgets from integration managers
|
||||
@@ -65,27 +65,27 @@ server they specified in their config.json - this is expected.
|
||||
Some integration managers allow the user to change the conference name while others
|
||||
will generate one for the user.
|
||||
|
||||
## Jitsi widgets generated by Riot itself
|
||||
## Jitsi widgets generated by Element itself
|
||||
|
||||
When the user clicks on the call buttons by the composer, the integration manager is
|
||||
not involved in the slightest. Instead, Riot itself generates a widget event, this time
|
||||
not involved in the slightest. Instead, Element itself generates a widget event, this time
|
||||
using the config.json parameters, and publishes that to the room. If there's only two
|
||||
people in the room, a plain WebRTC call is made instead of using a widget at all - these
|
||||
are defined in the Matrix specification.
|
||||
|
||||
The Jitsi widget created by Riot uses a local `jitsi.html` wrapper (or one hosted by
|
||||
`https://riot.im/app` for desktop users or those on non-https domains) as the widget
|
||||
`url`. The wrapper has some basic functionality for talking to Riot to ensure the
|
||||
The Jitsi widget created by Element uses a local `jitsi.html` wrapper (or one hosted by
|
||||
`https://app.element.io` for desktop users or those on non-https domains) as the widget
|
||||
`url`. The wrapper has some basic functionality for talking to Element to ensure the
|
||||
required `postMessage` calls are fulfilled.
|
||||
|
||||
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
|
||||
client .well-known data.
|
||||
|
||||
## The Jitsi wrapper in Riot
|
||||
## The Jitsi wrapper in Element
|
||||
|
||||
Whenever Riot sees a Jitsi widget, it ditches the `url` and instead replaces it with
|
||||
Whenever Element sees a Jitsi widget, it ditches the `url` and instead replaces it with
|
||||
its local wrapper, much like what it would do when creating a widget. However, instead
|
||||
of using one from riot.im/app, it will use one local to the client instead.
|
||||
of using one from [app.element.io](https://app.element.io), it will use one local to the client instead.
|
||||
|
||||
The wrapper is used to provide a consistent experience to users, as well as being faster
|
||||
and less risky to load. The local wrapper URL is populated with the conference information
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Jitsi in Riot
|
||||
# Jitsi in Element
|
||||
|
||||
Riot uses [Jitsi](https://jitsi.org/) for conference calls, which provides options for
|
||||
Element uses [Jitsi](https://jitsi.org/) for conference calls, which provides options for
|
||||
self-hosting your own server and supports most major platforms.
|
||||
|
||||
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
|
||||
@@ -14,13 +14,13 @@ will add a Jitsi widget which allows anyone in the room to join.
|
||||
Integration managers (available through the 4 squares in the top right of the room) may
|
||||
provide their own approaches for adding Jitsi widgets.
|
||||
|
||||
## Configuring Riot to use your self-hosted Jitsi server
|
||||
## Configuring Element to use your self-hosted Jitsi server
|
||||
|
||||
Riot will use the Jitsi server that is embedded in the widget, even if it is not the
|
||||
Element will use the Jitsi server that is embedded in the widget, even if it is not the
|
||||
one you configured. This is because conference calls must be held on a single Jitsi
|
||||
server and cannot be split over multiple servers.
|
||||
|
||||
However, you can configure Riot to *start* a conference with your Jitsi server by adding
|
||||
However, you can configure Element to *start* a conference with your Jitsi server by adding
|
||||
to your [config](./config.md) the following:
|
||||
```json
|
||||
{
|
||||
@@ -30,13 +30,13 @@ to your [config](./config.md) the following:
|
||||
}
|
||||
```
|
||||
|
||||
The default is `jitsi.riot.im` (a free service offered by Riot), and the demo site for
|
||||
The default is `jitsi.riot.im` (a free service offered by Element), and the demo site for
|
||||
Jitsi uses `meet.jit.si` (also free).
|
||||
|
||||
Once you've applied the config change, refresh Riot and press the call button. This
|
||||
Once you've applied the config change, refresh Element and press the call button. This
|
||||
should start a new conference on your Jitsi server.
|
||||
|
||||
**Note**: The widget URL will point to a `jitsi.html` page hosted by Riot. The Jitsi
|
||||
**Note**: The widget URL will point to a `jitsi.html` page hosted by Element. The Jitsi
|
||||
domain will appear later in the URL as a configuration parameter.
|
||||
|
||||
**Hint**: If you want everyone on your homeserver to use the same Jitsi server by
|
||||
@@ -50,9 +50,24 @@ default, and you are using riot-web 1.6 or newer, set the following on your home
|
||||
}
|
||||
```
|
||||
|
||||
## Mobile app support
|
||||
## Element Android
|
||||
|
||||
Currently the Riot mobile apps do not support custom Jitsi servers and will instead
|
||||
Element Android (1.0.5+) supports custom Jitsi domains, similar to Element Web above.
|
||||
|
||||
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
|
||||
calls work directly between clients or via TURN servers configured on the respective
|
||||
homeservers.
|
||||
|
||||
For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/vector-im/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`.
|
||||
The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.xml` (jitsi.riot.im)
|
||||
|
||||
For active Jitsi widgets in the room, a native Jitsi widget UI is created and points to the instance specified in the `domain` key of the widget content data.
|
||||
|
||||
Element Android manages allowed native widgets permissions a bit differently than web widgets (as the data shared are different and never shared with the widget URL). For Jitsi widgets, permissions are requested only once per domain (consent saved in account data).
|
||||
|
||||
## Element iOS
|
||||
|
||||
Currently the Element mobile apps do not support custom Jitsi servers and will instead
|
||||
use the default `jitsi.riot.im` server. When users on the mobile apps join the call,
|
||||
they will be joining a different conference which has the same name, but not the same
|
||||
participants. This is a known bug and which needs to be fixed.
|
||||
|
||||
35
docs/labs.md
@@ -1,8 +1,8 @@
|
||||
# Labs features
|
||||
|
||||
If Labs is enabled in the [Riot config](config.md), you can enable some of these features by going
|
||||
If Labs is enabled in the [Element config](config.md), you can enable some of these features by going
|
||||
to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
|
||||
[#riot-web:matrix.org](https://matrix.to/#/#riot-web:matrix.org) for more information.
|
||||
[#element-web:matrix.org](https://matrix.to/#/#element-web:matrix.org) for more information.
|
||||
|
||||
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
|
||||
dropped. Ask in the room if you are unclear about any details here.**
|
||||
@@ -26,7 +26,7 @@ your avatar next to the message composer.
|
||||
An experimental approach for dealing with custom tags. Custom tags will appear in the bottom portion
|
||||
of the community filter panel.
|
||||
|
||||
Setting custom tags is not supported by Riot.
|
||||
Setting custom tags is not supported by Element.
|
||||
|
||||
## Render simple counters in room header (`feature_state_counters`)
|
||||
|
||||
@@ -53,7 +53,7 @@ That's it. Now should see your new counter under the header.
|
||||
|
||||
## Multiple integration managers (`feature_many_integration_managers`)
|
||||
|
||||
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
|
||||
Exposes a way to access all the integration managers known to Element. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
|
||||
|
||||
## New ways to ignore people (`feature_mjolnir`)
|
||||
|
||||
@@ -88,26 +88,21 @@ person is online.
|
||||
|
||||
## Custom themes (`feature_custom_themes`)
|
||||
|
||||
Custom themes are possible through Riot's [theme support](./theming.md), though
|
||||
normally these themes need to be defined in the config for Riot. This labs flag
|
||||
Custom themes are possible through Element's [theme support](./theming.md), though
|
||||
normally these themes need to be defined in the config for Element. This labs flag
|
||||
adds an ability for end users to add themes themselves by using a URL to the JSON
|
||||
theme definition.
|
||||
|
||||
For some sample themes, check out [aaronraimist/riot-web-themes](https://github.com/aaronraimist/riot-web-themes).
|
||||
For some sample themes, check out [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes).
|
||||
|
||||
## New room list
|
||||
## Message preview tweaks
|
||||
|
||||
A complete rewrite of the room list is underway to increase performance, stability,
|
||||
and general usability.
|
||||
To enable message previews for reactions in all rooms, enable `feature_roomlist_preview_reactions_all`.
|
||||
To enable message previews for reactions in DMs, enable `feature_roomlist_preview_reactions_dms`, ignored when it is enabled for all rooms.
|
||||
|
||||
In the event the new room list needs to be disabled, add this to your config.json:
|
||||
```json
|
||||
{
|
||||
"settingDefaults": {
|
||||
"feature_new_room_list": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Note**: In a future release the new room list will not be optional.
|
||||
## Communities v2 prototyping (`feature_communities_v2_prototypes`) [In Development]
|
||||
|
||||
**This is a highly experimental implementation for parts of the communities v2 experience.** It does not
|
||||
represent what communities v2 will look/feel like and can/will change without notice. Due to the early
|
||||
stages this feature is in and the requirement for a compatible homeserver, we will not be accepting issues
|
||||
or feedback for this functionality at this time.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Memory leaks
|
||||
|
||||
Riot usually emits slow behaviour just before it is about to crash. Getting a
|
||||
Element usually emits slow behaviour just before it is about to crash. Getting a
|
||||
memory snapshot (below) just before that happens is ideal in figuring out what
|
||||
is going wrong.
|
||||
|
||||
@@ -14,14 +14,14 @@ this happens though so we can try and narrow down what might have gone wrong.
|
||||
## Memory profiles/snapshots
|
||||
|
||||
When investigating memory leaks/problems it's usually important to compare snapshots
|
||||
from different points in the Riot session lifecycle. Most importantly, a snapshot
|
||||
from different points in the Element session lifecycle. Most importantly, a snapshot
|
||||
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
|
||||
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
|
||||
roughly 30-60 minutes after starting Element is a good time to establish "normal"
|
||||
memory usage for the app - anything after that is at risk of hiding the memory leak
|
||||
and anything newer is still in the warmup stages of the app.
|
||||
|
||||
**Memory profiles can contain sensitive information.** If you are submitting a memory
|
||||
profile to us for debugging purposes, please pick the appropriate Riot developer and
|
||||
profile to us for debugging purposes, please pick the appropriate Element developer and
|
||||
send them over an encrypted private message. *Do not share your memory profile in
|
||||
public channels or with people you do not trust.*
|
||||
|
||||
@@ -42,7 +42,7 @@ While the profile is in progress, the tab might be frozen or unresponsive.
|
||||
|
||||
1. Press CTRL+SHIFT+I (I as in eye).
|
||||
2. Click the Memory tab.
|
||||
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
|
||||
3. Select "Heap Snapshot" and the app.element.io VM instance (not the indexeddb one).
|
||||
4. Click "Take Snapshot".
|
||||
5. Wait a bit (coffee is a good option).
|
||||
6. When the save button appears on the left side of the panel, click it to save the
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
# Native Node Modules
|
||||
|
||||
For some features, the desktop version of Riot can make use of native Node
|
||||
For some features, the desktop version of Element can make use of native Node
|
||||
modules. These allow Riot to integrate with the desktop in ways that a browser
|
||||
cannot.
|
||||
|
||||
While native modules enable powerful new features, they must be complied for
|
||||
each operating system. For official Riot releases, we will always build these
|
||||
each operating system. For official Element releases, we will always build these
|
||||
modules from source to ensure we can trust the compiled output. In the future,
|
||||
we may offer a pre-compiled path for those who want to use these features in a
|
||||
custom build of Riot without installing the various build tools required.
|
||||
custom build of Element without installing the various build tools required.
|
||||
|
||||
Do note that compiling a module for a particular operating system
|
||||
(Linux/macOS/Windows) will need to be done on that operating system.
|
||||
Cross-compiling from a host OS for a different target OS may be possible, but
|
||||
we don't support this flow with Riot dependencies at this time.
|
||||
we don't support this flow with Element dependencies at this time.
|
||||
|
||||
At the moment, we need to make some changes to the Riot release process before
|
||||
At the moment, we need to make some changes to the Element release process before
|
||||
we can support native Node modules at release time, so these features are
|
||||
currently disabled by default until that is resolved. The following sections
|
||||
explain the manual steps you can use with a custom build of Riot to enable
|
||||
explain the manual steps you can use with a custom build of Element to enable
|
||||
these features if you'd like to try them out.
|
||||
|
||||
## Adding Seshat for search in E2E encrypted rooms
|
||||
@@ -53,7 +53,7 @@ Please make sure to include all the `--` as well as the `--release` command line
|
||||
switch at the end. Modify your electron version accordingly depending on the
|
||||
version that is installed on your system.
|
||||
|
||||
After this is done the Electron version of Riot can be run from the main folder
|
||||
After this is done the Electron version of Element can be run from the main folder
|
||||
as usual using:
|
||||
|
||||
yarn electron
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Review Guidelines
|
||||
|
||||
The following summarises review guidelines that we follow for pull requests in
|
||||
Riot Web and other supporting repos. These are just guidelines (not strict
|
||||
Element Web and other supporting repos. These are just guidelines (not strict
|
||||
rules) and may be updated over time.
|
||||
|
||||
## Code Review
|
||||
@@ -58,7 +58,7 @@ When reviewing code, here are some things we look for and also things we avoid:
|
||||
|
||||
## Design and Product Review
|
||||
|
||||
We want to ensure that all changes to Riot fit with our design and product
|
||||
We want to ensure that all changes to Element fit with our design and product
|
||||
vision. We often request review from those teams so they can provide their
|
||||
perspective.
|
||||
|
||||
@@ -72,11 +72,11 @@ functionality is:
|
||||
|
||||
As it can be difficult to review design work from looking at just the changed
|
||||
files in a PR, authors should be prepared for Design and / or Product teams to
|
||||
request a link to an ad-hoc build of Riot (hosted anywhere) that can be used for
|
||||
request a link to an ad-hoc build of Element (hosted anywhere) that can be used for
|
||||
the review. In the future, we [hope to automate
|
||||
this](https://github.com/vector-im/riot-web/issues/12624) for every PR.
|
||||
|
||||
Before starting work on a feature, it's best to ensure your plan aligns well
|
||||
with our vision for Riot. Please chat with the team in
|
||||
[#riot-dev:matrix.org](https://matrix.to/#/#riot-dev:matrix.org) before you
|
||||
with our vision for Element. Please chat with the team in
|
||||
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before you
|
||||
start so we can ensure it's something we'd be willing to merge.
|
||||
|
||||
@@ -5,14 +5,14 @@ matrix-react-sdk
|
||||
- base CSS
|
||||
- all the components needed to build a workable app (including the top layer)
|
||||
|
||||
riot-web: the riot skin
|
||||
- riot-specific classes (e.g. login header/footer)
|
||||
- riot-specific themes
|
||||
element-web: the Element skin
|
||||
- Element-specific classes (e.g. login header/footer)
|
||||
- Element-specific themes
|
||||
- light
|
||||
- dark
|
||||
|
||||
i.e. the only things which should go into riot-web are bits which apply vector-specific skinning
|
||||
specifically "Stuff that any other brand would not want to use. (e.g. riot logos, links, T&Cs)"
|
||||
i.e. the only things which should go into element-web are bits which apply vector-specific skinning
|
||||
specifically "Stuff that any other brand would not want to use. (e.g. Element logos, links, T&Cs)"
|
||||
- Questions:
|
||||
- Electron app? (should probably be a separate repo in its own right? but might as well go here for now)
|
||||
- index.html & index.js? (should be in matrix-react-sdk, given the SDK is useless without them?)
|
||||
@@ -21,7 +21,7 @@ ideally matrix-react-sdk itself should ship with a default skin which actually w
|
||||
|
||||
status skin (can go in the same app for now)
|
||||
- has status theme
|
||||
- which inherits from riot light theme
|
||||
- which inherits from Element light theme
|
||||
- how do we share graphics between skins?
|
||||
- shove them into react-sdk, or...
|
||||
- guess we do ../../vector/img
|
||||
@@ -64,5 +64,5 @@ random thoughts;
|
||||
-----------------
|
||||
|
||||
Immediate plan for Status:
|
||||
* Implement it as a theme for the riot skin
|
||||
* Implement it as a theme for the Element skin
|
||||
* Ideally move skins to a sensible level (possibly even including src?)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
Theming Riot
|
||||
Theming Element
|
||||
============
|
||||
|
||||
Themes are a very basic way of providing simple alternative look & feels to the
|
||||
riot-web app via CSS & custom imagery.
|
||||
Element app via CSS & custom imagery.
|
||||
|
||||
They are *NOT* co be confused with 'skins', which describe apps which sit on top
|
||||
of matrix-react-sdk - e.g. in theory Riot itself is a react-sdk skin.
|
||||
As of Jan 2017, skins are not fully supported; riot is the only available skin.
|
||||
of matrix-react-sdk - e.g. in theory Element itself is a react-sdk skin.
|
||||
As of Jan 2017, skins are not fully supported; Element is the only available skin.
|
||||
|
||||
To define a theme for Riot:
|
||||
To define a theme for Element:
|
||||
|
||||
1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
|
||||
2. Fork `src/skins/vector/css/themes/dark.scss` to be `teal.scss`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# How to translate riot-web (Dev Guide)
|
||||
# How to translate Element (Dev Guide)
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
|
||||
- Latest LTS version of Node.js installed
|
||||
- Be able to understand English
|
||||
- Be able to understand the language you want to translate riot-web into
|
||||
- Be able to understand the language you want to translate Element into
|
||||
|
||||
## Translating strings vs. marking strings for translation
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# How to translate riot-web
|
||||
# How to translate Element
|
||||
|
||||
## Requirements
|
||||
|
||||
- Web Browser
|
||||
- Be able to understand English
|
||||
- Be able to understand the language you want to translate riot-web into
|
||||
- Be able to understand the language you want to translate Element into
|
||||
|
||||
## Step 0: Join #riotweb-translations:matrix.org
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
2. After registering check if you got an email to verify your account and click the link (if there is none head to step 1.4)
|
||||
3. Log into weblate
|
||||
4. Head to https://translate.riot.im/accounts/profile/ and select the languages you know and maybe another language you know too.
|
||||
6. Head to https://translate.riot.im/accounts/profile/#subscriptions and select Riot Web as Project
|
||||
6. Head to https://translate.riot.im/accounts/profile/#subscriptions and select Element Web as Project
|
||||
|
||||
## How to check if your language already is being translated
|
||||
|
||||
@@ -50,7 +50,7 @@ The yellow button has to be used if you are unsure about the translation but you
|
||||
|
||||
### What are "%(something)s"?
|
||||
|
||||
These things are variables that are expanded when displayed by Riot. They can be room names, usernames or similar. If you find one, you can move to the right place for your language, but not delete it as the variable will be missing if you do.
|
||||
These things are variables that are expanded when displayed by Element. They can be room names, usernames or similar. If you find one, you can move to the right place for your language, but not delete it as the variable will be missing if you do.
|
||||
|
||||
A special case is `%(urlStart)s` and `%(urlEnd)s` which are used to mark the beginning of a hyperlink (i.e. `<a href="/somewhere">` and `</a>`. You must keep these markers surrounding the equivalent string in your language that needs to be hyperlinked.
|
||||
|
||||
|
||||
@@ -10,14 +10,13 @@
|
||||
"https://scalar-staging.vector.im/api",
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"features": {
|
||||
},
|
||||
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"showLabsSettings": false,
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1,
|
||||
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
|
||||
"policyUrl": "https://element.io/cookie-policy"
|
||||
},
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
@@ -30,11 +29,11 @@
|
||||
},
|
||||
"terms_and_conditions_links": [
|
||||
{
|
||||
"url": "https://riot.im/privacy",
|
||||
"url": "https://element.io/privacy",
|
||||
"text": "Privacy Policy"
|
||||
},
|
||||
{
|
||||
"url": "https://matrix.org/legal/riot-im-cookie-policy",
|
||||
"url": "https://element.io/cookie-policy",
|
||||
"text": "Cookie Policy"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -10,25 +10,13 @@
|
||||
"https://scalar-staging.vector.im/api",
|
||||
"https://scalar-staging.riot.im/scalar/api"
|
||||
],
|
||||
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"features": {
|
||||
"feature_new_spinner": "labs",
|
||||
"feature_pinning": "labs",
|
||||
"feature_custom_status": "labs",
|
||||
"feature_custom_tags": "labs",
|
||||
"feature_state_counters": "labs",
|
||||
"feature_many_integration_managers": "labs",
|
||||
"feature_mjolnir": "labs",
|
||||
"feature_dm_verification": "labs",
|
||||
"feature_bridge_state": "labs",
|
||||
"feature_presence_in_room_list": "labs",
|
||||
"feature_custom_themes": "labs"
|
||||
},
|
||||
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"showLabsSettings": true,
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1,
|
||||
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
|
||||
"policyUrl": "https://element.io/cookie-policy"
|
||||
},
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
@@ -41,11 +29,11 @@
|
||||
},
|
||||
"terms_and_conditions_links": [
|
||||
{
|
||||
"url": "https://riot.im/privacy",
|
||||
"url": "https://element.io/privacy",
|
||||
"text": "Privacy Policy"
|
||||
},
|
||||
{
|
||||
"url": "https://matrix.org/legal/riot-im-cookie-policy",
|
||||
"url": "https://element.io/cookie-policy",
|
||||
"text": "Cookie Policy"
|
||||
}
|
||||
]
|
||||
|
||||
21
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"version": "1.6.8",
|
||||
"version": "1.7.5",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -42,16 +42,15 @@
|
||||
"build:genfiles": "yarn reskindex && yarn build:res && yarn build:jitsi",
|
||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||
"build:compile": "babel -d lib --verbose --extensions \".ts,.js,.tsx\" src",
|
||||
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
|
||||
"build:bundle-stats": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production --json > webpack-stats.json",
|
||||
"build:bundle": "webpack --progress --bail --mode production",
|
||||
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
||||
"build:types": "tsc --emitDeclarationOnly --jsx react",
|
||||
"dist": "scripts/package.sh",
|
||||
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,riot-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
|
||||
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
|
||||
"lint": "yarn lint:types && yarn lint:ts && yarn lint:js && yarn lint:style",
|
||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||
"lint:js": "eslint src",
|
||||
"lint:ts": "echo 'We don't actually have a typescript linter at this layer because tslint is being removed from our stack. Presumably your TS is fine.'",
|
||||
"lint:types": "tsc --noEmit --jsx react",
|
||||
"lint:style": "stylelint 'res/css/**/*.scss'",
|
||||
"test": "jest"
|
||||
@@ -60,10 +59,9 @@
|
||||
"browser-request": "^0.3.3",
|
||||
"gfm.css": "^1.1.2",
|
||||
"highlight.js": "^9.13.1",
|
||||
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
||||
"matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop",
|
||||
"matrix-js-sdk": "8.2.0",
|
||||
"matrix-react-sdk": "3.3.0",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
|
||||
"postcss-easings": "^2.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.9.0",
|
||||
"react-dom": "^16.9.0",
|
||||
@@ -101,13 +99,11 @@
|
||||
"chokidar": "^3.3.1",
|
||||
"concurrently": "^4.0.1",
|
||||
"cpx": "^1.3.2",
|
||||
"cross-env": "^6.0.3",
|
||||
"css-loader": "^3.3.2",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint": "7.3.1",
|
||||
"eslint-config-matrix-org": "^0.1.2",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-flowtype": "^2.50.3",
|
||||
"eslint-plugin-jest": "^23.0.4",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"eslint-plugin-react-hooks": "^2.2.0",
|
||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||
@@ -127,6 +123,7 @@
|
||||
"modernizr": "^3.6.0",
|
||||
"node-fetch": "^2.6.0",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"postcss-easings": "^2.0.0",
|
||||
"postcss-extend": "^1.0.5",
|
||||
"postcss-hexrgba": "^2.0.0",
|
||||
"postcss-import": "^12.0.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script to perform a release of riot-web.
|
||||
# Script to perform a release of element-web.
|
||||
#
|
||||
# Requires github-changelog-generator; to install, do
|
||||
# pip install git+https://github.com/matrix-org/github-changelog-generator.git
|
||||
|
||||
@@ -74,12 +74,12 @@
|
||||
"related_applications": [
|
||||
{
|
||||
"platform": "play",
|
||||
"url": "https://play.google.com/store/apps/details?id=im.vector.alpha",
|
||||
"id": "im.vector.alpha"
|
||||
"url": "https://play.google.com/store/apps/details?id=im.vector.app",
|
||||
"id": "im.vector.app"
|
||||
},
|
||||
{
|
||||
"platform": "itunes",
|
||||
"url": "https://itunes.apple.com/gb/app/riot-open-source-team-collaboration-via-matrix/id1083446067"
|
||||
"url": "https://apps.apple.com/app/vector/id1083446067"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 732 B |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 803 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 837 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 974 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/vector-icons/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 940 B |
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Runs package.sh setting the version to git hashes of the riot-web,
|
||||
# Runs package.sh setting the version to git hashes of the element-web,
|
||||
# react-sdk & js-sdk checkouts, for the case where these dependencies
|
||||
# are git checkouts.
|
||||
|
||||
|
||||
@@ -30,6 +30,8 @@ const INCLUDE_LANGS = [
|
||||
{'value': 'is', 'label': 'íslenska'},
|
||||
{'value': 'it', 'label': 'Italiano'},
|
||||
{'value': 'ja', 'label': '日本語'},
|
||||
{'value': 'jbo', 'label': 'banjubu\'o'},
|
||||
{'value': 'kab', 'label': 'Taqbaylit'},
|
||||
{'value': 'ko', 'label': '한국어'},
|
||||
{'value': 'lt', 'label': 'Lietuvių'},
|
||||
{'value': 'lv', 'label': 'Latviešu'},
|
||||
|
||||
@@ -34,6 +34,6 @@ yarn link matrix-js-sdk
|
||||
yarn --network-timeout=100000 install
|
||||
cd ../
|
||||
|
||||
echo "Setting up riot-web with react-sdk and js-sdk packages"
|
||||
echo "Setting up element-web with react-sdk and js-sdk packages"
|
||||
yarn link matrix-js-sdk
|
||||
yarn link matrix-react-sdk
|
||||
|
||||
@@ -78,7 +78,7 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
||||
<div>
|
||||
<h2 id="step2_heading">Use Element on mobile</h2>
|
||||
<p><strong>iOS</strong> (iPhone or iPad)</p>
|
||||
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank"
|
||||
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank"
|
||||
className="mx_ClearDecoration">
|
||||
<img height="48" src="themes/element/img/download/apple.svg" alt="Apple App Store" />
|
||||
</a>
|
||||
@@ -87,7 +87,7 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
||||
className="mx_ClearDecoration">
|
||||
<img height="48" src="themes/element/img/download/google.svg" alt="Google Play Store" />
|
||||
</a>
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.alpha" target="_blank"
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.app" target="_blank"
|
||||
className="mx_ClearDecoration">
|
||||
<img height="48" src="themes/element/img/download/fdroid.svg" alt="F-Droid" />
|
||||
</a>
|
||||
|
||||
@@ -29,7 +29,8 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
|
||||
translate(s) {
|
||||
s = sanitizeHtml(_t(s));
|
||||
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
|
||||
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noreferrer noopener"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
||||
// eslint-disable-next-line max-len
|
||||
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noreferrer noopener"><img width="79" height="34" alt="Matrix" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||
const VectorAuthFooter = () => {
|
||||
const brandingConfig = SdkConfig.get().branding;
|
||||
let links = [
|
||||
{"text": "blog", "url": "https://blog.riot.im"},
|
||||
{"text": "twitter", "url": "https://twitter.com/@RiotChat"},
|
||||
{"text": "github", "url": "https://github.com/vector-im/riot-web"},
|
||||
{"text": "Blog", "url": "https://element.io/blog"},
|
||||
{"text": "Twitter", "url": "https://twitter.com/element_hq"},
|
||||
{"text": "GitHub", "url": "https://github.com/vector-im/riot-web"},
|
||||
];
|
||||
|
||||
if (brandingConfig && brandingConfig.authFooterLinks) {
|
||||
@@ -43,7 +43,7 @@ const VectorAuthFooter = () => {
|
||||
return (
|
||||
<div className="mx_AuthFooter">
|
||||
{authFooterLinks}
|
||||
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">{ _t('powered by Matrix') }</a>
|
||||
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">{ _t('Powered by Matrix') }</a>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -52,7 +52,7 @@ export default class Favicon {
|
||||
private context: CanvasRenderingContext2D;
|
||||
private icons: HTMLLinkElement[];
|
||||
|
||||
private isReady: boolean = false;
|
||||
private isReady = false;
|
||||
// callback to run once isReady is asserted, allows for a badge to be queued for when it can be shown
|
||||
private readyCb = () => {};
|
||||
|
||||
|
||||
@@ -4,8 +4,32 @@
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "تحتاج الى استخدام الاتصال الآمن (HTTPS) للسماح بمشاركة الشاشة.",
|
||||
"powered by Matrix": "مشغل بواسطة Matrix",
|
||||
"Welcome to Element": "مرحبا بك في Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] تعاون مدعوم مواسطة & دردشة لا مركزية ومشفرة",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "دردشة مشفرة غير مركزية &تطبيق تعاوني مدعوم بواسطة [matrix]",
|
||||
"Create Account": "انشاء حساب",
|
||||
"Explore rooms": "استكشف غرف المحادثات",
|
||||
"Sign In": "التسجيل"
|
||||
"Sign In": "الدخول",
|
||||
"Missing indexeddb worker script!": "منفذ السكريبت الخاص ب Indexeddb غير موجود!",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "خطأ في الاعدادات: يمكنك فقط تحديد واحد فقط من: default_server_config، default_server_name، أو default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "اعدادات خاطئة: لم يتم تحديد السيرفر الافتراضي.",
|
||||
"Your Element is misconfigured": "تطبيقك معد بطريقة خاطئة",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "اعداداتك تحتوى على بنية JSON غير صحيحة. يرجى تصحيح المشكلة واعادة تحديث الصفحة.",
|
||||
"The message from the parser is: %(message)s": "الرسالة من المدقق هي:%(message)s",
|
||||
"Invalid JSON": "JSON خاطئ",
|
||||
"Unable to load config file: please refresh the page to try again.": "لم نستطع تحميل ملف الاعداد: يرجى تحديث الصفحة للمحاولة مرة اخرى.",
|
||||
"Unexpected error preparing the app. See console for details.": "حدث خطأ غير متوقع عند تجهيز التطبيق. انظر الى منصة التحكم للمزيد من التفاصيل.",
|
||||
"Download Completed": "تم اكتمال التحميل",
|
||||
"Open": "فتح",
|
||||
"Open user settings": "فتح اعدادات المستخدم",
|
||||
"Previous/next recently visited room or community": "السابقة/اللاحقة الغرفة او المجتمع الذي تمت زيارته مؤخرا",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s سطح المكتب (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "اذهب الى المتصفح لاكمال تسجيل الدخول",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "متصفح غير متوافق",
|
||||
"Your browser can't run %(brand)s": "متصفحك لايمكنه تشغيل %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s يستخدم مزايا المتصفح المتقدمة والتي لا يدعمها متصفحك الحالي.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "يرجى تثبيت <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "يمكنك الاستمرار في استخدام متصفحك الحالي، ولكن بعض او كل المزايا ربما لا تعمل ويكون شكل التطبيق وشعورك تجاهه غير صحيح.",
|
||||
"I understand the risks and wish to continue": "ادرك المخاطر وارغب في الاستمرار",
|
||||
"Go to element.io": "اذهب الى Element.io",
|
||||
"Failed to start": "فشل الاقلاع"
|
||||
}
|
||||
|
||||
@@ -25,5 +25,11 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Може да продължите да използвате сегашния си браузър, но някои или всички функции може да се окажат неработещи, или пък външния вид на приложението да изглежда неправилен.",
|
||||
"I understand the risks and wish to continue": "Разбирам рисковете и желая да продължа",
|
||||
"Go to element.io": "Отиди на element.io",
|
||||
"Failed to start": "Неуспешно стартиране"
|
||||
"Failed to start": "Неуспешно стартиране",
|
||||
"Your Element is misconfigured": "Вашият Element не е конфигуриран правилно",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Вашата Element конфигурация съдържа невалиден JSON. Коригирайте проблема и презаредете страницата.",
|
||||
"Download Completed": "Свалянето завърши",
|
||||
"Open": "Отвори",
|
||||
"Your browser can't run %(brand)s": "Браузърът ви не може да изпълни %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия."
|
||||
}
|
||||
|
||||
@@ -14,5 +14,19 @@
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurace: je možné specifikovat pouze jednu volbu z default_server_config, default_server_name, nebo default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Neplatná konfigurace: není zadán výchozí server.",
|
||||
"Open user settings": "Otevřít uživatelské nastavení",
|
||||
"Go to your browser to complete Sign In": "Přejděte do prohlížeče a dokončete přihlášení"
|
||||
"Go to your browser to complete Sign In": "Přejděte do prohlížeče a dokončete přihlášení",
|
||||
"Your Element is misconfigured": "Váš Element je nesprávně nastaven",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaše konfigurace Elementu obsahuje nesprávná data JSON. Vyřešte prosím problém a načtěte znovu stránku.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Nepodařilo se načíst konfigurační soubor: abyste to zkusili znovu, načtěte prosím znovu stránku.",
|
||||
"Download Completed": "Stahování dokončeno",
|
||||
"Open": "Otevřít",
|
||||
"Previous/next recently visited room or community": "Předchozí/další nedávno navštívená místnost či skupina",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Nepodporovaný prohlížeč",
|
||||
"Your browser can't run %(brand)s": "Váš prohlížeč nedokáže spustit %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s využívá pokročilých funkcí prohlížeče, které ten váš nepodporuje.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Pro nejlepší zážitek si prosím nainstalujte prohlížeč <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, nebo <safariLink>Safari</safariLink>.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Můžete pokračovat v užívání vašeho současného prohlížeče, ale některé (nebo dokonce všechny) funkce nemusí fungovat a vzhled a chování aplikace nemusí být správné.",
|
||||
"I understand the risks and wish to continue": "Rozumím a přesto chci pokračovat",
|
||||
"Go to element.io": "Přejít na element.io"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"powered by Matrix": "betrieben mit Matrix",
|
||||
"Dismiss": "Ablehnen",
|
||||
"Dismiss": "Ausblenden",
|
||||
"Unknown device": "Unbekanntes Gerät",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Du musst HTTPS nutzen um einen Anruf mit Bildschirmfreigabe durchzuführen.",
|
||||
"Welcome to Element": "Willkommen bei Element",
|
||||
@@ -16,7 +16,7 @@
|
||||
"Go to your browser to complete Sign In": "Gehe zu deinem Browser, um die Anmeldung abzuschließen",
|
||||
"Open user settings": "Öffne Nutzer-Einstellungen",
|
||||
"Unable to load config file: please refresh the page to try again.": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisieren Sie die Seite, um es erneut zu versuchen.",
|
||||
"Missing indexeddb worker script!": "Indexeddb worker Skript fehlt!",
|
||||
"Missing indexeddb worker script!": "Fehlendes indexeddb Worker-Skript!",
|
||||
"Previous/next recently visited room or community": "Vorheriger/nächster kürzlich besuchter Raum oder Community",
|
||||
"Unsupported browser": "Nicht unterstützter Browser",
|
||||
"Go to element.io": "Gehe zu element.io",
|
||||
@@ -25,5 +25,12 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Bitte installiere <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, oder <safariLink>Safari</safariLink> für das beste Erlebnis.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kannst mit diesem Browser weitermachen, aber einiges könnte nicht funktionieren und die Darstellung könnte fehlerhaft sein.",
|
||||
"I understand the risks and wish to continue": "Ich verstehe die Risiken und möchte fortfahren"
|
||||
"I understand the risks and wish to continue": "Ich verstehe die Risiken und möchte fortfahren",
|
||||
"Your Element is misconfigured": "Dein Element ist fehlkonfiguriert",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Element Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
|
||||
"Download Completed": "Download fertiggestellt",
|
||||
"Open": "Öffnen",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s verwendet erweiterte Browserfunktionen, die von Ihrem aktuellen Browser nicht unterstützt werden.",
|
||||
"Your browser can't run %(brand)s": "Dein Browser kann %(brand)s nicht ausführen",
|
||||
"Powered by Matrix": "Betrieben von Matrix"
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"Unknown device": "Unknown device",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
|
||||
"powered by Matrix": "powered by Matrix",
|
||||
"Powered by Matrix": "Powered by Matrix",
|
||||
"Unsupported browser": "Unsupported browser",
|
||||
"Your browser can't run %(brand)s": "Your browser can't run %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s uses advanced browser features which aren't supported by your current browser.",
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "Iri al element.io",
|
||||
"Failed to start": "Malsukcesis starti",
|
||||
"Download Completed": "Elŝuto finiĝis",
|
||||
"Open": "Malfermi"
|
||||
"Open": "Malfermi",
|
||||
"Your Element is misconfigured": "Via Elemento estas misagordita",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Via agordaro de Elemento enhavas nevalidajn datumojn de JSON. Bonvolu korekti la problemon kaj aktualigi la paĝon.",
|
||||
"Your browser can't run %(brand)s": "Via foliumilo ne povas ruli %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s uzas specialajn funkciojn de foliumilo, kiujn via nuna foliumilo ne subtenas.",
|
||||
"Powered by Matrix": "Povigata de Matrix"
|
||||
}
|
||||
|
||||
@@ -25,5 +25,11 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Puedes seguir utilizando tu navegador actual, pero puede que algunas funcionalidades no estén disponibles o que algunas partes de la aplicación se muestren de forma incorrecta.",
|
||||
"I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar",
|
||||
"Go to element.io": "Ir a element.io",
|
||||
"Failed to start": "Fallo al iniciar"
|
||||
"Failed to start": "Fallo al iniciar",
|
||||
"Your Element is misconfigured": "Su Element está mal configurado",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Su configuración de Element contiene JSON inválido. Por favor corríjalo e inténtelo de nuevo.",
|
||||
"Download Completed": "Descarga completada",
|
||||
"Open": "Abrir",
|
||||
"Your browser can't run %(brand)s": "Su navegador es compatible con %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza funciones avanzadas no soportadas por su navegador."
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "Mine element.io lehele",
|
||||
"Failed to start": "Käivitamine ei õnnestunud",
|
||||
"Download Completed": "Allalaadimine on lõpetatud",
|
||||
"Open": "Ava"
|
||||
"Open": "Ava",
|
||||
"Your Element is misconfigured": "Sinu Element on valesti seadistatud",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Sinu Element'i seadistustes on vigased JSON-vormingus andmed. Palun paranda see viga ja lae leht uuesti.",
|
||||
"Your browser can't run %(brand)s": "%(brand)s ei toimi sinu brauseris",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s kasutab mitmeid uusi brauseri-põhiseid tehnoloogiaid, mis ei ole veel sinu veebibrauseris toetatud.",
|
||||
"Powered by Matrix": "Põhineb Matrix'il"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"Dismiss": "Baztertu",
|
||||
"powered by Matrix": "Matrix mamian",
|
||||
"powered by Matrix": "Matrix-ekin egina",
|
||||
"Unknown device": "Gailu ezezaguna",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "HTTPS erabili behar duzu sekretuak partekatzeko dei bat ezartzeko.",
|
||||
"Welcome to Element": "Ongi etorri Element mezularitzara",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Deszentralizatutako eta zifratutako txat eta elkarlana [matrix] sareari esker",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Txat eta elkarlan deszentralizatua eta zifratua [matrix] sarean",
|
||||
"Sign In": "Hasi saioa",
|
||||
"Create Account": "Sortu kontua",
|
||||
"Explore rooms": "Arakatu gelak",
|
||||
@@ -25,5 +25,12 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Zure oraingo nabigatzailea erabiltzen jarraitu dezakezu, baina ezaugarri batzuk agian ez dute funtzionatuko eta itxura desegokia izan daiteke.",
|
||||
"I understand the risks and wish to continue": "Arriskuak ulertzen ditut eta jarraitu nahi dut",
|
||||
"Go to element.io": "Joan element.io gunera",
|
||||
"Failed to start": "Huts egin du abiatzean"
|
||||
"Failed to start": "Huts egin du abiatzean",
|
||||
"Your Element is misconfigured": "Zure Element ez dago ondo konfiguratuta",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Zure Element-en konfigurazioak JSON baliogabea dauka. Mesedez, konpondu arazoa eta birkargatu orria.",
|
||||
"Download Completed": "Deskarga burututa",
|
||||
"Open": "Ireki",
|
||||
"Your browser can't run %(brand)s": "Zure nabigatzaileak ezin du %(brand)s exekutatu",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s-(e)k zure oraingo nabigatzaile honek euskarririk ematen ez dien ezaugarri aurreratuak erabiltzen ditu.",
|
||||
"Powered by Matrix": "Matrixekin egina"
|
||||
}
|
||||
|
||||
@@ -2,13 +2,35 @@
|
||||
"powered by Matrix": "قدرتیافته از ماتریکس",
|
||||
"Unknown device": "دستگاه ناشناخته",
|
||||
"Welcome to Element": "به Element خوشآمدید",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "چت مرکزگریز و رمزنگاریشده & ارائهای از ماتریکس",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "چت غیرمتمرکز، رمزنگاریشده & قدرتگرفته از ماتریکس",
|
||||
"Dismiss": "نادیده بگیر",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "شما باید از ارتباط امن HTTPS برای بهراهاندازی یک چتِ شامل به اشتراکگذاری صفحهی کامیپوتر استفاده کنید.",
|
||||
"Invalid JSON": "JSON اشتباه",
|
||||
"Open user settings": "تنظییمات کاربری",
|
||||
"Open user settings": "تنظیمات کاربر",
|
||||
"Go to your browser to complete Sign In": "برای تکمیل ورود به مرورگر خود بروید",
|
||||
"Sign In": "ورود",
|
||||
"Create Account": "ایجاد اکانت",
|
||||
"Explore rooms": "کاوش اتاق"
|
||||
"Explore rooms": "کاوش اتاق",
|
||||
"Missing indexeddb worker script!": "اسکریپت کارگر نمایه پایگاه داده از دست رفته است!",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "پیکربندی نامعتبر: فقط میتوانید یکی از default_server_config، default_server_name یا default_hs_url را مشخص کنید.",
|
||||
"Invalid configuration: no default server specified.": "پیکربندی نامعتبر: سرور پیشفرض مشخص نشده است.",
|
||||
"Your Element is misconfigured": "Element شما پیکربندی نشده است",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "پیکربندی المنت شما شامل JSON نا معتبر است. لطفا مشکل را اصلاح کنید و صفحه را بارگذاری مجدد کنید.",
|
||||
"The message from the parser is: %(message)s": "پیام از طرف تجزیه کننده: %(message)s",
|
||||
"Unable to load config file: please refresh the page to try again.": "قادر به بارگذاری فایل پیکربندی نیست: لطفا برای تلاش مجدد صفحه را تازه کنید.",
|
||||
"Unexpected error preparing the app. See console for details.": "خطای غیر منتظره در آماده سازی برنامه. کنسول را برای جزئیات مشاهده کنید.",
|
||||
"Download Completed": "بارگیری کامل شد",
|
||||
"Open": "باز",
|
||||
"Previous/next recently visited room or community": "قبلی/بعدی اتاق ها یا اجتماع های اخیرا بازدید شده",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s میزکار %(platformName)s",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s، %(osName)s",
|
||||
"Unsupported browser": "مرورگر پشتبانی نشده",
|
||||
"Your browser can't run %(brand)s": "مرورگر شما نمیتواند %(brand)s را اجرا کند",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s از ویژگی های پیشرفته مرورگر استفاده میکند که که در مرورگر فعلی شما پشتیبانی نمیشوند.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "لطفا برای تجربه بهتر <chromeLink>کروم</chromeLink>، <firefoxLink>فایرفاکس</firefoxLink>، یا <safariLink>سافاری</safariLink> را نصب کنید.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "شما میتوانید با مرورگر فعلی خود ادامه دهید، اما ممکن است برخی یا کل ویژگی ها کار نکنند و نگاه و احساس از برنامه ممکن است درست نباشد.",
|
||||
"I understand the risks and wish to continue": "از خطرات این کار آگاهم و مایلم که ادامه بدهم",
|
||||
"Go to element.io": "برو به element.io",
|
||||
"Failed to start": "مشکل در آغاز",
|
||||
"Powered by Matrix": "قدرتگرفته از ماتریکس"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Failed to start": "Käynnistys ei onnistunut",
|
||||
"Download Completed": "Lataus valmis",
|
||||
"Open": "Avaa",
|
||||
"Go to element.io": "Mene osoitteeseen riot.im"
|
||||
"Go to element.io": "Mene osoitteeseen riot.im",
|
||||
"Your Element is misconfigured": "Elementisi asetukset ovat pielessä",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element-asetuksesi sisältävät epäkelpoa JSONia. Korjaa ongelma ja lataa sivu uudelleen.",
|
||||
"Powered by Matrix": "Moottorina Matrix",
|
||||
"Your browser can't run %(brand)s": "%(brand)s ei toimi selaimessasi",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s käyttää edistyneitä selaimen ominaisuuksia, joita nykyinen selaimesi ei tue."
|
||||
}
|
||||
|
||||
@@ -27,5 +27,9 @@
|
||||
"Failed to start": "Échec au démarrage",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s pour bureau (%(platformName)s)",
|
||||
"Download Completed": "Téléchargement terminé",
|
||||
"Open": "Ouvrir"
|
||||
"Open": "Ouvrir",
|
||||
"Your Element is misconfigured": "Votre Element est mal configuré",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuration de votre Element contient du JSON invalide. Veuillez corriger le problème et recharger la page.",
|
||||
"Your browser can't run %(brand)s": "Votre navigateur ne peut pas exécuter %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne supporte pas."
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "Ir a element.io",
|
||||
"Failed to start": "Fallou o inicio",
|
||||
"Download Completed": "Descarga realizada",
|
||||
"Open": "Abrir"
|
||||
"Open": "Abrir",
|
||||
"Your Element is misconfigured": "Element non está ben configurado",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "A configuración de Element contén JSON non válido. Corrixe o problema e recarga a páxina.",
|
||||
"Your browser can't run %(brand)s": "O teu navegador non pode executar %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza características avanzadas do navegador que non están dispoñibles no teu navegador.",
|
||||
"Powered by Matrix": "Funciona grazas a Matrix"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "Irány a element.io",
|
||||
"Failed to start": "Az indítás sikertelen",
|
||||
"Download Completed": "A letöltés befejeződött",
|
||||
"Open": "Megnyitás"
|
||||
"Open": "Megnyitás",
|
||||
"Your Element is misconfigured": "Az Element hibásan van beállítva",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Az Element érvénytelen JSON-t tartalmazó konfigurációval rendelkezik. Kérlek javítsd és töltsd újra az oldalt.",
|
||||
"Your browser can't run %(brand)s": "A böngésződ nem tudja futtatni ezt: %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s haladó böngésző funkciókat használ amiket a jelenlegi böngésződ nem támogat.",
|
||||
"Powered by Matrix": "A gépházban: Matrix"
|
||||
}
|
||||
|
||||
@@ -4,5 +4,19 @@
|
||||
"Unknown device": "Óþekkt tæki",
|
||||
"Dismiss": "Hafna",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Þú verður að nota HTTPS til að hringja samtal með deilingu á skjá.",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dulritað dreifvinnsluspjall & samstarfstól keyrt með [matrix]"
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dulritað dreifvinnsluspjall & samstarfstól keyrt með [matrix]",
|
||||
"Open": "Opna",
|
||||
"Unsupported browser": "Óstuddur vafri",
|
||||
"Your browser can't run %(brand)s": "Vafri þinn geta ekki keyrt upp %(brand)s",
|
||||
"Sign In": "Skrá inn",
|
||||
"Create Account": "Stofna Reikning",
|
||||
"Explore rooms": "Kanna herbergi",
|
||||
"Missing indexeddb worker script!": "Að vanta indexeddb vinnumaður tölvuhandrit!",
|
||||
"The message from the parser is: %(message)s": "Skilaboðið frá þáttaranum er %(message)s",
|
||||
"Invalid JSON": "Ógilt JSON",
|
||||
"Download Completed": "Niðurhalið Búið",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "vinsamlegast setja upp <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eða <safariLink>Safari</safariLink> fyrir besta reynsluna.",
|
||||
"I understand the risks and wish to continue": "Ég skil áhættuna og óska að halda áfram",
|
||||
"Go to element.io": "farðu í element.io"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "Vai su element.io",
|
||||
"Failed to start": "Avvio fallito",
|
||||
"Download Completed": "Scaricamento completato",
|
||||
"Open": "Apri"
|
||||
"Open": "Apri",
|
||||
"Your Element is misconfigured": "Il tuo elemento è configurato male",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configurazione del tuo elemento contiene un JSON non valido. Correggi il problema e ricarica la pagina.",
|
||||
"Your browser can't run %(brand)s": "Il tuo browser non può eseguire %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funzionalità avanzate del browser che non sono supportate dal tuo browser attuale.",
|
||||
"Powered by Matrix": "Offerto da Matrix"
|
||||
}
|
||||
|
||||
@@ -26,5 +26,9 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s(%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "サポートされていないブラウザ",
|
||||
"Go to element.io": "element.ioへ移動",
|
||||
"Failed to start": "起動に失敗しました"
|
||||
"Failed to start": "起動に失敗しました",
|
||||
"Your Element is misconfigured": "Elementの設定が間違っています",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Elementの設定ファイルに不正なJSONが含まれています。問題を修正してからページを再読込してください。",
|
||||
"Your browser can't run %(brand)s": "このブラウザでは%(brand)sが動きません",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)sはブラウザの高度な機能を使う必要がありますが、このブラウザではその機能がサポートされていないようです。"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,36 @@
|
||||
{
|
||||
"Unknown device": "lo na'e te djuno se pilno",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": ".i la .hytytypysys. sarcu lo nu co'a vidni jorne",
|
||||
"Dismiss": "mipri",
|
||||
"powered by Matrix": ".i la nacmeimei cu cumgau",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": ".i la nacmeimei cu cumgau lo mifra je na'e se midju nu tavla je ke kansa gunka"
|
||||
"Unknown device": "se samtcise'u vau je na slabu",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": ".i lo nu do pilno la'au xy. bu ty. ty. py. sy. li'u sarcu lo nu do co'a vidni benji",
|
||||
"Dismiss": "nu mipri",
|
||||
"powered by Matrix": ".i la .meitriks. cu jicmu",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": ".i la .meitriks. cu jicmu lo nu catni be na ku je mifra tavla je ke kansa gunka",
|
||||
"Invalid JSON": ".i le veirdjeisano na drani",
|
||||
"Download Completed": ".i mo'u kibycpa",
|
||||
"Open": "nu viska",
|
||||
"%(brand)s Desktop (%(platformName)s)": ".i la'o zoi. %(brand)s .zoi samtci .i le vanbi na kibrbrauzero .i la'o zoi. %(platformName)s .zoi samcmu",
|
||||
"Go to your browser to complete Sign In": ".i do ka'e pilno pa kibrbrauzero lo nu mo'u co'a jaspu",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": ".i la'o zoi. %(appName)s .zoi samtci .i la'o zoi. %(browserName)s .zoi kibrbrauzero .i la'o zoi. %(osName)s .zoi samcmu",
|
||||
"Unsupported browser": ".i le kibrbrauzero na kakne",
|
||||
"Your browser can't run %(brand)s": ".i na ka'e pilno le kibrbrauzero lo nu pilno la'o zoi. %(brand)s .zoi",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": ".i la'o zoi. %(brand)s .zoi pilno pa na jai se kakne be le kibrbrauzero",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": ".i ko ci'erse'a <chromeLink>la .krom.</chromeLink> ja <firefoxLink>la .fairfoks.</firefoxLink> ja <safariLink>la .safaris.</safariLink>",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": ".i do ka'e za'o pilno le kibrbrauzero .i ku'i la'a spofu pa jo nai ro te pilno vau je na drani fa le jvinu",
|
||||
"I understand the risks and wish to continue": ".i mi jimpe le du'u ckape vau vau je za'o djica",
|
||||
"Go to element.io": "nu viska le se judri be zoi zoi. element.io .zoi",
|
||||
"Failed to start": ".i da nabmi fi lo nu co'a pilno",
|
||||
"Welcome to Element": ".i fi'i zo'e do pilno la .elyment.",
|
||||
"Sign In": "nu co'a jaspu",
|
||||
"Create Account": "nu pa re'u co'a jaspu",
|
||||
"Explore rooms": "nu facki le du'u ve zilbe'i",
|
||||
"Missing indexeddb worker script!": ".i na pa gunka samtci pe la'o zoi. indexeddb .zoi vanbi",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": ".i le tcimi'e vreji na drani le ka jai do'e fai gi jo nai zoi zoi. default_server_config .zoi gi zoi zoi. default_server_name .zoi gi zoi zoi. default_hs_url .zoi cmene da",
|
||||
"Invalid configuration: no default server specified.": ".i le tcimi'e vreji na drani le ka jai do'e zmicu'a fo le ka samtcise'u",
|
||||
"Your Element is misconfigured": ".i le tcimi'e be la .elyment. be'o vreji na drani",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": ".i le tcimi'e be la .elyment. be'o vreji na drani le ka veirdjeisano .i gau ko drani je ba kibycpa le kibypapri",
|
||||
"The message from the parser is: %(message)s": ".i notci fi le genturfa'i fa zoi zoi. %(message)s .zoi",
|
||||
"Unable to load config file: please refresh the page to try again.": ".i da nabmi fi lo nu samymo'i le tcimi'e vreji .i ko ba zukte le ka kibycpa le kibypapri kei le ka troci",
|
||||
"Unexpected error preparing the app. See console for details.": ".i da nabmi fi lo nu co'a ka'e pilno le samtci .i ko tcidu le notci be fi le samymi'etci",
|
||||
"Open user settings": "nu viska le pilno tcimi'e tutci",
|
||||
"Previous/next recently visited room or community": "ve zilbe'i vau ja girzu vau je bo lamli'e vau ja se lamli'e",
|
||||
"Powered by Matrix": ".i la .meitriks. cu jicmu"
|
||||
}
|
||||
|
||||
@@ -25,5 +25,12 @@
|
||||
"Go to element.io": "Ṛuḥ ɣer element.io",
|
||||
"Failed to start": "Asenker ur yeddi ara",
|
||||
"Welcome to Element": "Ansuf ɣer Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Adiwenni & attekki araslemmas d uwgelhan s lmendad n [matrix]"
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Adiwenni & attekki araslemmas d uwgelhan s lmendad n [matrix]",
|
||||
"Your Element is misconfigured": "Aferdis-inek·inem ur yettuswel ara akken iwata",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Deg twila n uferdis-inek·inem yella JSON d arameɣtu. Ttxil-k·m seɣti ugur syen ales asali n usebter.",
|
||||
"Download Completed": "Asider yemmed",
|
||||
"Open": "Ldi",
|
||||
"Your browser can't run %(brand)s": "Iminig-inek·inem ur isselkan ara %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s isseqdac timahilin n yiminig leqqayen ur yessefrak ara yiminig-ik·im amiran.",
|
||||
"Powered by Matrix": "Iteddu s lmendad n Matrix"
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"Dismiss": "Atmesti",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizuoti, šifruoti pokalbiai ir bendradarbiavimas, veikiantis su [matrix]",
|
||||
"Sign In": "Prisijungti",
|
||||
"Create Account": "Sukurti Paskyrą",
|
||||
"Create Account": "Sukurti paskyrą",
|
||||
"Explore rooms": "Žvalgyti kambarius",
|
||||
"The message from the parser is: %(message)s": "Analizatoriaus žinutė yra: %(message)s",
|
||||
"Invalid JSON": "Klaidingas JSON",
|
||||
@@ -14,9 +14,9 @@
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Klaidinga konfigūracija: galima nurodyti tik vieną iš default_server_config, default_server_name, arba default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Klaidinga konfigūracija: nenurodytas numatytasis serveris.",
|
||||
"Go to your browser to complete Sign In": "Norėdami užbaigti prisijungimą, eikite į naršyklę",
|
||||
"Open user settings": "Atverti vartotojo nustatymus",
|
||||
"Open user settings": "Atidaryti vartotojo nustatymus",
|
||||
"Missing indexeddb worker script!": "Trūksta indexeddb worker skripto!",
|
||||
"Unable to load config file: please refresh the page to try again.": "Nepavyko įkelti konfigūracijos failo: iš naujo užkraukite puslapį ir bandykite dar kartą.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Nepavyko įkelti konfigūracijos failo: atnaujinkite puslapį, kad pabandytumėte dar kartą.",
|
||||
"Previous/next recently visited room or community": "Ankstesnis/sekantis neseniai lankytas kambarys ar bendruomenė",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Kompiuteriui (%(platformName)s)",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
@@ -24,5 +24,12 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Jūs galite toliau naudotis savo dabartine naršykle, bet kai kurios arba visos funkcijos gali neveikti ir programos išvaizda bei sąsaja gali būti neteisingai rodoma.",
|
||||
"I understand the risks and wish to continue": "Suprantu šią riziką ir noriu tęsti",
|
||||
"Go to element.io": "Eiti į element.io",
|
||||
"Failed to start": "Nepavyko paleisti"
|
||||
"Failed to start": "Nepavyko paleisti",
|
||||
"Your Element is misconfigured": "Jūsų Element yra neteisingai sukonfigūruotas",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsų Element konfigūracijoje yra klaidingas JSON. Ištaisykite problemą ir iš naujo įkelkite puslapį.",
|
||||
"Download Completed": "Atsisiuntimas baigtas",
|
||||
"Open": "Atidaryti",
|
||||
"Your browser can't run %(brand)s": "Jūsų naršyklė negali paleisti %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s naudoja išplėstines naršyklės funkcijas, kurių jūsų dabartinė naršyklė nepalaiko.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Geriausiam veikimui suinstaliuokite <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, arba <safariLink>Safari</safariLink>."
|
||||
}
|
||||
|
||||
@@ -12,5 +12,11 @@
|
||||
"Invalid JSON": "Ugyldig JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig oppsett: berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig oppsett: ingen \"default server\" er spesifisert."
|
||||
"Invalid configuration: no default server specified.": "Ugyldig oppsett: ingen \"default server\" er spesifisert.",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Oppsettet for din Element inneheld ugyldig JSON. Sjekk konfigurasjonsfila, deretter last om sida.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Fekk ikkje til å lasta konfigurasjonsfila: last inn sida for å prøva om att.",
|
||||
"Go to your browser to complete Sign In": "Opna nettlesaren din for å fullføra innlogginga",
|
||||
"Unsupported browser": "Nettlesaren er ikkje støtta",
|
||||
"Your browser can't run %(brand)s": "Din nettlesar kan ikkje køyra %(brand)s",
|
||||
"Go to element.io": "Gå til element.io"
|
||||
}
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
{
|
||||
"Dismiss": "Descartar",
|
||||
"powered by Matrix": "oferecido por Matrix",
|
||||
"Unknown device": "Dispositivo desconhecido",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa estar usando HTTPS para poder iniciar uma chamada com compartilhamento de tela.",
|
||||
"Unknown device": "Aparelho desconhecido",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa usar HTTPS para compartilhar a tela durante uma chamada.",
|
||||
"Welcome to Element": "Seja bem-vinda(o) a Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo oferecido por [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo construído com [matrix]",
|
||||
"Sign In": "Entrar",
|
||||
"Create Account": "Criar Conta",
|
||||
"Explore rooms": "Explore as salas",
|
||||
"Explore rooms": "Explorar salas",
|
||||
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
|
||||
"Invalid JSON": "JSON inválido",
|
||||
"Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o aplicativo. Veja o console para mais detalhes.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: somente se pode especificar um valor entre default_server_config, default_server_name, ou default_hs_url.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: você só pode especificar um valor dentre default_server_config, default_server_name, ou default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o arquivo de configuração: por favor atualize a página e tente novamente.",
|
||||
"Download Completed": "Download Concluído",
|
||||
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o arquivo de configuração: por favor, atualize a página para tentar novamente.",
|
||||
"Download Completed": "Download concluído",
|
||||
"Open user settings": "Abrir configurações do usuário",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Navegador não suportado",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Instale o <chromeLink> Chrome </chromeLink>, o <firefoxLink> Firefox </firefoxLink> ou o <safariLink> Safari </safariLink> para obter uma melhor experiência.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instale o <chromeLink>Chrome</chromeLink>, o <firefoxLink>Firefox</firefoxLink> ou o <safariLink>Safari</safariLink> para obter a melhor experiência de uso.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Você pode continuar usando o navegador atual, mas alguns dos recursos podem não funcionar e a aparência do aplicativo pode estar incorreta.",
|
||||
"I understand the risks and wish to continue": "Entendo os riscos e desejo continuar",
|
||||
"Go to element.io": "Vá para element.io",
|
||||
"Failed to start": "Falha ao iniciar",
|
||||
"Missing indexeddb worker script!": "Script de trabalho indexeddb não encontrado!",
|
||||
"Missing indexeddb worker script!": "O script indexeddb não foi encontrado!",
|
||||
"Open": "Abrir",
|
||||
"Previous/next recently visited room or community": "Próxima/Anterior sala ou comunidade visitada recentemente",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Vá para o seu navegador para concluir o login"
|
||||
"Previous/next recently visited room or community": "Anterior/Próxima sala ou comunidade visitada recentemente",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s para Computador (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Vá para o seu navegador para concluir o login",
|
||||
"Your Element is misconfigured": "Seu Element está desconfigurado",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Sua configuração do Element contém JSON inválido. Por favor, corrija o problema e recarregue a página.",
|
||||
"Your browser can't run %(brand)s": "Seu navegador não consegue rodar o %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa recursos avançados que não são suportados pelo seu navegador de internet atual.",
|
||||
"Powered by Matrix": "Construído com tecnologia Matrix"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Dismiss": "Отклонить",
|
||||
"Dismiss": "Закрыть",
|
||||
"powered by Matrix": "основано на Matrix",
|
||||
"Unknown device": "Неизвестное устройство",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Для трансляции рабочего стола требуется использование HTTPS.",
|
||||
@@ -7,7 +7,7 @@
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Децентрализованный, шифрованный чат и совместное рабочее пространство на основе [matrix]",
|
||||
"Sign In": "Войти",
|
||||
"Create Account": "Создать учётную запись",
|
||||
"Explore rooms": "Исследуйте комнаты",
|
||||
"Explore rooms": "Список комнат",
|
||||
"Unexpected error preparing the app. See console for details.": "Неожиданная ошибка при подготовке приложения. Подробности см. в консоли.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Неверная конфигурация: может указывать только один из следующих параметров: default_server_config, default_server_name или default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Неверная конфигурация: сервер по умолчанию не указан.",
|
||||
@@ -18,12 +18,19 @@
|
||||
"Missing indexeddb worker script!": "Отсутствует скрипт воркера для indexeddb!",
|
||||
"Unable to load config file: please refresh the page to try again.": "Не удалось загрузить файл конфигурации. Попробуйте обновить страницу.",
|
||||
"Previous/next recently visited room or community": "Предыдущая/следующая недавно посещённая комната или сообщество",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s десктоп (%(platformName)s)",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Неподдерживаемый браузер",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Пожалуйста поставьте <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, или <safariLink>Safari</safariLink> для лучшей совместимости.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Вы можете продолжать пользоваться этим браузером но некоторые возможности будут недоступны и интерфейс может быть отрисован неправильно.",
|
||||
"I understand the risks and wish to continue": "Я понимаю риск и хочу продолжить",
|
||||
"Go to element.io": "К element.io",
|
||||
"Failed to start": "Старт не удался"
|
||||
"Failed to start": "Старт не удался",
|
||||
"Your Element is misconfigured": "Ваш Element неверно настроен",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Конфигурация Element содержит неверный JSON. Исправьте проблему и обновите страницу.",
|
||||
"Download Completed": "Загрузка завершена",
|
||||
"Open": "Открыть",
|
||||
"Your browser can't run %(brand)s": "Ваш браузер не может запустить %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s использует расширенные возможности, которые не поддерживаются вашим браузером.",
|
||||
"Powered by Matrix": "На технологии Matrix"
|
||||
}
|
||||
|
||||
4
src/i18n/strings/si.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Unknown device": "නොදන්නා උපකරණය",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)"
|
||||
}
|
||||
@@ -13,8 +13,8 @@
|
||||
"Unexpected error preparing the app. See console for details.": "Neočakávaná chyba počas pripravovania aplikácie. Pre podrobnosti pozri konzolu.",
|
||||
"Invalid configuration: no default server specified.": "Neplatné nastavenie: nebol určený východiskový server.",
|
||||
"Missing indexeddb worker script!": "Chýba indexovaný databázový skript pracovníka!",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurácia: je možné špecifikovať len jednu možnosť z default_server_config, default_server_name, or default_hs_url.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Nemožno načítať konfiguračný súbor: prosím, obnovte stránku a skúste to znova.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurácia: je možné špecifikovať len jednu možnosť z default_server_config, default_server_name, alebo default_hs_url.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Nemožno načítať konfiguračný súbor: prosím obnovte stránku a skúste to znova.",
|
||||
"Open user settings": "Otvoriť používateľské nastavenia",
|
||||
"Previous/next recently visited room or community": "Predchádzajúca/ďalšia nedávno navštívená miestnosť alebo komunita",
|
||||
"Go to your browser to complete Sign In": "Prejdite do prehliadača a dokončite prihlásenie",
|
||||
@@ -27,5 +27,9 @@
|
||||
"Go to element.io": "Prejsť na element.io",
|
||||
"Failed to start": "Zapnutie zlyhalo",
|
||||
"Download Completed": "Preberanie dokončené",
|
||||
"Open": "Otvoriť"
|
||||
"Open": "Otvoriť",
|
||||
"Your Element is misconfigured": "Váš Element je nesprávne nastavený",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaša konfigurácia Elementu obsahuje nesprávne JSON. Prosím, opravte chybu a obnovte stránku.",
|
||||
"Your browser can't run %(brand)s": "Váš prehliadač nerozbehne %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s používa pokročilé funkcie prehliadača, ktoré nie sú podporované vaším aktuálnym prehliadačom."
|
||||
}
|
||||
|
||||
@@ -7,5 +7,30 @@
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizirano šifrirano sporočanje & sodelovanje s pomočjo [matrix]",
|
||||
"Sign In": "Prijava",
|
||||
"Create Account": "Registracija",
|
||||
"Explore rooms": "Raziščite sobe"
|
||||
"Explore rooms": "Raziščite sobe",
|
||||
"Missing indexeddb worker script!": "Manjka skript za IndexDB!",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neveljavna konfiguracija: lahko izberete samo eno izmed default_server_config, default_server_name ali default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Neveljavna konfiguracija: privzeti strežnik ni nastavljen.",
|
||||
"Your Element is misconfigured": "Vaš Element je napačno nastavljen",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracije vašega Elementa vsebujejo neveljaven JSON. Prosim, popravite napako in znova naložite stran.",
|
||||
"The message from the parser is: %(message)s": "Sporočilo parserja je: %(message)s",
|
||||
"Invalid JSON": "Neveljaven JSON",
|
||||
"Unable to load config file: please refresh the page to try again.": "Ni uspelo naložiti konfiguracijske datoteke: prosim, ponovno naložite stran.",
|
||||
"Unexpected error preparing the app. See console for details.": "Nepričakovana napaka pri pripravi aplikacije: Za več poglejte konzolo.",
|
||||
"Download Completed": "Prenos zaključen",
|
||||
"Open": "Odpri",
|
||||
"Open user settings": "Odpri uporabniške nastavitve",
|
||||
"Previous/next recently visited room or community": "Prejšnja/naslednja soba ali skupnost, ki je bila pred kratkim odprta",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s namizje za (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Nadaljujte s prijavo v spletnem brskalniku",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Powered by Matrix": "Poganja Matrix",
|
||||
"Unsupported browser": "Nepodprt brskalnik",
|
||||
"Your browser can't run %(brand)s": "Vaš brskalnik ne more poganjati %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s uporablja napredne lastnosti brskalnika, ki jih vaš trenutni brskalnik ne podpira.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Za najboljšo izkušnjo, prosim namestite <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> ali <safariLink>Safari</safariLink>.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Lahko nadaljujete z uporabo vašega trenutnega brskalnika, vendar lahko to privede do manjkajočih funkcionalnosti ali napačnega izgleda aplikacije.",
|
||||
"I understand the risks and wish to continue": "Razumem riziko in želim vseeno nadaljevati",
|
||||
"Go to element.io": "Pojdi na element.io",
|
||||
"Failed to start": "Neuspel zagon"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Failed to start": "S’u arrit të nisej",
|
||||
"Missing indexeddb worker script!": "Mungon programth worker-i indexeddb-je!",
|
||||
"Download Completed": "Shkarkim i Plotësuar",
|
||||
"Open": "Hape"
|
||||
"Open": "Hape",
|
||||
"Your Element is misconfigured": "Element-i juaj është i keqformësuar",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Formësimi juaj i Element-it përmban JSON të pavlefshëm. Ju lutemi, ndreqeni problemin dhe ringarkoni faqen.",
|
||||
"Your browser can't run %(brand)s": "Shfletuesi juaj s’mund të xhirojë %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s përdor veçori të thelluara të shfletuesit, të cilat shfletuesi juaj i tanishëm s’i mbulon.",
|
||||
"Powered by Matrix": "Bazuar në Matrix"
|
||||
}
|
||||
|
||||
@@ -12,5 +12,24 @@
|
||||
"The message from the parser is: %(message)s": "Порука из парсера: %(message)s",
|
||||
"Invalid JSON": "Погрешан JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Неочекивана грешка приликом припреме апликације. Погледајте конзолу за више детаља.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само једну вредност од default_server_config, default_server_name, or default_hs_url."
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само једну вредност од default_server_config, default_server_name, or default_hs_url.",
|
||||
"Missing indexeddb worker script!": "Недостаје скрипта indexeddb радника!",
|
||||
"Your Element is misconfigured": "Ваша Елемент апликација је лоше подешена",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Подешавање ваше Елемент апликације садржи неисправни JSON. Поправите проблем па поново учитајте ову страницу.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Не могу да учитам датотеку подешавања: освежите страницу и покушајте поново.",
|
||||
"Download Completed": "Преузимање завршено",
|
||||
"Open": "Отвори",
|
||||
"Open user settings": "Отвори корисничка подешавања",
|
||||
"Previous/next recently visited room or community": "Претходно/следеће недавно посећене собе или заједнице",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s радна површ (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Отворите ваш прегледач за довршавање пријаве",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Неподржан прегледач",
|
||||
"Your browser can't run %(brand)s": "Ваш прегледач не може покретати %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s користи напредне могућности које нису подржане у вашем тренутном прегледачу.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Инсталирајте <chromeLink>Хром</chromeLink>, <firefoxLink>Фајерфокс</firefoxLink>, или <safariLink>Сафари</safariLink> за најбољи доживљај.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Можете наставити користећи тренутни прегледач али неке могућности можда неће радити и изглед и доживљај апликације може бити лош.",
|
||||
"I understand the risks and wish to continue": "Разумем могуће последице и желим наставити",
|
||||
"Go to element.io": "Иди на element.io",
|
||||
"Failed to start": "Неуспех при покретању"
|
||||
}
|
||||
|
||||
@@ -4,26 +4,33 @@
|
||||
"Unknown device": "Okänd enhet",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Du måste använda HTTPS för att ringa med skärmdelning.",
|
||||
"Welcome to Element": "Välkommen till Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentraliserad, krypterad chatt & samarbetsplattform möjliggjort med [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentraliserad, krypterad chatt & samarbetsplattform baserad på [matrix]",
|
||||
"Sign In": "Logga in",
|
||||
"Create Account": "Skapa konto",
|
||||
"Explore rooms": "Utforska rum",
|
||||
"The message from the parser is: %(message)s": "Medelandet från parsern är: %(message)s",
|
||||
"The message from the parser is: %(message)s": "Meddelandet från parsern är: %(message)s",
|
||||
"Invalid JSON": "Ogiltig JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Oväntat fel vid appstart. Se konsollen för mer information.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ogilitiga inställningar: enbart möjligt att specificera en default_config, default_server, eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ogilitiga inställningar: ingen standardserver specificerad.",
|
||||
"Unexpected error preparing the app. See console for details.": "Oväntat fel vid appstart. Se konsolen för mer information.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ogiltiga inställningar: det är enbart möjligt att specificera en default_config, default_server, eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ogiltiga inställningar: ingen standardserver specificerad.",
|
||||
"Open user settings": "Öppna användarinställningar",
|
||||
"Go to your browser to complete Sign In": "Gå till din webbläsare för att slutföra inloggningen",
|
||||
"Missing indexeddb worker script!": "Saknar indexeddb worker skript!",
|
||||
"Unable to load config file: please refresh the page to try again.": "Kan inte ladda konfigurationsfilen: var god ladda om sidan för att försöka igen.",
|
||||
"Previous/next recently visited room or community": "Föregående/nästa nyligen besökt rum eller community",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Missing indexeddb worker script!": "Saknar IndexedDB-workerscript!",
|
||||
"Unable to load config file: please refresh the page to try again.": "Kan inte ladda konfigurationsfilen: ladda om sidan för att försöka igen.",
|
||||
"Previous/next recently visited room or community": "Föregående/nästa nyligen besökt rum eller gemenskap",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s skrivbord (%(platformName)s)",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Webbläsaren stöds ej",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installera <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eller <safariLink>Safari</safariLink> för den bästa upplevelsen.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kan fortsätta använda din nuvarande webbläsare, men vissa eller alla funktioner kanske inte fungerar och uteseendet samt känslan av applikationen kan var felaktig.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kan fortsätta använda din nuvarande webbläsare, men vissa eller alla funktioner kanske inte fungerar och utseendet och känslan av applikationen kan var felaktig.",
|
||||
"I understand the risks and wish to continue": "Jag förstår riskerna och vill fortsätta",
|
||||
"Go to element.io": "Gå till element.io",
|
||||
"Failed to start": "Misslyckade att starta"
|
||||
"Failed to start": "Misslyckade att starta",
|
||||
"Your Element is misconfigured": "Din Element är felkonfigurerad",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Din Elementkonfiguration innehåller ogiltig JSON. Vänligen rätta till problemet och ladda om sidan.",
|
||||
"Download Completed": "Nedladdning slutförd",
|
||||
"Open": "Öppna",
|
||||
"Powered by Matrix": "Drivs av Matrix",
|
||||
"Your browser can't run %(brand)s": "Din webbläsare kan inte köra %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s använder avancerade webbläsarfunktioner som inte stöds av din aktuella webbläsare."
|
||||
}
|
||||
|
||||
@@ -14,5 +14,17 @@
|
||||
"Invalid configuration: no default server specified.": "Geçersiz yapılandırma: varsayılan sunucu seçilmemiş.",
|
||||
"The message from the parser is: %(message)s": "Ayrıştırıcıdan gelen mesaj: %(message)s",
|
||||
"Go to your browser to complete Sign In": "Oturum açmayı tamamlamak için tarayıcınıza gidin",
|
||||
"Open user settings": "Kullanıcı ayarlarını aç"
|
||||
"Open user settings": "Kullanıcı ayarlarını aç",
|
||||
"Your Element is misconfigured": "Element uygulaması hatalı ayarlanmış",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element uygulamasının ayarları hatalı JSON içeriyor. Lütfen hatayı düzeltip sayfayı yenileyin.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Yapılandırma (config) dosyası yüklenemedi: lütfen yeniden denemek için sayfayı yenileyin.",
|
||||
"Download Completed": "İndirme Tamamlandı",
|
||||
"Unsupported browser": "Desteklenmeyen tarayıcı",
|
||||
"Your browser can't run %(brand)s": "",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s, kullandığınız tarayıcı tarafından desteklenmeyen, gelişmiş tarayıcı özellikleri kullanıyor.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Daha iyi bir deneyim için lütfen <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> ya da <safariLink>Safari</safariLink> tarayıcılarından birini yükleyin.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Şu anda kullanmış olduğunuz tarayıcınızı kullanmaya devam edebilirsiniz ancak uygulamanın sunduğu bazı ya da bütün özellikler çalışmayabilir ve deneyiminizi kötü yönde etkileyebilir.",
|
||||
"I understand the risks and wish to continue": "Riskleri anlıyorum ve devam etmek istiyorum",
|
||||
"Go to element.io": "element.io adresine git",
|
||||
"Failed to start": "Başlatılamadı"
|
||||
}
|
||||
|
||||
@@ -6,17 +6,31 @@
|
||||
"Welcome to Element": "Ласкаво просимо до Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Децентралізована, зашифрована балачка та засіб для співробітництва, що працює на [matrix]",
|
||||
"Sign In": "Увійти",
|
||||
"Create Account": "Створити обліківку",
|
||||
"Explore rooms": "Дослідити кімнати",
|
||||
"Unexpected error preparing the app. See console for details.": "Неочікувана помилка при підготовці програми. Дивіться деталі у виводі консолі.",
|
||||
"Create Account": "Створити обліковий запис",
|
||||
"Explore rooms": "Шукати кімнати",
|
||||
"Unexpected error preparing the app. See console for details.": "Неочікувана помилка при готуванні програми. Дивіться деталі у виводі консолі.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Невірна конфігурація: можна вказати лише default_server_config, default_server_name або default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Невірна конфігурація: не вказано сервер за замовчуванням.",
|
||||
"The message from the parser is: %(message)s": "Повідомлення від парсера: %(message)s",
|
||||
"Invalid configuration: no default server specified.": "Невірна конфігурація: не вказано усталений сервер.",
|
||||
"The message from the parser is: %(message)s": "Аналізатор повідомляє: %(message)s",
|
||||
"Invalid JSON": "Хибний JSON",
|
||||
"Unsupported browser": "Непідтримуваний переглядач",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Для найкращих вражень від користування встановіть, будь ласка, <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, або <safariLink>Safari</safariLink>.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Ви можете продовжити, користуючись вашим поточним переглядачем, але деякі функції можуть не працювати і застосунок може виглядати неправильно.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Ви можете продовжити, користуючись вашим поточним переглядачем, але деякі функції можуть не працювати, а застосунок може виглядати неправильно.",
|
||||
"I understand the risks and wish to continue": "Я усвідомлюю ризик і бажаю продовжити",
|
||||
"Go to element.io": "Перейти на element.io",
|
||||
"Failed to start": "Запуск не вдався"
|
||||
"Failed to start": "Запуск не вдався",
|
||||
"Download Completed": "Завантаження завершено",
|
||||
"Missing indexeddb worker script!": "Відсутній скрипт воркеру для IndexedDB!",
|
||||
"Your Element is misconfigured": "Ваш Element налаштовано неправильно",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфігурація Element містить хибний JSON. Виправте проблему та оновіть сторінку.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Неможливо завантажити файл конфігурації. Оновіть, будь ласка, сторінку.",
|
||||
"Open": "Відкрити",
|
||||
"Open user settings": "Відкрити користувацькі налаштування",
|
||||
"Previous/next recently visited room or community": "Попередня/наступна нещодавно відвідана кімната чи спільнота",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Перейдіть у ваш переглядач щоб завершити входження",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Powered by Matrix": "Працює на Matrix",
|
||||
"Your browser can't run %(brand)s": "Ваш переглядач неспроможний запустити %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s використовує передові властивості, які ваш переглядач не підтримує."
|
||||
}
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"Unknown device": "未知设备",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "您需要使用 HTTPS 以进行共享屏幕通话。",
|
||||
"Welcome to Element": "欢迎来到 Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、加密聊天与协作,由 [matrix] 驱动",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、加密聊天&与协作,由 [matrix] 驱动",
|
||||
"Sign In": "登入",
|
||||
"Create Account": "创建帐号",
|
||||
"Explore rooms": "探索房间",
|
||||
"Explore rooms": "探索聊天室",
|
||||
"The message from the parser is: %(message)s": "语法分析器的信息:%(message)s",
|
||||
"Invalid JSON": "无效的 JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "软件准备时出错,详细信息请查看控制台。",
|
||||
@@ -25,5 +25,12 @@
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "您可以继续使用您目前的浏览器,但部分或全部的功能可能无法正常工作,应用程序的外观可能也看起来不正确。",
|
||||
"I understand the risks and wish to continue": "我了解风险并希望继续",
|
||||
"Go to element.io": "去 element.io",
|
||||
"Failed to start": "启动失败"
|
||||
"Failed to start": "启动失败",
|
||||
"Your Element is misconfigured": "Element 配置错误",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 配置文件中包含无效的JSON,请改正错误并重新加载页面。",
|
||||
"Download Completed": "下载成功",
|
||||
"Open": "打开",
|
||||
"Your browser can't run %(brand)s": "浏览器无法运行%(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "当前浏览器不支持%(brand)s调用的高级浏览器特性。",
|
||||
"Powered by Matrix": "Powered by Matrix"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,10 @@
|
||||
"Go to element.io": "到 element.io",
|
||||
"Failed to start": "啟動失敗",
|
||||
"Download Completed": "下載完成",
|
||||
"Open": "開啟"
|
||||
"Open": "開啟",
|
||||
"Your Element is misconfigured": "Element 配置錯誤",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 的配置中包含無效JSON,請更正錯誤並重新加載網頁。",
|
||||
"Your browser can't run %(brand)s": "當前瀏覽器無法運行%(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "當前瀏覽器不支持%(brand)s使用的高級特性。",
|
||||
"Powered by Matrix": "威力本源 Matrix"
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import request from 'browser-request';
|
||||
|
||||
// Load the config file. First try to load up a domain-specific config of the
|
||||
// form "config.$domain.json" and if that fails, fall back to config.json.
|
||||
export async function getVectorConfig(relativeLocation: string='') {
|
||||
export async function getVectorConfig(relativeLocation='') {
|
||||
if (relativeLocation !== '' && !relativeLocation.endsWith('/')) relativeLocation += '/';
|
||||
|
||||
const specificConfigPromise = getConfig(`${relativeLocation}config.${document.domain}.json`);
|
||||
|
||||
@@ -175,8 +175,12 @@ async function start() {
|
||||
if (error.err && error.err instanceof SyntaxError) {
|
||||
// This uses the default brand since the app config is unavailable.
|
||||
return showError(_t("Your Element is misconfigured"), [
|
||||
_t("Your Element configuration contains invalid JSON. Please correct the problem and reload the page."),
|
||||
_t("The message from the parser is: %(message)s", { message: error.err.message || _t("Invalid JSON")}),
|
||||
_t("Your Element configuration contains invalid JSON. " +
|
||||
"Please correct the problem and reload the page."),
|
||||
_t(
|
||||
"The message from the parser is: %(message)s",
|
||||
{ message: error.err.message || _t("Invalid JSON") },
|
||||
),
|
||||
]);
|
||||
}
|
||||
return showError(_t("Unable to load config file: please refresh the page to try again."));
|
||||
@@ -210,6 +214,7 @@ start().catch(err => {
|
||||
// with some basic styling to make the iframe full page
|
||||
delete document.body.style.height;
|
||||
const iframe = document.createElement("iframe");
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore - typescript seems to only like the IE syntax for iframe sandboxing
|
||||
iframe["sandbox"] = "";
|
||||
iframe.src = supportedBrowser ? "static/unable-to-load.html" : "static/incompatible-browser.html";
|
||||
|
||||
@@ -23,7 +23,7 @@ import { Capability, WidgetApi } from "matrix-react-sdk/src/widgets/WidgetApi";
|
||||
// Dev note: we use raw JS without many dependencies to reduce bundle size.
|
||||
// We do not need all of React to render a Jitsi conference.
|
||||
|
||||
declare var JitsiMeetExternalAPI: any;
|
||||
declare let JitsiMeetExternalAPI: any;
|
||||
|
||||
let inConference = false;
|
||||
|
||||
@@ -36,7 +36,7 @@ let userId: string;
|
||||
|
||||
let widgetApi: WidgetApi;
|
||||
|
||||
(async function () {
|
||||
(async function() {
|
||||
try {
|
||||
// The widget's options are encoded into the fragment to avoid leaking info to the server. The widget
|
||||
// spec on the other hand requires the widgetId and parentUrl to show up in the regular query string.
|
||||
|
||||
@@ -161,7 +161,7 @@ body {
|
||||
<div>
|
||||
<h2 id="step1_heading">Install the app</h2>
|
||||
<p><strong>iOS</strong> (iPhone or iPad)</p>
|
||||
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank" class="mx_ClearDecoration">
|
||||
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank" class="mx_ClearDecoration">
|
||||
<svg width="144px" height="48px" viewBox="0 0 120 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<desc>Download on the App Store.</desc>
|
||||
<defs></defs>
|
||||
@@ -260,7 +260,7 @@ body {
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.alpha" target="_blank" class="mx_ClearDecoration">
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.app" target="_blank" class="mx_ClearDecoration">
|
||||
<svg width="164px" height="48px" viewBox="0 0 157 46" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<desc>Get it on F-Droid.</desc>
|
||||
<defs>
|
||||
|
||||
@@ -29,7 +29,7 @@ function renderConfigError(message) {
|
||||
async function initPage() {
|
||||
document.getElementById('back_to_element_button').onclick = onBackToElementClick;
|
||||
|
||||
let config = await getVectorConfig('..');
|
||||
const config = await getVectorConfig('..');
|
||||
|
||||
// We manually parse the config similar to how validateServerConfig works because
|
||||
// calling that function pulls in roughly 4mb of JS we don't use.
|
||||
@@ -93,7 +93,7 @@ async function initPage() {
|
||||
|
||||
if (hsUrl !== 'https://matrix.org/') {
|
||||
document.getElementById('configure_element_button').href =
|
||||
"https://app.element.io/config/config?hs_url=" + encodeURIComponent(hsUrl) +
|
||||
"https://mobile.element.io?hs_url=" + encodeURIComponent(hsUrl) +
|
||||
"&is_url=" + encodeURIComponent(isUrl);
|
||||
document.getElementById('step1_heading').innerHTML= '1: Install the app';
|
||||
document.getElementById('step2_container').style.display = 'block';
|
||||
|
||||
@@ -374,10 +374,6 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
ipcRenderer.send('loudNotification');
|
||||
}
|
||||
|
||||
clearNotification(notif: Notification) {
|
||||
notif.close();
|
||||
}
|
||||
|
||||
async getAppVersion(): Promise<string> {
|
||||
return this._ipcCall('getAppVersion');
|
||||
}
|
||||
@@ -502,8 +498,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
|
||||
getSSOCallbackUrl(fragmentAfterLogin: string): URL {
|
||||
const url = super.getSSOCallbackUrl(fragmentAfterLogin);
|
||||
url.protocol = "riot";
|
||||
url.searchParams.set("riot-desktop-ssoid", this.ssoID);
|
||||
url.protocol = "element";
|
||||
url.searchParams.set("element-desktop-ssoid", this.ssoID);
|
||||
return url;
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
<div>
|
||||
<h2 id="step2_heading">Use Element on mobile</h2>
|
||||
<p><strong>iOS</strong> (iPhone or iPad)</p>
|
||||
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank"
|
||||
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank"
|
||||
class="mx_ClearDecoration">
|
||||
<svg width="144px" height="48px" viewBox="0 0 120 40" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
@@ -339,7 +339,7 @@
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.alpha" target="_blank"
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=im.vector.app" target="_blank"
|
||||
class="mx_ClearDecoration">
|
||||
<svg width="164px" height="48px" viewBox="0 0 157 46" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
@@ -16,6 +16,11 @@
|
||||
"node",
|
||||
"react",
|
||||
"flux"
|
||||
],
|
||||
"lib": [
|
||||
"es2019",
|
||||
"dom",
|
||||
"dom.iterable"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
|
||||
@@ -11,16 +11,18 @@ if (!og_image_url) og_image_url = 'https://app.element.io/themes/element/img/log
|
||||
module.exports = (env, argv) => {
|
||||
if (process.env.CI_PACKAGE) {
|
||||
// Don't run minification for CI builds (this is only set for runs on develop)
|
||||
// We override this via environment variable to avoid duplicating the scripts
|
||||
// in `package.json` just for a different mode.
|
||||
argv.mode = "development";
|
||||
}
|
||||
|
||||
const development = {};
|
||||
if (argv.mode !== "production") {
|
||||
if (argv.mode === "production") {
|
||||
development['devtool'] = 'nosources-source-map';
|
||||
} else {
|
||||
// This makes the sourcemaps human readable for developers. We use eval-source-map
|
||||
// because the plain source-map devtool ruins the alignment.
|
||||
development['devtool'] = 'eval-source-map';
|
||||
} else {
|
||||
development['devtool'] = 'nosources-source-map';
|
||||
}
|
||||
|
||||
// Resolve the directories for the react-sdk and js-sdk for later use. We resolve these early so we
|
||||
@@ -296,12 +298,6 @@ module.exports = (env, argv) => {
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
|
||||
},
|
||||
}),
|
||||
|
||||
// This exports our CSS using the splitChunks and loaders above.
|
||||
new MiniCssExtractPlugin({
|
||||
filename: 'bundles/[hash]/[name].css',
|
||||
|
||||