Compare commits
226 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d46ed8082 | ||
|
|
682247241f | ||
|
|
538837decf | ||
|
|
56fbfc1648 | ||
|
|
8f8202494a | ||
|
|
27c7030034 | ||
|
|
3326242915 | ||
|
|
c4ba5ce02a | ||
|
|
6110e3df14 | ||
|
|
d626f16da4 | ||
|
|
334ddd8cba | ||
|
|
98f3edf160 | ||
|
|
62a5f41ee4 | ||
|
|
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 | ||
|
|
9e4eebed26 | ||
|
|
42bedefe10 | ||
|
|
634703c76b | ||
|
|
673a5ccc9e | ||
|
|
446833d931 | ||
|
|
e98a183978 | ||
|
|
d23b30023a | ||
|
|
48ff90fe8b | ||
|
|
79bd092697 | ||
|
|
9183cfdb01 | ||
|
|
e999524e03 | ||
|
|
4dcfd7c0dd | ||
|
|
2ffb1a6015 | ||
|
|
1eea16ecdf | ||
|
|
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 | ||
|
|
ee620be1ec | ||
|
|
2db3bb5556 | ||
|
|
bc70ef72ff | ||
|
|
d3fb0acdfb | ||
|
|
17c566e31e | ||
|
|
ac42f774aa | ||
|
|
28fb9bfc75 | ||
|
|
b98effbf32 | ||
|
|
889ed4541b | ||
|
|
427ca9d92d | ||
|
|
3df2616f4e | ||
|
|
9ef7507750 | ||
|
|
c5f533011b | ||
|
|
d03032b808 | ||
|
|
17dcef621e | ||
|
|
bf305f76a7 | ||
|
|
5ad5af7f20 | ||
|
|
4b3ba43f38 | ||
|
|
7e6ce7fb76 | ||
|
|
5c126cb61e | ||
|
|
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 | ||
|
|
9c3627dca9 | ||
|
|
c98ca42bbd | ||
|
|
b0c43890af | ||
|
|
3c8efd51ef | ||
|
|
c2e87dde85 | ||
|
|
001b15b856 |
179
CHANGELOG.md
179
CHANGELOG.md
@@ -1,3 +1,182 @@
|
||||
Changes in [1.7.32](https://github.com/vector-im/element-web/releases/tag/v1.7.32) (2021-07-05)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.32-rc.1...v1.7.32)
|
||||
|
||||
* No changes from rc.1
|
||||
|
||||
Changes in [1.7.32-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.32-rc.1) (2021-06-29)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.31...v1.7.32-rc.1)
|
||||
|
||||
* Update to react-sdk v3.25.0-rc.1 and js-sdk v12.0.1-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#17832](https://github.com/vector-im/element-web/pull/17832)
|
||||
* Fix canvas-filter-polyfill mock path
|
||||
[\#17785](https://github.com/vector-im/element-web/pull/17785)
|
||||
* Mock context-filter-polyfill for app-tests
|
||||
[\#17774](https://github.com/vector-im/element-web/pull/17774)
|
||||
* Add libera.chat to default room directory
|
||||
[\#17772](https://github.com/vector-im/element-web/pull/17772)
|
||||
* Improve typing of Event Index Manager / Seshat
|
||||
[\#17704](https://github.com/vector-im/element-web/pull/17704)
|
||||
* Bump dns-packet from 1.3.1 to 1.3.4
|
||||
[\#17478](https://github.com/vector-im/element-web/pull/17478)
|
||||
* Update matrix-widget-api to fix build issues
|
||||
[\#17747](https://github.com/vector-im/element-web/pull/17747)
|
||||
* Fix whitespace in Dockerfile
|
||||
[\#17742](https://github.com/vector-im/element-web/pull/17742)
|
||||
* Upgrade @types/react and @types/react-dom
|
||||
[\#17723](https://github.com/vector-im/element-web/pull/17723)
|
||||
* Spaces keyboard shortcuts first cut
|
||||
[\#17457](https://github.com/vector-im/element-web/pull/17457)
|
||||
* Labs: feature_report_to_moderators
|
||||
[\#17694](https://github.com/vector-im/element-web/pull/17694)
|
||||
|
||||
Changes in [1.7.31](https://github.com/vector-im/element-web/releases/tag/v1.7.31) (2021-06-21)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.31-rc.1...v1.7.31)
|
||||
|
||||
* Upgrade to React SDK 3.24.0 and JS SDK 12.0.0
|
||||
|
||||
Changes in [1.7.31-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.31-rc.1) (2021-06-15)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.30...v1.7.31-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.24.0-rc.1 and JS SDK 12.0.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#17655](https://github.com/vector-im/element-web/pull/17655)
|
||||
* Upgrade matrix-react-test-utils for React 17 peer deps
|
||||
[\#17653](https://github.com/vector-im/element-web/pull/17653)
|
||||
* Fix lint errors in Webpack config
|
||||
[\#17626](https://github.com/vector-im/element-web/pull/17626)
|
||||
* Preload only `woff2` fonts
|
||||
[\#17614](https://github.com/vector-im/element-web/pull/17614)
|
||||
* ⚛️ Upgrade to React@17
|
||||
[\#17601](https://github.com/vector-im/element-web/pull/17601)
|
||||
|
||||
Changes in [1.7.30](https://github.com/vector-im/element-web/releases/tag/v1.7.30) (2021-06-07)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.30-rc.1...v1.7.30)
|
||||
|
||||
* Upgrade to React SDK 3.23.0 and JS SDK 11.2.0
|
||||
|
||||
Changes in [1.7.30-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.30-rc.1) (2021-06-01)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.29...v1.7.30-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.23.0-rc.1 and JS SDK 11.2.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#17526](https://github.com/vector-im/element-web/pull/17526)
|
||||
* Add Modernizr test for Promise.allSettled given js-sdk and react-sdk depend
|
||||
on it
|
||||
[\#17464](https://github.com/vector-im/element-web/pull/17464)
|
||||
* Bump libolm dependency, and update package name.
|
||||
[\#17433](https://github.com/vector-im/element-web/pull/17433)
|
||||
* Remove logo spinner
|
||||
[\#17423](https://github.com/vector-im/element-web/pull/17423)
|
||||
|
||||
Changes in [1.7.29](https://github.com/vector-im/element-web/releases/tag/v1.7.29) (2021-05-24)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.29-rc.1...v1.7.29)
|
||||
|
||||
## Security notice
|
||||
|
||||
Element Web 1.7.29 fixes (by upgrading to olm 3.2.3) an issue in code used for
|
||||
decrypting server-side stored secrets. The issue could potentially allow a
|
||||
malicious homeserver to cause a stack buffer overflow in the affected function
|
||||
and to control that function's local variables.
|
||||
|
||||
## All changes
|
||||
|
||||
* Upgrade to React SDK 3.22.0 and JS SDK 11.1.0
|
||||
* [Release] Bump libolm dependency, and update package name
|
||||
[\#17456](https://github.com/vector-im/element-web/pull/17456)
|
||||
|
||||
Changes in [1.7.29-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.29-rc.1) (2021-05-19)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.28...v1.7.29-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.22.0-rc.1 and JS SDK 11.1.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#17384](https://github.com/vector-im/element-web/pull/17384)
|
||||
* Prevent minification of `.html` files
|
||||
[\#17349](https://github.com/vector-im/element-web/pull/17349)
|
||||
* Update matrix-widget-api/react-sdk dependency reference
|
||||
[\#17346](https://github.com/vector-im/element-web/pull/17346)
|
||||
* Add `yarn start:https`
|
||||
[\#16989](https://github.com/vector-im/element-web/pull/16989)
|
||||
* Translations update from Weblate
|
||||
[\#17239](https://github.com/vector-im/element-web/pull/17239)
|
||||
* Remove "in development" flag from voice messages labs documentation
|
||||
[\#17204](https://github.com/vector-im/element-web/pull/17204)
|
||||
* Add required webpack+jest config to load Safari support modules
|
||||
[\#17193](https://github.com/vector-im/element-web/pull/17193)
|
||||
|
||||
Changes in [1.7.28](https://github.com/vector-im/element-web/releases/tag/v1.7.28) (2021-05-17)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.28-rc.1...v1.7.28)
|
||||
|
||||
## Security notice
|
||||
|
||||
Element Web 1.7.28 fixes (by upgrading to matrix-react-sdk 3.21.0) a low
|
||||
severity issue (GHSA-8796-gc9j-63rv) related to file upload. When uploading a
|
||||
file, the local file preview can lead to execution of scripts embedded in the
|
||||
uploaded file, but only after several user interactions to open the preview in
|
||||
a separate tab. This only impacts the local user while in the process of
|
||||
uploading. It cannot be exploited remotely or by other users. Thanks to
|
||||
[Muhammad Zaid Ghifari](https://github.com/MR-ZHEEV) for responsibly disclosing
|
||||
this via Matrix's Security Disclosure Policy.
|
||||
|
||||
## All changes
|
||||
|
||||
* Upgrade to React SDK 3.21.0 and JS SDK 11.0.0
|
||||
|
||||
Changes in [1.7.28-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.28-rc.1) (2021-05-11)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.27...v1.7.28-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.21.0-rc.1 and JS SDK 11.0.0-rc.1
|
||||
* Switch back to release version of `sanitize-html`
|
||||
[\#17231](https://github.com/vector-im/element-web/pull/17231)
|
||||
* Bump url-parse from 1.4.7 to 1.5.1
|
||||
[\#17199](https://github.com/vector-im/element-web/pull/17199)
|
||||
* Bump lodash from 4.17.20 to 4.17.21
|
||||
[\#17205](https://github.com/vector-im/element-web/pull/17205)
|
||||
* Bump hosted-git-info from 2.8.8 to 2.8.9
|
||||
[\#17219](https://github.com/vector-im/element-web/pull/17219)
|
||||
* Disable host checking on the webpack dev server
|
||||
[\#17194](https://github.com/vector-im/element-web/pull/17194)
|
||||
* Bump ua-parser-js from 0.7.23 to 0.7.24
|
||||
[\#17190](https://github.com/vector-im/element-web/pull/17190)
|
||||
|
||||
Changes in [1.7.27](https://github.com/vector-im/element-web/releases/tag/v1.7.27) (2021-05-10)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.27-rc.1...v1.7.27)
|
||||
|
||||
* Upgrade to React SDK 3.20.0 and JS SDK 10.1.0
|
||||
|
||||
Changes in [1.7.27-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.27-rc.1) (2021-05-04)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.26...v1.7.27-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.20.0-rc.1 and JS SDK 10.1.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#17160](https://github.com/vector-im/element-web/pull/17160)
|
||||
* Document option for obeying asserted identity
|
||||
[\#17008](https://github.com/vector-im/element-web/pull/17008)
|
||||
* Implement IPC call to Electron to set language
|
||||
[\#17052](https://github.com/vector-im/element-web/pull/17052)
|
||||
* Convert Vector skin react components to Typescript
|
||||
[\#17061](https://github.com/vector-im/element-web/pull/17061)
|
||||
* Add code quality review policy
|
||||
[\#16980](https://github.com/vector-im/element-web/pull/16980)
|
||||
* Register RecorderWorklet from react-sdk
|
||||
[\#17013](https://github.com/vector-im/element-web/pull/17013)
|
||||
* Preload Inter font to avoid FOIT on slow connections
|
||||
[\#17039](https://github.com/vector-im/element-web/pull/17039)
|
||||
* Disable `postcss-calc`'s noisy `warnWhenCannotResolve` option
|
||||
[\#17041](https://github.com/vector-im/element-web/pull/17041)
|
||||
|
||||
Changes in [1.7.26](https://github.com/vector-im/element-web/releases/tag/v1.7.26) (2021-04-26)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.26-rc.1...v1.7.26)
|
||||
|
||||
@@ -37,4 +37,4 @@ COPY --from=builder /src/webapp /app
|
||||
RUN sed -i '3i\ \ \ \ application/wasm wasm\;' /etc/nginx/mime.types
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html \
|
||||
&& ln -s /app /usr/share/nginx/html
|
||||
&& ln -s /app /usr/share/nginx/html
|
||||
|
||||
@@ -25,9 +25,7 @@
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"defaultCountryCode": "GB",
|
||||
"showLabsSettings": false,
|
||||
"features": {
|
||||
"feature_new_spinner": false
|
||||
},
|
||||
"features": { },
|
||||
"default_federate": true,
|
||||
"default_theme": "light",
|
||||
"roomDirectory": {
|
||||
|
||||
@@ -132,6 +132,10 @@ For a good example, see https://develop.element.io/config.json.
|
||||
1. `audioStreamUrl`: If supplied, show an option on Jitsi widgets to stream
|
||||
audio using Jitsi's live streaming feature. This option is experimental and
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
@@ -62,9 +62,7 @@ Then you can deploy it to your cluster with something like `kubectl apply -f my-
|
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
|
||||
"defaultCountryCode": "GB",
|
||||
"showLabsSettings": false,
|
||||
"features": {
|
||||
"feature_new_spinner": false
|
||||
},
|
||||
"features": { },
|
||||
"default_federate": true,
|
||||
"default_theme": "light",
|
||||
"roomDirectory": {
|
||||
|
||||
20
docs/labs.md
20
docs/labs.md
@@ -7,6 +7,11 @@ 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
|
||||
dropped. Ask in the room if you are unclear about any details here.**
|
||||
|
||||
## Submit Abuse Report to Moderators [MSC3215](https://github.com/matrix-org/matrix-doc/pull/3215) support (`feature_report_to_moderators`)
|
||||
|
||||
A new version of the "Report" dialog that lets users send abuse reports directly to room moderators,
|
||||
if the room supports it.
|
||||
|
||||
## Matrix Spaces [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) support (`feature_spaces`)
|
||||
|
||||
Enables showing, using, creating, and managing spaces. Create Spaces from the all new Space Panel (to left of Room List).
|
||||
@@ -19,10 +24,6 @@ Still in heavy development.
|
||||
|
||||
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`)
|
||||
|
||||
Allows you to pin messages in the room. To pin a message, use the 3 dots to the right of the message
|
||||
@@ -124,12 +125,13 @@ or feedback for this functionality at this time.
|
||||
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).
|
||||
|
||||
## Voice messages (`feature_voice_messages`) [In Development]
|
||||
## Voice messages (`feature_voice_messages`)
|
||||
|
||||
An in-progress implementation of [MSC2516](https://github.com/matrix-org/matrix-doc/pull/2516) to add
|
||||
[voice messages](https://github.com/vector-im/element-web/issues/1358) to Element. 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.
|
||||
Offers a way to send more time-sensitive information through the power of voice. When enabled, use the microphone
|
||||
icon on the lower right to start recording your message. You will have a chance to review after you're done recording,
|
||||
and if it sounds fine then send it off for the rest of the room to hear.
|
||||
|
||||
Voice messages are automatically downloaded to ensure they are ready for playback as soon as possible.
|
||||
|
||||
## Do not disturb (`feature_dnd`)
|
||||
|
||||
|
||||
@@ -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
|
||||
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
|
||||
|
||||
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
|
||||
with our vision for Element. Please chat with the team in
|
||||
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before you
|
||||
start so we can ensure it's something we'd be willing to merge.
|
||||
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before
|
||||
you start so we can ensure it's something we'd be willing to merge.
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
"matrix.org",
|
||||
"gitter.im"
|
||||
"gitter.im",
|
||||
"libera.chat"
|
||||
]
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
"matrix.org",
|
||||
"gitter.im"
|
||||
"gitter.im",
|
||||
"libera.chat"
|
||||
]
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
|
||||
44
package.json
44
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "element-web",
|
||||
"version": "1.7.26",
|
||||
"version": "1.7.32",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -29,7 +29,7 @@
|
||||
"scripts": {
|
||||
"i18n": "matrix-gen-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:watch": "reskindex -h src/header -w",
|
||||
"reskindex:watch-react": "node scripts/yarn-sub.js matrix-react-sdk reskindex:watch",
|
||||
@@ -44,8 +44,9 @@
|
||||
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
||||
"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: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: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",
|
||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||
"lint:js": "eslint src",
|
||||
"lint:types": "tsc --noEmit --jsx react",
|
||||
@@ -53,20 +54,20 @@
|
||||
"test": "jest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
|
||||
"browser-request": "^0.3.3",
|
||||
"gfm.css": "^1.1.2",
|
||||
"highlight.js": "^10.5.0",
|
||||
"jsrsasign": "^10.1.5",
|
||||
"katex": "^0.12.0",
|
||||
"matrix-js-sdk": "10.0.0",
|
||||
"matrix-react-sdk": "3.19.0",
|
||||
"matrix-widget-api": "^0.1.0-beta.13",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
|
||||
"matrix-js-sdk": "12.0.1",
|
||||
"matrix-react-sdk": "3.25.0",
|
||||
"matrix-widget-api": "^0.1.0-beta.15",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.14.0",
|
||||
"react-dom": "^16.14.0",
|
||||
"sanitize-html": "github:apostrophecms/sanitize-html#3c7f93f2058f696f5359e3e58d464161647226db",
|
||||
"ua-parser-js": "^0.7.23"
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"sanitize-html": "^2.3.2",
|
||||
"ua-parser-js": "^0.7.24"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.10",
|
||||
@@ -86,12 +87,13 @@
|
||||
"@babel/preset-typescript": "^7.12.7",
|
||||
"@babel/register": "^7.12.10",
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
|
||||
"@types/flux": "^3.1.9",
|
||||
"@types/modernizr": "^3.5.3",
|
||||
"@types/node": "^14.14.22",
|
||||
"@types/react": "^16.9",
|
||||
"@types/react-dom": "^16.9.10",
|
||||
"@types/sanitize-html": "^1.27.1",
|
||||
"@types/react": "^17.0.2",
|
||||
"@types/react-dom": "^17.0.2",
|
||||
"@types/sanitize-html": "^2.3.1",
|
||||
"autoprefixer": "^9.8.6",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-jest": "^26.6.3",
|
||||
@@ -111,13 +113,14 @@
|
||||
"fake-indexeddb": "^3.1.2",
|
||||
"file-loader": "^5.1.0",
|
||||
"fs-extra": "^0.30.0",
|
||||
"html-webpack-plugin": "^3.2.0",
|
||||
"html-webpack-plugin": "^4.5.2",
|
||||
"jest": "^26.6.3",
|
||||
"jest-environment-jsdom-sixteen": "^1.0.3",
|
||||
"json-loader": "^0.5.7",
|
||||
"loader-utils": "^1.4.0",
|
||||
"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",
|
||||
"minimist": "^1.2.5",
|
||||
"mkdirp": "^1.0.4",
|
||||
@@ -146,9 +149,6 @@
|
||||
"webpack-cli": "^3.3.12",
|
||||
"webpack-dev-server": "^3.11.2"
|
||||
},
|
||||
"resolutions": {
|
||||
"**/@types/react": "^16.14"
|
||||
},
|
||||
"jest": {
|
||||
"testEnvironment": "jest-environment-jsdom-sixteen",
|
||||
"testMatch": [
|
||||
@@ -165,7 +165,11 @@
|
||||
"^react$": "<rootDir>/node_modules/react",
|
||||
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
||||
"^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"
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
"/node_modules/(?!matrix-js-sdk).+$",
|
||||
|
||||
@@ -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/decoder-ring/**", "webapp/decoder-ring"],
|
||||
["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 }],
|
||||
["contribute.json", "webapp"],
|
||||
];
|
||||
|
||||
@@ -24,7 +24,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
|
||||
static replaces = 'EmbeddedPage';
|
||||
|
||||
// we're overriding the base component here, for Element-specific tweaks
|
||||
translate(s) {
|
||||
translate(s: string) {
|
||||
s = sanitizeHtml(_t(s));
|
||||
// ugly fix for https://github.com/vector-im/element-web/issues/4243
|
||||
// eslint-disable-next-line max-len
|
||||
@@ -16,16 +16,11 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||
|
||||
export default class VectorAuthHeaderLogo extends React.PureComponent {
|
||||
static replaces = 'AuthHeaderLogo'
|
||||
|
||||
static propTypes = {
|
||||
icon: PropTypes.string,
|
||||
}
|
||||
|
||||
render() {
|
||||
const brandingConfig = SdkConfig.get().branding;
|
||||
let logoUrl = "themes/element/img/logos/element-logo.svg";
|
||||
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import React, { CSSProperties } from 'react';
|
||||
import * as sdk from 'matrix-react-sdk/src/index';
|
||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||
|
||||
@@ -48,12 +48,12 @@ export default class VectorAuthPage extends React.PureComponent {
|
||||
background: `center/cover fixed url(${VectorAuthPage.getWelcomeBackgroundUrl()})`,
|
||||
};
|
||||
|
||||
const modalStyle = {
|
||||
const modalStyle: CSSProperties = {
|
||||
position: 'relative',
|
||||
background: 'initial',
|
||||
};
|
||||
|
||||
const blurStyle = {
|
||||
const blurStyle: CSSProperties = {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
right: 0,
|
||||
@@ -63,7 +63,7 @@ export default class VectorAuthPage extends React.PureComponent {
|
||||
background: pageStyle.background,
|
||||
};
|
||||
|
||||
const modalContentStyle = {
|
||||
const modalContentStyle: CSSProperties = {
|
||||
display: 'flex',
|
||||
zIndex: 1,
|
||||
background: 'rgba(255, 255, 255, 0.59)',
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "Отвори",
|
||||
"Your browser can't run %(brand)s": "Браузърът ви не може да изпълни %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия.",
|
||||
"Powered by Matrix": "Базирано на Matrix"
|
||||
"Powered by Matrix": "Базирано на Matrix",
|
||||
"Use %(brand)s on mobile": "Използвайте %(brand)s на мобилен телефон"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Failed to start": "Nepovedlo se nastartovat",
|
||||
"Powered by Matrix": "Běží na Matrixu",
|
||||
"%(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"
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
"powered by Matrix": "betrieben mit Matrix",
|
||||
"Dismiss": "Ausblenden",
|
||||
"Unknown device": "Unbekanntes Gerät",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Du musst HTTPS nutzen um einen Anruf mit Bildschirmfreigabe durchzuführen.",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Du musst HTTPS nutzen, um einen Anruf mit Bildschirmfreigabe durchzuführen.",
|
||||
"Welcome to Element": "Willkommen bei Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- & Kollaborationslösung mittels [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- & Kollaborationslösung basierend auf [matrix]",
|
||||
"Sign In": "Anmelden",
|
||||
"Create Account": "Konto erstellen",
|
||||
"Explore rooms": "Räume erkunden",
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "Öffnen",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s verwendet erweiterte Browserfunktionen, die von deinem Browser nicht unterstützt werden.",
|
||||
"Your browser can't run %(brand)s": "Dein Browser kann %(brand)s nicht ausführen",
|
||||
"Powered by Matrix": "Betrieben mit Matrix"
|
||||
"Powered by Matrix": "Betrieben mit Matrix",
|
||||
"Use %(brand)s on mobile": "Verwende %(brand)s am Handy"
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"Download Completed": "Download Completed",
|
||||
"Open": "Open",
|
||||
"Dismiss": "Dismiss",
|
||||
"Switch to space by number": "Switch to space by number",
|
||||
"Open user settings": "Open user settings",
|
||||
"Previous/next recently visited room or community": "Previous/next recently visited room or community",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Via agordaro de Elemento enhavas nevalidajn datumojn de JSON. Bonvolu korekti la problemon kaj aktualigi la paĝon.",
|
||||
"Your browser can't run %(brand)s": "Via foliumilo ne povas ruli %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s uzas specialajn funkciojn de foliumilo, kiujn via nuna foliumilo ne subtenas.",
|
||||
"Powered by Matrix": "Povigata de Matrix"
|
||||
"Powered by Matrix": "Povigata de Matrix",
|
||||
"Use %(brand)s on mobile": "Uzi %(brand)s telefone"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "Abrir",
|
||||
"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.",
|
||||
"Powered by Matrix": "Funciona con Matrix"
|
||||
"Powered by Matrix": "Funciona con Matrix",
|
||||
"Use %(brand)s on mobile": "Usar %(brand)s en modo móvil"
|
||||
}
|
||||
|
||||
@@ -26,11 +26,12 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s، %(osName)s",
|
||||
"Unsupported browser": "مرورگر پشتبانی نشده",
|
||||
"Your browser can't run %(brand)s": "مرورگر شما نمیتواند %(brand)s را اجرا کند",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s از ویژگی های پیشرفته مرورگر استفاده میکند که که در مرورگر فعلی شما پشتیبانی نمیشوند.",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s از ویژگی های پیشرفته مرورگر استفاده میکند که در مرورگر فعلی شما پشتیبانی نمیشوند.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "لطفا برای تجربه بهتر <chromeLink>کروم</chromeLink>، <firefoxLink>فایرفاکس</firefoxLink>، یا <safariLink>سافاری</safariLink> را نصب کنید.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "شما میتوانید با مرورگر فعلی خود ادامه دهید، اما ممکن است برخی یا کل ویژگی ها کار نکنند و نگاه و احساس از برنامه ممکن است درست نباشد.",
|
||||
"I understand the risks and wish to continue": "از خطرات این کار آگاهم و مایلم که ادامه بدهم",
|
||||
"Go to element.io": "برو به element.io",
|
||||
"Failed to start": "مشکل در آغاز",
|
||||
"Powered by Matrix": "قدرتگرفته از ماتریکس"
|
||||
"Powered by Matrix": "قدرتگرفته از ماتریکس",
|
||||
"Use %(brand)s on mobile": "استفاده از %(brand)s روی گوشی"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuration de votre Element contient du JSON invalide. Veuillez corriger le problème et recharger la page.",
|
||||
"Your browser can't run %(brand)s": "Votre navigateur ne peut pas exécuter %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne 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"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Powered by Matrix": "Cumhachtaithe ag Matrix",
|
||||
"Go to element.io": "Téigh go element.io",
|
||||
"Open user settings": "Oscail socruithe úsáideora",
|
||||
"Open": "Oscail"
|
||||
"Open": "Oscail",
|
||||
"Use %(brand)s on mobile": "Úsáid %(brand)s ar guthán póca"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "A configuración de Element contén JSON non válido. Corrixe o problema e recarga a páxina.",
|
||||
"Your browser can't run %(brand)s": "O teu navegador non pode executar %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza características avanzadas do navegador que non están dispoñibles no teu navegador.",
|
||||
"Powered by Matrix": "Funciona grazas a Matrix"
|
||||
"Powered by Matrix": "Funciona grazas a Matrix",
|
||||
"Use %(brand)s on mobile": "Utiliza %(brand)s no móbil"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"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",
|
||||
"%(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"
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"Unknown device": "Perangkat Tidak Diketahui",
|
||||
"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",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Obrolan terenkripsi, terdesentralisasi & kolaborasi didukung oleh [matrix]"
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Obrolan terenkripsi, terdesentralisasi & kolaborasi didukung oleh [matrix]",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfigurasi Element Anda mengandung JSON yang tidak valid. Mohon perbaiki masalahnya dan muat ulang halaman nya.",
|
||||
"Invalid configuration: no default server specified.": "Konfigurasi tidak valid: server default belum ditentukan.",
|
||||
"Missing indexeddb worker script!": "Tidak ada script worker indexeddb!"
|
||||
}
|
||||
|
||||
@@ -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 is misconfigured": "Element þitt er rangt stillt",
|
||||
"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,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configurazione del tuo elemento contiene un JSON non valido. Correggi il problema e ricarica la pagina.",
|
||||
"Your browser can't run %(brand)s": "Il tuo browser non può eseguire %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funzionalità avanzate del browser che non sono supportate dal tuo browser attuale.",
|
||||
"Powered by Matrix": "Offerto da Matrix"
|
||||
"Powered by Matrix": "Offerto da Matrix",
|
||||
"Use %(brand)s on mobile": "Usa %(brand)s su mobile"
|
||||
}
|
||||
|
||||
@@ -4,5 +4,28 @@
|
||||
"Dismiss": "უარის თქმა",
|
||||
"powered by Matrix": "Matrix-ზე დაფუძნებული",
|
||||
"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": "გადმოწერა დასრულებულია"
|
||||
}
|
||||
|
||||
3
src/i18n/strings/lo.json
Normal file
3
src/i18n/strings/lo.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"Open": "ເປີດ"
|
||||
}
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your browser can't run %(brand)s": "Jūsų naršyklė negali paleisti %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s naudoja išplėstines naršyklės funkcijas, kurių jūsų dabartinė naršyklė nepalaiko.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Geriausiam veikimui suinstaliuokite <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, arba <safariLink>Safari</safariLink>.",
|
||||
"Powered by Matrix": "Veikia su Matrix"
|
||||
"Powered by Matrix": "Veikia su Matrix",
|
||||
"Use %(brand)s on mobile": "Naudoti %(brand)s mobiliajame telefone"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"Dismiss": "Afwijzen",
|
||||
"Dismiss": "Sluiten",
|
||||
"powered by Matrix": "draait op Matrix",
|
||||
"Unknown device": "Onbekend apparaat",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Oproepen met schermdelen vergen HTTPS.",
|
||||
"Welcome to Element": "Welkom bij Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken dankzij [matrix]",
|
||||
"Sign In": "Aanmelden",
|
||||
"Create Account": "Account aanmaken",
|
||||
"Sign In": "Inloggen",
|
||||
"Create Account": "Registeren",
|
||||
"Explore rooms": "Gesprekken 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.",
|
||||
"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.",
|
||||
@@ -22,15 +22,16 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"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.",
|
||||
"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",
|
||||
"Go to element.io": "Ga naar element.io",
|
||||
"Failed to start": "Opstarten mislukt",
|
||||
"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",
|
||||
"Your Element is misconfigured": "Je Element is verkeerd geconfigureerd",
|
||||
"Your browser can't run %(brand)s": "Je browser kan %(brand)s niet draaien",
|
||||
"%(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.",
|
||||
"Powered by Matrix": "Gebruikt Matrix technologie"
|
||||
"Your Element is misconfigured": "Uw Element is verkeerd geconfigureerd",
|
||||
"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 uw huidige browser.",
|
||||
"Powered by Matrix": "Mogelijk gemaakt door Matrix",
|
||||
"Use %(brand)s on mobile": "Gebruik %(brand)s op uw mobiel"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"%(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 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"
|
||||
}
|
||||
|
||||
@@ -1,36 +1,37 @@
|
||||
{
|
||||
"Dismiss": "Descartar",
|
||||
"Dismiss": "Dispensar",
|
||||
"powered by Matrix": "oferecido por Matrix",
|
||||
"Unknown device": "Aparelho desconhecido",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa usar HTTPS para compartilhar a tela durante uma chamada.",
|
||||
"Welcome to Element": "Boas-vindas ao Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo construído com [matrix]",
|
||||
"Sign In": "Entrar",
|
||||
"Unknown device": "Dispositivo desconhecido",
|
||||
"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 a Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat & colaboração descentralizados e encriptados powered by [matrix]",
|
||||
"Sign In": "Fazer signin",
|
||||
"Create Account": "Criar Conta",
|
||||
"Explore rooms": "Explorar salas",
|
||||
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
|
||||
"Invalid JSON": "JSON inválido",
|
||||
"Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o aplicativo. Veja o console para mais detalhes.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: você só pode especificar um valor dentre default_server_config, default_server_name, ou default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o arquivo de configuração: por favor, atualize a página para tentar novamente.",
|
||||
"Download Completed": "Download concluído",
|
||||
"Open user settings": "Abrir configurações do usuário",
|
||||
"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: 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: nenhum servidor default especificado.",
|
||||
"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 Completado",
|
||||
"Open user settings": "Abrir configurações de usuária(o)",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Navegador não suportado",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instale o <chromeLink>Chrome</chromeLink>, o <firefoxLink>Firefox</firefoxLink> ou o <safariLink>Safari</safariLink> para obter a melhor experiência de uso.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Você pode continuar usando o navegador atual, mas alguns dos recursos podem não funcionar e a aparência do aplicativo pode estar incorreta.",
|
||||
"I understand the risks and wish to continue": "Entendo os riscos e desejo continuar",
|
||||
"Go to element.io": "Vá para element.io",
|
||||
"Failed to start": "Falha ao iniciar",
|
||||
"Missing indexeddb worker script!": "O script indexeddb não foi encontrado!",
|
||||
"Unsupported browser": "Browser insuportado",
|
||||
"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 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": "Eu entendo os riscos e desejo continuar",
|
||||
"Go to element.io": "Ir para element.io",
|
||||
"Failed to start": "Falha para iniciar",
|
||||
"Missing indexeddb worker script!": "Worker script indexeddb faltando!",
|
||||
"Open": "Abrir",
|
||||
"Previous/next recently visited room or community": "Anterior/Próxima sala ou comunidade visitada recentemente",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s para Computador (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Vá para o seu navegador para concluir o login",
|
||||
"Your Element is misconfigured": "Seu Element está desconfigurado",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Sua configuração do Element contém JSON inválido. Por favor, corrija o problema e recarregue a página.",
|
||||
"Your browser can't run %(brand)s": "Seu navegador não consegue rodar o %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa recursos avançados que não são suportados pelo seu navegador de internet atual.",
|
||||
"Powered by Matrix": "Construído com tecnologia Matrix"
|
||||
"Previous/next recently visited room or community": "Anterior/próxima sala ou comunidade visitada recentemente",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "Vá para seu browser para completar Sign In",
|
||||
"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 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 browser não consegue rodar %(brand)s",
|
||||
"%(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": "Powered by Matrix",
|
||||
"Use %(brand)s on mobile": "Usar %(brand)s em celular"
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"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.",
|
||||
"Sign In": "Autentificare",
|
||||
"Create Account": "Înregistare",
|
||||
"Create Account": "Crează un cont",
|
||||
"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 JSON": "JSON invalid",
|
||||
@@ -16,5 +16,22 @@
|
||||
"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",
|
||||
"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."
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "Открыть",
|
||||
"Your browser can't run %(brand)s": "Ваш браузер не может запустить %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s использует расширенные возможности, которые не поддерживаются вашим браузером.",
|
||||
"Powered by Matrix": "На технологии Matrix"
|
||||
"Powered by Matrix": "На технологии Matrix",
|
||||
"Use %(brand)s on mobile": "Воспользуйтесь %(brand)s на мобильном телефоне"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Formësimi juaj i Element-it përmban JSON të pavlefshëm. Ju lutemi, ndreqeni problemin dhe ringarkoni faqen.",
|
||||
"Your browser can't run %(brand)s": "Shfletuesi juaj s’mund të xhirojë %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s përdor veçori të thelluara të shfletuesit, të cilat shfletuesi juaj i tanishëm s’i mbulon.",
|
||||
"Powered by Matrix": "Bazuar në Matrix"
|
||||
"Powered by Matrix": "Bazuar në Matrix",
|
||||
"Use %(brand)s on mobile": "Përdor %(brand)s në celular"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "Öppna",
|
||||
"Powered by Matrix": "Drivs av Matrix",
|
||||
"Your browser can't run %(brand)s": "Din webbläsare kan inte köra %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s använder avancerade webbläsarfunktioner som inte stöds av din aktuella webbläsare."
|
||||
"%(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"
|
||||
}
|
||||
|
||||
@@ -1,16 +1,37 @@
|
||||
{
|
||||
"Dismiss": "நீக்கு",
|
||||
"powered by Matrix": "Matrix-ஆல் ஆனது",
|
||||
"Unknown device": "தெரியாத கருவி",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "நீங்கள் திரைபகிர்வு அழைப்பை மேற்க்கொள்ள HTTPS-ஐ பயன்படுத்த வேண்டும்.",
|
||||
"Welcome to Element": "Element -ற்க்கு வரவேற்க்கிறோம்",
|
||||
"Unknown device": "அறியப்படாத சாதனம்",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "நீங்கள் திரைபகிர்வு அழைப்பை மேற்க்கொள்ள HTTPS ஐ பயன்படுத்த வேண்டும்.",
|
||||
"Welcome to Element": "எலிமெண்டிற்க்கு வரவேற்க்கிறோம்",
|
||||
"The message from the parser is: %(message)s": "பாகுபடுத்தி அனுப்பிய செய்தி: %(message)s",
|
||||
"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: no default server specified.": "தவறான உள்ளமைவு: இயல்புநிலை சேவையகம் குறிப்பிடப்படவில்லை.",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] ஆல் இயக்கப்படும் பரவலாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட அரட்டை & ஒத்துழைப்பு",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] மூலம் இயக்கப்படும் பரவலாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட அரட்டை பயன்பாட்டு",
|
||||
"Sign In": "உள்நுழைக",
|
||||
"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": "உங்கள் எலிமெண்ட் தவறாக உள்ளமைக்கப்பட்டுள்ளது"
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
"Sign In": "Giriş Yap",
|
||||
"Create Account": "Hesap Oluştur",
|
||||
"Explore rooms": "Odaları keşfet",
|
||||
"Invalid JSON": "Geçersiz JSON",
|
||||
"Invalid JSON": "JSON geçersiz",
|
||||
"Unexpected error preparing the app. See console for details.": "Uygulama hazırlanırken beklenmeyen bir hata oldu. Detaylar için konsola bakın.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Geçersiz yapılandırma: default_server_config, default_server_name, yada default_hs_url den sadece birisi seçilebilir.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Hatalı ayarlar: default_server_config, default_server_name ve default_hs_url ayarlarından en fazla biri girilebilir.",
|
||||
"Invalid configuration: no default server specified.": "Geçersiz yapılandırma: varsayılan sunucu seçilmemiş.",
|
||||
"The message from the parser is: %(message)s": "Ayrıştırıcıdan gelen mesaj: %(message)s",
|
||||
"Go to your browser to complete Sign In": "Oturum açmayı tamamlamak için tarayıcınıza gidin",
|
||||
@@ -28,9 +28,10 @@
|
||||
"Go to element.io": "element.io adresine git",
|
||||
"Failed to start": "Başlatılamadı",
|
||||
"Previous/next recently visited room or community": "Yakında ziyaret edilen önceki/sonraki oda veya topluluk",
|
||||
"Powered by Matrix": "Matrix tarafından güçlendirildi",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Powered by Matrix": "Gücünü Matrix'ten alır",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName) (%(browserName), %(osName))",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Masaüstü (%(platformName)s)",
|
||||
"Open": "Aç",
|
||||
"Missing indexeddb worker script!": "Indexeddb worker kodu eksik!"
|
||||
"Missing indexeddb worker script!": "Indexeddb worker kodu eksik!",
|
||||
"Use %(brand)s on mobile": "Mobilde %(brand)s kullan"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Create Account": "Ssenflul amiḍan",
|
||||
"Create Account": "senflul amiḍan",
|
||||
"Download Completed": "Ittusmed wagam",
|
||||
"Powered by Matrix": "Ittusker s Matrix",
|
||||
"Sign In": "Kcem",
|
||||
@@ -11,5 +11,6 @@
|
||||
"Open user settings": "Ṛẓem tisɣal n unessemres",
|
||||
"Dismiss": "Nexxel",
|
||||
"Open": "Ṛẓem",
|
||||
"The message from the parser is: %(message)s": "Tuzint seg tasna: %(message)s"
|
||||
"The message from the parser is: %(message)s": "Tuzint n umeslad: %(message)s",
|
||||
"Use %(brand)s on mobile": "Semres %(brand)s g utilifun"
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"Failed to start": "Запуск не вдався",
|
||||
"Download Completed": "Завантаження завершено",
|
||||
"Missing indexeddb worker script!": "Відсутній робочий сценарій IndexedDB!",
|
||||
"Your Element is misconfigured": "Ваш Element налаштовано невірно",
|
||||
"Your Element is misconfigured": "Ваш Element налаштовано неправильно",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфігурація Element містить хибний JSON. Виправте проблему та оновіть сторінку.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Неможливо завантажити файл конфігурації. Оновіть, будь ласка, сторінку, щоб спробувати знову.",
|
||||
"Open": "Відкрити",
|
||||
@@ -32,5 +32,6 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Powered by Matrix": "Працює на Matrix",
|
||||
"Your browser can't run %(brand)s": "Ваш переглядач неспроможний запустити %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s використовує передові властивості, які ваш браузер не підтримує."
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s використовує передові властивості, які ваш браузер не підтримує.",
|
||||
"Use %(brand)s on mobile": "Користуйтеся %(brand)s на мобільному"
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"Welcome to Element": "Chào mừng tới Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Chat phân tán, mã hóa & giao tiếp được tài trợ bởi [matrix]",
|
||||
"Unexpected error preparing the app. See console for details.": "Lỗi xảy ra trong lúc chuẩn bị app. Xem console log để biết chi tiết.",
|
||||
"The message from the parser is: %(message)s": "Nội dung tin là: %(message)s",
|
||||
"The message from the parser is: %(message)s": "Thông báo của trình xử lý là: %(message)s",
|
||||
"Invalid JSON": "JSON không hợp lệ",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Thiết lập không hợp lệ: chỉ có thể điền một trong số default_server_config, default_server_name, hoặc default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Cấu hình không hợp lệ: máy chủ mặc định không được thiết lập.",
|
||||
@@ -23,8 +23,15 @@
|
||||
"Unsupported browser": "Trình duyệt không được hỗ trợ",
|
||||
"Go to your browser to complete Sign In": "Mở trình duyệt web để hoàn thành đăng nhập",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Máy tính để bàn (%(platformName)s)",
|
||||
"Previous/next recently visited room or community": "Phòng chat hoặc cộng đồng gần đây trước/tiếp theo",
|
||||
"Previous/next recently visited room or community": "Phòng chat hoặc cộng đồng đã đi đến gần đây trước/tiếp theo",
|
||||
"Open user settings": "Mở cài đặt người dùng",
|
||||
"Open": "Mở",
|
||||
"Unable to load config file: please refresh the page to try again.": "Không thể tải tệp cấu hình: hãy làm mới trang để thử lại."
|
||||
"Unable to load config file: please refresh the page to try again.": "Không thể tải tệp cấu hình: hãy làm mới trang để thử lại.",
|
||||
"Failed to start": "Khởi động thất bại",
|
||||
"Use %(brand)s on mobile": "Sử dụng %(brand)s trên di động",
|
||||
"Powered by Matrix": "Được chạy bởi công nghệ Matrix",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Missing indexeddb worker script!": "Thiếu tệp lệnh làm việc của indexeddb!",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Thiết lập Element của bạn chứa JSON không hợp lệ. Vui lòng sửa vấn đề và tải lại trang.",
|
||||
"Your Element is misconfigured": "Element của bạn bị thiết lập sai"
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"The message from the parser is: %(message)s": "语法分析器的信息:%(message)s",
|
||||
"Invalid JSON": "无效的 JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "软件准备时出错,详细信息请查看控制台。",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "无效的配置:只能设置 default_server_config,default_server_name,或 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.": "无效的配置:没有设置默认服务器。",
|
||||
"Missing indexeddb worker script!": "缺少 IndexedDB 辅助脚本!",
|
||||
"Unable to load config file: please refresh the page to try again.": "无法加载配置文件:请再次刷新页面。",
|
||||
@@ -32,5 +32,6 @@
|
||||
"Open": "打开",
|
||||
"Your browser can't run %(brand)s": "浏览器无法运行 %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "当前浏览器不支持 %(brand)s 所需的高级浏览器特性。",
|
||||
"Powered by Matrix": "由 Matrix 驱动"
|
||||
"Powered by Matrix": "由 Matrix 驱动",
|
||||
"Use %(brand)s on mobile": "在移动设备上使用 %(brand)s"
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 的配置中包含無效JSON,請更正錯誤並重新加載網頁。",
|
||||
"Your browser can't run %(brand)s": "當前瀏覽器無法運行%(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "當前瀏覽器不支持%(brand)s使用的高級特性。",
|
||||
"Powered by Matrix": "由 Matrix 提供"
|
||||
"Powered by Matrix": "由 Matrix 提供",
|
||||
"Use %(brand)s on mobile": "在行動裝置上使用 %(brand)s"
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<meta name="msapplication-TileImage" content="<%= require('../../res/vector-icons/mstile-150.png') %>">
|
||||
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<meta property="og:image" content="<%= htmlWebpackPlugin.options.vars.og_image_url %>" />
|
||||
<meta property="og:image" content="<%= og_image_url %>" />
|
||||
<meta http-equiv="Content-Security-Policy" content="
|
||||
default-src 'none';
|
||||
style-src 'self' 'unsafe-inline';
|
||||
@@ -49,11 +49,24 @@
|
||||
<link rel="stylesheet" href="<%= file %>">
|
||||
<% }
|
||||
} %>
|
||||
|
||||
<% for (var i=0; i < htmlWebpackPlugin.tags.headTags.length; i++) {
|
||||
var tag = htmlWebpackPlugin.tags.headTags[i];
|
||||
var path = tag.attributes && tag.attributes.href;
|
||||
if (path.indexOf("Inter") !== -1) { %>
|
||||
<link rel="preload" as="font" href="<%= path %>" crossorigin="anonymous"/>
|
||||
<% }
|
||||
} %>
|
||||
|
||||
</head>
|
||||
<body style="height: 100%; margin: 0;" data-vector-indexeddb-worker-script="<%= htmlWebpackPlugin.files.chunks['indexeddb-worker'].entry %>">
|
||||
<body
|
||||
style="height: 100%; margin: 0;"
|
||||
data-vector-indexeddb-worker-script="<%= htmlWebpackPlugin.files.js.find(entry => entry.includes("indexeddb-worker.js")) %>"
|
||||
data-vector-recorder-worklet-script="<%= htmlWebpackPlugin.files.js.find(entry => entry.includes("recorder-worklet.js")) %>"
|
||||
>
|
||||
<noscript>Sorry, Element requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
||||
<section id="matrixchat" style="height: 100%; overflow: auto;" class="notranslate"></section>
|
||||
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
|
||||
<script src="<%= htmlWebpackPlugin.files.js.find(entry => entry.includes("bundle.js")) %>"></script>
|
||||
|
||||
<!-- Legacy supporting Prefetch images -->
|
||||
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
|
||||
@@ -51,6 +51,9 @@ function checkBrowserFeatures() {
|
||||
// ES2018: http://262.ecma-international.org/9.0/#sec-promise.prototype.finally
|
||||
window.Modernizr.addTest("promiseprototypefinally", () =>
|
||||
typeof window.Promise?.prototype?.finally === "function");
|
||||
// ES2020: http://262.ecma-international.org/#sec-promise.allsettled
|
||||
window.Modernizr.addTest("promiseallsettled", () =>
|
||||
typeof window.Promise?.allSettled === "function");
|
||||
// ES2018: https://262.ecma-international.org/9.0/#sec-get-regexp.prototype.dotAll
|
||||
window.Modernizr.addTest("regexpdotall", () => (
|
||||
window.RegExp?.prototype &&
|
||||
|
||||
@@ -19,8 +19,8 @@ limitations under the License.
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
import olmWasmPath from "olm/olm.wasm";
|
||||
import Olm from 'olm';
|
||||
import olmWasmPath from "@matrix-org/olm/olm.wasm";
|
||||
import Olm from '@matrix-org/olm';
|
||||
import * as ReactDOM from "react-dom";
|
||||
import * as React from "react";
|
||||
|
||||
|
||||
@@ -17,36 +17,45 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import VectorBasePlatform from './VectorBasePlatform';
|
||||
import {UpdateCheckStatus} from "matrix-react-sdk/src/BasePlatform";
|
||||
import { UpdateCheckStatus } from "matrix-react-sdk/src/BasePlatform";
|
||||
import BaseEventIndexManager, {
|
||||
CrawlerCheckpoint,
|
||||
EventAndProfile,
|
||||
IndexStats,
|
||||
MatrixEvent,
|
||||
MatrixProfile,
|
||||
SearchArgs,
|
||||
SearchResult,
|
||||
ICrawlerCheckpoint,
|
||||
IEventAndProfile,
|
||||
IIndexStats,
|
||||
IMatrixEvent,
|
||||
IMatrixProfile,
|
||||
ISearchArgs,
|
||||
ISearchResult,
|
||||
} from 'matrix-react-sdk/src/indexing/BaseEventIndexManager';
|
||||
import dis from 'matrix-react-sdk/src/dispatcher/dispatcher';
|
||||
import {_t, _td} from 'matrix-react-sdk/src/languageHandler';
|
||||
import { _t, _td } from 'matrix-react-sdk/src/languageHandler';
|
||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||
import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake';
|
||||
import {MatrixClient} from "matrix-js-sdk/src/client";
|
||||
import {Room} from "matrix-js-sdk/src/models/room";
|
||||
import { MatrixClient } from "matrix-js-sdk/src/client";
|
||||
import { Room } from "matrix-js-sdk/src/models/room";
|
||||
import Modal from "matrix-react-sdk/src/Modal";
|
||||
import InfoDialog from "matrix-react-sdk/src/components/views/dialogs/InfoDialog";
|
||||
import Spinner from "matrix-react-sdk/src/components/views/elements/Spinner";
|
||||
import {Categories, Modifiers, registerShortcut} from "matrix-react-sdk/src/accessibility/KeyboardShortcuts";
|
||||
import {Key} from "matrix-react-sdk/src/Keyboard";
|
||||
import {
|
||||
Categories,
|
||||
CMD_OR_CTRL,
|
||||
DIGITS,
|
||||
Modifiers,
|
||||
registerShortcut,
|
||||
} from "matrix-react-sdk/src/accessibility/KeyboardShortcuts";
|
||||
import { isOnlyCtrlOrCmdKeyEvent, Key } from "matrix-react-sdk/src/Keyboard";
|
||||
import React from "react";
|
||||
import {randomString} from "matrix-js-sdk/src/randomstring";
|
||||
import {Action} from "matrix-react-sdk/src/dispatcher/actions";
|
||||
import {ActionPayload} from "matrix-react-sdk/src/dispatcher/payloads";
|
||||
import {showToast as showUpdateToast} from "matrix-react-sdk/src/toasts/UpdateToast";
|
||||
import {CheckUpdatesPayload} from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload";
|
||||
import { randomString } from "matrix-js-sdk/src/randomstring";
|
||||
import { Action } from "matrix-react-sdk/src/dispatcher/actions";
|
||||
import { ActionPayload } from "matrix-react-sdk/src/dispatcher/payloads";
|
||||
import { SwitchSpacePayload} from "matrix-react-sdk/src/dispatcher/payloads/SwitchSpacePayload";
|
||||
import { showToast as showUpdateToast } from "matrix-react-sdk/src/toasts/UpdateToast";
|
||||
import { CheckUpdatesPayload } from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload";
|
||||
import ToastStore from "matrix-react-sdk/src/stores/ToastStore";
|
||||
import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast";
|
||||
import SettingsStore from 'matrix-react-sdk/src/settings/SettingsStore';
|
||||
|
||||
import VectorBasePlatform from './VectorBasePlatform';
|
||||
|
||||
const electron = window.electron;
|
||||
const isMac = navigator.platform.toUpperCase().includes('MAC');
|
||||
@@ -143,7 +152,7 @@ class SeshatIndexManager extends BaseEventIndexManager {
|
||||
return this._ipcCall('initEventIndex', userId, deviceId);
|
||||
}
|
||||
|
||||
async addEventToIndex(ev: MatrixEvent, profile: MatrixProfile): Promise<void> {
|
||||
async addEventToIndex(ev: IMatrixEvent, profile: IMatrixProfile): Promise<void> {
|
||||
return this._ipcCall('addEventToIndex', ev, profile);
|
||||
}
|
||||
|
||||
@@ -163,31 +172,31 @@ class SeshatIndexManager extends BaseEventIndexManager {
|
||||
return this._ipcCall('commitLiveEvents');
|
||||
}
|
||||
|
||||
async searchEventIndex(searchConfig: SearchArgs): Promise<SearchResult> {
|
||||
async searchEventIndex(searchConfig: ISearchArgs): Promise<ISearchResult> {
|
||||
return this._ipcCall('searchEventIndex', searchConfig);
|
||||
}
|
||||
|
||||
async addHistoricEvents(
|
||||
events: [EventAndProfile],
|
||||
checkpoint: CrawlerCheckpoint | null,
|
||||
oldCheckpoint: CrawlerCheckpoint | null,
|
||||
events: IEventAndProfile[],
|
||||
checkpoint: ICrawlerCheckpoint | null,
|
||||
oldCheckpoint: ICrawlerCheckpoint | null,
|
||||
): Promise<boolean> {
|
||||
return this._ipcCall('addHistoricEvents', events, checkpoint, oldCheckpoint);
|
||||
}
|
||||
|
||||
async addCrawlerCheckpoint(checkpoint: CrawlerCheckpoint): Promise<void> {
|
||||
async addCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {
|
||||
return this._ipcCall('addCrawlerCheckpoint', checkpoint);
|
||||
}
|
||||
|
||||
async removeCrawlerCheckpoint(checkpoint: CrawlerCheckpoint): Promise<void> {
|
||||
async removeCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {
|
||||
return this._ipcCall('removeCrawlerCheckpoint', checkpoint);
|
||||
}
|
||||
|
||||
async loadFileEvents(args): Promise<[EventAndProfile]> {
|
||||
async loadFileEvents(args): Promise<IEventAndProfile[]> {
|
||||
return this._ipcCall('loadFileEvents', args);
|
||||
}
|
||||
|
||||
async loadCheckpoints(): Promise<[CrawlerCheckpoint]> {
|
||||
async loadCheckpoints(): Promise<ICrawlerCheckpoint[]> {
|
||||
return this._ipcCall('loadCheckpoints');
|
||||
}
|
||||
|
||||
@@ -195,7 +204,7 @@ class SeshatIndexManager extends BaseEventIndexManager {
|
||||
return this._ipcCall('closeEventIndex');
|
||||
}
|
||||
|
||||
async getStats(): Promise<IndexStats> {
|
||||
async getStats(): Promise<IIndexStats> {
|
||||
return this._ipcCall('getStats');
|
||||
}
|
||||
|
||||
@@ -270,6 +279,14 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
});
|
||||
|
||||
// register OS-specific shortcuts
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
modifiers: [CMD_OR_CTRL],
|
||||
key: DIGITS,
|
||||
}],
|
||||
description: _td("Switch to space by number"),
|
||||
});
|
||||
|
||||
if (isMac) {
|
||||
registerShortcut(Categories.NAVIGATION, {
|
||||
keybinds: [{
|
||||
@@ -510,6 +527,10 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
return this.eventIndexManager;
|
||||
}
|
||||
|
||||
async setLanguage(preferredLangs: string[]) {
|
||||
return this._ipcCall('setLanguage', preferredLangs);
|
||||
}
|
||||
|
||||
setSpellCheckLanguages(preferredLangs: string[]) {
|
||||
this._ipcCall('setSpellCheckLanguages', preferredLangs).catch(error => {
|
||||
console.log("Failed to send setSpellCheckLanguages IPC to Electron");
|
||||
@@ -541,9 +562,15 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
});
|
||||
}
|
||||
|
||||
_navigateForwardBack(back: boolean) {
|
||||
private navigateForwardBack(back: boolean) {
|
||||
this._ipcCall(back ? "navigateBack" : "navigateForward");
|
||||
}
|
||||
private navigateToSpace(num: number) {
|
||||
dis.dispatch<SwitchSpacePayload>({
|
||||
action: Action.SwitchSpace,
|
||||
num,
|
||||
});
|
||||
}
|
||||
|
||||
onKeyDown(ev: KeyboardEvent): boolean {
|
||||
let handled = false;
|
||||
@@ -552,7 +579,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
case Key.SQUARE_BRACKET_LEFT:
|
||||
case Key.SQUARE_BRACKET_RIGHT:
|
||||
if (isMac && ev.metaKey && !ev.altKey && !ev.ctrlKey && !ev.shiftKey) {
|
||||
this._navigateForwardBack(ev.key === Key.SQUARE_BRACKET_LEFT);
|
||||
this.navigateForwardBack(ev.key === Key.SQUARE_BRACKET_LEFT);
|
||||
handled = true;
|
||||
}
|
||||
break;
|
||||
@@ -560,7 +587,23 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
case Key.ARROW_LEFT:
|
||||
case Key.ARROW_RIGHT:
|
||||
if (!isMac && ev.altKey && !ev.metaKey && !ev.ctrlKey && !ev.shiftKey) {
|
||||
this._navigateForwardBack(ev.key === Key.ARROW_LEFT);
|
||||
this.navigateForwardBack(ev.key === Key.ARROW_LEFT);
|
||||
handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case "1":
|
||||
case "2":
|
||||
case "3":
|
||||
case "4":
|
||||
case "5":
|
||||
case "6":
|
||||
case "7":
|
||||
case "8":
|
||||
case "9":
|
||||
case "0":
|
||||
if (SettingsStore.getValue("feature_spaces") && isOnlyCtrlOrCmdKeyEvent(ev)) {
|
||||
this.navigateToSpace(parseInt(ev.key, 10));
|
||||
handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
/* eslint-disable quote-props */
|
||||
|
||||
const path = require('path');
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const TerserPlugin = require('terser-webpack-plugin');
|
||||
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
||||
const webpack = require("webpack");
|
||||
const HtmlWebpackInjectPreload = require('@principalstudio/html-webpack-inject-preload');
|
||||
|
||||
let ogImageUrl = process.env.RIOT_OG_IMAGE_URL;
|
||||
if (!ogImageUrl) ogImageUrl = 'https://app.element.io/themes/element/img/logos/opengraph.png';
|
||||
@@ -46,12 +48,18 @@ module.exports = (env, argv) => {
|
||||
return {
|
||||
...development,
|
||||
|
||||
node: {
|
||||
// Mock out the NodeFS module: The opus decoder imports this wrongly.
|
||||
fs: 'empty',
|
||||
},
|
||||
|
||||
entry: {
|
||||
"bundle": "./src/vector/index.ts",
|
||||
"indexeddb-worker": "./src/vector/indexeddb-worker.js",
|
||||
"mobileguide": "./src/vector/mobile_guide/index.js",
|
||||
"jitsi": "./src/vector/jitsi/index.ts",
|
||||
"usercontent": "./node_modules/matrix-react-sdk/src/usercontent/index.js",
|
||||
"recorder-worklet": "./node_modules/matrix-react-sdk/src/voice/RecorderWorklet.ts",
|
||||
|
||||
// CSS themes
|
||||
"theme-legacy": "./node_modules/matrix-react-sdk/res/themes/legacy-light/css/legacy-light.scss",
|
||||
@@ -136,11 +144,11 @@ module.exports = (env, argv) => {
|
||||
// overflows (https://github.com/webpack/webpack/issues/1721), and
|
||||
// there is no need for webpack to parse them - they can just be
|
||||
// included as-is.
|
||||
/highlight\.js[\\\/]lib[\\\/]languages/,
|
||||
/highlight\.js[\\/]lib[\\/]languages/,
|
||||
|
||||
// olm takes ages for webpack to process, and it's already heavily
|
||||
// optimised, so there is little to gain by us uglifying it.
|
||||
/olm[\\\/](javascript[\\\/])?olm\.js$/,
|
||||
/olm[\\/](javascript[\\/])?olm\.js$/,
|
||||
],
|
||||
rules: [
|
||||
{
|
||||
@@ -243,7 +251,7 @@ module.exports = (env, argv) => {
|
||||
require("postcss-easings")(),
|
||||
require("postcss-strip-inline-comments")(),
|
||||
require("postcss-hexrgba")(),
|
||||
require("postcss-calc")({warnWhenCannotResolve: true}),
|
||||
require("postcss-calc")(),
|
||||
|
||||
// It's important that this plugin is last otherwise we end
|
||||
// up with broken CSS.
|
||||
@@ -276,6 +284,43 @@ module.exports = (env, argv) => {
|
||||
outputPath: '.',
|
||||
},
|
||||
},
|
||||
{
|
||||
// This is from the same place as the encoderWorker above, but only needed
|
||||
// for Safari support.
|
||||
test: /decoderWorker\.min\.js$/,
|
||||
loader: "file-loader",
|
||||
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
|
||||
options: {
|
||||
// We deliberately override the name so it makes sense in debugging
|
||||
name: 'opus-decoderWorker.min.[hash:7].[ext]',
|
||||
outputPath: '.',
|
||||
},
|
||||
},
|
||||
{
|
||||
// This is from the same place as the encoderWorker above, but only needed
|
||||
// for Safari support.
|
||||
test: /decoderWorker\.min\.wasm$/,
|
||||
loader: "file-loader",
|
||||
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
|
||||
options: {
|
||||
// We deliberately don't change the name because the decoderWorker has this
|
||||
// hardcoded. This is here to avoid the default wasm rule from adding a hash.
|
||||
name: 'decoderWorker.min.wasm',
|
||||
outputPath: '.',
|
||||
},
|
||||
},
|
||||
{
|
||||
// This is from the same place as the encoderWorker above, but only needed
|
||||
// for Safari support.
|
||||
test: /waveWorker\.min\.js$/,
|
||||
loader: "file-loader",
|
||||
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
|
||||
options: {
|
||||
// We deliberately override the name so it makes sense in debugging
|
||||
name: 'wave-encoderWorker.min.[hash:7].[ext]',
|
||||
outputPath: '.',
|
||||
},
|
||||
},
|
||||
{
|
||||
// cache-bust languages.json file placed in
|
||||
// element-web/webapp/i18n during build by copy-res.js
|
||||
@@ -342,8 +387,8 @@ module.exports = (env, argv) => {
|
||||
// of the themes and which chunks we actually care about.
|
||||
inject: false,
|
||||
excludeChunks: ['mobileguide', 'usercontent', 'jitsi'],
|
||||
minify: argv.mode === 'production',
|
||||
vars: {
|
||||
minify: false,
|
||||
templateParameters: {
|
||||
og_image_url: ogImageUrl,
|
||||
},
|
||||
}),
|
||||
@@ -352,7 +397,7 @@ module.exports = (env, argv) => {
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/jitsi/index.html',
|
||||
filename: 'jitsi.html',
|
||||
minify: argv.mode === 'production',
|
||||
minify: false,
|
||||
chunks: ['jitsi'],
|
||||
}),
|
||||
|
||||
@@ -360,7 +405,7 @@ module.exports = (env, argv) => {
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/mobile_guide/index.html',
|
||||
filename: 'mobile_guide/index.html',
|
||||
minify: argv.mode === 'production',
|
||||
minify: false,
|
||||
chunks: ['mobileguide'],
|
||||
}),
|
||||
|
||||
@@ -368,13 +413,13 @@ module.exports = (env, argv) => {
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/static/unable-to-load.html',
|
||||
filename: 'static/unable-to-load.html',
|
||||
minify: argv.mode === 'production',
|
||||
minify: false,
|
||||
chunks: [],
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/static/incompatible-browser.html',
|
||||
filename: 'static/incompatible-browser.html',
|
||||
minify: argv.mode === 'production',
|
||||
minify: false,
|
||||
chunks: [],
|
||||
}),
|
||||
|
||||
@@ -382,10 +427,14 @@ module.exports = (env, argv) => {
|
||||
new HtmlWebpackPlugin({
|
||||
template: './node_modules/matrix-react-sdk/src/usercontent/index.html',
|
||||
filename: 'usercontent/index.html',
|
||||
minify: argv.mode === 'production',
|
||||
minify: false,
|
||||
chunks: ['usercontent'],
|
||||
}),
|
||||
|
||||
new HtmlWebpackInjectPreload({
|
||||
files: [{ match: /.*Inter.*\.woff2$/ }],
|
||||
}),
|
||||
|
||||
...additionalPlugins,
|
||||
],
|
||||
|
||||
|
||||
Reference in New Issue
Block a user