Compare commits
1029 Commits
travis/inl
...
dataport/r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0996956308 | ||
|
|
86a4d70bcf | ||
|
|
e2a4d7a568 | ||
|
|
12fb012b6f | ||
|
|
118bd8f4fa | ||
|
|
2f9122d456 | ||
|
|
c9ac4d2bf2 | ||
|
|
5e13a30065 | ||
|
|
ba11162cee | ||
|
|
341d41965f | ||
|
|
186b4cb3f8 | ||
|
|
b338f3f9bb | ||
|
|
0f31e9f23a | ||
|
|
8944b48e2d | ||
|
|
e69e3ae90f | ||
|
|
72596694af | ||
|
|
3faccf182e | ||
|
|
70743d0b9a | ||
|
|
b1a29294e6 | ||
|
|
3547e468c2 | ||
|
|
159adcc87f | ||
|
|
40936b3bf6 | ||
|
|
f41b1c831c | ||
|
|
2bfff82b30 | ||
|
|
b09fa73160 | ||
|
|
eae38311b2 | ||
|
|
1b6b1a8621 | ||
|
|
80cf11135d | ||
|
|
9eb5af53e2 | ||
|
|
0637c2e74d | ||
|
|
159f1962a1 | ||
|
|
996d79847a | ||
|
|
15df3bc816 | ||
|
|
8247318399 | ||
|
|
4bb310ad3d | ||
|
|
39901b8d72 | ||
|
|
b14b2967ec | ||
|
|
bacddc5dfc | ||
|
|
a799672bd3 | ||
|
|
87882dd6a3 | ||
|
|
f496d6d5bf | ||
|
|
ae048025e4 | ||
|
|
090fc808bb | ||
|
|
10e121a514 | ||
|
|
194aeac19e | ||
|
|
9746517ef7 | ||
|
|
40892ad087 | ||
|
|
d443787608 | ||
|
|
2995894055 | ||
|
|
c8ca48c79e | ||
|
|
08c164a851 | ||
|
|
0ad25f41ff | ||
|
|
0dee9d78a5 | ||
|
|
9e1d72122e | ||
|
|
82ddf8da99 | ||
|
|
b2e8f212e4 | ||
|
|
12a42499a7 | ||
|
|
8e58d31db3 | ||
|
|
8e279116ae | ||
|
|
28f00498a2 | ||
|
|
88bd3e41d0 | ||
|
|
bd0ceca351 | ||
|
|
a16dcb8a5f | ||
|
|
87287bd10b | ||
|
|
ac75174729 | ||
|
|
cf7d273052 | ||
|
|
4158a49297 | ||
|
|
2ef1191afa | ||
|
|
0317e39ef7 | ||
|
|
8c227f61dd | ||
|
|
0c3efaec9a | ||
|
|
3d2880ddfb | ||
|
|
addb6183b3 | ||
|
|
ef87da52f4 | ||
|
|
06e855c601 | ||
|
|
cb0f9022f9 | ||
|
|
516e38c82d | ||
|
|
c0a7437c20 | ||
|
|
d9f72ec0b6 | ||
|
|
f9cbdb8aa0 | ||
|
|
063b1d7f59 | ||
|
|
f74765658c | ||
|
|
2d579a8b73 | ||
|
|
68a73078c5 | ||
|
|
ad6ec9ed10 | ||
|
|
c52905fe4e | ||
|
|
37840b4121 | ||
|
|
5ac4702ae3 | ||
|
|
9793816b5f | ||
|
|
c4adac315e | ||
|
|
4553531e7e | ||
|
|
ba302b7dc0 | ||
|
|
85b489b3a7 | ||
|
|
940aaa0d1a | ||
|
|
4c4b9b96e7 | ||
|
|
9b3159ce64 | ||
|
|
80931222cd | ||
|
|
90776db423 | ||
|
|
e794234bc9 | ||
|
|
92500cf2d1 | ||
|
|
fc9ae78b56 | ||
|
|
aa78b21457 | ||
|
|
0adad257c0 | ||
|
|
a7740b5424 | ||
|
|
7a24f67caf | ||
|
|
a4b6690e4d | ||
|
|
75eab660c2 | ||
|
|
f550d63198 | ||
|
|
004e8edcb2 | ||
|
|
d24348de81 | ||
|
|
d3814ddae0 | ||
|
|
3278c5a306 | ||
|
|
6909e28764 | ||
|
|
c1ca4a0920 | ||
|
|
e0a1e6f5a6 | ||
|
|
cb25cb470d | ||
|
|
30800755d7 | ||
|
|
b72b6c6089 | ||
|
|
96a506ded3 | ||
|
|
615ccb0481 | ||
|
|
ccd88ba087 | ||
|
|
e6993ca964 | ||
|
|
85a81af1da | ||
|
|
dc9f77a509 | ||
|
|
db01bfc0fd | ||
|
|
515a8d2097 | ||
|
|
ab6ba952ac | ||
|
|
195234a7b5 | ||
|
|
ce3cc42e4a | ||
|
|
700d59be16 | ||
|
|
9673661177 | ||
|
|
794043f1b8 | ||
|
|
4c25a5e8bd | ||
|
|
ef470a1207 | ||
|
|
c405880a39 | ||
|
|
347f90ef73 | ||
|
|
7ed733d9bf | ||
|
|
1490d4f462 | ||
|
|
93c037a318 | ||
|
|
46e526c038 | ||
|
|
613c04d984 | ||
|
|
403c851461 | ||
|
|
1cf095a3e1 | ||
|
|
2deee7a709 | ||
|
|
50a2badd96 | ||
|
|
df3647f139 | ||
|
|
79cbf55986 | ||
|
|
6c1624f2f2 | ||
|
|
971f4bbb4d | ||
|
|
afe8e878a5 | ||
|
|
8e486c3f98 | ||
|
|
2ef743e5ee | ||
|
|
a605657ebe | ||
|
|
f214031f8b | ||
|
|
5fff0fb677 | ||
|
|
721670d57e | ||
|
|
74669e178c | ||
|
|
7bc016dbea | ||
|
|
90ada74daf | ||
|
|
efeb9cb1d5 | ||
|
|
b1627461a7 | ||
|
|
5f236f0224 | ||
|
|
20c4c2fcd3 | ||
|
|
a98942e0c8 | ||
|
|
88030330f1 | ||
|
|
64fa84fc60 | ||
|
|
72c9a6f437 | ||
|
|
8be55d8dcf | ||
|
|
107d8f6fb8 | ||
|
|
49076a8a06 | ||
|
|
1571df1c82 | ||
|
|
4efa0b215f | ||
|
|
b953ad3353 | ||
|
|
fe9d0189a0 | ||
|
|
5192f344b1 | ||
|
|
ef436b8fa7 | ||
|
|
e15d27b316 | ||
|
|
935f95fcde | ||
|
|
e39b6e3057 | ||
|
|
37a0957285 | ||
|
|
155d80b3fa | ||
|
|
ecf29d9409 | ||
|
|
04ee4d6137 | ||
|
|
2a4dcd1267 | ||
|
|
9a8ba41510 | ||
|
|
249cb4d169 | ||
|
|
0142bb04e4 | ||
|
|
6dca9c60f0 | ||
|
|
564d427be7 | ||
|
|
dbecdc4f14 | ||
|
|
3f037a05d0 | ||
|
|
e90f7b7e82 | ||
|
|
5741baed25 | ||
|
|
c964391c4f | ||
|
|
b48561d34f | ||
|
|
e7caa54e59 | ||
|
|
cea07479ec | ||
|
|
54c2e8fc8e | ||
|
|
5553cdf329 | ||
|
|
237bc51cd1 | ||
|
|
b4187c6150 | ||
|
|
212138b017 | ||
|
|
77ceff07d5 | ||
|
|
a3c4fac375 | ||
|
|
470ab22e2d | ||
|
|
cf5cbb1ff9 | ||
|
|
6590debbc6 | ||
|
|
63379f41b9 | ||
|
|
1ddbed74d3 | ||
|
|
9ac0d2c756 | ||
|
|
bd96d29966 | ||
|
|
c3cc9f20f5 | ||
|
|
46769046da | ||
|
|
539f892c67 | ||
|
|
1dfdfd91bd | ||
|
|
f85def5f3f | ||
|
|
2f00845957 | ||
|
|
4a24775fd9 | ||
|
|
017e4bd84b | ||
|
|
9e5f88427d | ||
|
|
7aff5b2df3 | ||
|
|
938632a884 | ||
|
|
3628dfd3f0 | ||
|
|
606fd8b51b | ||
|
|
b4742373f3 | ||
|
|
730c4e8e3a | ||
|
|
3755aec974 | ||
|
|
c9dd1573ca | ||
|
|
66277f7def | ||
|
|
0b628cf102 | ||
|
|
1c393d0044 | ||
|
|
22f6ac1e38 | ||
|
|
674bba1e15 | ||
|
|
96f8dab224 | ||
|
|
6774f28cff | ||
|
|
07887effcc | ||
|
|
a9c331edbf | ||
|
|
79c4b95824 | ||
|
|
3fd49628a2 | ||
|
|
122664433f | ||
|
|
1dcdd549d0 | ||
|
|
0a87baf99d | ||
|
|
65acbc51c6 | ||
|
|
1aa2efd2ce | ||
|
|
a57af54706 | ||
|
|
44a67ee383 | ||
|
|
88428b9835 | ||
|
|
72e4197db8 | ||
|
|
2c6fa9707b | ||
|
|
3f086578b0 | ||
|
|
446c4f991f | ||
|
|
73a05d35bd | ||
|
|
f4a11b8509 | ||
|
|
8f3c0be388 | ||
|
|
4f0c3bf4ff | ||
|
|
46b7f2356e | ||
|
|
574e848bf3 | ||
|
|
75b1d813f1 | ||
|
|
c7aab2530b | ||
|
|
7a72547133 | ||
|
|
dd17148ce6 | ||
|
|
a40d7474f4 | ||
|
|
10a8d06546 | ||
|
|
5a561b674f | ||
|
|
11648224c7 | ||
|
|
ae624658c9 | ||
|
|
e4997981ec | ||
|
|
9d0a96cf9a | ||
|
|
8c78084531 | ||
|
|
feefa2ece2 | ||
|
|
2d48797294 | ||
|
|
da1423d660 | ||
|
|
6747155dea | ||
|
|
1e41f7ad19 | ||
|
|
c0ffd980a1 | ||
|
|
2dfa6fd58e | ||
|
|
fa0d500d4a | ||
|
|
dec8795f7a | ||
|
|
0a13413c48 | ||
|
|
1d5d7751f7 | ||
|
|
8fa4079565 | ||
|
|
dc3d0abfef | ||
|
|
4ab524673d | ||
|
|
a947cdfa96 | ||
|
|
4da180324a | ||
|
|
a2cde39495 | ||
|
|
d627faf3f8 | ||
|
|
ed3ba39ffe | ||
|
|
fad1237dd0 | ||
|
|
c551063832 | ||
|
|
0cb9fef9da | ||
|
|
6874e782f2 | ||
|
|
607c840917 | ||
|
|
4d5607894c | ||
|
|
b8fb8b0460 | ||
|
|
9b7070b8e6 | ||
|
|
eb8d3be1c3 | ||
|
|
315609e375 | ||
|
|
6fcb021874 | ||
|
|
cd213eb43a | ||
|
|
5aff525eaa | ||
|
|
05ee3d26ab | ||
|
|
705c568609 | ||
|
|
f9af8a9f07 | ||
|
|
7b0a89a81f | ||
|
|
212e4de5e1 | ||
|
|
5e68c95d8e | ||
|
|
b873185c68 | ||
|
|
13aa157a66 | ||
|
|
7f9b58a10b | ||
|
|
e88948917a | ||
|
|
22620066d7 | ||
|
|
adc8efc691 | ||
|
|
c103565b3c | ||
|
|
d76ef0d366 | ||
|
|
b73e2fc27d | ||
|
|
89c0450c73 | ||
|
|
b25d8086dc | ||
|
|
cbc64dfd68 | ||
|
|
1200ae9c90 | ||
|
|
15e4f95c61 | ||
|
|
6d61d481dc | ||
|
|
3b37c52479 | ||
|
|
d44f0bd45d | ||
|
|
719822eb1e | ||
|
|
6535b36a87 | ||
|
|
0d89c1e5ef | ||
|
|
3f2611a752 | ||
|
|
d1287e564c | ||
|
|
2f60dfc575 | ||
|
|
6dfd745b04 | ||
|
|
56599776b5 | ||
|
|
a42400d6d6 | ||
|
|
3d1eca95dc | ||
|
|
b36b3f1e91 | ||
|
|
308078d2fc | ||
|
|
d5d7fe64f5 | ||
|
|
219ea134ca | ||
|
|
f8eb1d17f9 | ||
|
|
7a1c3b85b6 | ||
|
|
87d5527489 | ||
|
|
a761dac99f | ||
|
|
ee9d6afba8 | ||
|
|
66012c3e84 | ||
|
|
4719a6e310 | ||
|
|
15c4fb69b1 | ||
|
|
af8526a9b3 | ||
|
|
e17debcf4b | ||
|
|
e41885bf4e | ||
|
|
64ad740d39 | ||
|
|
c965963104 | ||
|
|
a5e46f3cf1 | ||
|
|
24a076a202 | ||
|
|
1ca09a00de | ||
|
|
44d741c061 | ||
|
|
d294c9087f | ||
|
|
057abdd240 | ||
|
|
0e82b884e8 | ||
|
|
aea3b67896 | ||
|
|
30df9abebd | ||
|
|
687ba9ed01 | ||
|
|
1f08913703 | ||
|
|
f7cc33688d | ||
|
|
231ff3a73d | ||
|
|
58c0eecbf8 | ||
|
|
f16f804637 | ||
|
|
819fea0521 | ||
|
|
c6e6ac18a2 | ||
|
|
b04b2baf4e | ||
|
|
444cf1f617 | ||
|
|
c055b4a20e | ||
|
|
9adcabb860 | ||
|
|
4b602d61c9 | ||
|
|
1b7b353f48 | ||
|
|
a76a33aeaf | ||
|
|
5192a7f448 | ||
|
|
5f4fa6b17a | ||
|
|
d806927196 | ||
|
|
1df5e08b48 | ||
|
|
b782d10333 | ||
|
|
23aabcc56c | ||
|
|
89b6715438 | ||
|
|
00668f8803 | ||
|
|
67164147a8 | ||
|
|
412a7554c7 | ||
|
|
c3c47f170c | ||
|
|
0eb8d3f4d1 | ||
|
|
e96059337e | ||
|
|
45cbfbf5d8 | ||
|
|
74bc3c1dab | ||
|
|
5dcf3e1eaf | ||
|
|
feedeabee3 | ||
|
|
edd97fc596 | ||
|
|
1b9ae1b32f | ||
|
|
0931fc9622 | ||
|
|
6c39127018 | ||
|
|
931ac30f6b | ||
|
|
d71d9b067e | ||
|
|
a1261254c9 | ||
|
|
f97f9825c4 | ||
|
|
e61a7313cd | ||
|
|
657fbee7b0 | ||
|
|
df7cca025a | ||
|
|
60b61dbf27 | ||
|
|
225ee474eb | ||
|
|
184613753f | ||
|
|
5873a04869 | ||
|
|
05a242d163 | ||
|
|
490140cd6d | ||
|
|
a53670a36e | ||
|
|
0fb0c2f384 | ||
|
|
c914d3d438 | ||
|
|
cfc4578406 | ||
|
|
342cf359b4 | ||
|
|
95e1067337 | ||
|
|
c370afd94e | ||
|
|
2dc89fb425 | ||
|
|
ad97f8a70e | ||
|
|
b7d556c2c7 | ||
|
|
d7558afb58 | ||
|
|
36c8af48fa | ||
|
|
73eecfcf52 | ||
|
|
386dcf1283 | ||
|
|
3d25198994 | ||
|
|
2d77341641 | ||
|
|
ac76143cdf | ||
|
|
78dace3656 | ||
|
|
62bd5009cd | ||
|
|
b10dc045ae | ||
|
|
71dcb0dd0d | ||
|
|
d5bce88176 | ||
|
|
fd32037f23 | ||
|
|
598ed0d198 | ||
|
|
e1faddb488 | ||
|
|
d3f9affe5a | ||
|
|
fac01903e7 | ||
|
|
6a8f69243f | ||
|
|
eea454dc8c | ||
|
|
724f575119 | ||
|
|
ec96496b04 | ||
|
|
8bc1bc2caf | ||
|
|
ac0daa2145 | ||
|
|
55338701ea | ||
|
|
68fc9fb9ad | ||
|
|
d9226c6865 | ||
|
|
12a7c28928 | ||
|
|
25b41bc605 | ||
|
|
424fd8da70 | ||
|
|
3acb7919f6 | ||
|
|
9cc90f090a | ||
|
|
fd9b14a75e | ||
|
|
1866ee812f | ||
|
|
e6305c0e59 | ||
|
|
ae8765c394 | ||
|
|
524a144d38 | ||
|
|
574691e1e3 | ||
|
|
b72eb61720 | ||
|
|
4de76c4c8e | ||
|
|
f8d21def86 | ||
|
|
a0e256d98b | ||
|
|
652d18107a | ||
|
|
f56e8d7489 | ||
|
|
429eb085ea | ||
|
|
bc34c13812 | ||
|
|
60dd660fec | ||
|
|
a97108710c | ||
|
|
5470c074d9 | ||
|
|
0f27481b6e | ||
|
|
b5fdeb127f | ||
|
|
b38d79dd85 | ||
|
|
6b39bb9de7 | ||
|
|
88de44f3f0 | ||
|
|
a77a975bf8 | ||
|
|
188492d320 | ||
|
|
854f5b5ef2 | ||
|
|
0841c96ae4 | ||
|
|
91b37e7268 | ||
|
|
98a71bd7df | ||
|
|
8480dbb726 | ||
|
|
d5cd770c84 | ||
|
|
43d8d7a477 | ||
|
|
a567b1d57f | ||
|
|
66c86697c1 | ||
|
|
6685ff0e79 | ||
|
|
1923e0cd34 | ||
|
|
7a2b60f276 | ||
|
|
e123b8bcc0 | ||
|
|
d4fc3ed354 | ||
|
|
53c8e08dde | ||
|
|
aeca4df693 | ||
|
|
cb9a8389ac | ||
|
|
54620a2eb8 | ||
|
|
e9863f0719 | ||
|
|
c82db4fc87 | ||
|
|
878c285faa | ||
|
|
d9289f063a | ||
|
|
8233016071 | ||
|
|
79157c0bf9 | ||
|
|
fd67e21d31 | ||
|
|
5319b34fd6 | ||
|
|
2d6a8d3d1e | ||
|
|
9c92045646 | ||
|
|
8b56a55906 | ||
|
|
9847942fd5 | ||
|
|
c2a956d589 | ||
|
|
42e3fd0282 | ||
|
|
c3995eea5e | ||
|
|
1c10292343 | ||
|
|
06d536afbc | ||
|
|
cc1a1e751b | ||
|
|
2042246ab6 | ||
|
|
3aa5b1c901 | ||
|
|
25ebe15a35 | ||
|
|
cfb1aefbc6 | ||
|
|
d8d064210d | ||
|
|
c29ef4bb5f | ||
|
|
848d41b971 | ||
|
|
484563477e | ||
|
|
c3af46dc27 | ||
|
|
1dc6a56273 | ||
|
|
1e5c738c32 | ||
|
|
942700ee3b | ||
|
|
99c9824e15 | ||
|
|
d6606afd72 | ||
|
|
e2ff2f5369 | ||
|
|
821dd4e5b0 | ||
|
|
c90430954b | ||
|
|
10fb3859fa | ||
|
|
88df5c33a9 | ||
|
|
da4a49fd31 | ||
|
|
a9f3f873a5 | ||
|
|
b677edbc58 | ||
|
|
4b12b711ee | ||
|
|
2504c062f1 | ||
|
|
9d356aa931 | ||
|
|
17f86b4c39 | ||
|
|
245d13875f | ||
|
|
e7cb419902 | ||
|
|
54b78a64b8 | ||
|
|
95a5a83868 | ||
|
|
90d63ff883 | ||
|
|
ba5e690a38 | ||
|
|
37faa1caa9 | ||
|
|
49dfa4ee6c | ||
|
|
e6e701f5e9 | ||
|
|
c04daeaa20 | ||
|
|
1cffed2336 | ||
|
|
1d54312c9f | ||
|
|
fbb7d457e7 | ||
|
|
714d03524c | ||
|
|
0609ebc430 | ||
|
|
95d63d88ee | ||
|
|
af70b09fd7 | ||
|
|
9b5db05115 | ||
|
|
954ade8c23 | ||
|
|
5688079f72 | ||
|
|
c5280f0d83 | ||
|
|
153f6f1583 | ||
|
|
940f44c6d3 | ||
|
|
481f67514b | ||
|
|
90919c20c3 | ||
|
|
3219cc7605 | ||
|
|
89128f28fa | ||
|
|
e0c9a6cc8e | ||
|
|
5e6b791617 | ||
|
|
858d71218c | ||
|
|
2f0129425d | ||
|
|
5ec0ca9175 | ||
|
|
25b15d084d | ||
|
|
3840fc23bd | ||
|
|
9babd7bcd8 | ||
|
|
f64b1a9f0e | ||
|
|
81da85dac4 | ||
|
|
bf88906de8 | ||
|
|
fba49186ed | ||
|
|
4b5b0e9244 | ||
|
|
7cde32ed2e | ||
|
|
e136afe2eb | ||
|
|
cdb4c88b8c | ||
|
|
77edbc27f8 | ||
|
|
87fedc27b1 | ||
|
|
9d56b56116 | ||
|
|
bdb03c4490 | ||
|
|
b70eb4aba7 | ||
|
|
cfa47eec00 | ||
|
|
d75b0b4ee8 | ||
|
|
85e1225a2c | ||
|
|
bc07d91810 | ||
|
|
183cf150e8 | ||
|
|
13efb396a9 | ||
|
|
7619e35638 | ||
|
|
7f735a6c6e | ||
|
|
331678b913 | ||
|
|
b23aad28ca | ||
|
|
ebc1d01f30 | ||
|
|
ae2e3e8502 | ||
|
|
c7a935777d | ||
|
|
26fef6f294 | ||
|
|
827be982b7 | ||
|
|
c3382199bf | ||
|
|
75e4d16462 | ||
|
|
b03b4582c0 | ||
|
|
1aa04fa83c | ||
|
|
2635fc95f4 | ||
|
|
43695fbc58 | ||
|
|
8289d6937f | ||
|
|
2877ef8fcf | ||
|
|
f65231268d | ||
|
|
bd4c6b8c6c | ||
|
|
a0f55c9e8f | ||
|
|
fcf1f06b31 | ||
|
|
a79a05cd52 | ||
|
|
ca8cbacad7 | ||
|
|
2194e4cc10 | ||
|
|
43afa4c1e0 | ||
|
|
322c957f7f | ||
|
|
6c476bdc0d | ||
|
|
7aca548f65 | ||
|
|
80bc659b11 | ||
|
|
5646f3aff8 | ||
|
|
d58c4deebb | ||
|
|
280e6528f1 | ||
|
|
d4638f8825 | ||
|
|
22a25f0e95 | ||
|
|
b79868c57d | ||
|
|
55ca8d14bb | ||
|
|
c6a8675526 | ||
|
|
12b93c1696 | ||
|
|
503995270c | ||
|
|
6155c5bea0 | ||
|
|
6a89d15807 | ||
|
|
0b6789c290 | ||
|
|
202f3de54b | ||
|
|
20e5e86f1a | ||
|
|
3c10bc54ba | ||
|
|
c695ae05a8 | ||
|
|
609674cc17 | ||
|
|
54ebd0cca1 | ||
|
|
66ada58101 | ||
|
|
e3a301054e | ||
|
|
ad07728dfb | ||
|
|
2f59819817 | ||
|
|
2983215dee | ||
|
|
09d8ac1622 | ||
|
|
c7809ca751 | ||
|
|
b6937419fb | ||
|
|
111021987c | ||
|
|
ab1bea376e | ||
|
|
fac72921b6 | ||
|
|
1e83c35ece | ||
|
|
629630a086 | ||
|
|
8f92a28b12 | ||
|
|
f6f41dc1eb | ||
|
|
6e15d0f5e8 | ||
|
|
ede6a33f9d | ||
|
|
2760a36f47 | ||
|
|
0ed325c628 | ||
|
|
4d4e2c6230 | ||
|
|
e30e3722ae | ||
|
|
4c28a7f485 | ||
|
|
0b5e7da2d9 | ||
|
|
6d46ed8082 | ||
|
|
682247241f | ||
|
|
538837decf | ||
|
|
56fbfc1648 | ||
|
|
0b74d351c5 | ||
|
|
7a04b2f0c0 | ||
|
|
949cf98c77 | ||
|
|
9cb8e8957c | ||
|
|
2d4446fb65 | ||
|
|
cae8ffb5e4 | ||
|
|
f3a8930174 | ||
|
|
2dcc260afb | ||
|
|
35dd6d7521 | ||
|
|
796d00da3e | ||
|
|
5e415fc949 | ||
|
|
acee86f97c | ||
|
|
7703108edb | ||
|
|
72d762ea0d | ||
|
|
34c308d0a4 | ||
|
|
491b179971 | ||
|
|
573698789e | ||
|
|
160a1fd8c8 | ||
|
|
77ea76a0e0 | ||
|
|
4bc53aaed1 | ||
|
|
4ba0e6bdee | ||
|
|
8f8202494a | ||
|
|
27c7030034 | ||
|
|
3326242915 | ||
|
|
c4ba5ce02a | ||
|
|
6110e3df14 | ||
|
|
d626f16da4 | ||
|
|
33d05678b4 | ||
|
|
f8da8254ce | ||
|
|
334ddd8cba | ||
|
|
98f3edf160 | ||
|
|
62a5f41ee4 | ||
|
|
76d9f26a16 | ||
|
|
50a9287107 | ||
|
|
1c168bb361 | ||
|
|
0bf78cd531 | ||
|
|
d400bfeaeb | ||
|
|
a470c7dd1c | ||
|
|
0c1f0d5df6 | ||
|
|
67b8d769d9 | ||
|
|
bc98ae8f05 | ||
|
|
a6f4c6f28d | ||
|
|
f28a37aba5 | ||
|
|
e2a109667a | ||
|
|
26380719a1 | ||
|
|
54da2df8c0 | ||
|
|
505eb13461 | ||
|
|
c22b195bbd | ||
|
|
1805a28d51 | ||
|
|
c86d79b7a5 | ||
|
|
c2dea5a19f | ||
|
|
fe39de5126 | ||
|
|
905273c90c | ||
|
|
e02d17a6cc | ||
|
|
01c84212f9 | ||
|
|
1b48f4857a | ||
|
|
57090243e1 | ||
|
|
6fc14effb7 | ||
|
|
f461c900cf | ||
|
|
92ae57df3f | ||
|
|
19a785ce18 | ||
|
|
1408bcd0e1 | ||
|
|
9e4eebed26 | ||
|
|
42bedefe10 | ||
|
|
634703c76b | ||
|
|
673a5ccc9e | ||
|
|
446833d931 | ||
|
|
e98a183978 | ||
|
|
d23b30023a | ||
|
|
48ff90fe8b | ||
|
|
79bd092697 | ||
|
|
9183cfdb01 | ||
|
|
e999524e03 | ||
|
|
4dcfd7c0dd | ||
|
|
2ffb1a6015 | ||
|
|
1eea16ecdf | ||
|
|
d5ac6d8c7e | ||
|
|
6c642b5f00 | ||
|
|
46f8000b3d | ||
|
|
b96a1551e1 | ||
|
|
378919cbfb | ||
|
|
a1c53e59fb | ||
|
|
ef8e39050a | ||
|
|
8d05d8481a | ||
|
|
0667c69688 | ||
|
|
c57feada47 | ||
|
|
4b8a05a667 | ||
|
|
2784bc7916 | ||
|
|
8fc12bddd7 | ||
|
|
74d51a3ab5 | ||
|
|
f6349dd37d | ||
|
|
0a3eb467fc | ||
|
|
5da849099f | ||
|
|
640ed0479a | ||
|
|
8e111e2b9d | ||
|
|
24ec0ebbf9 | ||
|
|
122e9ac087 | ||
|
|
d70c651040 | ||
|
|
3254de8394 | ||
|
|
485f92840e | ||
|
|
77476451bd | ||
|
|
055d55aac6 | ||
|
|
1f16ae98f5 | ||
|
|
e9acff975e | ||
|
|
07cf2f20fb | ||
|
|
a70803a36e | ||
|
|
f7ea7b948a | ||
|
|
aa1145960a | ||
|
|
f78be2631a | ||
|
|
a380f9c9f2 | ||
|
|
3a537d9fdc | ||
|
|
3a67dc18e9 | ||
|
|
3d90242aba | ||
|
|
11ba1a6ce8 | ||
|
|
cef446d7fa | ||
|
|
59e00cb41d | ||
|
|
c08b7be434 | ||
|
|
4960838e58 | ||
|
|
06ac124bab | ||
|
|
661e946e60 | ||
|
|
4825cf1425 | ||
|
|
8bafc273cb | ||
|
|
b5ffac2db1 | ||
|
|
1c36138ae8 | ||
|
|
fb094fddba | ||
|
|
6029556291 | ||
|
|
53eb0e0f26 | ||
|
|
a93c82fe9c | ||
|
|
4e1204f34e | ||
|
|
618665f655 | ||
|
|
ea01af7993 | ||
|
|
d95a6a38ae | ||
|
|
1ef1c4fbae | ||
|
|
7015d6e3eb | ||
|
|
fe90016f8d | ||
|
|
b739b0faf9 | ||
|
|
700d894324 | ||
|
|
10194fe445 | ||
|
|
90a20ce6a7 | ||
|
|
a380fe5883 | ||
|
|
148149f765 | ||
|
|
7895fc1c78 | ||
|
|
51b380da65 | ||
|
|
c41ba297e3 | ||
|
|
e565044aa3 | ||
|
|
304fccaec4 | ||
|
|
4e0ea04d3c | ||
|
|
0733cd6a9b | ||
|
|
0cd7d9a57d | ||
|
|
8ce7de3b1c | ||
|
|
f04790e1cd | ||
|
|
0ac07c4522 | ||
|
|
e716e484a6 | ||
|
|
099f5844b4 | ||
|
|
918d9834ee | ||
|
|
009a56cee7 | ||
|
|
040555772a | ||
|
|
3b1193c1e6 | ||
|
|
c00abd6add | ||
|
|
f9db77758b | ||
|
|
5eaaf34fe2 | ||
|
|
a9c43e57a8 | ||
|
|
4cb245b8d8 | ||
|
|
9502a11f6d | ||
|
|
d998fa88e6 | ||
|
|
4ef7ceebe5 | ||
|
|
4acde37698 | ||
|
|
49bcf02db3 | ||
|
|
45424f4a3b | ||
|
|
dbd4e209d3 | ||
|
|
10d5855bba | ||
|
|
182ec9cdb4 | ||
|
|
c07f2e1c18 | ||
|
|
93e6abefed | ||
|
|
fc02ecc3a1 | ||
|
|
25f2859a95 | ||
|
|
64c44aef8e | ||
|
|
8dfc3797f0 | ||
|
|
bb979157e4 | ||
|
|
1f2559a86d | ||
|
|
114acc022f | ||
|
|
63f370c2db | ||
|
|
b1f9a96268 | ||
|
|
c246d7839f | ||
|
|
cd127c51ae | ||
|
|
6670859dc6 | ||
|
|
6c8d52f8df | ||
|
|
b260621aff | ||
|
|
07a0af2aae | ||
|
|
7cfec9255e | ||
|
|
90825eac79 | ||
|
|
12c56fb647 | ||
|
|
b39b92eb20 | ||
|
|
008ea589dc | ||
|
|
54f90f73ae | ||
|
|
ee620be1ec | ||
|
|
2db3bb5556 | ||
|
|
bc70ef72ff | ||
|
|
d3fb0acdfb | ||
|
|
17c566e31e | ||
|
|
ac42f774aa | ||
|
|
28fb9bfc75 | ||
|
|
b98effbf32 | ||
|
|
889ed4541b | ||
|
|
427ca9d92d | ||
|
|
3df2616f4e | ||
|
|
9ef7507750 | ||
|
|
c5f533011b | ||
|
|
d03032b808 | ||
|
|
17dcef621e | ||
|
|
bf305f76a7 | ||
|
|
5ad5af7f20 | ||
|
|
4b3ba43f38 | ||
|
|
7e6ce7fb76 | ||
|
|
5c126cb61e | ||
|
|
6d056d7a08 | ||
|
|
d22e1fff16 | ||
|
|
0c8fee3528 | ||
|
|
535ca49479 | ||
|
|
86c61cab33 | ||
|
|
416de8332a | ||
|
|
e30137ce68 | ||
|
|
982b10464f | ||
|
|
dc4cc02682 | ||
|
|
a8429f3e1d | ||
|
|
3343d14323 | ||
|
|
94d05c7e25 | ||
|
|
2976d4c0cf | ||
|
|
b2683fb675 | ||
|
|
f7180853fc | ||
|
|
cb625469a5 | ||
|
|
296e5913b7 | ||
|
|
bd888ff7c9 | ||
|
|
26a229d745 | ||
|
|
47f1d2fb98 | ||
|
|
f0069c6ebd | ||
|
|
15fe7091ff | ||
|
|
f5c2d51f1e | ||
|
|
947c913d1c | ||
|
|
69b4296fa7 | ||
|
|
8692d6fa89 | ||
|
|
83359afe5d | ||
|
|
8abc7cd87c | ||
|
|
11b40eeff4 | ||
|
|
9cf35ab199 | ||
|
|
87806b8a67 | ||
|
|
417835fcca | ||
|
|
708f6a26b1 | ||
|
|
1a7cfc67d9 | ||
|
|
29528eaed4 | ||
|
|
42067f9fd5 | ||
|
|
ea8989816f | ||
|
|
571807d226 | ||
|
|
9960277ad0 | ||
|
|
4e0035b0a7 | ||
|
|
9c3627dca9 | ||
|
|
36f8a37bd4 | ||
|
|
0fa062ccf6 | ||
|
|
c98ca42bbd | ||
|
|
b0c43890af | ||
|
|
dd303b292a | ||
|
|
53f9895901 | ||
|
|
14c23f1387 | ||
|
|
4d6a8f9194 | ||
|
|
3c8efd51ef | ||
|
|
cddbe86481 | ||
|
|
5e86344293 | ||
|
|
2ffb9e8438 | ||
|
|
ed4c6a77d1 | ||
|
|
c2e87dde85 | ||
|
|
001b15b856 | ||
|
|
84d6dcf498 | ||
|
|
e4c9444fe3 | ||
|
|
0532c9c37b | ||
|
|
f06eb14c48 | ||
|
|
1b349023ed | ||
|
|
72f987a42b | ||
|
|
1c18379b5c | ||
|
|
325cf2c08b | ||
|
|
4c96b7826c | ||
|
|
3228a3abd1 | ||
|
|
ddbfab4fc5 | ||
|
|
b744e97fd0 | ||
|
|
cd7fd24b1a | ||
|
|
1de7828e4d | ||
|
|
fb0bc34042 | ||
|
|
f38aedae85 | ||
|
|
ecf41e6fa5 | ||
|
|
643897a204 | ||
|
|
0bc5a01228 | ||
|
|
95fb11a2b9 | ||
|
|
19748762a5 | ||
|
|
d1d6ef55ff | ||
|
|
c6e9aba308 | ||
|
|
bd38ad5166 | ||
|
|
1952cf6563 | ||
|
|
c580148bb7 | ||
|
|
75aef71fe6 | ||
|
|
5207e35488 | ||
|
|
040058957f | ||
|
|
11ce4fa41b | ||
|
|
74b4c91d58 | ||
|
|
c7d34ae926 | ||
|
|
9400bd1fd2 | ||
|
|
e7301ffd74 | ||
|
|
43bc270284 | ||
|
|
5642fc4026 | ||
|
|
97a43d058d | ||
|
|
46082f63b3 | ||
|
|
3f0f077ced | ||
|
|
dfa70b0637 | ||
|
|
184efbbc44 | ||
|
|
a9db513352 | ||
|
|
1ea1d29d3e | ||
|
|
ff74d3ce13 | ||
|
|
75f840a214 | ||
|
|
fd85d3f33d | ||
|
|
ac15f2755c | ||
|
|
d178286e2b | ||
|
|
929fa5d59d | ||
|
|
20b1321818 | ||
|
|
47486e84dd | ||
|
|
83ebda350a | ||
|
|
6fa5591cfe | ||
|
|
a2074cbc02 | ||
|
|
1d79f97a7a | ||
|
|
57d5206592 | ||
|
|
912e7c9f68 | ||
|
|
a05c68e8d9 | ||
|
|
9063f07b05 | ||
|
|
a13863714c | ||
|
|
5e6ae6a855 | ||
|
|
9e15000ea1 | ||
|
|
6201c3a3f5 | ||
|
|
88bf562150 | ||
|
|
c5cff11fba | ||
|
|
11d02f68da | ||
|
|
61ad5409ea | ||
|
|
8ad5640ece | ||
|
|
4eb7c1bc00 | ||
|
|
54513158b9 | ||
|
|
0a793d23be | ||
|
|
281236432a | ||
|
|
b211407b76 | ||
|
|
740bf51e46 | ||
|
|
c854769440 | ||
|
|
0c7baa46f4 | ||
|
|
a1c602c98e | ||
|
|
025225a899 | ||
|
|
146ed151dd | ||
|
|
cd2dda268f | ||
|
|
b8b8a5ee85 | ||
|
|
a76c4ae943 | ||
|
|
979851ae1b | ||
|
|
54b8e93ee4 | ||
|
|
92a12b7ac0 | ||
|
|
bcf4aaee95 | ||
|
|
f2b98f14d4 | ||
|
|
c6ab8d1d37 | ||
|
|
078d6a0d98 | ||
|
|
d914b13c1b | ||
|
|
6764c7e779 | ||
|
|
c044e1a00c | ||
|
|
8fdb41412f |
16
.env.example
Normal file
16
.env.example
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# To enable CSS hot-reload, set the following variable to 1.
|
||||||
|
CSS_HOT_RELOAD=1
|
||||||
|
# To use the full page error dialog, set this to 1. Please report false positives to
|
||||||
|
# the issue tracker for handling.
|
||||||
|
FULL_PAGE_ERRORS=0
|
||||||
|
# To use a single theme, uncomment the line with the theme you want to hot-reload.
|
||||||
|
MATRIX_THEMES='light'
|
||||||
|
#MATRIX_THEMES='dark'
|
||||||
|
#MATRIX_THEMES='legacy-light'
|
||||||
|
#MATRIX_THEMES='legacy-dark'
|
||||||
|
#MATRIX_THEMES='light-custom'
|
||||||
|
#MATRIX_THEMES='dark-custom'
|
||||||
|
# You can also enable multiple themes by using a comma-separated list.
|
||||||
|
# When multiple themes are enabled, switching between them may require a full page reload.
|
||||||
|
# Note that compilation times are proportional to the number of enabled themes.
|
||||||
|
#MATRIX_THEMES='light,dark'
|
||||||
37
.eslintrc.js
37
.eslintrc.js
@@ -1,23 +1,30 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
"extends": ["matrix-org", "matrix-org/react"],
|
plugins: ["matrix-org"],
|
||||||
"env": {
|
extends: [
|
||||||
"browser": true,
|
"plugin:matrix-org/babel",
|
||||||
"node": true,
|
"plugin:matrix-org/react",
|
||||||
|
],
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
node: true,
|
||||||
},
|
},
|
||||||
"rules": {
|
rules: {
|
||||||
|
// Things we do that break the ideal style
|
||||||
"quotes": "off",
|
"quotes": "off",
|
||||||
},
|
},
|
||||||
"overrides": [{
|
overrides: [{
|
||||||
"files": ["src/**/*.{ts,tsx}"],
|
files: ["src/**/*.{ts,tsx}"],
|
||||||
"extends": ["matrix-org/ts", "matrix-org/react"],
|
extends: [
|
||||||
"env": {
|
"plugin:matrix-org/typescript",
|
||||||
"browser": true,
|
"plugin:matrix-org/react",
|
||||||
},
|
],
|
||||||
"rules": {
|
rules: {
|
||||||
"quotes": "off",
|
// Things we do that break the ideal style
|
||||||
// While converting to ts we allow this
|
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
|
||||||
"prefer-promise-reject-errors": "off",
|
"prefer-promise-reject-errors": "off",
|
||||||
|
"quotes": "off",
|
||||||
|
|
||||||
|
// We disable this while we're transitioning
|
||||||
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
};
|
};
|
||||||
|
|||||||
1
.github/CODEOWNERS
vendored
Normal file
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* @vector-im/element-web
|
||||||
48
.github/ISSUE_TEMPLATE.md
vendored
48
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,48 +0,0 @@
|
|||||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
|
||||||
|
|
||||||
<!-- Please report security issues by email to security@matrix.org -->
|
|
||||||
|
|
||||||
<!-- This is a bug report template. By following the instructions below and
|
|
||||||
filling out the sections with your information, you will help the us to get all
|
|
||||||
the necessary data to fix your issue.
|
|
||||||
|
|
||||||
You can also preview your report before submitting it. You may remove sections
|
|
||||||
that aren't relevant to your particular case.
|
|
||||||
|
|
||||||
Text between <!-- and --> marks will be invisible in the report.
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
Describe here the problem that you are experiencing, or the feature you are requesting.
|
|
||||||
|
|
||||||
### Steps to reproduce
|
|
||||||
|
|
||||||
- For bugs, list the steps
|
|
||||||
- that reproduce the bug
|
|
||||||
- using hyphens as bullet points
|
|
||||||
|
|
||||||
Describe how what happens differs from what you expected.
|
|
||||||
|
|
||||||
Log: sent/not sent? <!-- You can send us the app's logs via the 'Report bug'
|
|
||||||
link on the 'Settings' page. Very important for hard-to-reproduce bugs. Please
|
|
||||||
file a bug here too! -->
|
|
||||||
|
|
||||||
<!-- Include screenshots if possible: you can drag and drop images below. -->
|
|
||||||
|
|
||||||
### Version information
|
|
||||||
|
|
||||||
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
|
|
||||||
|
|
||||||
- **Platform**: web (in-browser) or desktop?
|
|
||||||
|
|
||||||
For the web app:
|
|
||||||
|
|
||||||
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
|
|
||||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
|
||||||
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
|
|
||||||
|
|
||||||
For the desktop app:
|
|
||||||
|
|
||||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
|
||||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
|
||||||
75
.github/ISSUE_TEMPLATE/bug-desktop.yml
vendored
Normal file
75
.github/ISSUE_TEMPLATE/bug-desktop.yml
vendored
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
name: Bug report for the Element desktop app (not in a browser)
|
||||||
|
description: File a bug report if you are using the desktop Element application.
|
||||||
|
labels: [T-Defect]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
|
||||||
|
Please report security issues by email to security@matrix.org
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction-steps
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Please attach screenshots, videos or logs if you can.
|
||||||
|
placeholder: Tell us what you see!
|
||||||
|
value: |
|
||||||
|
1. Where are you starting? What can you see?
|
||||||
|
2. What do you click?
|
||||||
|
3. More steps…
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: result
|
||||||
|
attributes:
|
||||||
|
label: Outcome
|
||||||
|
placeholder: Tell us what went wrong
|
||||||
|
value: |
|
||||||
|
#### What did you expect?
|
||||||
|
|
||||||
|
#### What happened instead?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: Operating system
|
||||||
|
placeholder: Windows, macOS, Ubuntu, Arch Linux…
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Application version
|
||||||
|
description: You can find the version information in Settings -> Help & About.
|
||||||
|
placeholder: e.g. Element version 1.7.34, olm version 3.2.3
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: source
|
||||||
|
attributes:
|
||||||
|
label: How did you install the app?
|
||||||
|
description: Where did you install the app from? Please give a link or a description.
|
||||||
|
placeholder: e.g. From https://element.io/get-started
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: homeserver
|
||||||
|
attributes:
|
||||||
|
label: Homeserver
|
||||||
|
description: Which server is your account registered on?
|
||||||
|
placeholder: e.g. matrix.org
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: rageshake
|
||||||
|
attributes:
|
||||||
|
label: Will you send logs?
|
||||||
|
description: |
|
||||||
|
Did you know that you can send a /rageshake command from your application to submit logs for this issue? Trigger the defect, then type `/rageshake` into the message input area followed by a description of the problem and send the command. You will be able to add a link to this defect report and submit anonymous logs to the developers.
|
||||||
|
options:
|
||||||
|
- 'Yes'
|
||||||
|
- 'No'
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
83
.github/ISSUE_TEMPLATE/bug-web.yml
vendored
Normal file
83
.github/ISSUE_TEMPLATE/bug-web.yml
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
name: Bug report for Element Web (in browser)
|
||||||
|
description: File a bug report if you are using Element in a web browser like Firefox, Chrome, Edge, and so on.
|
||||||
|
labels: [T-Defect]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
|
||||||
|
Please report security issues by email to security@matrix.org
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction-steps
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Please attach screenshots, videos or logs if you can.
|
||||||
|
placeholder: Tell us what you see!
|
||||||
|
value: |
|
||||||
|
1. Where are you starting? What can you see?
|
||||||
|
2. What do you click?
|
||||||
|
3. More steps…
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: result
|
||||||
|
attributes:
|
||||||
|
label: Outcome
|
||||||
|
placeholder: Tell us what went wrong
|
||||||
|
value: |
|
||||||
|
#### What did you expect?
|
||||||
|
|
||||||
|
#### What happened instead?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: Operating system
|
||||||
|
placeholder: Windows, macOS, Ubuntu, Arch Linux…
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: browser
|
||||||
|
attributes:
|
||||||
|
label: Browser information
|
||||||
|
description: Which browser are you using? Which version?
|
||||||
|
placeholder: e.g. Chromium Version 92.0.4515.131
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: webapp-url
|
||||||
|
attributes:
|
||||||
|
label: URL for webapp
|
||||||
|
description: Which URL are you using to access the webapp? If a private server, tell us what version of Element Web you are using.
|
||||||
|
placeholder: e.g. develop.element.io, app.element.io
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Application version
|
||||||
|
description: You can find the version information in Settings -> Help & About.
|
||||||
|
placeholder: e.g. Element version 1.7.34, olm version 3.2.3
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: homeserver
|
||||||
|
attributes:
|
||||||
|
label: Homeserver
|
||||||
|
description: Which server is your account registered on?
|
||||||
|
placeholder: e.g. matrix.org
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: rageshake
|
||||||
|
attributes:
|
||||||
|
label: Will you send logs?
|
||||||
|
description: |
|
||||||
|
Did you know that you can send a /rageshake command from the web application to submit logs for this issue? Trigger the defect, then type `/rageshake` into the message input area followed by a description of the problem and send the command. You will be able to add a link to this defect report and submit anonymous logs to the developers.
|
||||||
|
options:
|
||||||
|
- 'Yes'
|
||||||
|
- 'No'
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
58
.github/ISSUE_TEMPLATE/bug_report.md
vendored
58
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: T-Defect
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
|
||||||
|
|
||||||
<!-- Please report security issues by email to security@matrix.org -->
|
|
||||||
|
|
||||||
<!-- This is a bug report template. By following the instructions below and
|
|
||||||
filling out the sections with your information, you will help the us to get all
|
|
||||||
the necessary data to fix your issue.
|
|
||||||
|
|
||||||
You can also preview your report before submitting it. You may remove sections
|
|
||||||
that aren't relevant to your particular case.
|
|
||||||
|
|
||||||
Text between <!-- and --> marks will be invisible in the report.
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Description
|
|
||||||
|
|
||||||
Describe here the problem that you are experiencing, or the feature you are requesting.
|
|
||||||
|
|
||||||
### Steps to reproduce
|
|
||||||
|
|
||||||
- For bugs, list the steps
|
|
||||||
- that reproduce the bug
|
|
||||||
- using hyphens as bullet points
|
|
||||||
|
|
||||||
Describe how what happens differs from what you expected.
|
|
||||||
|
|
||||||
<!-- Please send us logs for your bug report. They're very important for bugs
|
|
||||||
which are hard to reproduce. To do this, create this issue then go to your
|
|
||||||
account settings and click 'Submit Debug Logs' from the Help & About tab -->
|
|
||||||
Logs being sent: yes/no
|
|
||||||
|
|
||||||
<!-- Include screenshots if possible: you can drag and drop images below. -->
|
|
||||||
|
|
||||||
### Version information
|
|
||||||
|
|
||||||
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
|
|
||||||
|
|
||||||
- **Platform**: web (in-browser) or desktop?
|
|
||||||
|
|
||||||
For the web app:
|
|
||||||
|
|
||||||
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
|
|
||||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
|
||||||
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
|
|
||||||
|
|
||||||
For the desktop app:
|
|
||||||
|
|
||||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
|
||||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
|
||||||
36
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
36
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: Enhancement request
|
||||||
|
description: Do you have a suggestion or feature request?
|
||||||
|
labels: [T-Enhancement]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to propose a new feature or make a suggestion.
|
||||||
|
- type: textarea
|
||||||
|
id: usecase
|
||||||
|
attributes:
|
||||||
|
label: Your use case
|
||||||
|
description: What would you like to be able to do? Please feel welcome to include screenshots or mock ups.
|
||||||
|
placeholder: Tell us what you would like to do!
|
||||||
|
value: |
|
||||||
|
#### What would you like to do?
|
||||||
|
|
||||||
|
#### Why would you like to do it?
|
||||||
|
|
||||||
|
#### How would you like to achieve it?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: alternative
|
||||||
|
attributes:
|
||||||
|
label: Have you considered any alternatives?
|
||||||
|
placeholder: A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: additional-context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
placeholder: Is there anything else you'd like to add?
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
name: Suggestion or Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: T-Enhancement
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your suggestion related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!-- Please read https://github.com/matrix-org/matrix-js-sdk/blob/develop/CONTRIBUTING.md before submitting your pull request -->
|
||||||
|
|
||||||
|
<!-- Include a Sign-Off as described in https://github.com/matrix-org/matrix-js-sdk/blob/develop/CONTRIBUTING.md#sign-off -->
|
||||||
|
|
||||||
|
<!-- To specify text for the changelog entry (otherwise the PR title will be used):
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
Changelog entries will also appear in element-desktop. For PRs that *only* affect the desktop version:
|
||||||
|
Notes: none
|
||||||
|
element-desktop notes: <notes>
|
||||||
|
-->
|
||||||
12
.github/workflows/preview_changelog.yaml
vendored
Normal file
12
.github/workflows/preview_changelog.yaml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
name: Preview Changelog
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [ opened, edited, labeled ]
|
||||||
|
jobs:
|
||||||
|
changelog:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Preview Changelog
|
||||||
|
uses: matrix-org/allchange@main
|
||||||
|
with:
|
||||||
|
ghToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
26
.github/workflows/sentry-sourcemaps.yaml
vendored
Normal file
26
.github/workflows/sentry-sourcemaps.yaml
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
name: Upload Sentry Sourcemaps
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
repository_dispatch:
|
||||||
|
types: [ element-web-notify ]
|
||||||
|
jobs:
|
||||||
|
upload-sentry-sourcemaps:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment: develop
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '14'
|
||||||
|
cache: 'yarn'
|
||||||
|
- run: ./scripts/fetch-develop.deps.sh --depth 1
|
||||||
|
- run: yarn install
|
||||||
|
- run: ./scripts/ci_package.sh
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
||||||
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
||||||
|
SENTRY_ORG: sentry
|
||||||
|
SENTRY_PROJECT: riot-web
|
||||||
15
.github/workflows/triage-incoming.yml
vendored
Normal file
15
.github/workflows/triage-incoming.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: Move new issues into Issue triage board
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
automate-project-columns:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
|
with:
|
||||||
|
project: Issue triage
|
||||||
|
column: Incoming
|
||||||
|
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
133
.github/workflows/triage-move-labelled.yml
vendored
Normal file
133
.github/workflows/triage-move-labelled.yml
vendored
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
name: Move labelled issues to correct boards and columns
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [labeled]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
move_needs_info_issues:
|
||||||
|
name: Move X-Needs-Info issues to Need info on triage board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
|
||||||
|
with:
|
||||||
|
action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
|
||||||
|
project-url: "https://github.com/vector-im/element-web/projects/27"
|
||||||
|
column-name: "Need info"
|
||||||
|
label-name: "X-Needs-Info"
|
||||||
|
|
||||||
|
add_priority_design_issues_to_project:
|
||||||
|
name: Move priority X-Needs-Design issues to Design project board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent')
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_project
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:String!,$contentid:String!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
move_spaces_issues:
|
||||||
|
name: Move Spaces issues to Delight project board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Spaces') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Subspaces')
|
||||||
|
steps:
|
||||||
|
- uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
|
||||||
|
with:
|
||||||
|
action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
|
||||||
|
project-url: "https://github.com/orgs/vector-im/projects/6"
|
||||||
|
column-name: "📥 Inbox"
|
||||||
|
label-name: "A-Spaces"
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_delight2
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:String!,$contentid:String!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc1HvQ"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
move_voice-message_issues:
|
||||||
|
name: Move A-Voice Messages to Voice message board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Voice Messages')
|
||||||
|
steps:
|
||||||
|
- uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
|
||||||
|
with:
|
||||||
|
action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
|
||||||
|
project-url: "https://github.com/vector-im/element-web/projects/28"
|
||||||
|
column-name: "📥 Inbox"
|
||||||
|
label-name: "A-Voice Messages"
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_voice
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:String!,$contentid:String!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc2KCw"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
move_threads_issues:
|
||||||
|
name: Move A-Threads to Thread board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Threads')
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:String!,$contentid:String!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc0rRA"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
61
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
61
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
name: Move pull requests asking for review to the relevant project
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [review_requested]
|
||||||
|
jobs:
|
||||||
|
add_design_pr_to_project:
|
||||||
|
name: Move PRs asking for design review to the design board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: find_team_members
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
query find_team_members($team: String!) {
|
||||||
|
organization(login: "vector-im") {
|
||||||
|
team(slug: $team) {
|
||||||
|
members {
|
||||||
|
nodes {
|
||||||
|
login
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
team: ${{ env.TEAM }}
|
||||||
|
env:
|
||||||
|
TEAM: "design"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
- id: any_reviewers_in_the_team
|
||||||
|
run: |
|
||||||
|
echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
|
||||||
|
echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
|
||||||
|
jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
|
||||||
|
jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
|
||||||
|
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) = 0 ]; then
|
||||||
|
echo "::set-output name=match::false"
|
||||||
|
else
|
||||||
|
echo "::set-output name=match::true"
|
||||||
|
fi
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_project
|
||||||
|
if: >
|
||||||
|
(steps.any_reviewers_in_the_team.outputs.match == 'true') ||
|
||||||
|
(github.event.pull_request.requested_teams.slug == env.TEAM)
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:String!, $contentid:String!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.pull_request.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
|
TEAM: "design"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
35
.github/workflows/triage-move-unlabelled.yml
vendored
Normal file
35
.github/workflows/triage-move-unlabelled.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
name: Move unlabelled from needs info columns to triaged
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [unlabeled]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Move_Unabeled_Issue_On_Project_Board:
|
||||||
|
name: Move no longer X-Needs-Info issues to Triaged
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
${{
|
||||||
|
!contains(github.event.issue.labels.*.name, 'X-Needs-Info') }}
|
||||||
|
env:
|
||||||
|
BOARD_NAME: "Issue triage"
|
||||||
|
OWNER: ${{ github.repository_owner }}
|
||||||
|
REPO: ${{ github.event.repository.name }}
|
||||||
|
ISSUE: ${{ github.event.issue.number }}
|
||||||
|
steps:
|
||||||
|
- name: Check if issue is already in "${{ env.BOARD_NAME }}"
|
||||||
|
run: |
|
||||||
|
if curl -i -H 'Content-Type: application/json' -H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" -X POST -d '{"query": "query($issue: Int!, $owner: String!, $repo: String!) { repository(owner: $owner, name: $repo) { issue(number: $issue) { projectCards { nodes { project { name } } } } } } ", "variables" : "{ \"issue\": '${ISSUE}', \"owner\": \"'${OWNER}'\", \"repo\": \"'${REPO}'\" }" }' https://api.github.com/graphql | grep "\b$BOARD_NAME\b"; then
|
||||||
|
echo "Issue is already in Project '$BOARD_NAME', proceeding";
|
||||||
|
echo "ALREADY_IN_BOARD=true" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "Issue is not in project '$BOARD_NAME', cancelling this workflow"
|
||||||
|
echo "ALREADY_IN_BOARD=false" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
- name: Move issue
|
||||||
|
uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
|
if: ${{ env.ALREADY_IN_BOARD == 'true' }}
|
||||||
|
with:
|
||||||
|
project: Issue triage
|
||||||
|
column: Triaged
|
||||||
|
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
55
.github/workflows/triage-priority-bugs.yml
vendored
Normal file
55
.github/workflows/triage-priority-bugs.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: Move labelled issues into the Priority bugs column for the Web App Team
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [labeled, unlabeled]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
p1_issues_to_team_workboard:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
(!contains(github.event.issue.labels.*.name, 'A-E2EE') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-Spaces') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') &&
|
||||||
|
!contains(github.event.issue.labels.*.name, 'A-Subspaces')) &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'T-Defect') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
||||||
|
steps:
|
||||||
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
|
with:
|
||||||
|
project: Web App Team
|
||||||
|
column: P1
|
||||||
|
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
P1_issues_to_crypto_team_workboard:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'T-Defect') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
||||||
|
steps:
|
||||||
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
|
with:
|
||||||
|
project: Crypto Team
|
||||||
|
column: Ready
|
||||||
|
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -19,3 +19,6 @@ electron/pub
|
|||||||
/src/component-index.js
|
/src/component-index.js
|
||||||
/.tmp
|
/.tmp
|
||||||
/webpack-stats.json
|
/webpack-stats.json
|
||||||
|
.vscode
|
||||||
|
.vscode/
|
||||||
|
.env
|
||||||
|
|||||||
30
.gitlab-ci.yml
Normal file
30
.gitlab-ci.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
|
||||||
|
variables:
|
||||||
|
USE_CUSTOM_SDKS: "true"
|
||||||
|
JS_SDK_BRANCH: "release-v9.8.0"
|
||||||
|
JS_SDK_REPO: "https://github.com/matrix-org/matrix-js-sdk.git"
|
||||||
|
REACT_SDK_REPO: "https://gitlab-ci-token:$GL_BAYERN_REACT_SDK_TOKEN@gitlab.matrix.org/new-vector/dataport/bayern-react-sdk"
|
||||||
|
REACT_SDK_BRANCH: "master"
|
||||||
|
|
||||||
|
docker-build:
|
||||||
|
tags: ['shell']
|
||||||
|
stage: build
|
||||||
|
before_script:
|
||||||
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
|
- "[ -d './js-sdk' ] && rm -rf ./js-sdk"
|
||||||
|
- "[[ $JS_SDK_BRANCH != 'master' ]] && git clone --depth 1 --branch $JS_SDK_BRANCH $JS_SDK_REPO js-sdk && cd js-sdk && export JS_SDK_SHA=$(git rev-parse --short=12 HEAD) && cd ../ && rm -rf js-sdk"
|
||||||
|
- "[[ $JS_SDK_BRANCH == 'master' ]] && export JS_SDK_SHA=master"
|
||||||
|
- "[ -d './react-sdk' ] && rm -rf ./react-sdk"
|
||||||
|
- "[[ $REACT_SDK_BRANCH != 'master' ]] && git clone --depth 1 --branch $REACT_SDK_BRANCH $REACT_SDK_REPO react-sdk && cd react-sdk && export REACT_SDK_SHA=$(git rev-parse --short=12 HEAD) && cd ../ && rm -rf react-sdk"
|
||||||
|
- "[[ $REACT_SDK_BRANCH == 'master' ]] && export REACT_SDK_SHA=master"
|
||||||
|
- "[[ $CI_COMMIT_BRANCH != 'master' ]] && export ELEMENT_WEB_SHA=$(git rev-parse --short=12 HEAD)"
|
||||||
|
- "[[ $CI_COMMIT_BRANCH == 'master' ]] && export ELEMENT_WEB_SHA=master"
|
||||||
|
- "[[ -v CI_COMMIT_TAG ]] && export SPECIAL_DOCKER_TAG=$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
|
||||||
|
- "([[ $CI_COMMIT_BRANCH == 'master' ]] && [[ $REACT_SDK_BRANCH == 'master' ]] && [[ $JS_SDK_BRANCH == 'master' ]]) && export SPECIAL_DOCKER_TAG=$CI_REGISTRY_IMAGE:latest"
|
||||||
|
- '[[ -z $SPECIAL_DOCKER_TAG ]] && export DOCKER_TAG="$CI_REGISTRY_IMAGE:$ELEMENT_WEB_SHA-react-$REACT_SDK_SHA-js-$JS_SDK_SHA" || export DOCKER_TAG="$SPECIAL_DOCKER_TAG"'
|
||||||
|
script:
|
||||||
|
- echo "Docker tag will be $DOCKER_TAG"
|
||||||
|
- docker build --pull -t "$DOCKER_TAG" --build-arg "USE_CUSTOM_SDKS=$USE_CUSTOM_SDKS" --build-arg "JS_SDK_BRANCH=$JS_SDK_BRANCH" --build-arg "JS_SDK_REPO=$JS_SDK_REPO" --build-arg "REACT_SDK_REPO=$REACT_SDK_REPO" --build-arg "REACT_SDK_BRANCH=$REACT_SDK_BRANCH" .
|
||||||
|
- docker push "$DOCKER_TAG"
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"minify": true,
|
"minify": true,
|
||||||
"classPrefix": "modernizr_",
|
"enableClasses": false,
|
||||||
"options": [
|
|
||||||
"setClasses"
|
|
||||||
],
|
|
||||||
"feature-detects": [
|
"feature-detects": [
|
||||||
"test/css/animations",
|
"test/css/animations",
|
||||||
"test/css/displaytable",
|
"test/css/displaytable",
|
||||||
|
|||||||
0
.sentryclirc
Normal file
0
.sentryclirc
Normal file
1123
CHANGELOG.md
1123
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
4
CONTRIBUTING.md
Normal file
4
CONTRIBUTING.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Contributing code to Element
|
||||||
|
============================
|
||||||
|
|
||||||
|
Element follows the same pattern as the [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CONTRIBUTING.md).
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
Contributing code to Element
|
|
||||||
============================
|
|
||||||
|
|
||||||
Element follows the same pattern as https://github.com/matrix-org/matrix-js-sdk/blob/master/CONTRIBUTING.rst.
|
|
||||||
17
Dockerfile
17
Dockerfile
@@ -9,25 +9,19 @@ ARG REACT_SDK_BRANCH="master"
|
|||||||
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
|
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
|
||||||
ARG JS_SDK_BRANCH="master"
|
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
|
WORKDIR /src
|
||||||
|
|
||||||
COPY . /src
|
COPY . /src
|
||||||
RUN dos2unix /src/scripts/docker-link-repos.sh && bash /src/scripts/docker-link-repos.sh
|
RUN dos2unix /src/scripts/docker-link-repos.sh && bash /src/scripts/docker-link-repos.sh
|
||||||
RUN yarn --network-timeout=100000 install
|
RUN yarn --network-timeout=100000 install
|
||||||
RUN yarn build
|
|
||||||
|
RUN dos2unix /src/scripts/docker-package.sh && bash /src/scripts/docker-package.sh
|
||||||
|
|
||||||
# Copy the config now so that we don't create another layer in the app image
|
# Copy the config now so that we don't create another layer in the app image
|
||||||
RUN cp /src/config.sample.json /src/webapp/config.json
|
RUN cp /src/config.sample.json /src/webapp/config.json
|
||||||
|
|
||||||
# Ensure we populate the version file
|
|
||||||
RUN dos2unix /src/scripts/docker-write-version.sh && bash /src/scripts/docker-write-version.sh
|
|
||||||
|
|
||||||
|
|
||||||
# App
|
# App
|
||||||
FROM nginx:alpine
|
FROM nginx:alpine
|
||||||
|
|
||||||
@@ -36,5 +30,8 @@ COPY --from=builder /src/webapp /app
|
|||||||
# Insert wasm type into Nginx mime.types file so they load correctly.
|
# Insert wasm type into Nginx mime.types file so they load correctly.
|
||||||
RUN sed -i '3i\ \ \ \ application/wasm wasm\;' /etc/nginx/mime.types
|
RUN sed -i '3i\ \ \ \ application/wasm wasm\;' /etc/nginx/mime.types
|
||||||
|
|
||||||
|
# Override default nginx config
|
||||||
|
COPY /nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
RUN rm -rf /usr/share/nginx/html \
|
RUN rm -rf /usr/share/nginx/html \
|
||||||
&& ln -s /app /usr/share/nginx/html
|
&& ln -s /app /usr/share/nginx/html
|
||||||
|
|||||||
144
README.md
144
README.md
@@ -30,14 +30,14 @@ and [element-ios](https://github.com/vector-im/element-ios).
|
|||||||
Getting Started
|
Getting Started
|
||||||
===============
|
===============
|
||||||
|
|
||||||
The easiest way to test Element is to just use the hosted copy at https://app.element.io.
|
The easiest way to test Element is to just use the hosted copy at <https://app.element.io>.
|
||||||
The `develop` branch is continuously deployed to https://develop.element.io
|
The `develop` branch is continuously deployed to <https://develop.element.io>
|
||||||
for those who like living dangerously.
|
for those who like living dangerously.
|
||||||
|
|
||||||
To host your own copy of Element, the quickest bet is to use a pre-built
|
To host your own copy of Element, the quickest bet is to use a pre-built
|
||||||
released version of Element:
|
released version of Element:
|
||||||
|
|
||||||
1. Download the latest version from https://github.com/vector-im/element-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. Untar the tarball on your web server
|
||||||
1. Move (or symlink) the `element-x.x.x` directory to an appropriate name
|
1. Move (or symlink) the `element-x.x.x` directory to an appropriate name
|
||||||
1. Configure the correct caching headers in your webserver (see below)
|
1. Configure the correct caching headers in your webserver (see below)
|
||||||
@@ -46,7 +46,7 @@ released version of Element:
|
|||||||
1. Enter the URL into your browser and log into Element!
|
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
|
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
|
||||||
at https://packages.riot.im/element-release-key.asc.
|
at <https://packages.riot.im/element-release-key.asc>.
|
||||||
|
|
||||||
Note that for the security of your chats will need to serve Element
|
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
|
over HTTPS. Major browsers also do not allow you to use VoIP/video
|
||||||
@@ -72,7 +72,7 @@ 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
|
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
|
situation, but it's still not good practice to do it in the first place. See
|
||||||
https://github.com/vector-im/element-web/issues/1977 for more details.
|
<https://github.com/vector-im/element-web/issues/1977> for more details.
|
||||||
|
|
||||||
Configuration best practices
|
Configuration best practices
|
||||||
----------------------------
|
----------------------------
|
||||||
@@ -80,15 +80,15 @@ Configuration best practices
|
|||||||
Unless you have special requirements, you will want to add the following to
|
Unless you have special requirements, you will want to add the following to
|
||||||
your web server configuration when hosting Element Web:
|
your web server configuration when hosting Element Web:
|
||||||
|
|
||||||
- The `X-Frame-Options: SAMEORIGIN` header, to prevent Element Web from being
|
* The `X-Frame-Options: SAMEORIGIN` header, to prevent Element Web from being
|
||||||
framed and protect from [clickjacking][owasp-clickjacking].
|
framed and protect from [clickjacking][owasp-clickjacking].
|
||||||
- The `frame-ancestors 'none'` directive to your `Content-Security-Policy`
|
* The `frame-ancestors 'none'` directive to your `Content-Security-Policy`
|
||||||
header, as the modern replacement for `X-Frame-Options` (though both should be
|
header, as the modern replacement for `X-Frame-Options` (though both should be
|
||||||
included since not all browsers support it yet, see
|
included since not all browsers support it yet, see
|
||||||
[this][owasp-clickjacking-csp]).
|
[this][owasp-clickjacking-csp]).
|
||||||
- The `X-Content-Type-Options: nosniff` header, to [disable MIME
|
* The `X-Content-Type-Options: nosniff` header, to [disable MIME
|
||||||
sniffing][mime-sniffing].
|
sniffing][mime-sniffing].
|
||||||
- The `X-XSS-Protection: 1; mode=block;` header, for basic XSS protection in
|
* The `X-XSS-Protection: 1; mode=block;` header, for basic XSS protection in
|
||||||
legacy browsers.
|
legacy browsers.
|
||||||
|
|
||||||
[mime-sniffing]:
|
[mime-sniffing]:
|
||||||
@@ -122,15 +122,15 @@ Ensure you have the latest LTS version of Node.js installed.
|
|||||||
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
|
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
|
||||||
guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it already.
|
guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it already.
|
||||||
|
|
||||||
1. Install or update `node.js` so that your `node` is at least v10.x.
|
1. Install or update `node.js` so that your `node` is at least v14.x.
|
||||||
1. Install `yarn` if not present already.
|
1. Install `yarn` if not present already.
|
||||||
1. Clone the repo: `git clone https://github.com/vector-im/element-web.git`.
|
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. Switch to the element-web directory: `cd element-web`.
|
||||||
1. Install the prerequisites: `yarn install`.
|
1. Install the prerequisites: `yarn install`.
|
||||||
* If you're using the `develop` branch, then it is recommended to set up a
|
* If you're using the `develop` branch, then it is recommended to set up a
|
||||||
proper development environment (see [Setting up a dev
|
proper development environment (see [Setting up a dev
|
||||||
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
||||||
can use https://develop.element.io - the continuous integration release of
|
can use <https://develop.element.io> - the continuous integration release of
|
||||||
the develop branch.
|
the develop branch.
|
||||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||||
@@ -148,15 +148,16 @@ Running as a Desktop app
|
|||||||
========================
|
========================
|
||||||
|
|
||||||
Element can also be run as a desktop app, wrapped in Electron. You can download a
|
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,
|
pre-built version from <https://element.io/get-started> or, if you prefer,
|
||||||
build it yourself.
|
build it yourself.
|
||||||
|
|
||||||
To build it yourself, follow the instructions at https://github.com/vector-im/element-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.
|
Many thanks to @aviraldg for the initial work on the Electron integration.
|
||||||
|
|
||||||
Other options for running as a desktop app:
|
Other options for running as a desktop app:
|
||||||
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
|
|
||||||
|
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn global add nativefier
|
yarn global add nativefier
|
||||||
@@ -171,6 +172,7 @@ Running from Docker
|
|||||||
|
|
||||||
The Docker image can be used to serve element-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:
|
it is to use the prebuilt image:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -p 80:80 vectorim/element-web
|
docker run -p 80:80 vectorim/element-web
|
||||||
```
|
```
|
||||||
@@ -178,11 +180,13 @@ docker run -p 80:80 vectorim/element-web
|
|||||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||||
if your custom config was located at `/etc/element-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:
|
would be:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
|
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
|
||||||
```
|
```
|
||||||
|
|
||||||
To build the image yourself:
|
To build the image yourself:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/vector-im/element-web.git element-web
|
git clone https://github.com/vector-im/element-web.git element-web
|
||||||
cd element-web
|
cd element-web
|
||||||
@@ -192,6 +196,7 @@ docker build .
|
|||||||
|
|
||||||
If you're building a custom branch, or want to use the develop branch, check out the appropriate
|
If you're building a custom branch, or want to use the develop branch, check out the appropriate
|
||||||
element-web branch and then run:
|
element-web branch and then run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t \
|
docker build -t \
|
||||||
--build-arg USE_CUSTOM_SDKS=true \
|
--build-arg USE_CUSTOM_SDKS=true \
|
||||||
@@ -202,6 +207,12 @@ docker build -t \
|
|||||||
.
|
.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Running in Kubernetes
|
||||||
|
=====================
|
||||||
|
|
||||||
|
The provided element-web docker image can also be run from within a Kubernetes cluster.
|
||||||
|
See the [Kubernetes example](docs/kubernetes.md) for more details.
|
||||||
|
|
||||||
config.json
|
config.json
|
||||||
===========
|
===========
|
||||||
|
|
||||||
@@ -218,6 +229,7 @@ Caching requirements
|
|||||||
====================
|
====================
|
||||||
|
|
||||||
Element requires the following URLs not to be cached, when/if you are serving Element 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
|
/config.*.json
|
||||||
/i18n
|
/i18n
|
||||||
@@ -226,6 +238,11 @@ Element requires the following URLs not to be cached, when/if you are serving El
|
|||||||
/index.html
|
/index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
|
We also recommend that you force browsers to re-validate any cached copy of Element on page load by configuring your
|
||||||
|
webserver to return `Cache-Control: no-cache` for `/`. This ensures the browser will fetch a new version of Element on
|
||||||
|
the next page load after it's been deployed. Note that this is already configured for you in the nginx config of our
|
||||||
|
Dockerfile.
|
||||||
|
|
||||||
Development
|
Development
|
||||||
===========
|
===========
|
||||||
|
|
||||||
@@ -255,6 +272,10 @@ 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
|
hosted by external CDNs or servers but instead please package all dependencies
|
||||||
into Element itself.
|
into Element itself.
|
||||||
|
|
||||||
|
CSS hot-reload is available as an opt-in development feature. You can enable it
|
||||||
|
by defining a `CSS_HOT_RELOAD` environment variable, in a `.env` file in the root
|
||||||
|
of the repository. See `.env.example` for documentation and an example.
|
||||||
|
|
||||||
Setting up a dev environment
|
Setting up a dev environment
|
||||||
============================
|
============================
|
||||||
|
|
||||||
@@ -292,22 +313,19 @@ cd element-web
|
|||||||
yarn link matrix-js-sdk
|
yarn link matrix-js-sdk
|
||||||
yarn link matrix-react-sdk
|
yarn link matrix-react-sdk
|
||||||
yarn install
|
yarn install
|
||||||
|
yarn reskindex
|
||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Wait a few seconds for the initial build to finish; you should see something like:
|
Wait a few seconds for the initial build to finish; you should see something like:
|
||||||
|
|
||||||
```
|
```
|
||||||
Hash: b0af76309dd56d7275c8
|
[element-js] <s> [webpack.Progress] 100%
|
||||||
Version: webpack 1.12.14
|
[element-js]
|
||||||
Time: 14533ms
|
[element-js] ℹ 「wdm」: 1840 modules
|
||||||
Asset Size Chunks Chunk Names
|
[element-js] ℹ 「wdm」: Compiled successfully.
|
||||||
bundle.js 4.2 MB 0 [emitted] main
|
|
||||||
bundle.css 91.5 kB 0 [emitted] main
|
|
||||||
bundle.js.map 5.29 MB 0 [emitted] main
|
|
||||||
bundle.css.map 116 kB 0 [emitted] main
|
|
||||||
+ 1013 hidden modules
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Remember, the command will not terminate since it runs the web server
|
Remember, the command will not terminate since it runs the web server
|
||||||
and rebuilds source files when they change. This development server also
|
and rebuilds source files when they change. This development server also
|
||||||
disables caching, so do NOT use it in production.
|
disables caching, so do NOT use it in production.
|
||||||
@@ -315,7 +333,7 @@ bundle.css.map 116 kB 0 [emitted] main
|
|||||||
Configure the app by copying `config.sample.json` to `config.json` and
|
Configure the app by copying `config.sample.json` to `config.json` and
|
||||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
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 Element.
|
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
|
**Note**: The build script uses inotify by default on Linux to monitor directories
|
||||||
for changes. If the inotify limits are too low your build will fail silently or with
|
for changes. If the inotify limits are too low your build will fail silently or with
|
||||||
@@ -388,76 +406,6 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
|||||||
Triaging issues
|
Triaging issues
|
||||||
===============
|
===============
|
||||||
|
|
||||||
We strive to completely cover all applicable issues with these core labels:
|
Issues are triaged by community members and the Web App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
|
||||||
|
|
||||||
1. __Type__ — Every issue is assigned a type:
|
We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
|
||||||
- __[T-Defect](https://github.com/vector-im/element-web/labels/T-Defect):__
|
|
||||||
Bugs, crashes, hangs, vulnerabilities, or other reported problems
|
|
||||||
- __[T-Enhancement](https://github.com/vector-im/element-web/labels/T-Enhancement):__
|
|
||||||
New features, changes in functionality, performance boosts, user-facing
|
|
||||||
improvements
|
|
||||||
- __[T-Task](https://github.com/vector-im/element-web/labels/T-Task):__
|
|
||||||
Refactoring, enabling or disabling functionality, other engineering tasks
|
|
||||||
- __[T-Other](https://github.com/vector-im/element-web/labels/T-Other):__
|
|
||||||
Questions, user support, anything else
|
|
||||||
|
|
||||||
2. __Severity__ — All issues labeled `T-Defect` are also assigned a severity:
|
|
||||||
* __[S-Critical](https://github.com/vector-im/element-web/labels/S-Critical):__
|
|
||||||
Prevents work, causes data loss, affects many users, and/or has no
|
|
||||||
workaround
|
|
||||||
* __[S-Major](https://github.com/vector-im/element-web/labels/S-Major):__
|
|
||||||
Severely degrades major functionality or product features, with no
|
|
||||||
satisfactory workaround
|
|
||||||
* __[S-Minor](https://github.com/vector-im/element-web/labels/S-Minor):__
|
|
||||||
Impairs non-critical functionality, or suitable workarounds exist
|
|
||||||
* __[S-Tolerable](https://github.com/vector-im/element-web/labels/S-Tolerable):__
|
|
||||||
Purely cosmetic or low / no impact to users
|
|
||||||
|
|
||||||
3. __Priority__ — All issues which are not `T-Other` are assigned a priority:
|
|
||||||
* __[P1](https://github.com/vector-im/element-web/labels/P1):__ Next
|
|
||||||
* __[P2](https://github.com/vector-im/element-web/labels/P2):__ Later
|
|
||||||
* __[P3](https://github.com/vector-im/element-web/labels/P3):__ Eventually
|
|
||||||
* __[P4](https://github.com/vector-im/element-web/labels/P4):__ Interesting —
|
|
||||||
Not yet scheduled, will accept patches
|
|
||||||
* __[P5](https://github.com/vector-im/element-web/labels/P5):__ Dubious —
|
|
||||||
Will not schedule, would consider patches
|
|
||||||
|
|
||||||
4. __Area__ — Most issues are assigned one or several "areas" using one of the
|
|
||||||
many `A-` prefixed labels, e.g. `A-Composer` or `A-Spaces`. Each area label
|
|
||||||
maps to a group of features or portion of the UI surface in the app.
|
|
||||||
|
|
||||||
### Other common labels
|
|
||||||
|
|
||||||
We have a handful of other labels which are added on an as-needed basis, and not expected to be exhaustive:
|
|
||||||
|
|
||||||
* __Exceptions__ — Special flags for issues and pull requests:
|
|
||||||
* __[X-Needs-Info](https://github.com/vector-im/element-web/labels/X-Needs-Info):__
|
|
||||||
This issue is blocked pending further information from the reporter
|
|
||||||
* __[X-Regression](https://github.com/vector-im/element-web/labels/X-Regression):__
|
|
||||||
Denotes things breaking which previously worked
|
|
||||||
* __[X-Release-Blocker](https://github.com/vector-im/element-web/labels/X-Release-Blocker):__
|
|
||||||
Issues which must be resolved before making a release
|
|
||||||
|
|
||||||
* __[Easy](https://github.com/vector-im/element-web/labels/Easy)__ / __[Help
|
|
||||||
Wanted](https://github.com/vector-im/element-web/labels/Help%20Wanted)__ —
|
|
||||||
Well-defined issues which are suitable for folks new to the codebase
|
|
||||||
|
|
||||||
* __[A11y](https://github.com/vector-im/element-web/labels/A11y)__ /
|
|
||||||
__[Meta](https://github.com/vector-im/element-web/labels/Meta)__ /
|
|
||||||
__[I18n](https://github.com/vector-im/element-web/labels/I18n)__ /
|
|
||||||
__[Privacy](https://github.com/vector-im/element-web/labels/Privacy)__ /
|
|
||||||
__[Security](https://github.com/vector-im/element-web/labels/Security)__ —
|
|
||||||
Issues which fall under these conceptual themes (which apply to many software
|
|
||||||
projects and are not specific to Element)
|
|
||||||
|
|
||||||
* __[Sponsored](https://github.com/vector-im/element-web/labels/Sponsored)__ —
|
|
||||||
Used internally by Element to denote issues with external funding
|
|
||||||
|
|
||||||
### Ad hoc labels (`Z-`)
|
|
||||||
|
|
||||||
We have reserved the `Z-` prefix for ad hoc labels.
|
|
||||||
|
|
||||||
Any member of the core team is welcome to create labels beginning with `Z-` for
|
|
||||||
any purpose, such as tracking personal areas of interest or providing a common
|
|
||||||
way to label cross-repo initiatives. The prefix avoids interference with the
|
|
||||||
project's main labels.
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
"@babel/preset-typescript",
|
"@babel/preset-typescript",
|
||||||
"@babel/preset-flow",
|
|
||||||
"@babel/preset-react",
|
"@babel/preset-react",
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
@@ -21,7 +20,6 @@ module.exports = {
|
|||||||
"@babel/plugin-proposal-object-rest-spread",
|
"@babel/plugin-proposal-object-rest-spread",
|
||||||
"@babel/plugin-proposal-optional-chaining",
|
"@babel/plugin-proposal-optional-chaining",
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator",
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
"@babel/plugin-transform-flow-comments",
|
|
||||||
"@babel/plugin-syntax-dynamic-import",
|
"@babel/plugin-syntax-dynamic-import",
|
||||||
"@babel/plugin-transform-runtime",
|
"@babel/plugin-transform-runtime",
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -25,9 +25,7 @@
|
|||||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||||
"defaultCountryCode": "GB",
|
"defaultCountryCode": "GB",
|
||||||
"showLabsSettings": false,
|
"showLabsSettings": false,
|
||||||
"features": {
|
"features": { },
|
||||||
"feature_new_spinner": false
|
|
||||||
},
|
|
||||||
"default_federate": true,
|
"default_federate": true,
|
||||||
"default_theme": "light",
|
"default_theme": "light",
|
||||||
"roomDirectory": {
|
"roomDirectory": {
|
||||||
|
|||||||
@@ -22,9 +22,22 @@ For a good example, see https://develop.element.io/config.json.
|
|||||||
`default_hs_url` is specified. When multiple sources are specified, it is unclear
|
`default_hs_url` is specified. When multiple sources are specified, it is unclear
|
||||||
which should take priority and therefore the application cannot continue.
|
which should take priority and therefore the application cannot continue.
|
||||||
* As of Element 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
* As of Element 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||||
|
1. `sso_redirect_options`: Optionally defines how Element will behave with a server which supports
|
||||||
|
Single Sign On (SSO). By default, Element will do nothing special and simply show a button where
|
||||||
|
needed for the user to click to navigate to the SSO system. This behaviour can be tuned with the
|
||||||
|
config options below (as properties of the `sso_redirect_options` object). None of the options apply
|
||||||
|
if Element thinks the user is already logged in, and similarly Element will assume the default server
|
||||||
|
supports SSO if these redirect options are used.
|
||||||
|
* `immediate`: When `true` (default `false`), Element will automatically redirect all unauthenticated
|
||||||
|
users to the SSO system to log in regardless of how they reached the app. This overrides the use of
|
||||||
|
other redirect options.
|
||||||
|
* `on_welcome_page`: When `true` (default `false`), Element will automatically redirect all unauthenticated
|
||||||
|
users to the SSO to log in if the user lands on the welcome page or no specific page. For example,
|
||||||
|
https://app.element.io/#/welcome and https://app.element.io would redirect if set up to use this option.
|
||||||
|
This can be useful to maintain guest experience until an account is needed.
|
||||||
1. `features`: Lookup of optional features that may be force-enabled (`true`) or force-disabled (`false`).
|
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`
|
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
|
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.
|
[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
|
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.
|
they might not otherwise have access to.
|
||||||
@@ -72,6 +85,9 @@ For a good example, see https://develop.element.io/config.json.
|
|||||||
1. `homeUrl`: Content shown on the inside of the app when a specific room is
|
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
|
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.
|
button to access it will be shown in the top left menu.
|
||||||
|
1. `loginForWelcome`: Overrides `welcomeUrl` to make the welcome page be the
|
||||||
|
same page as the login page when `true`. This effectively disables the
|
||||||
|
welcome page.
|
||||||
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
|
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
|
||||||
country selectors, like the phone number input on the registration page.
|
country selectors, like the phone number input on the registration page.
|
||||||
Defaults to `GB` if the given code is unknown or not provided.
|
Defaults to `GB` if the given code is unknown or not provided.
|
||||||
@@ -110,12 +126,32 @@ For a good example, see https://develop.element.io/config.json.
|
|||||||
1. `logo`: An HTTP URL to the avatar for the desktop build. Should be 24x24, ideally
|
1. `logo`: An HTTP URL to the avatar for the desktop build. Should be 24x24, ideally
|
||||||
an SVG.
|
an SVG.
|
||||||
1. `url`: An HTTP URL for where to send the user to download the desktop build.
|
1. `url`: An HTTP URL for where to send the user to download the desktop build.
|
||||||
|
1. `mobileBuilds`: Used to alter promotional links to the mobile app. By default the
|
||||||
|
builds are considered available and accessible from https://element.io. This config
|
||||||
|
option is typically used in a context of encouraging the user to try the mobile app
|
||||||
|
instead of a mobile/incompatible browser.
|
||||||
|
1. `ios`: The URL to the iOS build. If `null`, it will be assumed to be not available.
|
||||||
|
If not set, the default element.io builds will be used.
|
||||||
|
1. `android`: The URL to the Android build. If `null`, it will be assumed to be not available.
|
||||||
|
If not set, the default element.io builds will be used.
|
||||||
|
1. `fdroid`: The URL to the FDroid build. If `null`, it will be assumed to be not available.
|
||||||
|
If not set, the default element.io builds will be used.
|
||||||
1. `mobileGuideToast`: Whether to show a toast a startup which nudges users on
|
1. `mobileGuideToast`: Whether to show a toast a startup which nudges users on
|
||||||
iOS and Android towards the native mobile apps. The toast redirects to the
|
iOS and Android towards the native mobile apps. The toast redirects to the
|
||||||
mobile guide if they accept. Defaults to false.
|
mobile guide if they accept. Defaults to false.
|
||||||
1. `audioStreamUrl`: If supplied, show an option on Jitsi widgets to stream
|
1. `audioStreamUrl`: If supplied, show an option on Jitsi widgets to stream
|
||||||
audio using Jitsi's live streaming feature. This option is experimental and
|
audio using Jitsi's live streaming feature. This option is experimental and
|
||||||
may be removed at any time without notice.
|
may be removed at any time without notice.
|
||||||
|
1. `voip`: Behaviour related to calls
|
||||||
|
1. `obeyAssertedIdentity`: If set, MSC3086 asserted identity messages sent
|
||||||
|
on VoIP calls will cause the call to appear in the room corresponding to the
|
||||||
|
asserted identity. This *must* only be set in trusted environments.
|
||||||
|
1. `posthog`: [Posthog](https://posthog.com/) integration config. If not set, Posthog analytics are disabled.
|
||||||
|
1. `projectApiKey`: The Posthog project API key
|
||||||
|
2. `apiHost`: The Posthog API host
|
||||||
|
1. `sentry`: [Sentry](https://sentry.io/) configuration for rageshake data being sent to sentry.
|
||||||
|
1. `dsn`: the Sentry [DSN](https://docs.sentry.io/product/sentry-basics/dsn-explainer/)
|
||||||
|
2. `environment`: (optional) The [Environment](https://docs.sentry.io/product/sentry-basics/environments/) to pass to sentry
|
||||||
|
|
||||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
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 Element
|
hosted on riot.im. This is the image used if links to your copy of Element
|
||||||
|
|||||||
@@ -64,10 +64,3 @@ The domain used is the one specified by the `/.well-known/matrix/client` endpoin
|
|||||||
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.
|
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 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.
|
|
||||||
|
|||||||
187
docs/kubernetes.md
Normal file
187
docs/kubernetes.md
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
Running in Kubernetes
|
||||||
|
=====================
|
||||||
|
|
||||||
|
In case you would like to deploy element-web in a kubernetes cluster you can use
|
||||||
|
the provided Kubernetes example below as a starting point. Note that this example assumes the
|
||||||
|
Nginx ingress to be installed.
|
||||||
|
|
||||||
|
Note that the content of the required `config.json` is defined inside this yaml because it needs
|
||||||
|
to be put in your Kubernetes cluster as a `ConfigMap`.
|
||||||
|
|
||||||
|
So to use it you must create a file with this content as a starting point and modify it so it meets
|
||||||
|
the requirements of your environment.
|
||||||
|
|
||||||
|
Then you can deploy it to your cluster with something like `kubectl apply -f my-element-web.yaml`.
|
||||||
|
|
||||||
|
# This is an example of a POSSIBLE config for deploying a single element-web instance in Kubernetes
|
||||||
|
|
||||||
|
# Use the element-web namespace to put it all in.
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: element-web
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# The config.json file is to be put into Kubernetes as a config file in such a way that
|
||||||
|
# the element web instance can read it.
|
||||||
|
# The code below shows how this can be done with the config.sample.json content.
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: element-config
|
||||||
|
namespace: element-web
|
||||||
|
data:
|
||||||
|
config.json: |
|
||||||
|
{
|
||||||
|
"default_server_config": {
|
||||||
|
"m.homeserver": {
|
||||||
|
"base_url": "https://matrix-client.matrix.org",
|
||||||
|
"server_name": "matrix.org"
|
||||||
|
},
|
||||||
|
"m.identity_server": {
|
||||||
|
"base_url": "https://vector.im"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disable_custom_urls": false,
|
||||||
|
"disable_guests": false,
|
||||||
|
"disable_login_language_selector": false,
|
||||||
|
"disable_3pid_login": false,
|
||||||
|
"brand": "Element",
|
||||||
|
"integrations_ui_url": "https://scalar.vector.im/",
|
||||||
|
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||||
|
"integrations_widgets_urls": [
|
||||||
|
"https://scalar.vector.im/_matrix/integrations/v1",
|
||||||
|
"https://scalar.vector.im/api",
|
||||||
|
"https://scalar-staging.vector.im/_matrix/integrations/v1",
|
||||||
|
"https://scalar-staging.vector.im/api",
|
||||||
|
"https://scalar-staging.riot.im/scalar/api"
|
||||||
|
],
|
||||||
|
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||||
|
"defaultCountryCode": "GB",
|
||||||
|
"showLabsSettings": false,
|
||||||
|
"features": { },
|
||||||
|
"default_federate": true,
|
||||||
|
"default_theme": "light",
|
||||||
|
"roomDirectory": {
|
||||||
|
"servers": [
|
||||||
|
"matrix.org"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"piwik": {
|
||||||
|
"url": "https://piwik.riot.im/",
|
||||||
|
"whitelistedHSUrls": ["https://matrix.org"],
|
||||||
|
"whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
|
||||||
|
"siteId": 1
|
||||||
|
},
|
||||||
|
"enable_presence_by_hs_url": {
|
||||||
|
"https://matrix.org": false,
|
||||||
|
"https://matrix-client.matrix.org": false
|
||||||
|
},
|
||||||
|
"settingDefaults": {
|
||||||
|
"breadcrumbs": true
|
||||||
|
},
|
||||||
|
"jitsi": {
|
||||||
|
"preferredDomain": "jitsi.riot.im"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# A deployment of the element-web for a single instance
|
||||||
|
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: element
|
||||||
|
namespace: element-web
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: element
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: element
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: element
|
||||||
|
image: vectorim/element-web:latest
|
||||||
|
volumeMounts:
|
||||||
|
- name: config-volume
|
||||||
|
mountPath: /app/config.json
|
||||||
|
subPath: config.json
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
name: element
|
||||||
|
protocol: TCP
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: element
|
||||||
|
initialDelaySeconds: 2
|
||||||
|
periodSeconds: 3
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: element
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
volumes:
|
||||||
|
- name: config-volume
|
||||||
|
configMap:
|
||||||
|
name: element-config
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Wrap it all in a Service
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: element
|
||||||
|
namespace: element-web
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: element
|
||||||
|
ports:
|
||||||
|
- name: default
|
||||||
|
protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# An ingress definition to expose the service via a hostname
|
||||||
|
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: element
|
||||||
|
namespace: element-web
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: nginx
|
||||||
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||||
|
add_header X-Frame-Options SAMEORIGIN;
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
add_header Content-Security-Policy "frame-ancestors 'none'";
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: element.example.nl
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- pathType: Prefix
|
||||||
|
path: /
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: element
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
51
docs/labs.md
51
docs/labs.md
@@ -7,22 +7,15 @@ to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
|
|||||||
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
|
**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.**
|
dropped. Ask in the room if you are unclear about any details here.**
|
||||||
|
|
||||||
## Matrix Spaces [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) support (`feature_spaces`)
|
## Submit Abuse Report to Moderators [MSC3215](https://github.com/matrix-org/matrix-doc/pull/3215) support (`feature_report_to_moderators`)
|
||||||
|
|
||||||
Enables showing, using, creating, and managing spaces. Create Spaces from the all new Space Panel (to left of Room List).
|
A new version of the "Report" dialog that lets users send abuse reports directly to room moderators,
|
||||||
|
if the room supports it.
|
||||||
Incompatible with (will disable) `feature_custom_tags`, `feature_communities_v2_prototypes` and stable Communities/Groups support.
|
|
||||||
|
|
||||||
Still in heavy development.
|
|
||||||
|
|
||||||
## Render LaTeX maths in messages (`feature_latex_maths`)
|
## Render LaTeX maths in messages (`feature_latex_maths`)
|
||||||
|
|
||||||
Enables rendering of LaTeX maths in messages using [KaTeX](https://katex.org/). LaTeX between single dollar-signs is interpreted as inline maths and double dollar-signs as display maths (i.e. centred on its own line).
|
Enables rendering of LaTeX maths in messages using [KaTeX](https://katex.org/). LaTeX between single dollar-signs is interpreted as inline maths and double dollar-signs as display maths (i.e. centred on its own line).
|
||||||
|
|
||||||
## New spinner design (`feature_new_spinner`)
|
|
||||||
|
|
||||||
Replaces the old spinner image with a new, svg-based one featuring a sleeker design.
|
|
||||||
|
|
||||||
## Message pinning (`feature_pinning`)
|
## Message pinning (`feature_pinning`)
|
||||||
|
|
||||||
Allows you to pin messages in the room. To pin a message, use the 3 dots to the right of the message
|
Allows you to pin messages in the room. To pin a message, use the 3 dots to the right of the message
|
||||||
@@ -123,3 +116,41 @@ or feedback for this functionality at this time.
|
|||||||
|
|
||||||
Allows users to receive encrypted messages by creating a device that is stored
|
Allows users to receive encrypted messages by creating a device that is stored
|
||||||
encrypted on the server, as described in [MSC2697](https://github.com/matrix-org/matrix-doc/pull/2697).
|
encrypted on the server, as described in [MSC2697](https://github.com/matrix-org/matrix-doc/pull/2697).
|
||||||
|
|
||||||
|
## Do not disturb (`feature_dnd`)
|
||||||
|
|
||||||
|
Enables UI for turning on "do not disturb" mode for the current device. When DND mode is engaged, popups
|
||||||
|
and notification noises are suppressed. Not perfect, but can help reduce noise.
|
||||||
|
|
||||||
|
## Hidden read receipts (`feature_hidden_read_receipts`)
|
||||||
|
|
||||||
|
Enables sending hidden read receipts as per [MSC2285](https://github.com/matrix-org/matrix-doc/pull/2285)
|
||||||
|
|
||||||
|
## New layout switcher (with message bubbles) (`feature_new_layout_switcher`)
|
||||||
|
|
||||||
|
Adds a "Message layout" section under `Settings -> Appearance`, where the user can select their preferred message layout (e.g. IRC or Modern). Additionally, adds a new "Message bubbles" layout.
|
||||||
|
|
||||||
|
## Pseudonymous Analytics opt-in (`feature_pseudonymous_analytics_opt_in`)
|
||||||
|
|
||||||
|
Opts in to collection of pseudonymous analytics data via Posthog. See https://github.com/matrix-org/matrix-react-sdk/pull/6495
|
||||||
|
|
||||||
|
## Polls (`feature_polls`) [In Development]
|
||||||
|
|
||||||
|
Polls are a way to gauge interest from your community about a certain topic with a simple voting mechanic
|
||||||
|
within the message timeline. Note that this feature is currently under active development and therefore is
|
||||||
|
entirely incomplete and may not work at all - it is not recommended for general use at this time.
|
||||||
|
|
||||||
|
Bug reports, feature requests, etc are not currently accepted for this feature flag. A later stage of
|
||||||
|
development will provide opportunities for feedback.
|
||||||
|
|
||||||
|
## Maximised widgets (`feature_maximised_widgets`) [In Development]
|
||||||
|
|
||||||
|
Maximised widgets provide a room layout in which a widget is (temporarily) the primary focus of the room. The whole chat area is then used for the widget. The chat is moved into the right panel.
|
||||||
|
|
||||||
|
Note that this feature is currently under active development and therefore is
|
||||||
|
entirely incomplete and may not work at all - it is not recommended for general use at this time.
|
||||||
|
|
||||||
|
## Metaspaces (`feature_spaces_metaspaces`) [In Development]
|
||||||
|
|
||||||
|
Metaspaces are automatically populated spaces you can enable in your Space panel.
|
||||||
|
By default, you'll have Home or All rooms, but you can opt in to a People, Favourites, and Other Rooms metaspace too.
|
||||||
|
|||||||
@@ -1,60 +1,3 @@
|
|||||||
# Native Node Modules
|
# Native Node Modules
|
||||||
|
|
||||||
For some features, the desktop version of Element can make use of native Node
|
This documentation moved to the [`element-desktop`](https://github.com/vector-im/element-desktop/blob/develop/docs/native-node-modules.md) repository.
|
||||||
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 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 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 Element dependencies at this time.
|
|
||||||
|
|
||||||
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 Element to enable
|
|
||||||
these features if you'd like to try them out.
|
|
||||||
|
|
||||||
## Adding Seshat for search in E2E encrypted rooms
|
|
||||||
|
|
||||||
Seshat is a native Node module that adds support for local event indexing and
|
|
||||||
full text search in E2E encrypted rooms.
|
|
||||||
|
|
||||||
Since Seshat is written in Rust, the Rust compiler and related tools need to be
|
|
||||||
installed before installing Seshat itself. To install Rust please consult the
|
|
||||||
official Rust [documentation](https://www.rust-lang.org/tools/install).
|
|
||||||
|
|
||||||
Seshat also depends on the SQLCipher library to store its data in encrypted form
|
|
||||||
on disk. You'll need to install it via your OS package manager.
|
|
||||||
|
|
||||||
After installing the Rust compiler and SQLCipher, Seshat support can be added
|
|
||||||
using yarn inside the `electron_app/` directory:
|
|
||||||
|
|
||||||
yarn add matrix-seshat
|
|
||||||
|
|
||||||
You will have to rebuild the native libraries against electron's version of
|
|
||||||
of node rather than your system node, using the `electron-build-env` tool.
|
|
||||||
This is also needed to when pulling in changes to Seshat using `yarn link`.
|
|
||||||
Again from the `electron_app/` directory:
|
|
||||||
|
|
||||||
yarn add electron-build-env
|
|
||||||
|
|
||||||
Recompiling Seshat itself can be done like so:
|
|
||||||
|
|
||||||
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
|
|
||||||
|
|
||||||
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 Element can be run from the main folder
|
|
||||||
as usual using:
|
|
||||||
|
|
||||||
yarn electron
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ automatically set up a preview site with a full deployment of Element with the
|
|||||||
changes from the pull request added in so that anyone can easily test and review
|
changes from the pull request added in so that anyone can easily test and review
|
||||||
them. This is especially useful for checking visual and interactive changes.
|
them. This is especially useful for checking visual and interactive changes.
|
||||||
|
|
||||||
To access the preview site, scroll down to the bottom of the PR where the
|
To access the preview site, click the link in the description of the PR.
|
||||||
various CI results are displayed:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
The checks section could be collapsed at first, so you may need to click "Show
|
The checks section could be collapsed at first, so you may need to click "Show
|
||||||
all checks" to reveal them. Look for an entry that mentions `deploy-preview`. It
|
all checks" to reveal them. Look for an entry that mentions `deploy-preview`. It
|
||||||
|
|||||||
@@ -58,6 +58,43 @@ When reviewing code, here are some things we look for and also things we avoid:
|
|||||||
* Assign issues only when in progress to indicate to others what can be picked
|
* Assign issues only when in progress to indicate to others what can be picked
|
||||||
up
|
up
|
||||||
|
|
||||||
|
## Code Quality
|
||||||
|
|
||||||
|
In the past, we have occasionally written different kinds of tests for
|
||||||
|
Element and the SDKs, but it hasn't been a consistent focus. Going forward, we'd
|
||||||
|
like to change that.
|
||||||
|
|
||||||
|
* For new features, code reviewers will expect some form of automated testing to
|
||||||
|
be included by default
|
||||||
|
* For bug fixes, regression tests are of course great to have, but we don't want
|
||||||
|
to block fixes on this, so we won't require them at this time
|
||||||
|
|
||||||
|
The above policy is not a strict rule, but instead it's meant to be a
|
||||||
|
conversation between the author and reviewer. As an author, try to think about
|
||||||
|
writing a test when making your next change. As a reviewer, try to think about
|
||||||
|
how you might test the area of code you are reviewing. If the reviewer agrees
|
||||||
|
it would be quite difficult to test some new feature, then it's okay for them to
|
||||||
|
accept the change without tests for now, but we'd eventually like to be more
|
||||||
|
strict about this further down the road.
|
||||||
|
|
||||||
|
If you do spot areas that are quite hard to test today, please let us know in
|
||||||
|
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org). We can
|
||||||
|
work on improving the app architecture and testing helpers so that future tests
|
||||||
|
are easier for everyone to write, but we won't know which parts are difficult
|
||||||
|
unless people shout when stumbling through them.
|
||||||
|
|
||||||
|
We recognise that this testing policy will slow things down a bit, but overall
|
||||||
|
it should encourage better long-term health of the app and give everyone more
|
||||||
|
confidence when making changes as coverage increases over time.
|
||||||
|
|
||||||
|
For changes guarded by a feature flag, we currently lean towards prioritising
|
||||||
|
our ability to evolve quickly using such flags and thus we will not currently
|
||||||
|
require tests to appear at the same time as the initial landing of features
|
||||||
|
guarded by flags, as long as (for new flagged features going forward) the
|
||||||
|
feature author understands that they are effectively deferring part of their
|
||||||
|
work (adding tests) until later and tests are expected to appear before the
|
||||||
|
feature can be enabled by default.
|
||||||
|
|
||||||
## Design and Product Review
|
## Design and Product Review
|
||||||
|
|
||||||
We want to ensure that all changes to Element fit with our design and product
|
We want to ensure that all changes to Element fit with our design and product
|
||||||
@@ -79,5 +116,5 @@ easily.
|
|||||||
|
|
||||||
Before starting work on a feature, it's best to ensure your plan aligns well
|
Before starting work on a feature, it's best to ensure your plan aligns well
|
||||||
with our vision for Element. Please chat with the team in
|
with our vision for Element. Please chat with the team in
|
||||||
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before you
|
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before
|
||||||
start so we can ensure it's something we'd be willing to merge.
|
you start so we can ensure it's something we'd be willing to merge.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- A working [Development Setup](../../#setting-up-a-dev-environment)
|
- A working [Development Setup](../README.md#setting-up-a-dev-environment)
|
||||||
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
|
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
|
||||||
- Latest LTS version of Node.js installed
|
- Latest LTS version of Node.js installed
|
||||||
- Be able to understand English
|
- Be able to understand English
|
||||||
|
|||||||
@@ -8,8 +8,9 @@
|
|||||||
|
|
||||||
## Step 0: Join #element-translations:matrix.org
|
## Step 0: Join #element-translations:matrix.org
|
||||||
|
|
||||||
1. Come and join https://matrix.to/#/#element-translations:matrix.org
|
1. Come and join https://matrix.to/#/#element-translations:matrix.org for general discussion
|
||||||
2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :)
|
2. Join https://matrix.to/#/#element-translators:matrix.org for language-specific rooms
|
||||||
|
3. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :)
|
||||||
|
|
||||||
## Step 1: Preparing your Weblate Profile
|
## Step 1: Preparing your Weblate Profile
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@
|
|||||||
"roomDirectory": {
|
"roomDirectory": {
|
||||||
"servers": [
|
"servers": [
|
||||||
"matrix.org",
|
"matrix.org",
|
||||||
"gitter.im"
|
"gitter.im",
|
||||||
|
"libera.chat"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"enable_presence_by_hs_url": {
|
"enable_presence_by_hs_url": {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"default_server_name": "matrix.org",
|
"default_server_name": "matrix.org",
|
||||||
"brand": "Element",
|
"brand": "Element",
|
||||||
"integrations_ui_url": "https://scalar-staging.vector.im/",
|
"integrations_ui_url": "https://scalar.vector.im/",
|
||||||
"integrations_rest_url": "https://scalar-staging.vector.im/api",
|
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||||
"integrations_widgets_urls": [
|
"integrations_widgets_urls": [
|
||||||
"https://scalar.vector.im/_matrix/integrations/v1",
|
"https://scalar.vector.im/_matrix/integrations/v1",
|
||||||
"https://scalar.vector.im/api",
|
"https://scalar.vector.im/api",
|
||||||
@@ -21,7 +21,8 @@
|
|||||||
"roomDirectory": {
|
"roomDirectory": {
|
||||||
"servers": [
|
"servers": [
|
||||||
"matrix.org",
|
"matrix.org",
|
||||||
"gitter.im"
|
"gitter.im",
|
||||||
|
"libera.chat"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"enable_presence_by_hs_url": {
|
"enable_presence_by_hs_url": {
|
||||||
@@ -47,5 +48,16 @@
|
|||||||
"privacyPolicyUrl": "https://element.io/privacy",
|
"privacyPolicyUrl": "https://element.io/privacy",
|
||||||
"termsOfServiceUrl": "https://element.io/terms-of-service",
|
"termsOfServiceUrl": "https://element.io/terms-of-service",
|
||||||
"url": "https://ems.element.io/element-home/in-app-loader"
|
"url": "https://ems.element.io/element-home/in-app-loader"
|
||||||
|
},
|
||||||
|
"sentry": {
|
||||||
|
"dsn": "https://029a0eb289f942508ae0fb17935bd8c5@sentry.matrix.org/6",
|
||||||
|
"environment": "develop"
|
||||||
|
},
|
||||||
|
"posthog": {
|
||||||
|
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO",
|
||||||
|
"apiHost": "https://posthog.hss.element.io"
|
||||||
|
},
|
||||||
|
"features": {
|
||||||
|
"feature_spaces_metaspaces": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
nginx/conf.d/default.conf
Normal file
18
nginx/conf.d/default.conf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
# Set no-cache for the index.html only so that browsers always check for a new copy of Element Web.
|
||||||
|
location = /index.html {
|
||||||
|
add_header Cache-Control "no-cache";
|
||||||
|
}
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
}
|
||||||
|
|
||||||
89
package.json
89
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "element-web",
|
"name": "element-web",
|
||||||
"version": "1.7.23",
|
"version": "1.9.7",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "New Vector Ltd.",
|
"author": "New Vector Ltd.",
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"i18n": "matrix-gen-i18n",
|
"i18n": "matrix-gen-i18n",
|
||||||
"prunei18n": "matrix-prune-i18n",
|
"prunei18n": "matrix-prune-i18n",
|
||||||
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && node scripts/compare-file.js src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
||||||
"reskindex": "reskindex -h src/header",
|
"reskindex": "reskindex -h src/header",
|
||||||
"reskindex:watch": "reskindex -h src/header -w",
|
"reskindex:watch": "reskindex -h src/header -w",
|
||||||
"reskindex:watch-react": "node scripts/yarn-sub.js matrix-react-sdk reskindex:watch",
|
"reskindex:watch-react": "node scripts/yarn-sub.js matrix-react-sdk reskindex:watch",
|
||||||
@@ -44,32 +44,35 @@
|
|||||||
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
||||||
"dist": "scripts/package.sh",
|
"dist": "scripts/package.sh",
|
||||||
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
|
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
|
||||||
|
"start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js --https\"",
|
||||||
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
"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",
|
"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 --disable-host-check --hot",
|
||||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||||
"lint:js": "eslint src",
|
"lint:js": "eslint --max-warnings 0 src",
|
||||||
|
"lint:js-fix": "eslint --fix src",
|
||||||
"lint:types": "tsc --noEmit --jsx react",
|
"lint:types": "tsc --noEmit --jsx react",
|
||||||
"lint:style": "stylelint 'res/css/**/*.scss'",
|
"lint:style": "stylelint 'res/css/**/*.scss'",
|
||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz",
|
||||||
"browser-request": "^0.3.3",
|
"browser-request": "^0.3.3",
|
||||||
"gfm.css": "^1.1.2",
|
"gfm.css": "^1.1.2",
|
||||||
"highlight.js": "^10.5.0",
|
"jsrsasign": "^10.2.0",
|
||||||
"jsrsasign": "^10.1.5",
|
|
||||||
"katex": "^0.12.0",
|
"katex": "^0.12.0",
|
||||||
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
"matrix-js-sdk": "15.2.1",
|
||||||
"matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop",
|
"matrix-react-sdk": "3.36.1",
|
||||||
"matrix-widget-api": "^0.1.0-beta.13",
|
"matrix-widget-api": "^0.1.0-beta.17",
|
||||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
|
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^16.14.0",
|
"react": "17.0.2",
|
||||||
"react-dom": "^16.14.0",
|
"react-dom": "17.0.2",
|
||||||
"sanitize-html": "github:apostrophecms/sanitize-html#3c7f93f2058f696f5359e3e58d464161647226db",
|
"sanitize-html": "^2.3.2",
|
||||||
"ua-parser-js": "^0.7.23"
|
"ua-parser-js": "^0.7.24"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.10",
|
"@babel/core": "^7.12.10",
|
||||||
|
"@babel/eslint-parser": "^7.12.10",
|
||||||
|
"@babel/eslint-plugin": "^7.12.10",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||||
"@babel/plugin-proposal-decorators": "^7.12.12",
|
"@babel/plugin-proposal-decorators": "^7.12.12",
|
||||||
"@babel/plugin-proposal-export-default-from": "^7.12.1",
|
"@babel/plugin-proposal-export-default-from": "^7.12.1",
|
||||||
@@ -78,53 +81,57 @@
|
|||||||
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
||||||
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
|
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||||
"@babel/plugin-transform-flow-comments": "^7.12.1",
|
|
||||||
"@babel/plugin-transform-runtime": "^7.12.10",
|
"@babel/plugin-transform-runtime": "^7.12.10",
|
||||||
"@babel/preset-env": "^7.12.11",
|
"@babel/preset-env": "^7.12.11",
|
||||||
"@babel/preset-flow": "^7.12.1",
|
|
||||||
"@babel/preset-react": "^7.12.10",
|
"@babel/preset-react": "^7.12.10",
|
||||||
"@babel/preset-typescript": "^7.12.7",
|
"@babel/preset-typescript": "^7.12.7",
|
||||||
"@babel/register": "^7.12.10",
|
"@babel/register": "^7.12.10",
|
||||||
"@babel/runtime": "^7.12.5",
|
"@babel/runtime": "^7.12.5",
|
||||||
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
|
||||||
|
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
|
||||||
|
"@sentry/webpack-plugin": "^1.18.1",
|
||||||
"@types/flux": "^3.1.9",
|
"@types/flux": "^3.1.9",
|
||||||
|
"@types/jest": "^27.0.2",
|
||||||
"@types/modernizr": "^3.5.3",
|
"@types/modernizr": "^3.5.3",
|
||||||
"@types/node": "^14.14.22",
|
"@types/node": "^14.14.22",
|
||||||
"@types/react": "^16.9",
|
"@types/react": "17.0.14",
|
||||||
"@types/react-dom": "^16.9.10",
|
"@types/react-dom": "17.0.9",
|
||||||
"@types/sanitize-html": "^1.27.1",
|
"@types/sanitize-html": "^2.3.1",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^4.17.0",
|
||||||
|
"@typescript-eslint/parser": "^4.17.0",
|
||||||
|
"allchange": "^1.0.6",
|
||||||
"autoprefixer": "^9.8.6",
|
"autoprefixer": "^9.8.6",
|
||||||
"babel-eslint": "^10.1.0",
|
|
||||||
"babel-jest": "^26.6.3",
|
"babel-jest": "^26.6.3",
|
||||||
"babel-loader": "^8.2.2",
|
"babel-loader": "^8.2.2",
|
||||||
"canvas": "^2.6.1",
|
|
||||||
"chokidar": "^3.5.1",
|
"chokidar": "^3.5.1",
|
||||||
"concurrently": "^5.3.0",
|
"concurrently": "^5.3.0",
|
||||||
"cpx": "^1.5.0",
|
"cpx": "^1.5.0",
|
||||||
"css-loader": "^3.6.0",
|
"css-loader": "^3.6.0",
|
||||||
|
"dotenv": "^10.0.0",
|
||||||
"eslint": "7.18.0",
|
"eslint": "7.18.0",
|
||||||
"eslint-config-matrix-org": "^0.2.0",
|
"eslint-config-google": "^0.14.0",
|
||||||
"eslint-plugin-babel": "^5.3.1",
|
"eslint-plugin-matrix-org": "github:matrix-org/eslint-plugin-matrix-org#2306b3d4da4eba908b256014b979f1d3d43d2945",
|
||||||
"eslint-plugin-flowtype": "^5.2.0",
|
|
||||||
"eslint-plugin-react": "^7.22.0",
|
"eslint-plugin-react": "^7.22.0",
|
||||||
"eslint-plugin-react-hooks": "^4.2.0",
|
"eslint-plugin-react-hooks": "^4.2.0",
|
||||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||||
"fake-indexeddb": "^3.1.2",
|
"fake-indexeddb": "^3.1.2",
|
||||||
"file-loader": "^5.1.0",
|
"file-loader": "^5.1.0",
|
||||||
"fs-extra": "^0.30.0",
|
"fs-extra": "^0.30.0",
|
||||||
"html-webpack-plugin": "^3.2.0",
|
"html-webpack-plugin": "^4.5.2",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
"jest-environment-jsdom-sixteen": "^1.0.3",
|
"jest-environment-jsdom-sixteen": "^1.0.3",
|
||||||
|
"jest-raw-loader": "^1.0.1",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"loader-utils": "^1.4.0",
|
"loader-utils": "^1.4.0",
|
||||||
"matrix-mock-request": "^1.2.3",
|
"matrix-mock-request": "^1.2.3",
|
||||||
"matrix-react-test-utils": "^0.2.2",
|
"matrix-react-test-utils": "^0.2.3",
|
||||||
|
"matrix-web-i18n": "github:matrix-org/matrix-web-i18n",
|
||||||
"mini-css-extract-plugin": "^0.12.0",
|
"mini-css-extract-plugin": "^0.12.0",
|
||||||
"minimist": "^1.2.5",
|
"minimist": "^1.2.5",
|
||||||
"mkdirp": "^1.0.4",
|
"mkdirp": "^1.0.4",
|
||||||
"modernizr": "^3.11.4",
|
"modernizr": "^3.11.7",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"optimize-css-assets-webpack-plugin": "^5.0.4",
|
"optimize-css-assets-webpack-plugin": "^5.0.4",
|
||||||
"postcss-calc": "^7.0.5",
|
|
||||||
"postcss-easings": "^2.0.0",
|
"postcss-easings": "^2.0.0",
|
||||||
"postcss-extend": "^1.0.5",
|
"postcss-extend": "^1.0.5",
|
||||||
"postcss-hexrgba": "^2.0.1",
|
"postcss-hexrgba": "^2.0.1",
|
||||||
@@ -136,23 +143,31 @@
|
|||||||
"postcss-scss": "^2.1.1",
|
"postcss-scss": "^2.1.1",
|
||||||
"postcss-simple-vars": "^5.0.2",
|
"postcss-simple-vars": "^5.0.2",
|
||||||
"postcss-strip-inline-comments": "^0.1.5",
|
"postcss-strip-inline-comments": "^0.1.5",
|
||||||
|
"raw-loader": "^4.0.2",
|
||||||
|
"react-refresh": "^0.10.0",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"shell-escape": "^0.2.0",
|
"shell-escape": "^0.2.0",
|
||||||
"simple-proxy-agent": "^1.1.0",
|
"simple-proxy-agent": "^1.1.0",
|
||||||
|
"string-replace-loader": "2",
|
||||||
|
"style-loader": "2",
|
||||||
"stylelint": "^13.9.0",
|
"stylelint": "^13.9.0",
|
||||||
|
"stylelint-config-standard": "^20.0.0",
|
||||||
|
"stylelint-scss": "^3.18.0",
|
||||||
"terser-webpack-plugin": "^2.3.8",
|
"terser-webpack-plugin": "^2.3.8",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "4.3.5",
|
||||||
"webpack": "^4.46.0",
|
"webpack": "^4.46.0",
|
||||||
"webpack-cli": "^3.3.12",
|
"webpack-cli": "^3.3.12",
|
||||||
"webpack-dev-server": "^3.11.2"
|
"webpack-dev-server": "^3.11.2",
|
||||||
|
"worker-loader": "^2.0.0",
|
||||||
|
"worklet-loader": "^2.0.0"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"**/@types/react": "^16.14"
|
"@types/react": "17.0.14"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"testEnvironment": "jest-environment-jsdom-sixteen",
|
"testEnvironment": "jest-environment-jsdom-sixteen",
|
||||||
"testMatch": [
|
"testMatch": [
|
||||||
"<rootDir>/test/**/*-test.js"
|
"<rootDir>/test/**/*-test.[tj]s?(x)"
|
||||||
],
|
],
|
||||||
"setupFilesAfterEnv": [
|
"setupFilesAfterEnv": [
|
||||||
"<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
|
"<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
|
||||||
@@ -165,7 +180,15 @@
|
|||||||
"^react$": "<rootDir>/node_modules/react",
|
"^react$": "<rootDir>/node_modules/react",
|
||||||
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
||||||
"^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
|
"^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
|
||||||
"^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src"
|
"^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src",
|
||||||
|
"decoderWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"decoderWorker\\.min\\.wasm": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js",
|
||||||
|
"workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js",
|
||||||
|
"^!!raw-loader!.*": "jest-raw-loader",
|
||||||
|
"RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js"
|
||||||
},
|
},
|
||||||
"transformIgnorePatterns": [
|
"transformIgnorePatterns": [
|
||||||
"/node_modules/(?!matrix-js-sdk).+$",
|
"/node_modules/(?!matrix-js-sdk).+$",
|
||||||
|
|||||||
@@ -1 +1,4 @@
|
|||||||
signing_id: releases@riot.im
|
signing_id: releases@riot.im
|
||||||
|
subprojects:
|
||||||
|
matrix-react-sdk:
|
||||||
|
includeByDefault: true
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ limitations under the License.
|
|||||||
background: -moz-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
background: -moz-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
||||||
background: -webkit-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
background: -webkit-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
||||||
background: linear-gradient(to bottom, #c5e0f7 0%, #ffffff 100%);
|
background: linear-gradient(to bottom, #c5e0f7 0%, #ffffff 100%);
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5e0f7', endColorstr='#ffffff',GradientType=0 );
|
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#c5e0f7', endColorstr='#ffffff', GradientType=0);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
@@ -41,7 +41,7 @@ limitations under the License.
|
|||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
min-width: 80px;
|
min-width: 80px;
|
||||||
background-color: #03B381;
|
background-color: #03b381;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 12px 22px;
|
padding: 12px 22px;
|
||||||
@@ -54,7 +54,7 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mx_HomePage_header {
|
.mx_HomePage_header {
|
||||||
color: #2E2F32;
|
color: #2e2f32;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -95,7 +95,7 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mx_FooterLink {
|
.mx_FooterLink {
|
||||||
color: #368BD6;
|
color: #368bd6;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
|
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
|
||||||
<!--<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
|
<!--<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
|
||||||
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>-->
|
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>-->
|
||||||
<script crossorigin src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
|
<script crossorigin src="https://unpkg.com/rxjs/dist/bundles/rxjs.umd.min.js"></script>
|
||||||
<script src="datatypes.js"></script>
|
<script src="datatypes.js"></script>
|
||||||
<script src="decoder.js"></script>
|
<script src="decoder.js"></script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Runs package.sh setting the version to git hashes of the element-web,
|
# Runs package.sh, passing DIST_VERSION determined by git
|
||||||
# react-sdk & js-sdk checkouts, for the case where these dependencies
|
|
||||||
# are git checkouts.
|
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
rm dist/element-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist
|
rm dist/element-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist
|
||||||
|
|
||||||
# Since the deps are fetched from git, we can rev-parse
|
DIST_VERSION=`$(dirname $0)/get-version-from-git.sh`
|
||||||
REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD)
|
|
||||||
JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD)
|
|
||||||
|
|
||||||
VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop
|
CI_PACKAGE=true DIST_VERSION=$DIST_VERSION scripts/package.sh
|
||||||
|
|
||||||
CI_PACKAGE=true DIST_VERSION=$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA scripts/package.sh -d
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
|
|
||||||
if (process.argv.length < 4) throw new Error("Missing source and target file arguments");
|
|
||||||
|
|
||||||
const sourceFile = fs.readFileSync(process.argv[2], 'utf8');
|
|
||||||
const targetFile = fs.readFileSync(process.argv[3], 'utf8');
|
|
||||||
|
|
||||||
if (sourceFile !== targetFile) {
|
|
||||||
throw new Error("Files do not match");
|
|
||||||
}
|
|
||||||
@@ -69,7 +69,7 @@ const COPY_LIST = [
|
|||||||
["res/vector-icons/**", "webapp/vector-icons"],
|
["res/vector-icons/**", "webapp/vector-icons"],
|
||||||
["res/decoder-ring/**", "webapp/decoder-ring"],
|
["res/decoder-ring/**", "webapp/decoder-ring"],
|
||||||
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
|
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
|
||||||
["node_modules/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
|
["node_modules/@matrix-org/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
|
||||||
["./config.json", "webapp", { directwatch: 1 }],
|
["./config.json", "webapp", { directwatch: 1 }],
|
||||||
["contribute.json", "webapp"],
|
["contribute.json", "webapp"],
|
||||||
];
|
];
|
||||||
|
|||||||
7
scripts/docker-write-version.sh → scripts/docker-package.sh
Normal file → Executable file
7
scripts/docker-write-version.sh → scripts/docker-package.sh
Normal file → Executable file
@@ -13,10 +13,9 @@ DIST_VERSION=$TAG
|
|||||||
# for an appropriately tagged branch as well (heads/v1.2.3).
|
# for an appropriately tagged branch as well (heads/v1.2.3).
|
||||||
if [[ $BRANCH != HEAD && ! $BRANCH =~ heads/v.+ ]]
|
if [[ $BRANCH != HEAD && ! $BRANCH =~ heads/v.+ ]]
|
||||||
then
|
then
|
||||||
REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD)
|
DIST_VERSION=`$(dirname $0)/get-version-from-git.sh`
|
||||||
JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD)
|
|
||||||
VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop
|
|
||||||
DIST_VERSION=$VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
DIST_VERSION=`$(dirname $0)/normalize-version.sh ${DIST_VERSION}`
|
||||||
|
VERSION=$DIST_VERSION yarn build
|
||||||
echo $DIST_VERSION > /src/webapp/version
|
echo $DIST_VERSION > /src/webapp/version
|
||||||
@@ -76,7 +76,7 @@ dodep matrix-org matrix-js-sdk
|
|||||||
|
|
||||||
pushd matrix-js-sdk
|
pushd matrix-js-sdk
|
||||||
yarn link
|
yarn link
|
||||||
yarn install
|
yarn install --pure-lockfile
|
||||||
popd
|
popd
|
||||||
|
|
||||||
yarn link matrix-js-sdk
|
yarn link matrix-js-sdk
|
||||||
@@ -90,7 +90,7 @@ dodep matrix-org matrix-react-sdk
|
|||||||
pushd matrix-react-sdk
|
pushd matrix-react-sdk
|
||||||
yarn link
|
yarn link
|
||||||
yarn link matrix-js-sdk
|
yarn link matrix-js-sdk
|
||||||
yarn install
|
yarn install --pure-lockfile
|
||||||
yarn reskindex
|
yarn reskindex
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
|||||||
10
scripts/get-version-from-git.sh
Executable file
10
scripts/get-version-from-git.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Echoes a version based on the git hashes of the element-web, react-sdk & js-sdk checkouts, for the case where
|
||||||
|
# these dependencies are git checkouts.
|
||||||
|
|
||||||
|
# Since the deps are fetched from git, we can rev-parse
|
||||||
|
REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD)
|
||||||
|
JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD)
|
||||||
|
VECTOR_SHA=$(git rev-parse --short=12 HEAD) # use the ACTUAL SHA rather than assume develop
|
||||||
|
echo $VECTOR_SHA-react-$REACT_SHA-js-$JSSDK_SHA
|
||||||
8
scripts/normalize-version.sh
Executable file
8
scripts/normalize-version.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# If $1 looks like v1.2.3 or v1.2.3-foo, strip the leading v, then print it to stdout
|
||||||
|
if [[ $1 =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then
|
||||||
|
echo ${1:1}
|
||||||
|
else
|
||||||
|
echo $1
|
||||||
|
fi
|
||||||
@@ -9,7 +9,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
yarn clean
|
yarn clean
|
||||||
yarn build
|
VERSION=$version yarn build
|
||||||
|
|
||||||
# include the sample config in the tarball. Arguably this should be done by
|
# include the sample config in the tarball. Arguably this should be done by
|
||||||
# `yarn build`, but it's just too painful.
|
# `yarn build`, but it's just too painful.
|
||||||
@@ -21,12 +21,7 @@ cp -r webapp element-$version
|
|||||||
# Just in case you have a local config, remove it before packaging
|
# Just in case you have a local config, remove it before packaging
|
||||||
rm element-$version/config.json || true
|
rm element-$version/config.json || true
|
||||||
|
|
||||||
# if $version looks like semver with leading v, strip it before writing to file
|
$(dirname $0)/normalize-version.sh ${version} > element-$version/version
|
||||||
if [[ ${version} =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then
|
|
||||||
echo ${version:1} > element-$version/version
|
|
||||||
else
|
|
||||||
echo ${version} > element-$version/version
|
|
||||||
fi
|
|
||||||
|
|
||||||
tar chvzf dist/element-$version.tar.gz element-$version
|
tar chvzf dist/element-$version.tar.gz element-$version
|
||||||
rm -r element-$version
|
rm -r element-$version
|
||||||
|
|||||||
4
src/@types/global.d.ts
vendored
4
src/@types/global.d.ts
vendored
@@ -15,7 +15,8 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import "matrix-react-sdk/src/@types/global"; // load matrix-react-sdk's type extensions first
|
import "matrix-react-sdk/src/@types/global"; // load matrix-react-sdk's type extensions first
|
||||||
import type {Renderer} from "react-dom";
|
import type { Renderer } from "react-dom";
|
||||||
|
import type { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
type ElectronChannel =
|
type ElectronChannel =
|
||||||
"app_onAction" |
|
"app_onAction" |
|
||||||
@@ -36,6 +37,7 @@ type ElectronChannel =
|
|||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
mxSendRageshake: (text: string, withLogs?: boolean) => void;
|
mxSendRageshake: (text: string, withLogs?: boolean) => void;
|
||||||
|
matrixLogger: typeof logger;
|
||||||
matrixChat: ReturnType<Renderer>;
|
matrixChat: ReturnType<Renderer>;
|
||||||
|
|
||||||
// electron-only
|
// electron-only
|
||||||
|
|||||||
4
src/@types/raw-loader.d.ts
vendored
Normal file
4
src/@types/raw-loader.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
declare module '!!raw-loader!*' {
|
||||||
|
const contents: string;
|
||||||
|
export default contents;
|
||||||
|
}
|
||||||
@@ -27,7 +27,55 @@ interface IProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
||||||
const brand = SdkConfig.get().brand;
|
const { brand, mobileBuilds } = SdkConfig.get();
|
||||||
|
|
||||||
|
let ios = null;
|
||||||
|
const iosCustomUrl = mobileBuilds?.ios;
|
||||||
|
if (iosCustomUrl !== null) { // could be undefined or a string
|
||||||
|
ios = <>
|
||||||
|
<p><strong>iOS</strong> (iPhone or iPad)</p>
|
||||||
|
<a
|
||||||
|
href={iosCustomUrl || "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>
|
||||||
|
</>;
|
||||||
|
}
|
||||||
|
|
||||||
|
let android = [<p className="mx_Spacer" key="header"><strong>Android</strong></p>];
|
||||||
|
const andCustomUrl = mobileBuilds?.android;
|
||||||
|
const fdroidCustomUrl = mobileBuilds?.fdroid;
|
||||||
|
if (andCustomUrl !== null) { // undefined or string
|
||||||
|
android.push(<a
|
||||||
|
href={andCustomUrl || "https://play.google.com/store/apps/details?id=im.vector.app"}
|
||||||
|
target="_blank"
|
||||||
|
className="mx_ClearDecoration"
|
||||||
|
key="android"
|
||||||
|
>
|
||||||
|
<img height="48" src="themes/element/img/download/google.svg" alt="Google Play Store" />
|
||||||
|
</a>);
|
||||||
|
}
|
||||||
|
if (fdroidCustomUrl !== null) { // undefined or string
|
||||||
|
android.push(<a
|
||||||
|
href={fdroidCustomUrl || "https://f-droid.org/repository/browse/?fdid=im.vector.app"}
|
||||||
|
target="_blank"
|
||||||
|
className="mx_ClearDecoration"
|
||||||
|
key="fdroid"
|
||||||
|
>
|
||||||
|
<img height="48" src="themes/element/img/download/fdroid.svg" alt="F-Droid" />
|
||||||
|
</a>);
|
||||||
|
}
|
||||||
|
if (android.length === 1) { // just a header, meaning no links
|
||||||
|
android = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
let mobileHeader = <h2 id="step2_heading">{ _t("Use %(brand)s on mobile", { brand }) }</h2>;
|
||||||
|
if (!android.length && !ios) {
|
||||||
|
mobileHeader = null;
|
||||||
|
}
|
||||||
|
|
||||||
return <div className="mx_ErrorView">
|
return <div className="mx_ErrorView">
|
||||||
<div className="mx_ErrorView_container">
|
<div className="mx_ErrorView_container">
|
||||||
<div className="mx_HomePage_header">
|
<div className="mx_HomePage_header">
|
||||||
@@ -54,11 +102,11 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
|||||||
'or <safariLink>Safari</safariLink> for the best experience.',
|
'or <safariLink>Safari</safariLink> for the best experience.',
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
'chromeLink': (sub) => <a href="https://www.google.com/chrome">{sub}</a>,
|
'chromeLink': (sub) => <a href="https://www.google.com/chrome">{ sub }</a>,
|
||||||
'firefoxLink': (sub) => <a href="https://firefox.com">{sub}</a>,
|
'firefoxLink': (sub) => <a href="https://firefox.com">{ sub }</a>,
|
||||||
'safariLink': (sub) => <a href="https://apple.com/safari">{sub}</a>,
|
'safariLink': (sub) => <a href="https://apple.com/safari">{ sub }</a>,
|
||||||
},
|
},
|
||||||
)}
|
) }
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
{ _t(
|
{ _t(
|
||||||
@@ -76,30 +124,9 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
|
|||||||
<div className="mx_HomePage_col">
|
<div className="mx_HomePage_col">
|
||||||
<div className="mx_HomePage_row">
|
<div className="mx_HomePage_row">
|
||||||
<div>
|
<div>
|
||||||
<h2 id="step2_heading">Use Element on mobile</h2>
|
{ mobileHeader }
|
||||||
<p><strong>iOS</strong> (iPhone or iPad)</p>
|
{ ios }
|
||||||
<a
|
{ android }
|
||||||
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>
|
|
||||||
<p className="mx_Spacer"><strong>Android</strong></p>
|
|
||||||
<a
|
|
||||||
href="https://play.google.com/store/apps/details?id=im.vector.app"
|
|
||||||
target="_blank"
|
|
||||||
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.app"
|
|
||||||
target="_blank"
|
|
||||||
className="mx_ClearDecoration"
|
|
||||||
>
|
|
||||||
<img height="48" src="themes/element/img/download/fdroid.svg" alt="F-Droid" />
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ interface IProps {
|
|||||||
messages?: string[];
|
messages?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const ErrorView: React.FC<IProps> = ({title, messages}) => {
|
const ErrorView: React.FC<IProps> = ({ title, messages }) => {
|
||||||
return <div className="mx_ErrorView">
|
return <div className="mx_ErrorView">
|
||||||
<div className="mx_ErrorView_container">
|
<div className="mx_ErrorView_container">
|
||||||
<div className="mx_HomePage_header">
|
<div className="mx_HomePage_header">
|
||||||
@@ -40,9 +40,9 @@ const ErrorView: React.FC<IProps> = ({title, messages}) => {
|
|||||||
<div className="mx_HomePage_row">
|
<div className="mx_HomePage_row">
|
||||||
<div>
|
<div>
|
||||||
<h2 id="step1_heading">{ title }</h2>
|
<h2 id="step1_heading">{ title }</h2>
|
||||||
{messages && messages.map(msg => <p key={msg}>
|
{ messages && messages.map(msg => <p key={msg}>
|
||||||
{ msg }
|
{ msg }
|
||||||
</p>)}
|
</p>) }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
|
|||||||
static replaces = 'EmbeddedPage';
|
static replaces = 'EmbeddedPage';
|
||||||
|
|
||||||
// we're overriding the base component here, for Element-specific tweaks
|
// we're overriding the base component here, for Element-specific tweaks
|
||||||
translate(s) {
|
translate(s: string) {
|
||||||
s = sanitizeHtml(_t(s));
|
s = sanitizeHtml(_t(s));
|
||||||
// ugly fix for https://github.com/vector-im/element-web/issues/4243
|
// ugly fix for https://github.com/vector-im/element-web/issues/4243
|
||||||
// eslint-disable-next-line max-len
|
// eslint-disable-next-line max-len
|
||||||
@@ -22,9 +22,9 @@ import { _t } from 'matrix-react-sdk/src/languageHandler';
|
|||||||
const VectorAuthFooter = () => {
|
const VectorAuthFooter = () => {
|
||||||
const brandingConfig = SdkConfig.get().branding;
|
const brandingConfig = SdkConfig.get().branding;
|
||||||
let links = [
|
let links = [
|
||||||
{"text": "Blog", "url": "https://element.io/blog"},
|
{ "text": "Blog", "url": "https://element.io/blog" },
|
||||||
{"text": "Twitter", "url": "https://twitter.com/element_hq"},
|
{ "text": "Twitter", "url": "https://twitter.com/element_hq" },
|
||||||
{"text": "GitHub", "url": "https://github.com/vector-im/element-web"},
|
{ "text": "GitHub", "url": "https://github.com/vector-im/element-web" },
|
||||||
];
|
];
|
||||||
|
|
||||||
if (brandingConfig && brandingConfig.authFooterLinks) {
|
if (brandingConfig && brandingConfig.authFooterLinks) {
|
||||||
@@ -35,14 +35,14 @@ const VectorAuthFooter = () => {
|
|||||||
for (const linkEntry of links) {
|
for (const linkEntry of links) {
|
||||||
authFooterLinks.push(
|
authFooterLinks.push(
|
||||||
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noreferrer noopener">
|
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noreferrer noopener">
|
||||||
{linkEntry.text}
|
{ linkEntry.text }
|
||||||
</a>,
|
</a>,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mx_AuthFooter">
|
<div className="mx_AuthFooter">
|
||||||
{authFooterLinks}
|
{ 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>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -16,15 +16,10 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||||
|
|
||||||
export default class VectorAuthHeaderLogo extends React.PureComponent {
|
export default class VectorAuthHeaderLogo extends React.PureComponent {
|
||||||
static replaces = 'AuthHeaderLogo'
|
static replaces = 'AuthHeaderLogo';
|
||||||
|
|
||||||
static propTypes = {
|
|
||||||
icon: PropTypes.string,
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const brandingConfig = SdkConfig.get().branding;
|
const brandingConfig = SdkConfig.get().branding;
|
||||||
@@ -14,12 +14,12 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React, { CSSProperties } from 'react';
|
||||||
import * as sdk from 'matrix-react-sdk/src/index';
|
import * as sdk from 'matrix-react-sdk/src/index';
|
||||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||||
|
|
||||||
export default class VectorAuthPage extends React.PureComponent {
|
export default class VectorAuthPage extends React.PureComponent {
|
||||||
static replaces = 'AuthPage'
|
static replaces = 'AuthPage';
|
||||||
|
|
||||||
static welcomeBackgroundUrl;
|
static welcomeBackgroundUrl;
|
||||||
|
|
||||||
@@ -48,12 +48,12 @@ export default class VectorAuthPage extends React.PureComponent {
|
|||||||
background: `center/cover fixed url(${VectorAuthPage.getWelcomeBackgroundUrl()})`,
|
background: `center/cover fixed url(${VectorAuthPage.getWelcomeBackgroundUrl()})`,
|
||||||
};
|
};
|
||||||
|
|
||||||
const modalStyle = {
|
const modalStyle: CSSProperties = {
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
background: 'initial',
|
background: 'initial',
|
||||||
};
|
};
|
||||||
|
|
||||||
const blurStyle = {
|
const blurStyle: CSSProperties = {
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: 0,
|
top: 0,
|
||||||
right: 0,
|
right: 0,
|
||||||
@@ -63,7 +63,7 @@ export default class VectorAuthPage extends React.PureComponent {
|
|||||||
background: pageStyle.background,
|
background: pageStyle.background,
|
||||||
};
|
};
|
||||||
|
|
||||||
const modalContentStyle = {
|
const modalContentStyle: CSSProperties = {
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
zIndex: 1,
|
zIndex: 1,
|
||||||
background: 'rgba(255, 255, 255, 0.59)',
|
background: 'rgba(255, 255, 255, 0.59)',
|
||||||
@@ -57,7 +57,7 @@ export default class Favicon {
|
|||||||
private readyCb = () => {};
|
private readyCb = () => {};
|
||||||
|
|
||||||
constructor(params: Partial<IParams> = {}) {
|
constructor(params: Partial<IParams> = {}) {
|
||||||
this.params = {...defaults, ...params};
|
this.params = { ...defaults, ...params };
|
||||||
|
|
||||||
this.icons = Favicon.getIcons();
|
this.icons = Favicon.getIcons();
|
||||||
// create work canvas
|
// create work canvas
|
||||||
@@ -125,7 +125,7 @@ export default class Favicon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private circle(n: number | string, opts?: Partial<IParams>) {
|
private circle(n: number | string, opts?: Partial<IParams>) {
|
||||||
const params = {...this.params, ...opts};
|
const params = { ...this.params, ...opts };
|
||||||
const opt = this.options(n, params);
|
const opt = this.options(n, params);
|
||||||
|
|
||||||
let more = false;
|
let more = false;
|
||||||
@@ -214,7 +214,7 @@ export default class Favicon {
|
|||||||
if (!this.isReady) {
|
if (!this.isReady) {
|
||||||
this.readyCb = () => {
|
this.readyCb = () => {
|
||||||
this.badge(content, opts);
|
this.badge(content, opts);
|
||||||
}
|
};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"I understand the risks and wish to continue": "أفهم المخاطرة وأود المواصلة",
|
"I understand the risks and wish to continue": "أفهم المخاطرة وأود المواصلة",
|
||||||
"Go to element.io": "انتقل إلى element.io",
|
"Go to element.io": "انتقل إلى element.io",
|
||||||
"Failed to start": "فشل البدء",
|
"Failed to start": "فشل البدء",
|
||||||
"Powered by Matrix": "تدعمه «ماترِكس»"
|
"Powered by Matrix": "تدعمه «ماترِكس»",
|
||||||
|
"Use %(brand)s on mobile": "استعمل %(brand)s على المحمول",
|
||||||
|
"Switch to space by number": "التبديل إلى المساحة بالرقم"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,6 @@
|
|||||||
"Open": "Отвори",
|
"Open": "Отвори",
|
||||||
"Your browser can't run %(brand)s": "Браузърът ви не може да изпълни %(brand)s",
|
"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 използва модерни функции на браузъра, които не се поддържат от Вашия.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия.",
|
||||||
"Powered by Matrix": "Базирано на Matrix"
|
"Powered by Matrix": "Базирано на Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Използвайте %(brand)s на мобилен телефон"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,5 @@
|
|||||||
{}
|
{
|
||||||
|
"Your Element is misconfigured": "আপনার এলিমেন্ট টি ভুল ভাবে কনফিগার করা হয়েছে",
|
||||||
|
"Invalid configuration: no default server specified.": "ভুল কনফিগারেশনঃ কোনো মূল সার্ভার উল্লেখ করা হয়নি।",
|
||||||
|
"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."
|
||||||
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"I understand the risks and wish to continue": "Entenc els riscos i vull continuar",
|
"I understand the risks and wish to continue": "Entenc els riscos i vull continuar",
|
||||||
"Go to element.io": "Vés a element.io",
|
"Go to element.io": "Vés a element.io",
|
||||||
"Failed to start": "Ha fallat l'inici",
|
"Failed to start": "Ha fallat l'inici",
|
||||||
"Missing indexeddb worker script!": "Falta l'script del treballador indexeddb!"
|
"Missing indexeddb worker script!": "Falta l'script del treballador indexeddb!",
|
||||||
|
"Use %(brand)s on mobile": "Utilitza %(brand)s al mòbil",
|
||||||
|
"Switch to space by number": "Canvia d'espai per número"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"Welcome to Element": "Vítá vás Element",
|
"Welcome to Element": "Vítá vás Element",
|
||||||
"Unknown device": "Neznámé zařízení",
|
"Unknown device": "Neznámé zařízení",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
|
||||||
"Dismiss": "Zahodit",
|
"Dismiss": "Zavřít",
|
||||||
"powered by Matrix": "používá protokol Matrix",
|
"powered by Matrix": "používá protokol Matrix",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráce na platformě [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráce na platformě [matrix]",
|
||||||
"Sign In": "Přihlásit se",
|
"Sign In": "Přihlásit se",
|
||||||
@@ -32,5 +32,7 @@
|
|||||||
"Failed to start": "Nepovedlo se nastartovat",
|
"Failed to start": "Nepovedlo se nastartovat",
|
||||||
"Powered by Matrix": "Běží na Matrixu",
|
"Powered by Matrix": "Běží na Matrixu",
|
||||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s pro desktopový počítač (%(platformName)s)",
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s pro desktopový počítač (%(platformName)s)",
|
||||||
"Missing indexeddb worker script!": "Nenačetl se skript spravující indexdb!"
|
"Missing indexeddb worker script!": "Nenačetl se skript spravující indexdb!",
|
||||||
|
"Use %(brand)s on mobile": "Používání %(brand)s v mobilních zařízeních",
|
||||||
|
"Switch to space by number": "Přepnout na prostor podle čísla"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"Missing indexeddb worker script!": "Missing indexeddb worker script!",
|
|
||||||
"Invalid configuration: can only specify one of 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.",
|
"Invalid configuration: can only specify one of 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.",
|
||||||
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
|
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
|
||||||
"Your Element is misconfigured": "Your Element is misconfigured",
|
"Your Element is misconfigured": "Your Element is misconfigured",
|
||||||
@@ -11,6 +10,7 @@
|
|||||||
"Download Completed": "Download Completed",
|
"Download Completed": "Download Completed",
|
||||||
"Open": "Open",
|
"Open": "Open",
|
||||||
"Dismiss": "Dismiss",
|
"Dismiss": "Dismiss",
|
||||||
|
"Switch to space by number": "Switch to space by number",
|
||||||
"Open user settings": "Open user settings",
|
"Open user settings": "Open user settings",
|
||||||
"Previous/next recently visited room or community": "Previous/next recently visited room or community",
|
"Previous/next recently visited room or community": "Previous/next recently visited room or community",
|
||||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(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.",
|
"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",
|
||||||
|
"Use %(brand)s on mobile": "Use %(brand)s on mobile",
|
||||||
"Unsupported browser": "Unsupported browser",
|
"Unsupported browser": "Unsupported browser",
|
||||||
"Your browser can't run %(brand)s": "Your browser can't run %(brand)s",
|
"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.",
|
"%(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.",
|
||||||
|
|||||||
@@ -32,5 +32,6 @@
|
|||||||
"Unable to load config file: please refresh the page to try again.": "Unable to load config file: please refresh the page to try again.",
|
"Unable to load config file: please refresh the page to try again.": "Unable to load config file: please refresh the page to try again.",
|
||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Your Element configuration contains invalid JSON. Please correct the problem and reload the page.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Your Element configuration contains invalid JSON. Please correct the problem and reload the page.",
|
||||||
"Your Element is misconfigured": "Your Element is misconfigured",
|
"Your Element is misconfigured": "Your Element is misconfigured",
|
||||||
"Missing indexeddb worker script!": "Missing indexeddb worker script!"
|
"Missing indexeddb worker script!": "Missing indexeddb worker script!",
|
||||||
|
"Switch to space by number": "Switch to space by number"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 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",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Povigata de Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Uzi %(brand)s telefone",
|
||||||
|
"Switch to space by number": "Baskuli al aro laŭ numero"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"Open": "Abrir",
|
"Open": "Abrir",
|
||||||
"Your browser can't run %(brand)s": "Tu navegador no es compatible con %(brand)s",
|
"Your browser can't run %(brand)s": "Tu navegador no es compatible con %(brand)s",
|
||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funciones avanzadas que su navegador actual no soporta.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funciones avanzadas que su navegador actual no soporta.",
|
||||||
"Powered by Matrix": "Funciona con Matrix"
|
"Powered by Matrix": "Funciona con Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Usar %(brand)s en modo móvil",
|
||||||
|
"Switch to space by number": "Cambiar a espacio por número"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 laadi leht uuesti.",
|
"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 laadi leht uuesti.",
|
||||||
"Your browser can't run %(brand)s": "%(brand)s ei toimi sinu brauseris",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Põhineb Matrix'il",
|
||||||
|
"Use %(brand)s on mobile": "Kasuta rakendust %(brand)s nutiseadmes",
|
||||||
|
"Switch to space by number": "Vaata kogukonnakeskust tema numbri alusel"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,11 +26,13 @@
|
|||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s، %(osName)s",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s، %(osName)s",
|
||||||
"Unsupported browser": "مرورگر پشتبانی نشده",
|
"Unsupported browser": "مرورگر پشتبانی نشده",
|
||||||
"Your browser can't run %(brand)s": "مرورگر شما نمیتواند %(brand)s را اجرا کند",
|
"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 از ویژگی های پیشرفته مرورگر استفاده میکند که که در مرورگر فعلی شما پشتیبانی نمیشوند.",
|
"%(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> را نصب کنید.",
|
"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.": "شما میتوانید با مرورگر فعلی خود ادامه دهید، اما ممکن است برخی یا کل ویژگی ها کار نکنند و نگاه و احساس از برنامه ممکن است درست نباشد.",
|
"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": "از خطرات این کار آگاهم و مایلم که ادامه بدهم",
|
"I understand the risks and wish to continue": "از خطرات این کار آگاهم و مایلم که ادامه بدهم",
|
||||||
"Go to element.io": "برو به element.io",
|
"Go to element.io": "برو به element.io",
|
||||||
"Failed to start": "مشکل در آغاز",
|
"Failed to start": "مشکل در آغاز",
|
||||||
"Powered by Matrix": "قدرتگرفته از ماتریکس"
|
"Powered by Matrix": "قدرتگرفته از ماتریکس",
|
||||||
|
"Use %(brand)s on mobile": "استفاده از %(brand)s روی گوشی",
|
||||||
|
"Switch to space by number": "تغییر به فضا با شماره"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"Dismiss": "Hylkää",
|
"Dismiss": "Hylkää",
|
||||||
"Unknown device": "Tuntematon laite",
|
"Unknown device": "Tuntematon laite",
|
||||||
"Welcome to Element": "Tervetuloa Element-sovellukseen",
|
"Welcome to Element": "Tervetuloa Element-sovellukseen",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS-yhteyttä, jotta voit jakaa ruudun puhelussa.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS-yhteyttä, jotta voit jakaa näytön puhelussa.",
|
||||||
"powered by Matrix": "moottorina Matrix",
|
"powered by Matrix": "moottorina Matrix",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Hajautettua ja salattua viestintää Matrix-teknologialla",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Hajautettua ja salattua viestintää Matrix-teknologialla",
|
||||||
"Sign In": "Kirjaudu",
|
"Sign In": "Kirjaudu",
|
||||||
@@ -32,5 +32,7 @@
|
|||||||
"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.",
|
"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",
|
"Powered by Matrix": "Moottorina Matrix",
|
||||||
"Your browser can't run %(brand)s": "%(brand)s ei toimi selaimessasi",
|
"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."
|
"%(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.",
|
||||||
|
"Use %(brand)s on mobile": "Käytä %(brand)sia mobiilisti",
|
||||||
|
"Switch to space by number": "Vaihda avaruuteen käyttäen numeroa"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Messagerie et collaboration décentralisées et chiffrées, propulsées par [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Messagerie et collaboration décentralisées et chiffrées, propulsées par [matrix]",
|
||||||
"Sign In": "Se connecter",
|
"Sign In": "Se connecter",
|
||||||
"Create Account": "Créer un compte",
|
"Create Account": "Créer un compte",
|
||||||
"Explore rooms": "Explorer les salons",
|
"Explore rooms": "Parcourir les salons",
|
||||||
"Unexpected error preparing the app. See console for details.": "Une erreur inattendue est survenue pendant la préparation de l’application. Consultez la console pour avoir des détails.",
|
"Unexpected error preparing the app. See console for details.": "Une erreur inattendue est survenue pendant la préparation de l’application. Consultez la console pour avoir des détails.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier qu’un des trois champs parmis default_server_config, default_server_name et default_hs_url.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier qu’un des trois champs parmis default_server_config, default_server_name et default_hs_url.",
|
||||||
"Invalid configuration: no default server specified.": "Configuration invalide : aucun serveur par défaut spécifié.",
|
"Invalid configuration: no default server specified.": "Configuration invalide : aucun serveur par défaut spécifié.",
|
||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 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",
|
"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 prend pas en charge.",
|
"%(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 prend pas en charge.",
|
||||||
"Powered by Matrix": "Propulsé par Matrix"
|
"Powered by Matrix": "Propulsé par Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Utiliser %(brand)s sur téléphone",
|
||||||
|
"Switch to space by number": "Afficher un espace par son numéro"
|
||||||
}
|
}
|
||||||
|
|||||||
36
src/i18n/strings/fy.json
Normal file
36
src/i18n/strings/fy.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"Sign In": "Oanmelde",
|
||||||
|
"Failed to start": "Opstarten mislearre",
|
||||||
|
"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.": "Jo kinne fierder gean mei jo eigen browser, mar guon funksjes kinne net wurkje en uterlik kin de applikaasje der ôfwikend útsjen.",
|
||||||
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Graach <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of<safariLink>Safari</safariLink> ynstallearje foar de beste ûnderfining.",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s brûkt avansearre browserfunksjes dy’t net stipe wurde troch de browser dy’t jo no brûke.",
|
||||||
|
"Powered by Matrix": "Mooglik makke troch Matrix",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||||
|
"Previous/next recently visited room or community": "Foarige/Folgjende resintlik besochte keamer as mienskip",
|
||||||
|
"Switch to space by number": "Wikselje fan romte mei nûmer",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "Unferwachte flater by it klearmeitsjen fan de applikaasje. Sjoch yn de console foar details.",
|
||||||
|
"The message from the parser is: %(message)s": "It berjocht fan de ferwurker is: %(message)s",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Jo Element-konfiguraasje hat ûnjildige JSON. Nei dat jo dit oplost ha, kin dizze side ferfarske wurde.",
|
||||||
|
"Use %(brand)s on mobile": "Brûk %(brand)s op mobyl",
|
||||||
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Desintralisearre, fersifere chat & gearwurking fersoarge troch [matrix]",
|
||||||
|
"You need to be using HTTPS to place a screen-sharing call.": "Oproppen mei skerm dielen fereasket HTTPS.",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"Go to your browser to complete Sign In": "Gean nei jo browser om it ynskriuwen te foltôgjen",
|
||||||
|
"Download Completed": "Download foltôge",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "Kin konfiguraasjebestân net lade: ferfarskje de side en probearje it nochris.",
|
||||||
|
"Open user settings": "Brûkersynstellingen iepenje",
|
||||||
|
"Dismiss": "Slute",
|
||||||
|
"Explore rooms": "Keamers ûntdekke",
|
||||||
|
"Create Account": "Registrearje",
|
||||||
|
"Welcome to Element": "Wolkom by Element",
|
||||||
|
"I understand the risks and wish to continue": "Ik begryp de risiko's en wol graach fierder gean",
|
||||||
|
"Go to element.io": "Gean nei element.io",
|
||||||
|
"Your browser can't run %(brand)s": "Jo browser kin %(brand)s net útfiere",
|
||||||
|
"Unsupported browser": "Net stipe browser",
|
||||||
|
"Unknown device": "Unbekend apparaat",
|
||||||
|
"Open": "Iepenje",
|
||||||
|
"Invalid JSON": "Unjildige JSON",
|
||||||
|
"Your Element is misconfigured": "Jo Element is net goed konfigurearre",
|
||||||
|
"Invalid configuration: no default server specified.": "Unjildiche konfiguraasje: gjin standertserver selektearre.",
|
||||||
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Unjildige konfiguraasje: kin allinnich kieze út default_server_config, default_server_name, as default_hs_url."
|
||||||
|
}
|
||||||
@@ -7,5 +7,32 @@
|
|||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Meán comhrá agus comhoibriú, díláraithe agus criptithe, cumhachtaithe ag [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Meán comhrá agus comhoibriú, díláraithe agus criptithe, cumhachtaithe ag [matrix]",
|
||||||
"Sign In": "Sínigh Isteach",
|
"Sign In": "Sínigh Isteach",
|
||||||
"Create Account": "Déan cuntas a chruthú",
|
"Create Account": "Déan cuntas a chruthú",
|
||||||
"Explore rooms": "Breathnaigh thart ar na seomraí"
|
"Explore rooms": "Breathnaigh thart ar na seomraí",
|
||||||
|
"Your browser can't run %(brand)s": "Níl do bhrabhsálaí comhoiriúnach do %(brand)s",
|
||||||
|
"Go to your browser to complete Sign In": "Oscail do bhrabhsálaí agus críochnaigh an clárú",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Coinníonn do chumraíocht JSON neamhbhailí. Ceartaigh an fadhb agus athlódáil an leathanach le do thoil.",
|
||||||
|
"Your Element is misconfigured": "Níl do fheidhmchlár Element cumraithe i gceart",
|
||||||
|
"Previous/next recently visited room or community": "roimhe/chéad eile, seomra nó pobal is déanaí",
|
||||||
|
"Failed to start": "Theip chun tosú",
|
||||||
|
"I understand the risks and wish to continue": "Tuigim na rioscaí agus ba mhaith liom lean ar aghaidh",
|
||||||
|
"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.": "An féidir leat úsáid do bhrabhsálaí reatha, ach nár oibrí roinnt nó gach gné agus nár thaispeántar an feidhmchlár i gceart.",
|
||||||
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Suiteáil <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> chun an taithí is fearr a fháil.",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "Úsáideann %(brand)s gnéithe ardforbartha nach bhfuil ar fáil faoi do bhrabhsálaí reatha.",
|
||||||
|
"Unsupported browser": "Brabhsálaí gan tacaíocht",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s deisce (%(platformName)s)",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "Earráid nuair an feidhmchlár a hullmhú. Feic sa consól le haghaidh eolas.",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "Ní féidir an comhad cumraíochta a lódáil. Athnuaigh an leathanach chun déanamh iarracht arís le do thoil.",
|
||||||
|
"Download Completed": "Íoslódáil críochnaithe",
|
||||||
|
"Invalid JSON": "JSON neamhbhailí",
|
||||||
|
"The message from the parser is: %(message)s": "Is í an teachtaireacht as an parsálaí: %(message)s",
|
||||||
|
"Invalid configuration: no default server specified.": "Cumraíocht neamhbhailí: Níl aon freastalaí réamhshocraithe a sonrú.",
|
||||||
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Cumraíocht neamhbhailí: ní féidir ach ceann de default_server_config, default_server_name, nó default_hs_url a shonrú.",
|
||||||
|
"Missing indexeddb worker script!": "An script oibrí \"indexeddb\" ag iarraidh!",
|
||||||
|
"Powered by Matrix": "Cumhachtaithe ag Matrix",
|
||||||
|
"Go to element.io": "Téigh go element.io",
|
||||||
|
"Open user settings": "Oscail socruithe úsáideora",
|
||||||
|
"Open": "Oscail",
|
||||||
|
"Use %(brand)s on mobile": "Úsáid %(brand)s ar guthán póca",
|
||||||
|
"Switch to space by number": "Athraigh go spás de réir uimhreach"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 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",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Funciona grazas a Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Utiliza %(brand)s no móbil",
|
||||||
|
"Switch to space by number": "Cambiar a espazo polo número"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,20 +4,20 @@
|
|||||||
"Unknown device": "מכשיר לא ידוע",
|
"Unknown device": "מכשיר לא ידוע",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "עליך להשתמש ב HTTPS בכדי לבצע שיחת ווידאו משותפת.",
|
"You need to be using HTTPS to place a screen-sharing call.": "עליך להשתמש ב HTTPS בכדי לבצע שיחת ווידאו משותפת.",
|
||||||
"Welcome to Element": "ברוכים הבאים ל Element",
|
"Welcome to Element": "ברוכים הבאים ל Element",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "צ'ט מוצפן & ושת\"פ נעשה ע\"י ה [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "צא'ט וכלי שיתוף פעולה מבוזר ומוצפן & מופעל באמצעות [matrix]",
|
||||||
"Invalid JSON": "JSON לא חוקי",
|
"Invalid JSON": "JSON לא חוקי",
|
||||||
"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: 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.": "תצורה שגויה: לא צוין שרת ברירת מחדל.",
|
"Invalid configuration: no default server specified.": "תצורה שגויה: לא צוין שרת ברירת מחדל.",
|
||||||
"Open user settings": "פתח הגדרות משתמש",
|
"Open user settings": "פתח הגדרות משתמש",
|
||||||
"Go to your browser to complete Sign In": "עבור לדפדפן להמשך ההתחברות",
|
"Go to your browser to complete Sign In": "עבור לדפדפן להמשך ההתחברות",
|
||||||
"Explore rooms": "שיטוט בחדרים",
|
"Explore rooms": "גלה חדרים",
|
||||||
"Create Account": "יצירת חשבון",
|
"Create Account": "יצירת חשבון",
|
||||||
"Sign In": "כניסה",
|
"Sign In": "כניסה",
|
||||||
"Previous/next recently visited room or community": "הבא\\קודם חדרים וקהילות שביקרתם לאחרונה",
|
"Previous/next recently visited room or community": "הבא\\קודם חדרים וקהילות שביקרתם לאחרונה",
|
||||||
"Open": "פתח",
|
"Open": "פתח",
|
||||||
"Download Completed": "ההורדה הושלמה",
|
"Download Completed": "ההורדה הושלמה",
|
||||||
"Unexpected error preparing the app. See console for details.": "שגיאה לא צפויה במהלך הכנת האפליקציה. ראו קונסול לפרטים נוספים.",
|
"Unexpected error preparing the app. See console for details.": "שגיאה לא צפויה במהלך טעינת האפליקציה. ראו קונסול לפרטים נוספים.",
|
||||||
"Unable to load config file: please refresh the page to try again.": "לא יכול לקרוא את קובץ ההגדרות: אנא אתחלו את הדף לנסות שנית.",
|
"Unable to load config file: please refresh the page to try again.": "לא ניתן לטעון את קובץ ההגדרות: יש לרענן את הדף כדי לנסות שנית.",
|
||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "האלמנט מכיל הגדרת JSON שגויה, אנא תקנו את הבעיה ואתחלו את הדף.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "האלמנט מכיל הגדרת JSON שגויה, אנא תקנו את הבעיה ואתחלו את הדף.",
|
||||||
"Your Element is misconfigured": "האלמנט מוגדר באופן שגוי",
|
"Your Element is misconfigured": "האלמנט מוגדר באופן שגוי",
|
||||||
"Go to element.io": "חזור לאתר הראשי: element.io",
|
"Go to element.io": "חזור לאתר הראשי: element.io",
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
"Powered by Matrix": "מופעל על ידי מטריקס",
|
"Powered by Matrix": "מופעל על ידי מטריקס",
|
||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s שולחן עבודה %(platformName)s",
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s שולחן עבודה %(platformName)s",
|
||||||
"The message from the parser is: %(message)s": "ההודעה מהניתוח היא: %(message)s",
|
"The message from the parser is: %(message)s": "ההודעה מהמנתח היא: %(message)s",
|
||||||
"Missing indexeddb worker script!": "סקריפט indexeddb worker חסר!"
|
"Missing indexeddb worker script!": "סקריפט indexeddb worker חסר!",
|
||||||
|
"Switch to space by number": "עבור אל 'Space' על פי מספרו"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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. Javítsa és töltse újra az oldalt.",
|
"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. Javítsa és töltse újra az oldalt.",
|
||||||
"Your browser can't run %(brand)s": "A böngészője nem tudja futtatni ezt: %(brand)s",
|
"Your browser can't run %(brand)s": "A böngészője nem tudja futtatni ezt: %(brand)s",
|
||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s speciális böngészőfunkciókat használ, amelyeket a jelenlegi böngészője nem támogat.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s speciális böngészőfunkciókat használ, amelyeket a jelenlegi böngészője nem támogat.",
|
||||||
"Powered by Matrix": "A gépházban: Matrix"
|
"Powered by Matrix": "A gépházban: Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Mobilon használd ezt: %(brand)s",
|
||||||
|
"Switch to space by number": "Tér váltás számmal"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,38 @@
|
|||||||
{
|
{
|
||||||
"Dismiss": "Abaikan",
|
"Dismiss": "Abaikan",
|
||||||
"powered by Matrix": "didukung oleh Matrix",
|
"powered by Matrix": "didukung oleh Matrix",
|
||||||
"Unknown device": "Perangkat Tidak Diketahui",
|
"Unknown device": "Perangkat tidak dikenal",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Anda perlu menggunakan HTTPS untuk melakukan panggilan berbagi-layar.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Anda perlu menggunakan HTTPS untuk melakukan panggilan berbagi layar.",
|
||||||
"Welcome to Element": "Selamat datang di Element",
|
"Welcome to Element": "Selamat datang di Element",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Obrolan terenkripsi, terdesentralisasi & kolaborasi didukung oleh [matrix]"
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Obrolan & kolaborasi terenkripsi dan terdesentralisasi diberdayakan oleh [matrix]",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfigurasi Element Anda berisi JSON yang tidak valid. Mohon perbaiki masalahnya dan muat ulang halamannya.",
|
||||||
|
"Invalid configuration: no default server specified.": "Konfigurasi tidak valid: server bawaan belum ditentukan.",
|
||||||
|
"Missing indexeddb worker script!": "Tidak ada script worker indexeddb!",
|
||||||
|
"Explore rooms": "Jelajahi ruangan",
|
||||||
|
"Create Account": "Buat Akun",
|
||||||
|
"Switch to space by number": "Beralih ke space bedasarkan angka",
|
||||||
|
"Go to your browser to complete Sign In": "Buka browser Anda untuk menyelesaikan Sign In",
|
||||||
|
"Sign In": "Masuk",
|
||||||
|
"Failed to start": "Gagal untuk memulai",
|
||||||
|
"Go to element.io": "Buka element.io",
|
||||||
|
"I understand the risks and wish to continue": "Saya memahami risikonya dan ingin melanjutkan",
|
||||||
|
"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.": "Anda dapat lanjut menggunakan browser Anda saat ini, tetapi beberapa atau semua fitur mungkin tidak berfungsi dan tampilan serta nuansa aplikasi mungkin salah.",
|
||||||
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Mohon instal <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, atau <safariLink>Safari</safariLink> untuk pengalaman yang terbaik.",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s menggunakan fitur browser lanjutan yang tidak didukung oleh browser Anda saat ini.",
|
||||||
|
"Your browser can't run %(brand)s": "Browser Anda tidak dapat menjalankan %(brand)s",
|
||||||
|
"Unsupported browser": "Browser tidak didukung",
|
||||||
|
"Use %(brand)s on mobile": "Gunakan %(brand)s di ponsel",
|
||||||
|
"Powered by Matrix": "Diberdayakan oleh Matrix",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||||
|
"Previous/next recently visited room or community": "Ruangan atau komunitas yang baru saja dikunjungi sebelumnya/berikutnya",
|
||||||
|
"Open user settings": "Buka pengaturan pengguna",
|
||||||
|
"Open": "Buka",
|
||||||
|
"Download Completed": "Unduhan Selesai",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "Kesalahan tak terduga saat menyiapkan aplikasi. Lihat konsol untuk detail.",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "Tidak dapat memuat file konfigurasi: mohon muat ulang halaman ini untuk mencoba lagi.",
|
||||||
|
"Invalid JSON": "JSON tidak valid",
|
||||||
|
"The message from the parser is: %(message)s": "Pesan dari pengurai adalah: %(message)s",
|
||||||
|
"Your Element is misconfigured": "Anda mengatur Element dengan salah",
|
||||||
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Konfigurasi tidak valid: hanya bisa menentukan satu dari default_server_config, default_server_name, atau default_hs_url."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,6 @@
|
|||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element stillingar þínar innihalda ógilda JSON. Vinsamlegast leiðréttu vandamálið og endurhladdu síðuna.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element stillingar þínar innihalda ógilda JSON. Vinsamlegast leiðréttu vandamálið og endurhladdu síðuna.",
|
||||||
"Your Element is misconfigured": "Element þitt er rangt stillt",
|
"Your Element is misconfigured": "Element þitt er rangt stillt",
|
||||||
"Invalid configuration: no default server specified.": "Ógild stilling: enginn sjálfgefinn þjónn tilgreindur.",
|
"Invalid configuration: no default server specified.": "Ógild stilling: enginn sjálfgefinn þjónn tilgreindur.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ógild stilling: getur aðeins tilgreint einn af default_server_config, default_server_name eða default_hs_url."
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ógild stilling: getur aðeins tilgreint einn af default_server_config, default_server_name eða default_hs_url.",
|
||||||
|
"Use %(brand)s on mobile": "Nota %(brand)s í síma"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 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",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Offerto da Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Usa %(brand)s su mobile",
|
||||||
|
"Switch to space by number": "Passa allo spazio per numero"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,28 @@
|
|||||||
"Dismiss": "უარის თქმა",
|
"Dismiss": "უარის თქმა",
|
||||||
"powered by Matrix": "Matrix-ზე დაფუძნებული",
|
"powered by Matrix": "Matrix-ზე დაფუძნებული",
|
||||||
"Welcome to Element": "კეთილი იყოს თქვენი მობრძანება Element-ზე",
|
"Welcome to Element": "კეთილი იყოს თქვენი მობრძანება Element-ზე",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "დეცენტრალიზებული, დაშიფრული ჩატი & კოლაბორაცია, დაფუძნებული [matrix]-ზე"
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "დეცენტრალიზებული, დაშიფრული ჩატი & კოლაბორაცია, დაფუძნებული [matrix]-ზე",
|
||||||
|
"Explore rooms": "ოთახების დათავლიერება",
|
||||||
|
"Failed to start": "ჩართვა ვერ მოხერხდა",
|
||||||
|
"Use %(brand)s on mobile": "გამოიყენე %(brand)s-ი მობილურზე",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s დესკტოპი (%(platformName)s)",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "მოულოდნელი ერორი აპლიკაციის შემზადებისას. იხილეთ კონსოლი დეტალებისთვის.",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "თქვენი Element-ის კონფიგურაცია შეიცავს მიუღებელ JSON-ს. გთხოვთ გადაჭრათ პრობლემა და დაარაფრეშოთ გვერდი.",
|
||||||
|
"Sign In": "შესვლა",
|
||||||
|
"Invalid configuration: no default server specified.": "არასწორი კონფიგურაცია: მთავარი სერვერი არ არის მითითებული.",
|
||||||
|
"Create Account": "ანგარიშის შექმნა",
|
||||||
|
"Go to element.io": "გადადი element.io-ზე",
|
||||||
|
"I understand the risks and wish to continue": "მესმის რისკები და მსურს გაგრძელება",
|
||||||
|
"Unsupported browser": "ბრაუზერი არ არის მხარდაჭერილი",
|
||||||
|
"Your browser can't run %(brand)s": "შენ ბრაუზერს არ შეუძლია გაუშვას %(brand)s-ი",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "კონფიგურაციის ფაილის ჩატვირთვა ვერ მოხერხდა: დაარეფრეშე გვერდი თავიდან საცდელად",
|
||||||
|
"Invalid JSON": "მიუღებელი JSON-ი",
|
||||||
|
"Your Element is misconfigured": "შენი Element-ი არასწორადაა კონფიგურირებული",
|
||||||
|
"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> საუკეთესო გამოცდილებისთვის.",
|
||||||
|
"Powered by Matrix": "მუშაობს Matrix-ის მეშვეობით",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"Go to your browser to complete Sign In": "გახსენი ბრაუზერი Sign In-ის დასასრულებლად",
|
||||||
|
"Open user settings": "მომხმარებლების პარამეტრების გახსნა",
|
||||||
|
"Open": "გახსნა",
|
||||||
|
"Download Completed": "გადმოწერა დასრულებულია"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"Open": "Ldi",
|
"Open": "Ldi",
|
||||||
"Your browser can't run %(brand)s": "Iminig-inek·inem ur isselkan ara %(brand)s",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Iteddu s lmendad n Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Seqdec %(brand)s deg tiliɣri",
|
||||||
|
"Switch to space by number": "Ddu ɣer space s uṭṭun"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,5 +24,14 @@
|
|||||||
"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": "위험하다는 것을 이해했으며 계속하고 싶습니다",
|
"I understand the risks and wish to continue": "위험하다는 것을 이해했으며 계속하고 싶습니다",
|
||||||
"Go to element.io": "element.io으로 가기",
|
"Go to element.io": "element.io으로 가기",
|
||||||
"Failed to start": "시작 실패"
|
"Failed to start": "시작 실패",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s 는 당신의 브라우저에서 지원되지 않는 고급 기능을 사용합니다.",
|
||||||
|
"Your browser can't run %(brand)s": "당신의 브라우저는 %(brand)s 를 작동할 수 없습니다",
|
||||||
|
"Use %(brand)s on mobile": "모바일에서 %(brand)s 사용",
|
||||||
|
"Powered by Matrix": "Matrix로 지원됨",
|
||||||
|
"Switch to space by number": "숫자로 스페이스 전환하기",
|
||||||
|
"Open": "열기",
|
||||||
|
"Download Completed": "다운로드 완료",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "당신의 Element 설정은 유효하지 않은 JSON을 포함합니다. 이 문제를 해결하고 페이지를 새로고침해주세요.",
|
||||||
|
"Your Element is misconfigured": "당신의 Element가 잘못 설정되었습니다"
|
||||||
}
|
}
|
||||||
|
|||||||
3
src/i18n/strings/lo.json
Normal file
3
src/i18n/strings/lo.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"Open": "ເປີດ"
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
"Dismiss": "Atmesti",
|
"Dismiss": "Atmesti",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizuoti, šifruoti pokalbiai ir bendradarbiavimas, veikiantis su [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizuoti, šifruoti pokalbiai ir bendradarbiavimas, veikiantis su [matrix]",
|
||||||
"Sign In": "Prisijungti",
|
"Sign In": "Prisijungti",
|
||||||
"Create Account": "Sukurti paskyrą",
|
"Create Account": "Sukurti Paskyrą",
|
||||||
"Explore rooms": "Žvalgyti kambarius",
|
"Explore rooms": "Žvalgyti kambarius",
|
||||||
"The message from the parser is: %(message)s": "Analizatoriaus žinutė yra: %(message)s",
|
"The message from the parser is: %(message)s": "Analizatoriaus žinutė yra: %(message)s",
|
||||||
"Invalid JSON": "Klaidingas JSON",
|
"Invalid JSON": "Klaidingas JSON",
|
||||||
@@ -32,5 +32,6 @@
|
|||||||
"Your browser can't run %(brand)s": "Jūsų naršyklė negali paleisti %(brand)s",
|
"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.",
|
"%(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>.",
|
"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>.",
|
||||||
"Powered by Matrix": "Veikia su Matrix"
|
"Powered by Matrix": "Veikia su Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Naudoti %(brand)s mobiliajame telefone"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,35 +2,37 @@
|
|||||||
"Dismiss": "Aizvērt",
|
"Dismiss": "Aizvērt",
|
||||||
"powered by Matrix": "Tiek darbināta ar Matrix",
|
"powered by Matrix": "Tiek darbināta ar Matrix",
|
||||||
"Unknown device": "Nezināma ierīce",
|
"Unknown device": "Nezināma ierīce",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Lai veiktu ekrāna kopīgošanas zvanu, nepieciešams izmantot HTTPS savienojumu.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Ekrāna kopīgošanai nepieciešams izmantot HTTPS savienojumu.",
|
||||||
"Welcome to Element": "Esiet laipni gaidīti Element",
|
"Welcome to Element": "Esiet laipni gaidīti Elementā",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizēta, šifrēta čata & kopdarbošanās sistēma uz [matrix] bāzes",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizēta, šifrēta tērziņu & kopdarbības vide uz [matrix] bāzes",
|
||||||
"Sign In": "Pierakstīties",
|
"Sign In": "Ierakstīties",
|
||||||
"Create Account": "Izveidot kontu",
|
"Create Account": "Izveidot kontu",
|
||||||
"Explore rooms": "Pārlūkot istabas",
|
"Explore rooms": "Pārlūkot istabas",
|
||||||
"Unexpected error preparing the app. See console for details.": "Negaidīta kļūda, sagatavojot lietotni. Sīkāku informāciju skatiet konsolē.",
|
"Unexpected error preparing the app. See console for details.": "Negaidīta kļūda, sagatavojot lietotni. Sīkāku informāciju skatiet konsolē.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Kļūdaina konfigurācija: var norādīt tikai vienu no parametriem default_server_config, default_server_name, vai default_hs_url.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Kļūdaina konfigurācija: var norādīt tikai vienu no parametriem default_server_config, default_server_name, vai default_hs_url.",
|
||||||
"Invalid configuration: no default server specified.": "Kļūdaina konfigurācija: nav norādīts noklusējuma serveris.",
|
"Invalid configuration: no default server specified.": "Kļūdaina konfigurācija: nav norādīts noklusējuma serveris.",
|
||||||
"The message from the parser is: %(message)s": "Ziņojums no parsētāja ir: %(message)s",
|
"The message from the parser is: %(message)s": "No pārsētāja ir ziņa: %(message)s",
|
||||||
"Invalid JSON": "Kļūdains JSON",
|
"Invalid JSON": "Kļūdains JSON",
|
||||||
"Unable to load config file: please refresh the page to try again.": "Neizdevās ielādēt konfigurācijas datni. Lūdzu, pārlādējiet lapu, lai mēģinātu vēlreiz.",
|
"Unable to load config file: please refresh the page to try again.": "Neizdevās ielādēt konfigurācijas failu. Lai atkārtotu mēģinātu, lūdzu pārlādējiet lapu.",
|
||||||
"Open user settings": "Atvērt lietotāja iestatījumus",
|
"Open user settings": "Atvērt lietotāja iestatījumus",
|
||||||
"Go to your browser to complete Sign In": "Pārejiet uz pārlūku, lai pabeigtu pierakstīšanos",
|
"Go to your browser to complete Sign In": "Dodieties uz pārlūku, lai pabeigtu pierakstīšanos",
|
||||||
"Unsupported browser": "Neatbalstīts pārlūks",
|
"Unsupported browser": "Neatbalstīts pārlūks",
|
||||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Labākajai izmantošanas pieredzei, lūdzu, instalējiet <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> vai <safariLink>Safari</safariLink> pārlūku.",
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Lai gūtu labāko lietošanas pieredzi, lūdzu, instalējiet <chromeLink>Chromium</chromeLink>, <firefoxLink>Firefox</firefoxLink> vai <safariLink>Safari</safariLink> pārlūku.",
|
||||||
"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 varat turpināt lietot savu pašreizējo pārlūku, bet dažas vai visas funkcijas nestrādās, un lietotnes izskats var būt nepareizs.",
|
"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 varat turpināt lietot savu pašreizējo pārlūku, bet dažas funkcijas nestrādās un lietotnes izskats/saskarne var būt atspoguļoti nekorekti.",
|
||||||
"I understand the risks and wish to continue": "Es pieņemu riskus un vēlos turpināt",
|
"I understand the risks and wish to continue": "Es apzinos riskus un vēlos turpināt",
|
||||||
"Go to element.io": "Ej uz element.io",
|
"Go to element.io": "Doties uz element.io",
|
||||||
"Failed to start": "Neizdevās palaist",
|
"Failed to start": "Neizdevās palaist",
|
||||||
"Powered by Matrix": "Darbojas uz Matrix",
|
"Powered by Matrix": "Griežas uz Matrix tehnoloģijas",
|
||||||
"Previous/next recently visited room or community": "Iepriekšējā/nākošā nesen apmeklētā istaba vai kopiena",
|
"Previous/next recently visited room or community": "Iepriekšējā/nākošā nesen apmeklētā istaba vai kopiena",
|
||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s izmanto pārlūku papildus funkcijas, kas netiek atbalstītas šajā pārlūkā.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s izmanto pārlūku papildfunkcijas, kuras netiek atbalstītas šajā pārlūkā.",
|
||||||
"Your browser can't run %(brand)s": "Jūsu pārlūks nevar palaist %(brand)s",
|
"Your browser can't run %(brand)s": "Jūsu pārlūks nevar palaist %(brand)s",
|
||||||
"Missing indexeddb worker script!": "Trūkst indexeddb worker skripta!",
|
"Missing indexeddb worker script!": "Trūkst indexeddb worker skripta!",
|
||||||
"Open": "Atvērt",
|
"Open": "Atvērt",
|
||||||
"Download Completed": "Lejupielāde pabeigta",
|
"Download Completed": "Lejuplāde pabeigta",
|
||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsu Element konfigurācija satur kļūdainu JSON. Lūdzu, salabojiet problēmu un pārlādējiet lapu.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsu Element konfigurācija satur kļūdainu JSON. Lūdzu, izlabojiet un pārlādējiet lapu.",
|
||||||
"Your Element is misconfigured": "Jūsu Element ir nokonfigurēts kļūdaini",
|
"Your Element is misconfigured": "Jūsu Element ir nokonfigurēts kļūdaini",
|
||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)"
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Galdvirsmas (%(platformName)s)",
|
||||||
|
"Switch to space by number": "Pārslēgties uz atstarpi/tukšumu ar numuru",
|
||||||
|
"Use %(brand)s on mobile": "Mobilajā tālrunī izmanojiet %(brand)s"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s bruker avanserte nettleserfunksjoner som ikke støttes av din nåværende nettleser.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s bruker avanserte nettleserfunksjoner som ikke støttes av din nåværende nettleser.",
|
||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Skrivebord (%(platformName)s)",
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Skrivebord (%(platformName)s)",
|
||||||
"Open": "Åpne"
|
"Open": "Åpne",
|
||||||
|
"Use %(brand)s on mobile": "Bruk %(brand)s på mobil",
|
||||||
|
"Switch to space by number": "Bytt til plass etter nummer"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"Dismiss": "Afwijzen",
|
"Dismiss": "Sluiten",
|
||||||
"powered by Matrix": "draait op Matrix",
|
"powered by Matrix": "draait op Matrix",
|
||||||
"Unknown device": "Onbekend apparaat",
|
"Unknown device": "Onbekend apparaat",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Oproepen met schermdelen vergen HTTPS.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Oproepen met schermdelen vergen HTTPS.",
|
||||||
"Welcome to Element": "Welkom bij Element",
|
"Welcome to Element": "Welkom bij Element",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken dankzij [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken dankzij [matrix]",
|
||||||
"Sign In": "Aanmelden",
|
"Sign In": "Inloggen",
|
||||||
"Create Account": "Account aanmaken",
|
"Create Account": "Registreren",
|
||||||
"Explore rooms": "Gesprekken ontdekken",
|
"Explore rooms": "Kamers ontdekken",
|
||||||
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
|
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
|
||||||
"Invalid configuration: no default server specified.": "Configuratie ongeldig: geen standaardserver opgegeven.",
|
"Invalid configuration: no default server specified.": "Configuratie ongeldig: geen standaardserver opgegeven.",
|
||||||
@@ -22,15 +22,17 @@
|
|||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
"Unsupported browser": "Niet-ondersteunde browser",
|
"Unsupported browser": "Niet-ondersteunde browser",
|
||||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installeer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of <safariLink>Safari</safariLink> voor de beste gebruikservaring.",
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installeer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of <safariLink>Safari</safariLink> voor de beste gebruikservaring.",
|
||||||
"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.": "Je kunt je huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
|
"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 kunt uw huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de weergave van het programma kan verkeerd zijn.",
|
||||||
"I understand the risks and wish to continue": "Ik begrijp de risico's en wil verder gaan",
|
"I understand the risks and wish to continue": "Ik begrijp de risico's en wil verder gaan",
|
||||||
"Go to element.io": "Ga naar element.io",
|
"Go to element.io": "Ga naar element.io",
|
||||||
"Failed to start": "Opstarten mislukt",
|
"Failed to start": "Opstarten mislukt",
|
||||||
"Open": "Openen",
|
"Open": "Openen",
|
||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
|
||||||
"Download Completed": "Download voltooid",
|
"Download Completed": "Download voltooid",
|
||||||
"Your Element is misconfigured": "Je Element is verkeerd geconfigureerd",
|
"Your Element is misconfigured": "Uw Element is verkeerd geconfigureerd",
|
||||||
"Your browser can't run %(brand)s": "Je browser kan %(brand)s niet draaien",
|
"Your browser can't run %(brand)s": "Uw browser kan %(brand)s niet starten",
|
||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in je huidige browser.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in uw huidige browser.",
|
||||||
"Powered by Matrix": "Gebruikt Matrix technologie"
|
"Powered by Matrix": "Mogelijk gemaakt door Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Gebruik %(brand)s op uw mobiel",
|
||||||
|
"Switch to space by number": "Wissel naar Space met nummer"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,27 @@
|
|||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Messatjariá chifrada, descentralizada e collaborativa propulsada per [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Messatjariá chifrada, descentralizada e collaborativa propulsada per [matrix]",
|
||||||
"Sign In": "Se connectar",
|
"Sign In": "Se connectar",
|
||||||
"Create Account": "Crear un compte",
|
"Create Account": "Crear un compte",
|
||||||
"Explore rooms": "Percórrer las salas"
|
"Explore rooms": "Percórrer las salas",
|
||||||
|
"Missing indexeddb worker script!": "Lo worker script IndexedDB manca !",
|
||||||
|
"Invalid configuration: no default server specified.": "Configuracion invalida : pas de servidor per defauta especificat.",
|
||||||
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuracion invalida : podètz unicament especificar un camp entre default_server_config, default_server_name, o default_hs_url.",
|
||||||
|
"Failed to start": "Non se pòt pas lançar",
|
||||||
|
"Go to element.io": "Anar a element.io",
|
||||||
|
"I understand the risks and wish to continue": "Compréni los risques e vòli contunhar",
|
||||||
|
"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.": "Podètz contunhar a utilizar lo vòstre navigator actual, mas qualques o totes las foncionalitats o/e l'apparéncia poirián mal foncionar .",
|
||||||
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Si vos plai installatz <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, o <safariLink>Safari</safariLink> per una melhora experiéncia.",
|
||||||
|
"Your browser can't run %(brand)s": "Lo vòstre navigator non pòt pas executar %(brand)s",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza de foncions avançadas que lo vòstre navigator non suporta pas.",
|
||||||
|
"Unsupported browser": "Navigator incompatible",
|
||||||
|
"Powered by Matrix": "Fonciona ambé Matrix",
|
||||||
|
"You need to be using HTTPS to place a screen-sharing call.": "Devetz utilizar HTTPS per apelar ambé partatge d'ecran.",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s de burèu (%(platformName)s)",
|
||||||
|
"Previous/next recently visited room or community": "Sala o comunautat recentament visitada precedenta/seguenta",
|
||||||
|
"Open user settings": "Dobrir los paramètres utilizaire",
|
||||||
|
"Open": "Dobrir",
|
||||||
|
"Download Completed": "Descargament acabat",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "Se pòt pas cargar lo fichièr de configuracion : si vos plai actualizatz la pagina per tornar ensajar.",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuracion d'Element conténe de JSON invalid. Si vos plai corregitz lo problème e actualizatz la pagina.",
|
||||||
|
"Your Element is misconfigured": "Lo vòstre Element es mal configurat"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s używa zaawansowanych funkcji przeglądarki, które nie są dostępne w twojej przeglądarce.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s używa zaawansowanych funkcji przeglądarki, które nie są dostępne w twojej przeglądarce.",
|
||||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracja Elementa zawiera niepoprawny JSON. Popraw konfiguracje i odśwież stronę.",
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracja Elementa zawiera niepoprawny JSON. Popraw konfiguracje i odśwież stronę.",
|
||||||
"Your Element is misconfigured": "Element jest nieprawidłowo skonfigurowany",
|
"Your Element is misconfigured": "Element jest nieprawidłowo skonfigurowany",
|
||||||
"Powered by Matrix": "Zasilane przez Matrix"
|
"Powered by Matrix": "Zasilane przez Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Użyj %(brand)s w telefonie",
|
||||||
|
"Switch to space by number": "Przełącz na przestrzeń według numeru"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +1,38 @@
|
|||||||
{
|
{
|
||||||
"Dismiss": "Descartar",
|
"Dismiss": "Dispensar",
|
||||||
"powered by Matrix": "oferecido por Matrix",
|
"powered by Matrix": "oferecido por Matrix",
|
||||||
"Unknown device": "Aparelho desconhecido",
|
"Unknown device": "Dispositivo desconhecido",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa usar HTTPS para compartilhar a tela durante uma chamada.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa estar usando HTTPS para começar uma chamada de compartilhamento de tela.",
|
||||||
"Welcome to Element": "Boas-vindas ao Element",
|
"Welcome to Element": "Boas-vindas a Element",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo construído com [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat & colaboração descentralizados e encriptados powered by [matrix]",
|
||||||
"Sign In": "Entrar",
|
"Sign In": "Fazer signin",
|
||||||
"Create Account": "Criar Conta",
|
"Create Account": "Criar Conta",
|
||||||
"Explore rooms": "Explorar salas",
|
"Explore rooms": "Explorar salas",
|
||||||
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
|
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
|
||||||
"Invalid JSON": "JSON inválido",
|
"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.",
|
"Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o app. Veja console para detalhes.",
|
||||||
"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: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: só pode especificar um de 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.",
|
"Invalid configuration: no default server specified.": "Configuração inválida: nenhum servidor default 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 para tentar novamente.",
|
"Unable to load config file: please refresh the page to try again.": "Incapaz de carregar arquivo de config: por favor atualize a página para tentar de novo.",
|
||||||
"Download Completed": "Download concluído",
|
"Download Completed": "Download Completado",
|
||||||
"Open user settings": "Abrir configurações do usuário",
|
"Open user settings": "Abrir configurações de usuária(o)",
|
||||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
"Unsupported browser": "Navegador não suportado",
|
"Unsupported browser": "Browser insuportado",
|
||||||
"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.",
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor instale <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, ou <safariLink>Safari</safariLink> para a melhor experiência.",
|
||||||
"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.",
|
"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 seu browser atual, mas alguma ou toda funcionalidade pode não funcionar e a aparência e sensação do aplicativo pode estar incorretas.",
|
||||||
"I understand the risks and wish to continue": "Entendo os riscos e desejo continuar",
|
"I understand the risks and wish to continue": "Eu entendo os riscos e desejo continuar",
|
||||||
"Go to element.io": "Vá para element.io",
|
"Go to element.io": "Ir para element.io",
|
||||||
"Failed to start": "Falha ao iniciar",
|
"Failed to start": "Falha para iniciar",
|
||||||
"Missing indexeddb worker script!": "O script indexeddb não foi encontrado!",
|
"Missing indexeddb worker script!": "Worker script indexeddb faltando!",
|
||||||
"Open": "Abrir",
|
"Open": "Abrir",
|
||||||
"Previous/next recently visited room or community": "Anterior/Próxima sala ou comunidade visitada recentemente",
|
"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)",
|
"%(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",
|
"Go to your browser to complete Sign In": "Vá para seu browser para completar Sign In",
|
||||||
"Your Element is misconfigured": "Seu Element está desconfigurado",
|
"Your Element is misconfigured": "Seu Element está malconfigurado",
|
||||||
"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 Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Sua configuração de 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",
|
"Your browser can't run %(brand)s": "Seu browser não consegue rodar %(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.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funcionalidade de browser avançada que não é suportada por seu browser atual.",
|
||||||
"Powered by Matrix": "Construído com tecnologia Matrix"
|
"Powered by Matrix": "Powered by Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Usar %(brand)s em celular",
|
||||||
|
"Switch to space by number": "Trocar para espaço por número"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat decentralizat, criptat & colaborare propulsata de [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat decentralizat, criptat & colaborare propulsata de [matrix]",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Trebuie să folosești HTTPS pentru a plasa un apel de tip screen-sharing.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Trebuie să folosești HTTPS pentru a plasa un apel de tip screen-sharing.",
|
||||||
"Sign In": "Autentificare",
|
"Sign In": "Autentificare",
|
||||||
"Create Account": "Înregistare",
|
"Create Account": "Crează un cont",
|
||||||
"Explore rooms": "Explorează camerele",
|
"Explore rooms": "Explorează camerele",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratie invalida: se poate specifica doar una dintre 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.": "Configuratie invalida: se poate specifica doar una dintre default_server_config, default_server_name, or default_hs_url.",
|
||||||
"Invalid JSON": "JSON invalid",
|
"Invalid JSON": "JSON invalid",
|
||||||
@@ -16,5 +16,23 @@
|
|||||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Instalati va rog <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> pentru o experienta mai buna.",
|
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Instalati va rog <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> pentru o experienta mai buna.",
|
||||||
"I understand the risks and wish to continue": "Inteleg riscul si doresc sa continui",
|
"I understand the risks and wish to continue": "Inteleg riscul si doresc sa continui",
|
||||||
"Go to element.io": "Acceseaza element.io",
|
"Go to element.io": "Acceseaza element.io",
|
||||||
"Failed to start": "Nu reuseste sa porneasca"
|
"Failed to start": "Nu reuseste sa porneasca",
|
||||||
|
"Your Element is misconfigured": "Element-ul tău este configurat necorespunzător",
|
||||||
|
"Missing indexeddb worker script!": "Scriptul de lucru indexddb lipsește!",
|
||||||
|
"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.": "Poți continua să folosești browser-ul curent, însă aspectul și experiența câtorva sau tuturor funcțiilor poate fi incorectă.",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s folosește funcții avansate de browser ce nu sunt suportate de browser-ul dumneavoastră.",
|
||||||
|
"Your browser can't run %(brand)s": "Browserul tău nu poate rula %(brand)s",
|
||||||
|
"Use %(brand)s on mobile": "Folosește %(brand)s pe mobil",
|
||||||
|
"Powered by Matrix": "Bazat pe Matrix",
|
||||||
|
"Go to your browser to complete Sign In": "Du-te la browser pentru a finaliza Autentificarea",
|
||||||
|
"Previous/next recently visited room or community": "Precedenta/următoarea cameră sau comunitate vizitată recent",
|
||||||
|
"Open user settings": "Deschide setările de utilizator",
|
||||||
|
"Open": "Deschide",
|
||||||
|
"Download Completed": "Descărcare Completă",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "Eroare neașteptată în aplicație. Vezi consola pentru detalii.",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "Nu se poate încărca fișierul de configurație: vă rugăm sa reîncărcați pagina și să încercați din nou.",
|
||||||
|
"The message from the parser is: %(message)s": "Mesajul de la parser este: %(message)s",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Configurația ta Element conține JSON invalid. Vă rugăm sa corectați problema și să reîncărcați pagina.",
|
||||||
|
"Invalid configuration: no default server specified.": "Configurație invalidă: niciun server implicit specificat.",
|
||||||
|
"Switch to space by number": "Comută spațiul folosind un număr"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"Create Account": "Создать учётную запись",
|
"Create Account": "Создать учётную запись",
|
||||||
"Explore rooms": "Список комнат",
|
"Explore rooms": "Список комнат",
|
||||||
"Unexpected error preparing the app. See console for details.": "Неожиданная ошибка при подготовке приложения. Подробности см. в консоли.",
|
"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: 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.": "Неверная конфигурация: сервер по умолчанию не указан.",
|
"Invalid configuration: no default server specified.": "Неверная конфигурация: сервер по умолчанию не указан.",
|
||||||
"The message from the parser is: %(message)s": "Сообщение из парсера: %(message)s",
|
"The message from the parser is: %(message)s": "Сообщение из парсера: %(message)s",
|
||||||
"Invalid JSON": "Нерабочий JSON",
|
"Invalid JSON": "Нерабочий JSON",
|
||||||
@@ -32,5 +32,7 @@
|
|||||||
"Open": "Открыть",
|
"Open": "Открыть",
|
||||||
"Your browser can't run %(brand)s": "Ваш браузер не может запустить %(brand)s",
|
"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 использует расширенные возможности, которые не поддерживаются вашим браузером.",
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s использует расширенные возможности, которые не поддерживаются вашим браузером.",
|
||||||
"Powered by Matrix": "На технологии Matrix"
|
"Powered by Matrix": "На технологии Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Воспользуйтесь %(brand)s на мобильном телефоне",
|
||||||
|
"Switch to space by number": "Переключение на пространство по номеру"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,15 @@
|
|||||||
"Welcome to Element": "ඉලමන්ට් වෙත සාදරයෙන් පිළිගනිමු",
|
"Welcome to Element": "ඉලමන්ට් වෙත සාදරයෙන් පිළිගනිමු",
|
||||||
"Open": "විවෘත කරන්න",
|
"Open": "විවෘත කරන්න",
|
||||||
"Powered by Matrix": "මැට්රික්ස් මඟින් බලගන්වා ඇත",
|
"Powered by Matrix": "මැට්රික්ස් මඟින් බලගන්වා ඇත",
|
||||||
"Sign In": "පිවිසෙන්න"
|
"Sign In": "පිවිසෙන්න",
|
||||||
|
"Dismiss": "ඉවතලන්න",
|
||||||
|
"Explore rooms": "කාමර බලන්න",
|
||||||
|
"Create Account": "ගිණුමක් සාදන්න",
|
||||||
|
"Failed to start": "ඇරඹීමට අපොහොසත් විය",
|
||||||
|
"Go to element.io": "element.io වෙත යන්න",
|
||||||
|
"Your browser can't run %(brand)s": "ඔබගේ අතිරික්සුවට %(brand)s ධාවනය කළ නොහැකිය",
|
||||||
|
"Unsupported browser": "සහය නොදක්වන අතිරික්සුව කි",
|
||||||
|
"Go to your browser to complete Sign In": "පිවිසීම සම්පූර්ණ කිරීමට ඔබගේ අතිරික්සුව වෙත යන්න",
|
||||||
|
"Download Completed": "බාගැනීම සම්පූර්ණයි",
|
||||||
|
"Open user settings": "පරිශීලක සැකසුම් විවෘත කරන්න"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"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 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",
|
"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.",
|
"%(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"
|
"Powered by Matrix": "Bazuar në Matrix",
|
||||||
|
"Use %(brand)s on mobile": "Përdor %(brand)s në celular",
|
||||||
|
"Switch to space by number": "Kalo te hapësira me numrin"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,7 @@
|
|||||||
"Open": "Öppna",
|
"Open": "Öppna",
|
||||||
"Powered by Matrix": "Drivs av Matrix",
|
"Powered by Matrix": "Drivs av Matrix",
|
||||||
"Your browser can't run %(brand)s": "Din webbläsare kan inte köra %(brand)s",
|
"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."
|
"%(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.",
|
||||||
|
"Use %(brand)s on mobile": "Använd %(brand)s på mobilen",
|
||||||
|
"Switch to space by number": "Byt till utrymme med nummer"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,37 @@
|
|||||||
{
|
{
|
||||||
"Dismiss": "நீக்கு",
|
"Dismiss": "நீக்கு",
|
||||||
"powered by Matrix": "Matrix-ஆல் ஆனது",
|
"powered by Matrix": "Matrix-ஆல் ஆனது",
|
||||||
"Unknown device": "தெரியாத கருவி",
|
"Unknown device": "அறியப்படாத சாதனம்",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "நீங்கள் திரைபகிர்வு அழைப்பை மேற்க்கொள்ள HTTPS-ஐ பயன்படுத்த வேண்டும்.",
|
"You need to be using HTTPS to place a screen-sharing call.": "நீங்கள் திரைபகிர்வு அழைப்பை மேற்க்கொள்ள HTTPS ஐ பயன்படுத்த வேண்டும்.",
|
||||||
"Welcome to Element": "Element -ற்க்கு வரவேற்க்கிறோம்",
|
"Welcome to Element": "எலிமெண்டிற்க்கு வரவேற்க்கிறோம்",
|
||||||
"The message from the parser is: %(message)s": "பாகுபடுத்தி அனுப்பிய செய்தி: %(message)s",
|
"The message from the parser is: %(message)s": "பாகுபடுத்தி அனுப்பிய செய்தி: %(message)s",
|
||||||
"Invalid JSON": "தவறான JSON",
|
"Invalid JSON": "தவறான JSON",
|
||||||
"Unexpected error preparing the app. See console for details.": "பயன்பாட்டைத் தயாரிப்பதில் எதிர்பாராத பிழை. விவரங்களுக்கு console ஐப் பார்க்கவும்.",
|
"Unexpected error preparing the app. See console for details.": "பயன்பாட்டைத் தயார் செய்வதில் எதிர்பாராத பிழை. விவரங்களுக்கு console ஐப் பார்க்கவும்.",
|
||||||
"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: 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.": "தவறான உள்ளமைவு: இயல்புநிலை சேவையகம் குறிப்பிடப்படவில்லை.",
|
"Invalid configuration: no default server specified.": "தவறான உள்ளமைவு: இயல்புநிலை சேவையகம் குறிப்பிடப்படவில்லை.",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] ஆல் இயக்கப்படும் பரவலாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட அரட்டை & ஒத்துழைப்பு",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] மூலம் இயக்கப்படும் பரவலாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட அரட்டை பயன்பாட்டு",
|
||||||
"Sign In": "உள்நுழைக",
|
"Sign In": "உள்நுழைக",
|
||||||
"Create Account": "உங்கள் கணக்கை துவங்குங்கள்",
|
"Create Account": "உங்கள் கணக்கை துவங்குங்கள்",
|
||||||
"Explore rooms": "அறைகளை ஆராயுங்கள்"
|
"Explore rooms": "அறைகளை ஆராயுங்கள்",
|
||||||
|
"Missing indexeddb worker script!": "indexeddb வேலையாளி குறியீட்டை காணவில்லை!",
|
||||||
|
"Powered by Matrix": "மேட்ரிக்ஸ் மூலம் இயக்கப்படுகிறது",
|
||||||
|
"Previous/next recently visited room or community": "முந்தைய/அடுத்த சமீபத்தில் பார்வையிட்ட அறை அல்லது சமூகம்",
|
||||||
|
"Failed to start": "துவங்குவதில் தோல்வி",
|
||||||
|
"Go to element.io": "element.io க்குச் செல்லவும்",
|
||||||
|
"I understand the risks and wish to continue": "நான் அபாயங்களைப் புரிந்துகொண்டு தொடர விரும்புகிறேன்",
|
||||||
|
"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.": "உங்கள் தற்போதைய உலாவியை நீங்கள் தொடர்ந்து பயன்படுத்தலாம், ஆனால் சில அல்லது அனைத்து அம்சங்களும் செயல்படாமல் போகலாம் மற்றும் பயன்பாட்டின் தோற்றமும் உணர்வும் தவறாக இருக்கலாம்.",
|
||||||
|
"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> ஐ நிறுவவும்.",
|
||||||
|
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s உங்கள் தற்போதைய உலாவியால் ஆதரிக்கப்படாத மேம்பட்ட உலாவி அம்சங்களைப் பயன்படுத்துகிறது.",
|
||||||
|
"Your browser can't run %(brand)s": "உங்கள் உலாவியில் %(brand)s ஐ இயக்க முடியாது",
|
||||||
|
"Unsupported browser": "ஆதரிக்கப்படாத உலாவி",
|
||||||
|
"Use %(brand)s on mobile": "%(brand)s ஐ திறன்பேசியில் பயன்படுத்தவும்",
|
||||||
|
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||||
|
"Go to your browser to complete Sign In": "உள்நுழைவை முடிவுசெய்ய உங்கள் உலாவிக்குச் செல்லவும்",
|
||||||
|
"%(brand)s Desktop (%(platformName)s)": "%(brand)s திரைமுகப்பு (%(platformName)s)",
|
||||||
|
"Open user settings": "பயனர் அமைப்புகளைத் திறக்கவும்",
|
||||||
|
"Open": "திற",
|
||||||
|
"Download Completed": "பதிவிறக்கம் முடிவடைந்தது",
|
||||||
|
"Unable to load config file: please refresh the page to try again.": "கட்டமைப்பு கோப்பை ஏற்ற முடியவில்லை: மீண்டும் முயற்சிக்க பக்கத்தைப் புதுப்பிக்கவும்.",
|
||||||
|
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "உங்கள் எலிமெண்ட் உள்ளமைவில் தவறான JSON உள்ளது. தயவுசெய்து இதை சரிசெய்து பக்கத்தை மீண்டும் ஏற்றவும்.",
|
||||||
|
"Your Element is misconfigured": "உங்கள் எலிமெண்ட் தவறாக உள்ளமைக்கப்பட்டுள்ளது"
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user