Compare commits

..

82 Commits

Author SHA1 Message Date
summoner001 84a0db706a Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 21:31:29 +01:00
summoner001 9ec69e17a5 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 21:31:28 +01:00
Bezruchenko Simon 52272cd29a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
2024-12-10 21:31:28 +01:00
jonnysemon 8517d91861 Translated using Weblate (Arabic)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
2024-12-10 19:39:27 +01:00
jonnysemon 27eb11b6de Translated using Weblate (Arabic)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
2024-12-10 19:39:27 +01:00
Miyu Sakatsuki 2091346690 Translated using Weblate (Japanese)
Currently translated at 61.6% (1193 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ja/
2024-12-10 19:39:26 +01:00
Rafi 8098f1f81f Translated using Weblate (Indonesian)
Currently translated at 89.0% (1975 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
2024-12-10 19:39:26 +01:00
summoner001 b979d04d1f Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 19:39:26 +01:00
summoner001 3118e430f8 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
大王叫我来巡山 69f9bd5316 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
2024-12-10 19:39:26 +01:00
Rafi 3b3e922da2 Translated using Weblate (Indonesian)
Currently translated at 78.8% (1750 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
2024-12-10 19:39:26 +01:00
summoner001 d3cceba743 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 19:39:26 +01:00
Ghost of Sparta 8d65fdc2ff Translated using Weblate (Hungarian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
summoner001 305a091a09 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
Random e1f3920ddc Translated using Weblate (Italian)
Currently translated at 100.0% (2218 of 2218 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
2024-12-10 19:39:26 +01:00
Rafi 8e8c391703 Translated using Weblate (Indonesian)
Currently translated at 73.3% (1624 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
2024-12-10 19:39:26 +01:00
tuananh-ng 20853b07df Translated using Weblate (Vietnamese)
Currently translated at 62.6% (1388 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
2024-12-10 19:39:26 +01:00
summoner001 3455ced143 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 19:39:26 +01:00
summoner001 5387d991d0 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
Bezruchenko Simon dac5d9e672 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
2024-12-10 19:39:26 +01:00
大王叫我来巡山 ba37cf3cc7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
2024-12-10 19:39:26 +01:00
summoner001 6b0fd777a3 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 19:39:26 +01:00
summoner001 0d71e5c4e2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
jonnysemon b590950655 Translated using Weblate (Arabic)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
2024-12-10 19:39:26 +01:00
No name 745136d6dd Translated using Weblate (Spanish)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
2024-12-10 19:39:26 +01:00
Random a2757179ba Translated using Weblate (Italian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
2024-12-10 19:39:26 +01:00
mlanp a70c785ac0 Translated using Weblate (German)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
2024-12-10 19:39:26 +01:00
Ghost of Sparta ac98f4363e Translated using Weblate (Hungarian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:26 +01:00
Anonymous 906800c3c6 Translated using Weblate (Polish)
Currently translated at 92.8% (2056 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pl/
2024-12-10 19:39:26 +01:00
Anonymous 81c53420be Translated using Weblate (Ukrainian)
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
2024-12-10 19:39:26 +01:00
Anonymous 840099ad17 Translated using Weblate (Arabic)
Currently translated at 99.9% (2212 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
2024-12-10 19:39:26 +01:00
Anonymous 656ae93851 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.0% (2038 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt_BR/
2024-12-10 19:39:26 +01:00
Anonymous 21d32a3273 Translated using Weblate (Dutch)
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/
2024-12-10 19:39:26 +01:00
Anonymous eaba362792 Translated using Weblate (Spanish)
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
2024-12-10 19:39:26 +01:00
Anonymous 362691308d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
2024-12-10 19:39:26 +01:00
Anonymous 9abe91de61 Translated using Weblate (Italian)
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
2024-12-10 19:39:26 +01:00
Anonymous 1bd6ac2079 Translated using Weblate (French)
Currently translated at 92.9% (2057 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fr/
2024-12-10 19:39:26 +01:00
Anonymous e86eb5e3c5 Translated using Weblate (Russian)
Currently translated at 99.6% (2206 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
2024-12-10 19:39:26 +01:00
Anonymous f8c111633b Translated using Weblate (German)
Currently translated at 99.9% (2213 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
2024-12-10 19:39:26 +01:00
Rafi d55f098b86 Translated using Weblate (Indonesian)
Currently translated at 61.5% (1363 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
2024-12-10 19:39:26 +01:00
Bezruchenko Simon db40aafabf Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
2024-12-10 19:39:26 +01:00
No name 0151aa2e8c Translated using Weblate (Spanish)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
2024-12-10 19:39:25 +01:00
No name fa975fa76d Translated using Weblate (Spanish)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
2024-12-10 19:39:25 +01:00
summoner001 03b6cd4627 Translated using Weblate (Hungarian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
2024-12-10 19:39:25 +01:00
summoner001 e358ffe403 Translated using Weblate (Hungarian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
2024-12-10 19:39:25 +01:00
zenobit 2c4993b491 Translated using Weblate (Czech)
Currently translated at 89.4% (1980 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
2024-12-10 19:39:25 +01:00
大王叫我来巡山 e7c1391e03 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
2024-12-10 19:39:25 +01:00
Random bd16b89bc8 Translated using Weblate (Italian)
Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
2024-12-10 19:39:25 +01:00
Random c80cd66701 Translated using Weblate (Italian)
Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
2024-12-10 19:39:25 +01:00
Evgeny Poberezkin 5d8e11c3a2 blog: typo in screenshot 2024-12-10 18:39:14 +00:00
Evgeny Poberezkin df8ce2b06d blog: fix image 2024-12-10 18:13:11 +00:00
Evgeny 6ff5f31bee blog: v6.2 announcement (#5359)
* blog: v6.2 announcement

* update, images

* update

* readme

* correction

* update
2024-12-10 17:16:34 +00:00
Stanislav Dmitrenko 5e29cda27b desktop: start using continuous runtime for AppImage again (#5366) 2024-12-10 11:09:01 +00:00
Stanislav Dmitrenko 2e573662d5 android, desktop: hiding counters while scrolling (#5363)
* android, desktop: hiding counters while scrolling

* change
2024-12-10 10:07:49 +00:00
spaced4ndy 4075c26dd2 ui: offer to fix connection on call and message buttons (#5358) 2024-12-09 21:03:56 +04:00
Evgeny Poberezkin d64351b760 ui: update label in server statistics 2024-12-08 15:17:32 +00:00
sh b06211bd4e flatpak: update metainfo (#5353)
* flatpak: update metainfo

* make notes like in release

* simpler

* space

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
2024-12-08 10:39:31 +00:00
Evgeny Poberezkin 33bc539e16 6.2: ios 254, android 259, desktop 82 2024-12-07 20:53:01 +00:00
Evgeny Poberezkin febea096db android, desktop: remove duplicate translation key 2024-12-07 18:53:18 +00:00
spaced4ndy f0781adbd3 desktop: fix opening operators on onboarding (#5351) 2024-12-07 18:51:23 +00:00
Evgeny Poberezkin df30bb99cb ui: add translations 2024-12-07 17:51:53 +00:00
Evgeny Poberezkin 7c86484978 ios: update library 2024-12-07 17:22:14 +00:00
Stanislav Dmitrenko 307211a47f android, desktop: landscape calls on Android and better local camera ratio management (#5124)
* android, desktop: landscape calls on Android and better local camera ratio management

The main thing is that now when exiting from CallActivity while in call
audio devices are not reset to default. It allows to have landscape mode
enabled

* styles

* fix changing calls
2024-12-07 17:09:00 +00:00
Evgeny 7d6c7c58d7 ui: translations (#5338)
* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2211 of 2211 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Russian)

Currently translated at 99.8% (2206 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/

* Translated using Weblate (Italian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Arabic)

Currently translated at 97.4% (2153 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 99.8% (2206 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Arabic)

Currently translated at 98.3% (2174 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Italian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2211 of 2211 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Russian)

Currently translated at 99.8% (2206 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ru/

* Translated using Weblate (Italian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Arabic)

Currently translated at 97.4% (2153 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 99.8% (2206 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Arabic)

Currently translated at 98.3% (2174 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2210 of 2210 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Italian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/

* Translated using Weblate (Italian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1931 of 1931 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Dutch)

Currently translated at 99.8% (2208 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (German)

Currently translated at 97.5% (2158 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2212 of 2212 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* Translated using Weblate (German)

Currently translated at 98.7% (2185 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* Translated using Weblate (German)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/

* Translated using Weblate (German)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/nl/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2213 of 2213 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1934 of 1934 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2214 of 2214 strings)

Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1935 of 1935 strings)

Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/

* process localizations

---------

Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: J R <jr@simplex.chat>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Bezruchenko Simon <worcposj44@gmail.com>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org>
2024-12-07 16:52:34 +00:00
Evgeny 93319d947d website: translations (#5350)
* Translated using Weblate (Arabic)

Currently translated at 100.0% (258 of 258 strings)

Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (258 of 258 strings)

Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/uk/

* Translated using Weblate (Arabic)

Currently translated at 100.0% (258 of 258 strings)

Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/ar/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (258 of 258 strings)

Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/uk/

* Translated using Weblate (German)

Currently translated at 100.0% (258 of 258 strings)

Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/de/

---------

Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Bezruchenko Simon <worcposj44@gmail.com>
Co-authored-by: mlanp <github@lang.xyz>
2024-12-07 16:11:30 +00:00
Evgeny Poberezkin ea4927c9b0 core: 6.2.0.7 updated version 2024-12-07 16:01:57 +00:00
Evgeny fe0d811bf7 ui: operator information (#5343)
* ios: operator information

* android, desktop: operator information

* move texts, simplify navigation
2024-12-07 14:41:54 +00:00
Evgeny Poberezkin cbb3da8f83 core: 6.2.0.7 (simplexmq: 6.2.0.7) 2024-12-07 14:40:35 +00:00
Stanislav Dmitrenko 83f0bd9fd3 android, desktop: onboarding button multiline layout (#5348)
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-07 14:24:14 +00:00
Diogo 615c483912 android: onboarding small design adjustments (#5346)
* android: onboarding small design adjustments

* bigger

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-07 14:20:01 +00:00
spaced4ndy e0c2272fcb android, desktop: operators info on onboarding (#5341) 2024-12-06 21:35:10 +04:00
spaced4ndy 362581432c ios: export localizations, add translations (#5339)
* ios: export localizations, add translations

* import
2024-12-06 16:01:55 +00:00
Diogo df1a471c56 ios: remove all unsafe warnings in group preferences save (#5340) 2024-12-06 19:55:15 +04:00
Diogo 7d43a43e82 ios: ask for confirmation of save on contact preferences sheet dismiss (#5337) 2024-12-06 18:44:56 +04:00
spaced4ndy ae8ad5c639 ios: operators info on onboarding (#5336) 2024-12-06 17:49:57 +04:00
spaced4ndy 1408d75eb3 ios: use async getServerOperators api (#5334) 2024-12-06 17:21:55 +04:00
spaced4ndy f408988035 ios: fix oneHandUI setting becoming enabled on import (#5335) 2024-12-06 13:05:39 +00:00
spaced4ndy 945c5015d8 ui: improve pending connection texts (#5333)
* ui: improve contact request text

* android

* ternary

* shorter

* kotlin

* change

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-06 15:35:26 +04:00
Diogo 2e431c5afa ios: fix some real time updates in group members (#5332)
* ios: fix some real time updates in group members

* use chat instead of binding for group info updates
2024-12-06 11:10:52 +00:00
Diogo 924273191e ios: ask for confirmation of save on group preferences sheet dismiss (#5327)
* ios: ask for confirmation of save on group preferences sheet dismiss

* fix exit without saving temporary state and also apply fix on dismiss during group creation
2024-12-06 10:21:58 +00:00
Evgeny Poberezkin 9b82cc3303 core: fix feature items when updating preferences in business chats 2024-12-06 10:18:48 +00:00
Evgeny Poberezkin 19e2cebd68 android, desktop: remove footer in Run chat section when chat is running 2024-12-06 01:16:42 +00:00
126 changed files with 3292 additions and 1438 deletions
+4 -8
View File
@@ -233,7 +233,7 @@ You can use SimpleX with your own servers and still communicate with people usin
Recent and important updates:
[Nov 25, 2025. Servers operated by Flux - true privacy and decentralization for all users](./20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.md)
[Dec 10, 2024. SimpleX network: preset servers operated by Flux, business chats and more with v6.2 of the apps](./20241210-simplex-network-v6-2-servers-by-flux-business-chats.md)
[Oct 14, 2024. SimpleX network: security review of protocols design by Trail of Bits, v6.1 released with better calls and user experience.](./blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.md)
@@ -243,20 +243,14 @@ Recent and important updates:
[Mar 14, 2024. SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm.](./blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.md)
[Jan 24, 2024. SimpleX Chat: free infrastructure from Linode, v5.5 released with private notes, group history and a simpler UX to connect.](./blog/20240124-simplex-chat-infrastructure-costs-v5-5-simplex-ux-private-notes-group-history.md)
[Nov 25, 2023. SimpleX Chat v5.4 released: link mobile and desktop apps via quantum resistant protocol, and much better groups](./blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.md).
[Sep 25, 2023. SimpleX Chat v5.3 released: desktop app, local file encryption, improved groups and directory service](./blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.md).
[Apr 22, 2023. SimpleX Chat: vision and funding, v5.0 released with videos and files up to 1gb](./blog/20230422-simplex-chat-vision-funding-v5-videos-files-passcode.md).
[Mar 1, 2023. SimpleX File Transfer Protocol send large files efficiently, privately and securely, soon to be integrated into SimpleX Chat apps.](./blog/20230301-simplex-file-transfer-protocol.md).
[Nov 8, 2022. Security audit by Trail of Bits, the new website and v4.2 released](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md).
[Sep 28, 2022. v4.0: encrypted local chat database and many other changes](./blog/20220928-simplex-chat-v4-encrypted-database.md).
[All updates](./blog)
## :zap: Quick installation of a terminal app
@@ -384,9 +378,11 @@ Please also join [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A
- ✅ Improve sending videos (including encryption of locally stored videos).
- ✅ Post-quantum resistant key exchange in double ratchet protocol.
- ✅ Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic).
- ✅ Support multiple network operators in the app.
- 🏗 Large groups, communities and public channels.
- 🏗 Short links to connect and join groups.
- 🏗 Improve stability and reduce battery usage.
- 🏗 Improve experience for the new users.
- 🏗 Large groups, communities and public channels.
- Privacy & security slider - a simple way to set all settings at once.
- SMP queue redundancy and rotation (manual is supported).
- Include optional message into connection request sent via contact address.
+9 -2
View File
@@ -519,7 +519,14 @@ func testProtoServer(server: String) async throws -> Result<(), ProtocolTestFail
throw r
}
func getServerOperators() throws -> ServerOperatorConditions {
func getServerOperators() async throws -> ServerOperatorConditions {
let r = await chatSendCmd(.apiGetServerOperators)
if case let .serverOperatorConditions(conditions) = r { return conditions }
logger.error("getServerOperators error: \(String(describing: r))")
throw r
}
func getServerOperatorsSync() throws -> ServerOperatorConditions {
let r = chatSendCmdSync(.apiGetServerOperators)
if case let .serverOperatorConditions(conditions) = r { return conditions }
logger.error("getServerOperators error: \(String(describing: r))")
@@ -1599,7 +1606,7 @@ func initializeChat(start: Bool, confirmStart: Bool = false, dbKey: String? = ni
try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
m.chatInitialized = true
m.currentUser = try apiGetActiveUser()
m.conditions = try getServerOperators()
m.conditions = try getServerOperatorsSync()
if shouldImportAppSettingsDefault.get() {
do {
let appSettings = try apiGetAppSettings(settings: AppSettings.current.prepareForExport())
+105 -24
View File
@@ -96,6 +96,8 @@ struct ChatInfoView: View {
@ObservedObject var chat: Chat
@State var contact: Contact
@State var localAlias: String
@State var featuresAllowed: ContactFeaturesAllowed
@State var currentFeaturesAllowed: ContactFeaturesAllowed
var onSearch: () -> Void
@State private var connectionStats: ConnectionStats? = nil
@State private var customUserProfile: Profile? = nil
@@ -154,8 +156,8 @@ struct ChatInfoView: View {
HStack(alignment: .center, spacing: 8) {
let buttonWidth = g.size.width / 4
searchButton(width: buttonWidth)
AudioCallButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
VideoButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
AudioCallButton(chat: chat, contact: contact, connectionStats: $connectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
VideoButton(chat: chat, contact: contact, connectionStats: $connectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
muteButton(width: buttonWidth)
}
}
@@ -312,7 +314,15 @@ struct ChatInfoView: View {
case .networkStatusAlert: return networkStatusAlert()
case .switchAddressAlert: return switchAddressAlert(switchContactAddress)
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchContactAddress)
case .syncConnectionForceAlert: return syncConnectionForceAlert({ syncContactConnection(force: true) })
case .syncConnectionForceAlert:
return syncConnectionForceAlert({
Task {
if let stats = await syncContactConnection(contact, force: true, showAlert: { alert = .someAlert(alert: $0) }) {
connectionStats = stats
dismiss()
}
}
})
case let .queueInfo(info): return queueInfoAlert(info)
case let .someAlert(a): return a.alert
case let .error(title, error): return mkAlert(title: title, message: error)
@@ -327,6 +337,16 @@ struct ChatInfoView: View {
$0.content
}
}
.onDisappear {
if currentFeaturesAllowed != featuresAllowed {
showAlert(
title: NSLocalizedString("Save preferences?", comment: "alert title"),
buttonTitle: NSLocalizedString("Save and notify contact", comment: "alert button"),
buttonAction: { savePreferences() },
cancelButton: true
)
}
}
}
private func contactInfoHeader() -> some View {
@@ -447,8 +467,9 @@ struct ChatInfoView: View {
NavigationLink {
ContactPreferencesView(
contact: $contact,
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences)
featuresAllowed: $featuresAllowed,
currentFeaturesAllowed: $currentFeaturesAllowed,
savePreferences: savePreferences
)
.navigationBarTitle("Contact preferences")
.modifier(ThemedBackground(grouped: true))
@@ -480,7 +501,12 @@ struct ChatInfoView: View {
private func synchronizeConnectionButton() -> some View {
Button {
syncContactConnection(force: false)
Task {
if let stats = await syncContactConnection(contact, force: false, showAlert: { alert = .someAlert(alert: $0) }) {
connectionStats = stats
dismiss()
}
}
} label: {
Label("Fix connection", systemImage: "exclamationmark.arrow.triangle.2.circlepath")
.foregroundColor(.orange)
@@ -599,29 +625,50 @@ struct ChatInfoView: View {
}
}
private func syncContactConnection(force: Bool) {
private func savePreferences() {
Task {
do {
let stats = try apiSyncContactRatchet(contact.apiId, force)
connectionStats = stats
await MainActor.run {
chatModel.updateContactConnectionStats(contact, stats)
dismiss()
}
} catch let error {
logger.error("syncContactConnection apiSyncContactRatchet error: \(responseError(error))")
let a = getErrorAlert(error, "Error synchronizing connection")
await MainActor.run {
alert = .error(title: a.title, error: a.message)
let prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
if let toContact = try await apiSetContactPrefs(contactId: contact.contactId, preferences: prefs) {
await MainActor.run {
contact = toContact
chatModel.updateContact(toContact)
currentFeaturesAllowed = featuresAllowed
}
}
} catch {
logger.error("ContactPreferencesView apiSetContactPrefs error: \(responseError(error))")
}
}
}
}
func syncContactConnection(_ contact: Contact, force: Bool, showAlert: (SomeAlert) -> Void) async -> ConnectionStats? {
do {
let stats = try apiSyncContactRatchet(contact.apiId, force)
await MainActor.run {
ChatModel.shared.updateContactConnectionStats(contact, stats)
}
return stats
} catch let error {
logger.error("syncContactConnection apiSyncContactRatchet error: \(responseError(error))")
let a = getErrorAlert(error, "Error synchronizing connection")
await MainActor.run {
showAlert(
SomeAlert(
alert: mkAlert(title: a.title, message: a.message),
id: "syncContactConnection error"
)
)
}
return nil
}
}
struct AudioCallButton: View {
var chat: Chat
var contact: Contact
@Binding var connectionStats: ConnectionStats?
var width: CGFloat
var showAlert: (SomeAlert) -> Void
@@ -629,6 +676,7 @@ struct AudioCallButton: View {
CallButton(
chat: chat,
contact: contact,
connectionStats: $connectionStats,
image: "phone.fill",
title: "call",
mediaType: .audio,
@@ -641,6 +689,7 @@ struct AudioCallButton: View {
struct VideoButton: View {
var chat: Chat
var contact: Contact
@Binding var connectionStats: ConnectionStats?
var width: CGFloat
var showAlert: (SomeAlert) -> Void
@@ -648,6 +697,7 @@ struct VideoButton: View {
CallButton(
chat: chat,
contact: contact,
connectionStats: $connectionStats,
image: "video.fill",
title: "video",
mediaType: .video,
@@ -660,6 +710,7 @@ struct VideoButton: View {
private struct CallButton: View {
var chat: Chat
var contact: Contact
@Binding var connectionStats: ConnectionStats?
var image: String
var title: LocalizedStringKey
var mediaType: CallMediaType
@@ -671,12 +722,40 @@ private struct CallButton: View {
InfoViewButton(image: image, title: title, disabledLook: !canCall, width: width) {
if canCall {
if CallController.useCallKit() {
CallController.shared.startCall(contact, mediaType)
} else {
// When CallKit is not used, colorscheme will be changed and it will be visible if not hiding sheets first
dismissAllSheets(animated: true) {
CallController.shared.startCall(contact, mediaType)
if let connStats = connectionStats {
if connStats.ratchetSyncState == .ok {
if CallController.useCallKit() {
CallController.shared.startCall(contact, mediaType)
} else {
// When CallKit is not used, colorscheme will be changed and it will be visible if not hiding sheets first
dismissAllSheets(animated: true) {
CallController.shared.startCall(contact, mediaType)
}
}
} else if connStats.ratchetSyncAllowed {
showAlert(SomeAlert(
alert: Alert(
title: Text("Fix connection?"),
message: Text("Connection requires encryption renegotiation."),
primaryButton: .default(Text("Fix")) {
Task {
if let stats = await syncContactConnection(contact, force: false, showAlert: showAlert) {
connectionStats = stats
}
}
},
secondaryButton: .cancel()
),
id: "can't call contact, fix connection"
))
} else {
showAlert(SomeAlert(
alert: mkAlert(
title: "Can't call contact",
message: "Encryption renegotiation in progress."
),
id: "can't call contact, encryption renegotiation in progress"
))
}
}
} else if contact.nextSendGrpInv {
@@ -1173,6 +1252,8 @@ struct ChatInfoView_Previews: PreviewProvider {
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []),
contact: Contact.sampleData,
localAlias: "",
featuresAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
onSearch: {}
)
}
+10 -1
View File
@@ -133,7 +133,12 @@ struct ChatView: View {
.appSheet(item: $selectedMember) { member in
Group {
if case let .group(groupInfo) = chat.chatInfo {
GroupMemberInfoView(groupInfo: groupInfo, groupMember: member, navigation: true)
GroupMemberInfoView(
groupInfo: groupInfo,
chat: chat,
groupMember: member,
navigation: true
)
}
}
}
@@ -226,6 +231,8 @@ struct ChatView: View {
chat: chat,
contact: contact,
localAlias: chat.chatInfo.localAlias,
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
onSearch: { focusSearch() }
)
}
@@ -1122,6 +1129,7 @@ struct ChatView: View {
} else {
let mem = GMember.init(member)
m.groupMembers.append(mem)
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
selectedMember = mem
}
}
@@ -1877,6 +1885,7 @@ struct ReactionContextMenu: View {
} else {
let member = GMember.init(mem)
m.groupMembers.append(member)
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
selectedMember = member
}
} label: {
@@ -14,9 +14,10 @@ struct ContactPreferencesView: View {
@EnvironmentObject var chatModel: ChatModel
@EnvironmentObject var theme: AppTheme
@Binding var contact: Contact
@State var featuresAllowed: ContactFeaturesAllowed
@State var currentFeaturesAllowed: ContactFeaturesAllowed
@Binding var featuresAllowed: ContactFeaturesAllowed
@Binding var currentFeaturesAllowed: ContactFeaturesAllowed
@State private var showSaveDialogue = false
let savePreferences: () -> Void
var body: some View {
let user: User = chatModel.currentUser!
@@ -48,7 +49,10 @@ struct ContactPreferencesView: View {
savePreferences()
dismiss()
}
Button("Exit without saving") { dismiss() }
Button("Exit without saving") {
featuresAllowed = currentFeaturesAllowed
dismiss()
}
}
}
@@ -118,31 +122,15 @@ struct ContactPreferencesView: View {
private func featureFooter(_ feature: ChatFeature, _ enabled: FeatureEnabled) -> some View {
Text(feature.enabledDescription(enabled))
}
private func savePreferences() {
Task {
do {
let prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
if let toContact = try await apiSetContactPrefs(contactId: contact.contactId, preferences: prefs) {
await MainActor.run {
contact = toContact
chatModel.updateContact(toContact)
currentFeaturesAllowed = featuresAllowed
}
}
} catch {
logger.error("ContactPreferencesView apiSetContactPrefs error: \(responseError(error))")
}
}
}
}
struct ContactPreferencesView_Previews: PreviewProvider {
static var previews: some View {
ContactPreferencesView(
contact: Binding.constant(Contact.sampleData),
featuresAllowed: ContactFeaturesAllowed.sampleData,
currentFeaturesAllowed: ContactFeaturesAllowed.sampleData
featuresAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
currentFeaturesAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
savePreferences: {}
)
}
}
@@ -78,7 +78,12 @@ struct AddGroupMembersViewCommon: View {
let count = selectedContacts.count
Section {
if creatingGroup {
groupPreferencesButton($groupInfo, true)
GroupPreferencesButton(
groupInfo: $groupInfo,
preferences: groupInfo.fullGroupPreferences,
currentPreferences: groupInfo.fullGroupPreferences,
creatingGroup: true
)
}
rolePicker()
inviteMembersButton()
@@ -87,7 +87,7 @@ struct GroupChatInfoView: View {
if groupInfo.groupProfile.description != nil || (groupInfo.isOwner && groupInfo.businessChat == nil) {
addOrEditWelcomeMessage()
}
groupPreferencesButton($groupInfo)
GroupPreferencesButton(groupInfo: $groupInfo, preferences: groupInfo.fullGroupPreferences, currentPreferences: groupInfo.fullGroupPreferences)
if members.filter({ $0.wrapped.memberCurrent }).count <= SMALL_GROUPS_RCPS_MEM_LIMIT {
sendReceiptsOption()
} else {
@@ -439,7 +439,7 @@ struct GroupChatInfoView: View {
}
private func memberInfoView(_ groupMember: GMember) -> some View {
GroupMemberInfoView(groupInfo: groupInfo, groupMember: groupMember)
GroupMemberInfoView(groupInfo: groupInfo, chat: chat, groupMember: groupMember)
.navigationBarHidden(false)
}
@@ -654,27 +654,72 @@ func deleteGroupAlertMessage(_ groupInfo: GroupInfo) -> Text {
)
}
func groupPreferencesButton(_ groupInfo: Binding<GroupInfo>, _ creatingGroup: Bool = false) -> some View {
let label: LocalizedStringKey = groupInfo.wrappedValue.businessChat == nil ? "Group preferences" : "Chat preferences"
return NavigationLink {
GroupPreferencesView(
groupInfo: groupInfo,
preferences: groupInfo.wrappedValue.fullGroupPreferences,
currentPreferences: groupInfo.wrappedValue.fullGroupPreferences,
creatingGroup: creatingGroup
)
.navigationBarTitle(label)
.modifier(ThemedBackground(grouped: true))
.navigationBarTitleDisplayMode(.large)
} label: {
if creatingGroup {
Text("Set group preferences")
} else {
Label(label, systemImage: "switch.2")
struct GroupPreferencesButton: View {
@Binding var groupInfo: GroupInfo
@State var preferences: FullGroupPreferences
@State var currentPreferences: FullGroupPreferences
var creatingGroup: Bool = false
private var label: LocalizedStringKey {
groupInfo.businessChat == nil ? "Group preferences" : "Chat preferences"
}
var body: some View {
NavigationLink {
GroupPreferencesView(
groupInfo: $groupInfo,
preferences: $preferences,
currentPreferences: currentPreferences,
creatingGroup: creatingGroup,
savePreferences: savePreferences
)
.navigationBarTitle(label)
.modifier(ThemedBackground(grouped: true))
.navigationBarTitleDisplayMode(.large)
.onDisappear {
let saveText = NSLocalizedString(
creatingGroup ? "Save" : "Save and notify group members",
comment: "alert button"
)
if groupInfo.fullGroupPreferences != preferences {
showAlert(
title: NSLocalizedString("Save preferences?", comment: "alert title"),
buttonTitle: saveText,
buttonAction: { savePreferences() },
cancelButton: true
)
}
}
} label: {
if creatingGroup {
Text("Set group preferences")
} else {
Label(label, systemImage: "switch.2")
}
}
}
private func savePreferences() {
Task {
do {
var gp = groupInfo.groupProfile
gp.groupPreferences = toGroupPreferences(preferences)
let gInfo = try await apiUpdateGroup(groupInfo.groupId, gp)
await MainActor.run {
groupInfo = gInfo
ChatModel.shared.updateGroup(gInfo)
currentPreferences = preferences
}
} catch {
logger.error("GroupPreferencesView apiUpdateGroup error: \(responseError(error))")
}
}
}
}
func cantInviteIncognitoAlert() -> Alert {
Alert(
title: Text("Can't invite contacts!"),
@@ -14,11 +14,15 @@ struct GroupMemberInfoView: View {
@EnvironmentObject var theme: AppTheme
@Environment(\.dismiss) var dismiss: DismissAction
@State var groupInfo: GroupInfo
@ObservedObject var chat: Chat
@ObservedObject var groupMember: GMember
var navigation: Bool = false
@State private var connectionStats: ConnectionStats? = nil
@State private var connectionCode: String? = nil
@State private var connectionLoaded: Bool = false
@State private var knownContactChat: Chat? = nil
@State private var knownContact: Contact? = nil
@State private var knownContactConnectionStats: ConnectionStats? = nil
@State private var newRole: GroupMemberRole = .member
@State private var alert: GroupMemberInfoViewAlert?
@State private var sheet: PlanAndConnectActionSheet?
@@ -118,8 +122,8 @@ struct GroupMemberInfoView: View {
} label: {
Label("Share address", systemImage: "square.and.arrow.up")
}
if let contactId = member.memberContactId {
if knownDirectChat(contactId) == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
if member.memberContactId != nil {
if knownContactChat == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
connectViaAddressButton(contactLink)
}
} else {
@@ -228,6 +232,18 @@ struct GroupMemberInfoView: View {
}
logger.error("apiGroupMemberInfo or apiGetGroupMemberCode error: \(responseError(error))")
}
if let contactId = member.memberContactId, let (contactChat, contact) = knownDirectChat(contactId) {
knownContactChat = contactChat
knownContact = contact
do {
let (stats, _) = try await apiContactInfo(contactChat.chatInfo.apiId)
await MainActor.run {
knownContactConnectionStats = stats
}
} catch let error {
logger.error("apiContactInfo error: \(responseError(error))")
}
}
}
.onChange(of: newRole) { newRole in
if newRole != member.memberRole {
@@ -261,6 +277,11 @@ struct GroupMemberInfoView: View {
ProgressView().scaleEffect(2)
}
}
.onChange(of: chat.chatInfo) { c in
if case let .group(gI) = chat.chatInfo {
groupInfo = gI
}
}
.modifier(ThemedBackground(grouped: true))
}
@@ -268,10 +289,10 @@ struct GroupMemberInfoView: View {
GeometryReader { g in
let buttonWidth = g.size.width / 4
HStack(alignment: .center, spacing: 8) {
if let contactId = member.memberContactId, let (chat, contact) = knownDirectChat(contactId) {
if let chat = knownContactChat, let contact = knownContact {
knownDirectChatButton(chat, width: buttonWidth)
AudioCallButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
VideoButton(chat: chat, contact: contact, width: buttonWidth) { alert = .someAlert(alert: $0) }
AudioCallButton(chat: chat, contact: contact, connectionStats: $knownContactConnectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
VideoButton(chat: chat, contact: contact, connectionStats: $knownContactConnectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
} else if groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
if let contactId = member.memberContactId {
newDirectChatButton(contactId, width: buttonWidth)
@@ -360,25 +381,49 @@ struct GroupMemberInfoView: View {
func createMemberContactButton(width: CGFloat) -> some View {
InfoViewButton(image: "message.fill", title: "message", width: width) {
progressIndicator = true
Task {
do {
let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId)
await MainActor.run {
progressIndicator = false
chatModel.addChat(Chat(chatInfo: .direct(contact: memberContact)))
ItemsModel.shared.loadOpenChat(memberContact.id) {
dismissAllSheets(animated: true)
if let connStats = connectionStats {
if connStats.ratchetSyncState == .ok {
progressIndicator = true
Task {
do {
let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId)
await MainActor.run {
progressIndicator = false
chatModel.addChat(Chat(chatInfo: .direct(contact: memberContact)))
ItemsModel.shared.loadOpenChat(memberContact.id) {
dismissAllSheets(animated: true)
}
NetworkModel.shared.setContactNetworkStatus(memberContact, .connected)
}
} catch let error {
logger.error("createMemberContactButton apiCreateMemberContact error: \(responseError(error))")
let a = getErrorAlert(error, "Error creating member contact")
await MainActor.run {
progressIndicator = false
alert = .error(title: a.title, error: a.message)
}
}
NetworkModel.shared.setContactNetworkStatus(memberContact, .connected)
}
} catch let error {
logger.error("createMemberContactButton apiCreateMemberContact error: \(responseError(error))")
let a = getErrorAlert(error, "Error creating member contact")
await MainActor.run {
progressIndicator = false
alert = .error(title: a.title, error: a.message)
}
} else if connStats.ratchetSyncAllowed {
alert = .someAlert(alert: SomeAlert(
alert: Alert(
title: Text("Fix connection?"),
message: Text("Connection requires encryption renegotiation."),
primaryButton: .default(Text("Fix")) {
syncMemberConnection(force: false)
},
secondaryButton: .cancel()
),
id: "can't message member, fix connection"
))
} else {
alert = .someAlert(alert: SomeAlert(
alert: mkAlert(
title: "Can't message member",
message: "Encryption renegotiation in progress."
),
id: "can't message contact, encryption renegotiation in progress"
))
}
}
}
@@ -758,6 +803,7 @@ struct GroupMemberInfoView_Previews: PreviewProvider {
static var previews: some View {
GroupMemberInfoView(
groupInfo: GroupInfo.sampleData,
chat: Chat.sampleData,
groupMember: GMember.sampleData
)
}
@@ -20,9 +20,10 @@ struct GroupPreferencesView: View {
@EnvironmentObject var chatModel: ChatModel
@EnvironmentObject var theme: AppTheme
@Binding var groupInfo: GroupInfo
@State var preferences: FullGroupPreferences
@State var currentPreferences: FullGroupPreferences
@Binding var preferences: FullGroupPreferences
var currentPreferences: FullGroupPreferences
let creatingGroup: Bool
let savePreferences: () -> Void
@State private var showSaveDialogue = false
var body: some View {
@@ -68,7 +69,10 @@ struct GroupPreferencesView: View {
savePreferences()
dismiss()
}
Button("Exit without saving") { dismiss() }
Button("Exit without saving") {
preferences = currentPreferences
dismiss()
}
}
}
@@ -132,32 +136,16 @@ struct GroupPreferencesView: View {
}
}
}
private func savePreferences() {
Task {
do {
var gp = groupInfo.groupProfile
gp.groupPreferences = toGroupPreferences(preferences)
let gInfo = try await apiUpdateGroup(groupInfo.groupId, gp)
await MainActor.run {
groupInfo = gInfo
chatModel.updateGroup(gInfo)
currentPreferences = preferences
}
} catch {
logger.error("GroupPreferencesView apiUpdateGroup error: \(responseError(error))")
}
}
}
}
struct GroupPreferencesView_Previews: PreviewProvider {
static var previews: some View {
GroupPreferencesView(
groupInfo: Binding.constant(GroupInfo.sampleData),
preferences: FullGroupPreferences.sampleData,
preferences: Binding.constant(FullGroupPreferences.sampleData),
currentPreferences: FullGroupPreferences.sampleData,
creatingGroup: false
creatingGroup: false,
savePreferences: {}
)
}
}
@@ -587,7 +587,7 @@ struct SMPStatsView: View {
} header: {
Text("Statistics")
} footer: {
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is private to your device.")
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is kept private on your device.")
}
}
}
@@ -703,7 +703,7 @@ struct XFTPStatsView: View {
} header: {
Text("Statistics")
} footer: {
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is private to your device.")
Text("Starting from \(localTimestamp(statsStartedAt)).") + Text("\n") + Text("All data is kept private on your device.")
}
}
}
@@ -62,7 +62,6 @@ struct ChooseServerOperators: View {
var onboarding: Bool
@State private var serverOperators: [ServerOperator] = []
@State private var selectedOperatorIds = Set<Int64>()
@State private var reviewConditionsNavLinkActive = false
@State private var sheetItem: ChooseServerOperatorsSheet? = nil
@State private var notificationsModeNavLinkActive = false
@State private var justOpened = true
@@ -79,7 +78,7 @@ struct ChooseServerOperators: View {
.frame(maxWidth: .infinity, alignment: .center)
if onboarding {
title.padding(.top, 50)
title.padding(.top, 25)
} else {
title
}
@@ -92,11 +91,14 @@ struct ChooseServerOperators: View {
ForEach(serverOperators) { srvOperator in
operatorCheckView(srvOperator)
}
Text("You can configure servers via settings.")
.font(.footnote)
.multilineTextAlignment(.center)
.frame(maxWidth: .infinity, alignment: .center)
.padding(.horizontal, 32)
VStack {
Text("SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.").padding(.bottom, 8)
Text("You can configure servers via settings.")
}
.font(.footnote)
.multilineTextAlignment(.center)
.frame(maxWidth: .infinity, alignment: .center)
.padding(.horizontal, 16)
Spacer()
@@ -166,8 +168,9 @@ struct ChooseServerOperators: View {
.modifier(ThemedBackground(grouped: true))
}
}
.frame(maxHeight: .infinity, alignment: .top)
}
.frame(maxHeight: .infinity)
.frame(maxHeight: .infinity, alignment: .top)
.padding(onboarding ? 25 : 16)
}
@@ -214,23 +217,15 @@ struct ChooseServerOperators: View {
}
private func reviewConditionsButton() -> some View {
ZStack {
Button {
reviewConditionsNavLinkActive = true
} label: {
Text("Review conditions")
}
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
.disabled(selectedOperatorIds.isEmpty)
NavigationLink(isActive: $reviewConditionsNavLinkActive) {
reviewConditionsDestinationView()
} label: {
EmptyView()
}
.frame(width: 1, height: 1)
.hidden()
NavigationLink("Review conditions") {
reviewConditionsView()
.navigationTitle("Conditions of use")
.navigationBarTitleDisplayMode(.large)
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
.modifier(ThemedBackground(grouped: true))
}
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
.disabled(selectedOperatorIds.isEmpty)
}
private func setOperatorsButton() -> some View {
@@ -309,20 +304,12 @@ struct ChooseServerOperators: View {
.modifier(ThemedBackground())
}
private func reviewConditionsDestinationView() -> some View {
reviewConditionsView()
.navigationTitle("Conditions of use")
.navigationBarTitleDisplayMode(.large)
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
.modifier(ThemedBackground(grouped: true))
}
@ViewBuilder private func reviewConditionsView() -> some View {
let operatorsWithConditionsAccepted = ChatModel.shared.conditions.serverOperators.filter { $0.conditionsAcceptance.conditionsAccepted }
let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted }
VStack(alignment: .leading, spacing: 20) {
if !operatorsWithConditionsAccepted.isEmpty {
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
Text("Conditions are already accepted for these operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
Text("The same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
} else {
Text("Conditions will be accepted for operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
@@ -409,26 +396,53 @@ struct ChooseServerOperators: View {
let operatorsPostLink = URL(string: "https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html")!
struct ChooseServerOperatorsInfoView: View {
@Environment(\.colorScheme) var colorScheme: ColorScheme
@EnvironmentObject var theme: AppTheme
var body: some View {
VStack(alignment: .leading) {
Text("Server operators")
.font(.largeTitle)
.bold()
.padding(.vertical)
ScrollView {
VStack(alignment: .leading) {
Group {
Text("The app protects your privacy by using different operators in each conversation.")
Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.")
Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.")
NavigationView {
List {
VStack(alignment: .leading, spacing: 12) {
Text("The app protects your privacy by using different operators in each conversation.")
Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.")
Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.")
}
.fixedSize(horizontal: false, vertical: true)
.listRowBackground(Color.clear)
.listRowSeparator(.hidden)
.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
.padding(.top)
Section {
ForEach(ChatModel.shared.conditions.serverOperators) { op in
operatorInfoNavLinkView(op)
}
.padding(.bottom)
} header: {
Text("About operators")
.foregroundColor(theme.colors.secondary)
}
}
.navigationTitle("Server operators")
.navigationBarTitleDisplayMode(.large)
.modifier(ThemedBackground(grouped: true))
}
}
private func operatorInfoNavLinkView(_ op: ServerOperator) -> some View {
NavigationLink() {
OperatorInfoView(serverOperator: op)
.navigationBarTitle("Network operator")
.modifier(ThemedBackground(grouped: true))
.navigationBarTitleDisplayMode(.large)
} label: {
HStack {
Image(op.logo(colorScheme))
.resizable()
.scaledToFit()
.frame(width: 24, height: 24)
Text(op.tradeName)
}
}
.padding()
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
.modifier(ThemedBackground())
}
}
@@ -136,7 +136,6 @@ struct CreateFirstProfile: View {
.multilineTextAlignment(.center)
}
.frame(maxWidth: .infinity) // Ensures it takes up the full width
.padding(.top, 25)
.padding(.horizontal, 10)
HStack {
@@ -22,7 +22,7 @@ struct SetNotificationsMode: View {
Text("Push notifications")
.font(.largeTitle)
.bold()
.padding(.top, 50)
.padding(.top, 25)
infoText()
@@ -331,9 +331,12 @@ struct OperatorInfoView: View {
Text(d)
}
}
Link(serverOperator.info.website.absoluteString, destination: serverOperator.info.website)
}
Section {
Link("\(serverOperator.info.website)", destination: URL(string: serverOperator.info.website)!)
if let selfhost = serverOperator.info.selfhost {
Section {
Link(selfhost.text, destination: selfhost.link)
}
}
}
}
@@ -421,7 +424,6 @@ struct SingleOperatorUsageConditionsView: View {
@Binding var userServers: [UserOperatorServers]
@Binding var serverErrors: [UserServersError]
var operatorIndex: Int
@State private var usageConditionsNavLinkActive: Bool = false
var body: some View {
viewBody()
@@ -433,52 +435,45 @@ struct SingleOperatorUsageConditionsView: View {
// In current UI implementation this branch doesn't get shown - as conditions can't be opened from inside operator once accepted
VStack(alignment: .leading, spacing: 20) {
Group {
viewHeader()
ConditionsTextView()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
viewHeader()
ConditionsTextView()
}
.padding(.bottom)
.padding(.bottom)
.padding(.horizontal)
.frame(maxHeight: .infinity)
} else if !operatorsWithConditionsAccepted.isEmpty {
NavigationView {
VStack(alignment: .leading, spacing: 20) {
Group {
viewHeader()
Text("Conditions are already accepted for following operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
Text("The same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
conditionsAppliedToOtherOperatorsText()
usageConditionsNavLinkButton()
viewHeader()
Text("Conditions are already accepted for these operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
Text("The same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.")
conditionsAppliedToOtherOperatorsText()
Spacer()
Spacer()
acceptConditionsButton()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
acceptConditionsButton()
usageConditionsNavLinkButton()
}
.padding(.bottom)
.padding(.bottom)
.padding(.horizontal)
.frame(maxHeight: .infinity)
}
} else {
VStack(alignment: .leading, spacing: 20) {
Group {
viewHeader()
Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.")
conditionsAppliedToOtherOperatorsText()
ConditionsTextView()
acceptConditionsButton()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
viewHeader()
Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.")
conditionsAppliedToOtherOperatorsText()
ConditionsTextView()
acceptConditionsButton()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
.frame(maxHeight: .infinity)
}
@@ -545,31 +540,16 @@ struct SingleOperatorUsageConditionsView: View {
}
private func usageConditionsNavLinkButton() -> some View {
ZStack {
Button {
usageConditionsNavLinkActive = true
} label: {
Text("View conditions")
}
NavigationLink(isActive: $usageConditionsNavLinkActive) {
usageConditionsDestinationView()
} label: {
EmptyView()
}
.frame(width: 1, height: 1)
.hidden()
NavigationLink("View conditions") {
ConditionsTextView()
.padding()
.navigationTitle("Conditions of use")
.navigationBarTitleDisplayMode(.large)
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
.modifier(ThemedBackground(grouped: true))
}
}
private func usageConditionsDestinationView() -> some View {
ConditionsTextView()
.padding()
.padding(.bottom)
.navigationTitle("Conditions of use")
.navigationBarTitleDisplayMode(.large)
.toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
.modifier(ThemedBackground(grouped: true))
.font(.callout)
.frame(maxWidth: .infinity, alignment: .center)
}
}
@@ -566,6 +566,10 @@
<target>За SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<note>No comment provided by engineer.</note>
@@ -727,8 +731,8 @@
<target>Всички данни се изтриват при въвеждане.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1533,8 +1537,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5762,7 +5766,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Запази и уведоми контакта</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5796,7 +5800,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Запази настройките?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6376,6 +6380,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Адрес</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Сигурността на SimpleX Chat беше одитирана от Trail of Bits.</target>
@@ -8118,6 +8126,10 @@ Repeat connection request?</source>
<target>обаждането прието</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>админ</target>
@@ -8304,7 +8316,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>свързване…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8788,6 +8800,10 @@ Repeat connection request?</source>
<target>ви острани</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>запазено</target>
@@ -548,6 +548,10 @@
<target>O SimpleX chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<note>No comment provided by engineer.</note>
@@ -708,8 +712,8 @@
<target>Všechna data se při zadání vymažou.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1488,8 +1492,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5572,7 +5576,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Uložit a upozornit kontakt</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5606,7 +5610,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Uložit předvolby?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6174,6 +6178,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Adresa</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Zabezpečení SimpleX chatu bylo auditováno společností Trail of Bits.</target>
@@ -7849,6 +7857,10 @@ Repeat connection request?</source>
<target>přijatý hovor</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>správce</target>
@@ -8028,7 +8040,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>připojení…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8503,6 +8515,10 @@ Repeat connection request?</source>
<target>odstranil vás</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<note>No comment provided by engineer.</note>
@@ -577,6 +577,11 @@
<target>Über SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>Über Betreiber</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Akzent</target>
@@ -637,6 +642,7 @@
</trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<target>Freunde aufnehmen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve">
@@ -656,6 +662,7 @@
</trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<target>Team-Mitglieder aufnehmen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve">
@@ -670,6 +677,7 @@
</trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<target>Nehmen Sie Team-Mitglieder in Ihre Unterhaltungen auf.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve">
@@ -752,8 +760,8 @@
<target>Alle Daten werden gelöscht, sobald dieser eingegeben wird.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Alle Daten werden nur auf Ihrem Gerät gespeichert.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1244,10 +1252,12 @@
</trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<target>Geschäftliche Adresse</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<target>Geschäftliche Chats</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
@@ -1394,14 +1404,17 @@
</trans-unit>
<trans-unit id="Chat" xml:space="preserve">
<source>Chat</source>
<target>Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<target>Chat besteht bereits</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<target>Chat besteht bereits!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat colors" xml:space="preserve">
@@ -1481,10 +1494,12 @@
</trans-unit>
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
<source>Chat will be deleted for all members - this cannot be undone!</source>
<target>Der Chat wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
<source>Chat will be deleted for you - this cannot be undone!</source>
<target>Der Chat wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve">
@@ -1602,8 +1617,8 @@
<target>Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -2243,6 +2258,7 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<target>Chat löschen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve">
@@ -2257,6 +2273,7 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<target>Chat löschen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve">
@@ -2526,6 +2543,7 @@ Das ist Ihr eigener Einmal-Link!</target>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this chat.</source>
<target>In diesem Chat sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
@@ -4101,6 +4119,7 @@ Weitere Verbesserungen sind bald verfügbar!</target>
</trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<target>Zum Chat einladen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve">
@@ -4263,10 +4282,12 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<target>Chat verlassen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<target>Chat verlassen?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve">
@@ -4401,6 +4422,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>Die Rolle des Mitglieds wird auf "%@" geändert. Alle Chat-Mitglieder werden darüber informiert.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
@@ -4415,6 +4437,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit>
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from chat - this cannot be undone!</source>
<target>Das Mitglied wird aus dem Chat entfernt. Dies kann nicht rückgängig gemacht werden!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
@@ -5032,6 +5055,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
</trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<target>Nur Chat-Eigentümer können die Präferenzen ändern.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
@@ -5166,6 +5190,7 @@ Dies erfordert die Aktivierung eines VPNs.</target>
</trans-unit>
<trans-unit id="Or import archive file" xml:space="preserve">
<source>Or import archive file</source>
<target>Oder importieren Sie eine Archiv-Datei</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Or paste archive link" xml:space="preserve">
@@ -5431,6 +5456,7 @@ Fehler: %@</target>
</trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<target>Schutz der Privatsphäre Ihrer Kunden.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve">
@@ -6030,7 +6056,7 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Speichern und Kontakt benachrichtigen</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6065,7 +6091,7 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Präferenzen speichern?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6688,6 +6714,11 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
<target>SimpleX-Adresse</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>SimpleX-Chat und Flux haben vereinbart, die von Flux betriebenen Server in die App aufzunehmen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Die Sicherheit von SimpleX Chat wurde von Trail of Bits überprüft.</target>
@@ -7002,6 +7033,7 @@ Aktivieren Sie es in den *Netzwerk &amp; Server* Einstellungen.</target>
</trans-unit>
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
<source>Tap Create SimpleX address in the menu to create it later.</source>
<target>Tippen Sie im Menü auf SimpleX-Adresse erstellen, um sie später zu erstellen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Tap button " xml:space="preserve">
@@ -7203,12 +7235,12 @@ Dies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompro
</trans-unit>
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
<source>The servers for new connections of your current chat profile **%@**.</source>
<target>Mögliche Server für neue Verbindungen von Ihrem aktuellen Chat-Profil **%@**.</target>
<target>Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
<source>The servers for new files of your current chat profile **%@**.</source>
<target>Die Server Deines aktuellen Chat-Profils für neue Dateien **%@**.</target>
<target>Medien- und Datei-Server für neue Daten über Ihr aktuelles Chat-Profil **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
@@ -8052,6 +8084,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<target>Sie sind bereits mit %@ verbunden.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve">
@@ -8330,6 +8363,7 @@ Verbindungsanfrage wiederholen?</target>
</trans-unit>
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
<target>Sie werden von diesem Chat keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
@@ -8517,6 +8551,11 @@ Verbindungsanfrage wiederholen?</target>
<target>Anruf angenommen</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>Einladung akzeptiert</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>Admin</target>
@@ -8705,7 +8744,7 @@ Verbindungsanfrage wiederholen?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>Verbinde…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9199,6 +9238,11 @@ Verbindungsanfrage wiederholen?</target>
<target>hat Sie aus der Gruppe entfernt</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>Zur Verbindung aufgefordert</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>abgespeichert</target>
@@ -577,6 +577,11 @@
<target>About SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>About operators</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Accent</target>
@@ -755,9 +760,9 @@
<target>All data is erased when it is entered.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<target>All data is private to your device.</target>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>All data is kept private on your device.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1612,9 +1617,9 @@
<target>Conditions are accepted for the operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<target>Conditions are already accepted for following operator(s): **%@**.</target>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Conditions are already accepted for these operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -6051,7 +6056,7 @@ Enable in *Network &amp; servers* settings.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Save and notify contact</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6086,7 +6091,7 @@ Enable in *Network &amp; servers* settings.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Save preferences?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6709,6 +6714,11 @@ Enable in *Network &amp; servers* settings.</target>
<target>SimpleX Address</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat security was audited by Trail of Bits.</target>
@@ -8541,6 +8551,11 @@ Repeat connection request?</target>
<target>accepted call</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>accepted invitation</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>admin</target>
@@ -8729,7 +8744,7 @@ Repeat connection request?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>connecting…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9223,6 +9238,11 @@ Repeat connection request?</target>
<target>removed you</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>requested to connect</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>saved</target>
@@ -550,11 +550,11 @@
<target>Se usará una conexión TCP independiente **por cada perfil que tengas en la aplicación**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="A separate TCP connection will be used **for each contact and group member**.&#10;**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve">
<trans-unit id="A separate TCP connection will be used **for each contact and group member**.&#10;**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." xml:space="preserve" approved="no">
<source>A separate TCP connection will be used **for each contact and group member**.
**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail.</source>
<target>Se usará una conexión TCP independiente **por cada contacto y miembro de grupo**.
**Atención**: si tienes muchas conexiones, tu consumo de batería y tráfico pueden ser sustancialmente mayores y algunas conexiones pueden fallar.</target>
<target state="translated">Se usará una conexión TCP independiente **por cada contacto y miembro de grupo**.
**Atención**: si tienes muchas conexiones, tu consumo de batería y tráfico pueden aumentar bastante y algunas conexiones pueden fallar.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Abort" xml:space="preserve">
@@ -577,6 +577,11 @@
<target>Sobre SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>Acerca de los operadores</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Color</target>
@@ -637,6 +642,7 @@
</trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<target>Añadir amigos</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve">
@@ -656,6 +662,7 @@
</trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<target>Añadir miembros del equipo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve">
@@ -670,6 +677,7 @@
</trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<target>Añade a los miembros de tu equipo a las conversaciones.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve">
@@ -752,8 +760,8 @@
<target>Al introducirlo todos los datos son eliminados.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Todos los datos son privados y están en tu dispositivo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -982,9 +990,9 @@
<target>El código de acceso será reemplazado por código de autodestrucción.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="App session" xml:space="preserve">
<trans-unit id="App session" xml:space="preserve" approved="no">
<source>App session</source>
<target>Sesión de aplicación</target>
<target state="translated">por sesión</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="App version" xml:space="preserve">
@@ -1244,10 +1252,12 @@
</trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<target>Dirección empresarial</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<target>Chats empresariales</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." xml:space="preserve">
@@ -1394,14 +1404,17 @@
</trans-unit>
<trans-unit id="Chat" xml:space="preserve">
<source>Chat</source>
<target>Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<target>El chat ya existe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<target>¡El chat ya existe!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat colors" xml:space="preserve">
@@ -1481,10 +1494,12 @@
</trans-unit>
<trans-unit id="Chat will be deleted for all members - this cannot be undone!" xml:space="preserve">
<source>Chat will be deleted for all members - this cannot be undone!</source>
<target>El chat será eliminado para todos los miembros. ¡No podrá deshacerse!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat will be deleted for you - this cannot be undone!" xml:space="preserve">
<source>Chat will be deleted for you - this cannot be undone!</source>
<target>El chat será eliminado para tí. ¡No podrá deshacerse!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve">
@@ -1602,8 +1617,8 @@
<target>Las condiciones se han aceptado para el(los) operador(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -2243,6 +2258,7 @@ This is your own one-time link!</source>
</trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<target>Eliminar chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve">
@@ -2257,6 +2273,7 @@ This is your own one-time link!</source>
</trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<target>¿Eliminar chat?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve">
@@ -2291,7 +2308,7 @@ This is your own one-time link!</source>
</trans-unit>
<trans-unit id="Delete files and media?" xml:space="preserve">
<source>Delete files and media?</source>
<target>Eliminar archivos y multimedia?</target>
<target>¿Eliminar archivos y multimedia?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete files for all chat profiles" xml:space="preserve">
@@ -2526,6 +2543,7 @@ This is your own one-time link!</source>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this chat.</source>
<target>Mensajes directos no permitidos entre miembros de este chat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
@@ -2736,7 +2754,7 @@ This is your own one-time link!</source>
</trans-unit>
<trans-unit id="Enable Flux" xml:space="preserve">
<source>Enable Flux</source>
<target>Habilitar Flux</target>
<target>Habilita Flux</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Enable SimpleX Lock" xml:space="preserve">
@@ -2819,9 +2837,9 @@ This is your own one-time link!</source>
<target>¿Cifrar base de datos?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Encrypt local files" xml:space="preserve">
<trans-unit id="Encrypt local files" xml:space="preserve" approved="no">
<source>Encrypt local files</source>
<target>Cifra archivos locales</target>
<target state="translated">Cifrar archivos locales</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Encrypt stored files &amp; media" xml:space="preserve">
@@ -3511,9 +3529,9 @@ This is your own one-time link!</source>
<target>Si por ejemplo tu contacto recibe los mensajes a través de un servidor de SimpleX Chat, tu aplicación los entregará a través de un servidor de Flux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
<trans-unit id="For private routing" xml:space="preserve" approved="no">
<source>For private routing</source>
<target>Para el enrutamiento privado</target>
<target state="translated">Para enrutamiento privado</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For social media" xml:space="preserve">
@@ -4101,6 +4119,7 @@ More improvements are coming soon!</source>
</trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<target>Invitar al chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve">
@@ -4263,10 +4282,12 @@ This is your link for group %@!</source>
</trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<target>Salir del chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<target>¿Salir del chat?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve">
@@ -4401,6 +4422,7 @@ This is your link for group %@!</source>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All chat members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All chat members will be notified.</source>
<target>El rol del miembro cambiará a "%@" y todos serán notificados.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
@@ -4415,6 +4437,7 @@ This is your link for group %@!</source>
</trans-unit>
<trans-unit id="Member will be removed from chat - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from chat - this cannot be undone!</source>
<target>El miembro será eliminado del chat. ¡No podrá deshacerse!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
@@ -4757,9 +4780,9 @@ This is your link for group %@!</source>
<target>Se usarán credenciales SOCKS nuevas cada vez que inicies la aplicación.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="New SOCKS credentials will be used for each server." xml:space="preserve">
<trans-unit id="New SOCKS credentials will be used for each server." xml:space="preserve" approved="no">
<source>New SOCKS credentials will be used for each server.</source>
<target>Se usarán credenciales SOCKS nuevas por cada servidor.</target>
<target state="translated">Se usarán credenciales SOCKS nuevas para cada servidor.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="New chat" xml:space="preserve">
@@ -4882,14 +4905,14 @@ This is your link for group %@!</source>
<target>No hay información, intenta recargar</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No media &amp; file servers." xml:space="preserve">
<trans-unit id="No media &amp; file servers." xml:space="preserve" approved="no">
<source>No media &amp; file servers.</source>
<target>Ningún servidor de archivos y multimedia.</target>
<target state="translated">Sin servidores para archivos y multimedia.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No message servers." xml:space="preserve">
<trans-unit id="No message servers." xml:space="preserve" approved="no">
<source>No message servers.</source>
<target>Ningún servidor de mensajes.</target>
<target state="translated">Sin servidores para mensajes.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No network connection" xml:space="preserve">
@@ -4912,9 +4935,9 @@ This is your link for group %@!</source>
<target>Sin permiso para grabar mensajes de voz</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No push server" xml:space="preserve">
<trans-unit id="No push server" xml:space="preserve" approved="no">
<source>No push server</source>
<target>Ningún servidor push</target>
<target state="translated">Sin servidores push</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No received or sent files" xml:space="preserve">
@@ -4922,24 +4945,24 @@ This is your link for group %@!</source>
<target>Sin archivos recibidos o enviados</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="No servers for private message routing." xml:space="preserve">
<trans-unit id="No servers for private message routing." xml:space="preserve" approved="no">
<source>No servers for private message routing.</source>
<target>Ningún servidor para enrutamiento privado.</target>
<target state="translated">Sin servidores para enrutamiento privado.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No servers to receive files." xml:space="preserve">
<trans-unit id="No servers to receive files." xml:space="preserve" approved="no">
<source>No servers to receive files.</source>
<target>Ningún servidor para recibir archivos.</target>
<target state="translated">Sin servidores para recibir archivos.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No servers to receive messages." xml:space="preserve">
<trans-unit id="No servers to receive messages." xml:space="preserve" approved="no">
<source>No servers to receive messages.</source>
<target>Ningún servidor para recibir mensajes.</target>
<target state="translated">Sin servidores para recibir mensajes.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No servers to send files." xml:space="preserve">
<trans-unit id="No servers to send files." xml:space="preserve" approved="no">
<source>No servers to send files.</source>
<target>Ningún servidor para enviar archivos.</target>
<target state="translated">Sin servidores para enviar archivos.</target>
<note>servers error</note>
</trans-unit>
<trans-unit id="No user identifiers." xml:space="preserve">
@@ -5032,6 +5055,7 @@ Requiere activación de la VPN.</target>
</trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<target>Sólo los propietarios del chat pueden cambiar las preferencias.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
@@ -5166,6 +5190,7 @@ Requiere activación de la VPN.</target>
</trans-unit>
<trans-unit id="Or import archive file" xml:space="preserve">
<source>Or import archive file</source>
<target>O importa desde un archivo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Or paste archive link" xml:space="preserve">
@@ -5406,7 +5431,7 @@ Error: %@</target>
</trans-unit>
<trans-unit id="Preset server address" xml:space="preserve">
<source>Preset server address</source>
<target>Dirección del servidor predefinida</target>
<target>Dirección predefinida del servidor</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preset servers" xml:space="preserve">
@@ -5431,6 +5456,7 @@ Error: %@</target>
</trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<target>Privacidad para tus clientes.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve">
@@ -5627,7 +5653,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
</trans-unit>
<trans-unit id="Read more" xml:space="preserve">
<source>Read more</source>
<target>Conoce más</target>
<target>Saber más</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Read more in [User Guide](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode)." xml:space="preserve">
@@ -6030,7 +6056,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Guardar y notificar contacto</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6065,7 +6091,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>¿Guardar preferencias?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6585,7 +6611,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
</trans-unit>
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
<source>Share SimpleX address on social media.</source>
<target>Compartir dirección SimpleX en redes sociales.</target>
<target>Comparte tu dirección SimpleX en redes sociales.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share address" xml:space="preserve">
@@ -6688,6 +6714,11 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
<target>Dirección SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>Simplex Chat y Flux han acordado incluir servidores operados por Flux en la aplicación</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>La seguridad de SimpleX Chat ha sido auditada por Trail of Bits.</target>
@@ -6720,12 +6751,12 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
</trans-unit>
<trans-unit id="SimpleX address and 1-time links are safe to share via any messenger." xml:space="preserve">
<source>SimpleX address and 1-time links are safe to share via any messenger.</source>
<target>Compartir enlaces de un uso y direcciones SimpleX es seguro a través de cualquier medio.</target>
<target>Compartir los enlaces de un uso y las direcciones SimpleX es seguro a través de cualquier medio.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX address or 1-time link?" xml:space="preserve">
<source>SimpleX address or 1-time link?</source>
<target>Dirección SimpleX o enlace de un uso?</target>
<target>¿Dirección SimpleX o enlace de un uso?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX contact address" xml:space="preserve">
@@ -7002,6 +7033,7 @@ Actívalo en ajustes de *Servidores y Redes*.</target>
</trans-unit>
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
<source>Tap Create SimpleX address in the menu to create it later.</source>
<target>Pulsa Crear dirección SimpleX en el menú para crearla más tarde.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Tap button " xml:space="preserve">
@@ -7188,7 +7220,7 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source>
<target>El segundo operador predefinido!</target>
<target>¡Segundo operador predefinido!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second tick we missed! ✅" xml:space="preserve">
@@ -7201,14 +7233,14 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
<target>El remitente NO será notificado</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve" approved="no">
<source>The servers for new connections of your current chat profile **%@**.</source>
<target>Lista de servidores para las conexiones nuevas de tu perfil actual **%@**.</target>
<target state="translated">Servidores para conexiones nuevas en tu perfil **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve" approved="no">
<source>The servers for new files of your current chat profile **%@**.</source>
<target>Los servidores para archivos nuevos en tu perfil actual **%@**.</target>
<target state="translated">Servidores para archivos nuevos en tu perfil **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
@@ -7393,9 +7425,9 @@ Se te pedirá que completes la autenticación antes de activar esta función.</t
<target>Para permitir las notificaciones automáticas instantáneas, la base de datos se debe migrar.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve">
<trans-unit id="To use the servers of **%@**, accept conditions of use." xml:space="preserve" approved="no">
<source>To use the servers of **%@**, accept conditions of use.</source>
<target>Para usar los servidores de **%@**, acepta las condiciones de uso.</target>
<target state="translated">Para usar los servidores de **%@**, debes aceptar las condiciones de uso.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="To verify end-to-end encryption with your contact compare (or scan) the code on your devices." xml:space="preserve">
@@ -7690,9 +7722,9 @@ Para conectarte pide a tu contacto que cree otro enlace y comprueba la conexión
<target>Usar para mensajes</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use for new connections" xml:space="preserve">
<trans-unit id="Use for new connections" xml:space="preserve" approved="no">
<source>Use for new connections</source>
<target>Usar para conexiones nuevas</target>
<target state="translated">Para conexiones nuevas</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Use from desktop" xml:space="preserve">
@@ -8047,11 +8079,12 @@ Para conectarte pide a tu contacto que cree otro enlace y comprueba la conexión
</trans-unit>
<trans-unit id="You are already connected to %@." xml:space="preserve">
<source>You are already connected to %@.</source>
<target>Ya estás conectado a %@.</target>
<target>Ya estás conectado con %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<target>Ya estás conectado con %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve">
@@ -8273,9 +8306,9 @@ Repeat connection request?</source>
<target>Debes usar la versión más reciente de tu base de datos ÚNICAMENTE en un dispositivo, de lo contrario podrías dejar de recibir mensajes de algunos contactos.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You need to allow your contact to call to be able to call them." xml:space="preserve">
<trans-unit id="You need to allow your contact to call to be able to call them." xml:space="preserve" approved="no">
<source>You need to allow your contact to call to be able to call them.</source>
<target>Necesitas permitir que tus contacto llamen para poder llamarles.</target>
<target state="translated">Debes permitir que tus contacto te llamen para poder llamarles.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You need to allow your contact to send voice messages to be able to send them." xml:space="preserve">
@@ -8330,6 +8363,7 @@ Repeat connection request?</source>
</trans-unit>
<trans-unit id="You will stop receiving messages from this chat. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this chat. Chat history will be preserved.</source>
<target>Dejarás de recibir mensajes de este chat. El historial del chat se conserva.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
@@ -8517,6 +8551,11 @@ Repeat connection request?</source>
<target>llamada aceptada</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>invitación aceptada</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>administrador</target>
@@ -8705,7 +8744,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>conectando…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8899,7 +8938,7 @@ Repeat connection request?</source>
</trans-unit>
<trans-unit id="for better metadata privacy." xml:space="preserve">
<source>for better metadata privacy.</source>
<target>para mayor privacidad de los metadatos.</target>
<target>para mejorar la privacidad de los metadatos.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="forwarded" xml:space="preserve">
@@ -9199,6 +9238,11 @@ Repeat connection request?</source>
<target>te ha expulsado</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>solicitado para conectar</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>guardado</target>
@@ -9475,9 +9519,9 @@ last received msg: %2$@</source>
<target>SimpleX</target>
<note>Bundle name</note>
</trans-unit>
<trans-unit id="NSCameraUsageDescription" xml:space="preserve">
<trans-unit id="NSCameraUsageDescription" xml:space="preserve" approved="no">
<source>SimpleX needs camera access to scan QR codes to connect to other users and for video calls.</source>
<target>SimpleX necesita acceso a la cámara para escanear códigos QR para conectarse con otros usuarios y para las videollamadas.</target>
<target state="translated">SimpleX necesita acceso a la cámara para escanear códigos QR para conectarse con otros usuarios y para las videollamadas.</target>
<note>Privacy - Camera Usage Description</note>
</trans-unit>
<trans-unit id="NSFaceIDUsageDescription" xml:space="preserve">
@@ -9490,9 +9534,9 @@ last received msg: %2$@</source>
<target>SimpleX utiliza el acceso a la red local para abrir el perfil de chat en la aplicación de ordenador en la misma red.</target>
<note>Privacy - Local Network Usage Description</note>
</trans-unit>
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve">
<trans-unit id="NSMicrophoneUsageDescription" xml:space="preserve" approved="no">
<source>SimpleX needs microphone access for audio and video calls, and to record voice messages.</source>
<target>SimpleX necesita acceso al micrófono para las llamadas de audio, vídeo y para grabar mensajes de voz.</target>
<target state="translated">SimpleX necesita acceso al micrófono para las llamadas de audio, vídeo y para grabar mensajes de voz.</target>
<note>Privacy - Microphone Usage Description</note>
</trans-unit>
<trans-unit id="NSPhotoLibraryAddUsageDescription" xml:space="preserve">
@@ -543,6 +543,10 @@
<target>Tietoja SimpleX Chatistä</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<note>No comment provided by engineer.</note>
@@ -703,8 +707,8 @@
<target>Kaikki tiedot poistetaan, kun se syötetään.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1481,8 +1485,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5560,7 +5564,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Tallenna ja ilmoita kontaktille</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5594,7 +5598,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Tallenna asetukset?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6161,6 +6165,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX-osoite</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Trail of Bits on tarkastanut SimpleX Chatin tietoturvan.</target>
@@ -7834,6 +7842,10 @@ Repeat connection request?</source>
<target>hyväksytty puhelu</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>ylläpitäjä</target>
@@ -8012,7 +8024,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>yhdistää…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8488,6 +8500,10 @@ Repeat connection request?</source>
<target>poisti sinut</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<note>No comment provided by engineer.</note>
@@ -572,6 +572,10 @@
<target>À propos de SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Principale</target>
@@ -741,8 +745,8 @@
<target>Toutes les données sont effacées lorsqu'il est saisi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Toutes les données restent confinées dans votre appareil.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1585,8 +1589,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5968,7 +5972,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Enregistrer et en informer le contact</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6003,7 +6007,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Enregistrer les préférences?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6619,6 +6623,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Adresse SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>La sécurité de SimpleX Chat a été auditée par Trail of Bits.</target>
@@ -8421,6 +8429,10 @@ Répéter la demande de connexion ?</target>
<target>appel accepté</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>admin</target>
@@ -8609,7 +8621,7 @@ Répéter la demande de connexion ?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>connexion…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9102,6 +9114,10 @@ Répéter la demande de connexion ?</target>
<target>vous a retiré</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>enregistré</target>
@@ -530,9 +530,9 @@
&lt;p&gt;&lt;a href="%@"&gt;Csatlakozzon hozzám a SimpleX Chaten keresztül&lt;/a&gt;&lt;/p&gt;</target>
<note>email text</note>
</trans-unit>
<trans-unit id="A few more things" xml:space="preserve">
<trans-unit id="A few more things" xml:space="preserve" approved="no">
<source>A few more things</source>
<target>Még néhány dolog</target>
<target state="translated">Néhány további dolog</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="A new contact" xml:space="preserve">
@@ -574,7 +574,12 @@
</trans-unit>
<trans-unit id="About SimpleX Chat" xml:space="preserve">
<source>About SimpleX Chat</source>
<target>A SimpleX Chatről</target>
<target>SimpleX Chat névjegye</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>Az üzemeltetőkről</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
@@ -655,9 +660,9 @@
<target>Kiszolgáló hozzáadása QR-kód beolvasásával.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<trans-unit id="Add team members" xml:space="preserve" approved="no">
<source>Add team members</source>
<target>Csapattagok hozzáadása</target>
<target state="translated">Kollégák hozzáadása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve">
@@ -670,9 +675,9 @@
<target>Üdvözlőüzenet hozzáadása</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<trans-unit id="Add your team members to the conversations." xml:space="preserve" approved="no">
<source>Add your team members to the conversations.</source>
<target>Adja hozzá csapattagjait a beszélgetésekhez.</target>
<target state="translated">Adja hozzá a kollégáit a beszélgetésekhez.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve">
@@ -755,9 +760,9 @@
<target>A jelkód megadása után az összes adat törlésre kerül.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<target>Az összes adat biztonságban van az eszközén.</target>
<trans-unit id="All data is kept private on your device." xml:space="preserve" approved="no">
<source>All data is kept private on your device.</source>
<target state="translated">Az összes adat privát módon van tárolva az Ön eszközén.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -765,9 +770,9 @@
<target>Az összes csoporttag kapcsolatban marad.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." xml:space="preserve">
<trans-unit id="All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages." xml:space="preserve" approved="no">
<source>All messages and files are sent **end-to-end encrypted**, with post-quantum security in direct messages.</source>
<target>Az összes üzenetet és fájlt **végpontok közötti titkosítással** küldi, a közvetlen üzenetekben pedig kvantumrezisztens biztonsággal.</target>
<target state="translated">Az összes üzenet és fájl **végpontok közötti titkosítással**, a közvetlen üzenetek továbbá kvantumálló titkosítással is rendelkeznek.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All messages will be deleted - this cannot be undone!" xml:space="preserve">
@@ -955,9 +960,9 @@
<target>Bárki üzemeltethet kiszolgálókat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="App build: %@" xml:space="preserve">
<trans-unit id="App build: %@" xml:space="preserve" approved="no">
<source>App build: %@</source>
<target>Az alkalmazás build száma: %@</target>
<target state="translated">Az alkalmazás összeállítási száma: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="App data migration" xml:space="preserve">
@@ -1348,7 +1353,7 @@
</trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<target>Felhasználói profilok megváltoztatása</target>
<target>Csevegési profilok megváltoztatása</target>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve">
@@ -1612,8 +1617,8 @@
<target>A következő üzemeltető(k) számára elfogadott feltételek: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -2882,9 +2887,9 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
<target>Titkosított üzenet: váratlan hiba</target>
<note>notification</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation error" xml:space="preserve">
<trans-unit id="Encryption re-negotiation error" xml:space="preserve" approved="no">
<source>Encryption re-negotiation error</source>
<target>Titkosítás újraegyeztetési hiba</target>
<target state="translated">Titkosítás-újraegyeztetési hiba</target>
<note>message decrypt error item</note>
</trans-unit>
<trans-unit id="Encryption re-negotiation failed." xml:space="preserve">
@@ -3521,7 +3526,7 @@ Ez az Ön egyszer használható meghívó-hivatkozása!</target>
</trans-unit>
<trans-unit id="For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." xml:space="preserve">
<source>For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</source>
<target>Ha például az ismerőse a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása a Flux egyik kiszolgálóját használja a kézbesítéshez.</target>
<target>Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="For private routing" xml:space="preserve">
@@ -4605,9 +4610,9 @@ Ez az Ön hivatkozása a(z) %@ nevű csoporthoz!</target>
<target>Az üzeneteket, fájlokat és hívásokat **végpontok közötti titkosítással**, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve" approved="no">
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
<target>Az üzeneteket, fájlokat és hívásokat **végpontok közötti kvantumrezisztens titkosítással**, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.</target>
<target state="translated">Az üzenetek, fájlok és hívások **végpontok közötti kvantumálló titkosítással** sérülés utáni titkosságvédelemmel, visszautasítással és feltörés utáni helyreállítással vannak védve.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Migrate device" xml:space="preserve">
@@ -5566,7 +5571,7 @@ Hiba: %@</target>
</trans-unit>
<trans-unit id="Protect IP address" xml:space="preserve">
<source>Protect IP address</source>
<target>IP-cím védelem</target>
<target>IP-cím védelme</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Protect app screen" xml:space="preserve">
@@ -5621,9 +5626,9 @@ Engedélyezze a „Beállítások -&gt; Hálózat és kiszolgálók” menüben.
<target>Push-kiszolgáló</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Quantum resistant encryption" xml:space="preserve">
<trans-unit id="Quantum resistant encryption" xml:space="preserve" approved="no">
<source>Quantum resistant encryption</source>
<target>Kvantumrezisztens titkosítás</target>
<target state="translated">Kvantumálló titkosítás</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Rate the app" xml:space="preserve">
@@ -6051,7 +6056,7 @@ Engedélyezze a „Beállítások -&gt; Hálózat és kiszolgálók” menüben.
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Mentés és az ismerős értesítése</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6086,7 +6091,7 @@ Engedélyezze a „Beállítások -&gt; Hálózat és kiszolgálók” menüben.
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Beállítások mentése?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6709,6 +6714,11 @@ Engedélyezze a „Beállítások -&gt; Hálózat és kiszolgálók” menüben.
<target>SimpleX-cím</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>A SimpleX Chat és a Flux megállapodást kötött arról, hogy a Flux által üzemeltetett kiszolgálókat beépítik az alkalmazásba.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>A SimpleX Chat biztonsága a Trail of Bits által lett auditálva.</target>
@@ -7200,7 +7210,7 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
</trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<target>Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.</target>
<target>Ugyanezek a feltételek lesznek elfogadva a következő üzemeltetőre is: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
@@ -7223,14 +7233,14 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>A feladó NEM fog értesítést kapni</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve">
<trans-unit id="The servers for new connections of your current chat profile **%@**." xml:space="preserve" approved="no">
<source>The servers for new connections of your current chat profile **%@**.</source>
<target>A jelenlegi csevegési profilhoz tartozó új kapcsolatok kiszolgálói **%@**.</target>
<target state="translated">Az Ön jelenlegi **%@** nevű csevegő-profilhoz tartozó új kapcsolatok kiszolgálói.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve">
<trans-unit id="The servers for new files of your current chat profile **%@**." xml:space="preserve" approved="no">
<source>The servers for new files of your current chat profile **%@**.</source>
<target>Az Ön jelenlegi **%@** nevű csevegőprofiljához tartozó új fájlok kiszolgálói.</target>
<target state="translated">Az Ön jelenlegi **%@** nevű csevegő-profiljához tartozó új fájlok kiszolgálói.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The text you pasted is not a SimpleX link." xml:space="preserve">
@@ -7253,9 +7263,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>Ezek a feltételek lesznek elfogadva a következő számára is: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve">
<trans-unit id="These settings are for your current profile **%@**." xml:space="preserve" approved="no">
<source>These settings are for your current profile **%@**.</source>
<target>Ezek a beállítások csak a jelenlegi (**%@**) profiljára vonatkoznak.</target>
<target state="translated">Ezek a beállítások csak az Ön jelenlegi **%@** nevű csevegő-profiljára vonatkoznak.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="They can be overridden in contact and group settings." xml:space="preserve">
@@ -7283,9 +7293,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>Ez a csevegés végpontok közötti titkosítással védett.</target>
<note>E2EE info chat item</note>
</trans-unit>
<trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve">
<trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve" approved="no">
<source>This chat is protected by quantum resistant end-to-end encryption.</source>
<target>Ez a csevegés végpontok közötti kvantumrezisztens tikosítással védett.</target>
<target state="translated">Ez a csevegés végpontok közötti kvantumálló tikosítással védett.</target>
<note>E2EE info chat item</note>
</trans-unit>
<trans-unit id="This device name" xml:space="preserve">
@@ -7323,9 +7333,9 @@ Ez valamilyen hiba, vagy sérült kapcsolat esetén fordulhat elő.</target>
<target>Ezt a hivatkozást egy másik hordozható eszközön már használták, hozzon létre egy új hivatkozást a számítógépén.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve">
<trans-unit id="This setting applies to messages in your current chat profile **%@**." xml:space="preserve" approved="no">
<source>This setting applies to messages in your current chat profile **%@**.</source>
<target>Ez a beállítás csak a jelenlegi (**%@**) profiljában lévő üzenetekre vonatkozik.</target>
<target state="translated">Ez a beállítás csak az Ön jelenlegi **%@** nevű csevegő-profiljában lévő üzenetekre vonatkozik.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Title" xml:space="preserve">
@@ -7822,9 +7832,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
<target>Böngészőn keresztül</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve">
<trans-unit id="Via secure quantum resistant protocol." xml:space="preserve" approved="no">
<source>Via secure quantum resistant protocol.</source>
<target>Biztonságos kvantumrezisztens-protokollon keresztül.</target>
<target state="translated">Biztonságos kvantumálló-protokollon keresztül.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Video call" xml:space="preserve">
@@ -7917,9 +7927,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
<target>Várakozás a videóra</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wallpaper accent" xml:space="preserve">
<trans-unit id="Wallpaper accent" xml:space="preserve" approved="no">
<source>Wallpaper accent</source>
<target>Háttérkép kiemelés</target>
<target state="translated">Háttérkép kiemelőszíne</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wallpaper background" xml:space="preserve">
@@ -8067,9 +8077,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
<target>Már van egy csevegési profil ugyanezzel a megjelenített névvel. Válasszon egy másik nevet.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connected to %@." xml:space="preserve">
<trans-unit id="You are already connected to %@." xml:space="preserve" approved="no">
<source>You are already connected to %@.</source>
<target>Ön már kapcsolódva van ehhez: %@.</target>
<target state="translated">Ön már kapcsolódva van a következőhöz: %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
@@ -8077,9 +8087,9 @@ A kapcsolódáshoz kérje meg az ismerősét, hogy hozzon létre egy másik kapc
<target>Ön már kapcsolódva van vele: %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connecting to %@." xml:space="preserve">
<trans-unit id="You are already connecting to %@." xml:space="preserve" approved="no">
<source>You are already connecting to %@.</source>
<target>Már folyamatban van a kapcsolódás ehhez: %@.</target>
<target state="translated">Már folyamatban van a kapcsolódás a következőhöz: %@.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You are already connecting via this one-time link!" xml:space="preserve">
@@ -8146,7 +8156,7 @@ Csatlakozáskérés megismétlése?</target>
</trans-unit>
<trans-unit id="You can configure servers via settings." xml:space="preserve">
<source>You can configure servers via settings.</source>
<target>A kiszolgálókat a beállításokon keresztül konfigurálhatja.</target>
<target>A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can create it later" xml:space="preserve">
@@ -8196,7 +8206,7 @@ Csatlakozáskérés megismétlése?</target>
</trans-unit>
<trans-unit id="You can set lock screen notification preview via settings." xml:space="preserve">
<source>You can set lock screen notification preview via settings.</source>
<target>A beállításokon keresztül beállíthatja a lezárási képernyő értesítési előnézetét.</target>
<target>A lezárási képernyő értesítési előnézetét az „Értesítések” menüben állíthatja be.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it." xml:space="preserve">
@@ -8541,6 +8551,11 @@ Kapcsolatkérés megismétlése?</target>
<target>elfogadott hívás</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>elfogadott meghívó</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>adminisztrátor</target>
@@ -8729,7 +8744,7 @@ Kapcsolatkérés megismétlése?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>kapcsolódás…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8766,9 +8781,9 @@ Kapcsolatkérés megismétlése?</target>
<target>egyedi</target>
<note>dropdown time picker choice</note>
</trans-unit>
<trans-unit id="database version is newer than the app, but no down migration for: %@" xml:space="preserve">
<trans-unit id="database version is newer than the app, but no down migration for: %@" xml:space="preserve" approved="no">
<source>database version is newer than the app, but no down migration for: %@</source>
<target>az adatbázis verziója újabb, mint az alkalmazásé, de nincs visszafelé átköltöztetés ehhez: %@</target>
<target state="translated">az adatbázis verziója újabb, mint az alkalmazásé, de nincs visszafelé átköltöztetés a következőhöz: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="days" xml:space="preserve">
@@ -8876,24 +8891,24 @@ Kapcsolatkérés megismétlése?</target>
<target>titkosítás rendben vele: %@</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="encryption re-negotiation allowed" xml:space="preserve">
<trans-unit id="encryption re-negotiation allowed" xml:space="preserve" approved="no">
<source>encryption re-negotiation allowed</source>
<target>titkosítás újraegyeztetés engedélyezve</target>
<target state="translated">titkosítás-újraegyeztetés engedélyezve</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="encryption re-negotiation allowed for %@" xml:space="preserve">
<trans-unit id="encryption re-negotiation allowed for %@" xml:space="preserve" approved="no">
<source>encryption re-negotiation allowed for %@</source>
<target>titkosítás újraegyeztetés engedélyezve vele: %@</target>
<target state="translated">a titkosítás újraegyeztetése engedélyezve van a következőhöz: %@</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="encryption re-negotiation required" xml:space="preserve">
<trans-unit id="encryption re-negotiation required" xml:space="preserve" approved="no">
<source>encryption re-negotiation required</source>
<target>titkosítás újraegyeztetés szükséges</target>
<target state="translated">titkosítás-újraegyeztetés szükséges</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="encryption re-negotiation required for %@" xml:space="preserve">
<trans-unit id="encryption re-negotiation required for %@" xml:space="preserve" approved="no">
<source>encryption re-negotiation required for %@</source>
<target>titkosítás újraegyeztetés szükséges %@ számára</target>
<target state="translated">a titkosítás újraegyeztetése szükséges a következőhöz: %@</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="ended" xml:space="preserve">
@@ -9178,9 +9193,9 @@ Kapcsolatkérés megismétlése?</target>
<target>ponttól-pontig</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="quantum resistant e2e encryption" xml:space="preserve">
<trans-unit id="quantum resistant e2e encryption" xml:space="preserve" approved="no">
<source>quantum resistant e2e encryption</source>
<target>végpontok közötti kvantumrezisztens titkosítás</target>
<target state="translated">végpontok közötti kvantumálló titkosítás</target>
<note>chat item text</note>
</trans-unit>
<trans-unit id="received answer…" xml:space="preserve">
@@ -9223,6 +9238,11 @@ Kapcsolatkérés megismétlése?</target>
<target>eltávolította Önt</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>kérelmezve a kapcsolódáshoz</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>mentett</target>
@@ -577,6 +577,11 @@
<target>Riguardo SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve" approved="no">
<source>About operators</source>
<target state="translated">Info sugli operatori</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Principale</target>
@@ -755,8 +760,8 @@
<target>Tutti i dati vengono cancellati quando inserito.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Tutti i dati sono privati, nel tuo dispositivo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1087,12 +1092,12 @@
</trans-unit>
<trans-unit id="Auto-accept contact requests" xml:space="preserve">
<source>Auto-accept contact requests</source>
<target>Auto-accetta richieste di contatto</target>
<target>Auto-accetta le richieste di contatto</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept images" xml:space="preserve">
<source>Auto-accept images</source>
<target>Auto-accetta immagini</target>
<target>Auto-accetta le immagini</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Auto-accept settings" xml:space="preserve">
@@ -1212,7 +1217,7 @@
</trans-unit>
<trans-unit id="Blur media" xml:space="preserve">
<source>Blur media</source>
<target>Sfocatura file multimediali</target>
<target>Sfocatura dei file multimediali</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1612,8 +1617,8 @@
<target>Le condizioni sono state accettate per gli operatori: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Le condizioni sono già state accettate per i seguenti operatori: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -4497,7 +4502,7 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit>
<trans-unit id="Message draft" xml:space="preserve">
<source>Message draft</source>
<target>Bozza dei messaggi</target>
<target>Bozza del messaggio</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message forwarded" xml:space="preserve">
@@ -5984,12 +5989,12 @@ Attivalo nelle impostazioni *Rete e server*.</target>
</trans-unit>
<trans-unit id="Review conditions" xml:space="preserve">
<source>Review conditions</source>
<target>Esamina le condizioni</target>
<target>Leggi le condizioni</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Review later" xml:space="preserve">
<source>Review later</source>
<target>Esamina più tardi</target>
<target>Leggi più tardi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Revoke" xml:space="preserve">
@@ -6051,7 +6056,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Salva e avvisa il contatto</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6086,7 +6091,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Salvare le preferenze?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6285,7 +6290,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
</trans-unit>
<trans-unit id="Send link previews" xml:space="preserve">
<source>Send link previews</source>
<target>Invia anteprime dei link</target>
<target>Invia le anteprime dei link</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Send live message" xml:space="preserve">
@@ -6606,7 +6611,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
</trans-unit>
<trans-unit id="Share SimpleX address on social media." xml:space="preserve">
<source>Share SimpleX address on social media.</source>
<target>Condividi indirizzo SimpleX sui social media.</target>
<target>Condividi l'indirizzo SimpleX sui social media.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share address" xml:space="preserve">
@@ -6709,6 +6714,11 @@ Attivalo nelle impostazioni *Rete e server*.</target>
<target>Indirizzo SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve" approved="no">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target state="translated">SimpleX Chat e Flux hanno concluso un accordo per includere server gestiti da Flux nell'app.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>La sicurezza di SimpleX Chat è stata verificata da Trail of Bits.</target>
@@ -7023,7 +7033,7 @@ Attivalo nelle impostazioni *Rete e server*.</target>
</trans-unit>
<trans-unit id="Tap Create SimpleX address in the menu to create it later." xml:space="preserve">
<source>Tap Create SimpleX address in the menu to create it later.</source>
<target>Tocca "Crea indirizzo SimpleX" nel menu per crearlo più tardi.</target>
<target>Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Tap button " xml:space="preserve">
@@ -8541,6 +8551,11 @@ Ripetere la richiesta di connessione?</target>
<target>chiamata accettata</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve" approved="no">
<source>accepted invitation</source>
<target state="translated">invito accettato</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>amministratore</target>
@@ -8729,7 +8744,7 @@ Ripetere la richiesta di connessione?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>in connessione…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9223,6 +9238,11 @@ Ripetere la richiesta di connessione?</target>
<target>ti ha rimosso/a</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve" approved="no">
<source>requested to connect</source>
<target state="translated">richiesto di connettersi</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>salvato</target>
@@ -560,6 +560,10 @@
<target>SimpleX Chat について</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<note>No comment provided by engineer.</note>
@@ -720,8 +724,8 @@
<target>入力するとすべてのデータが消去されます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1511,8 +1515,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -2474,9 +2478,9 @@ This is your own one-time link!</source>
<source>Do not use credentials with proxy.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Don't create address" xml:space="preserve">
<trans-unit id="Don't create address" xml:space="preserve" approved="no">
<source>Don't create address</source>
<target>アドレスを作成しないでください</target>
<target state="translated">アドレスを作成しない</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Don't enable" xml:space="preserve">
@@ -3756,9 +3760,9 @@ More improvements are coming soon!</source>
<target>インストール [ターミナル用SimpleX Chat](https://github.com/simplex-chat/simplex-chat)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Instant" xml:space="preserve">
<trans-unit id="Instant" xml:space="preserve" approved="no">
<source>Instant</source>
<target>すぐに</target>
<target state="translated">即時</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Instant push notifications will be hidden!&#10;" xml:space="preserve">
@@ -4294,8 +4298,9 @@ This is your link for group %@!</source>
<source>Migrate device</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Migrate from another device" xml:space="preserve">
<trans-unit id="Migrate from another device" xml:space="preserve" approved="no">
<source>Migrate from another device</source>
<target state="translated">別の端末から移行</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Migrate here" xml:space="preserve">
@@ -5079,8 +5084,9 @@ Error: %@</source>
<source>Private message routing 🚀</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Private notes" xml:space="preserve">
<trans-unit id="Private notes" xml:space="preserve" approved="no">
<source>Private notes</source>
<target state="translated">プライベートノート</target>
<note>name of notes to self</note>
</trans-unit>
<trans-unit id="Private routing" xml:space="preserve">
@@ -5609,7 +5615,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>保存して、連絡先にに知らせる</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5643,7 +5649,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>この設定でよろしいですか?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6203,6 +6209,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleXアドレス</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat のセキュリティは Trail of Bits によって監査されました。</target>
@@ -7529,8 +7539,9 @@ Repeat join request?</source>
<target>ユーザープロファイルを右にスワイプすると、非表示またはミュートにすることができます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can make it visible to your SimpleX contacts via Settings." xml:space="preserve">
<trans-unit id="You can make it visible to your SimpleX contacts via Settings." xml:space="preserve" approved="no">
<source>You can make it visible to your SimpleX contacts via Settings.</source>
<target state="translated">設定でSimpleXの連絡先に表示させることができます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can now chat with %@" xml:space="preserve">
@@ -7876,6 +7887,10 @@ Repeat connection request?</source>
<target>受けた通話</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>管理者</target>
@@ -8054,7 +8069,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>接続待ち…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8530,6 +8545,10 @@ Repeat connection request?</source>
<target>あなたを除名しました</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<note>No comment provided by engineer.</note>
@@ -577,6 +577,11 @@
<target>Over SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>Over operatoren</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Accent</target>
@@ -755,8 +760,8 @@
<target>Alle gegevens worden bij het invoeren gewist.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Alle gegevens zijn privé op uw apparaat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1612,8 +1617,8 @@
<target>Voorwaarden worden geaccepteerd voor de operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -6051,7 +6056,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Opslaan en Contact melden</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6086,7 +6091,7 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Voorkeuren opslaan?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6709,6 +6714,11 @@ Schakel dit in in *Netwerk en servers*-instellingen.</target>
<target>SimpleX adres</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>Simplex-chat en flux hebben een overeenkomst gemaakt om door flux geëxploiteerde servers in de app op te nemen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.</target>
@@ -8541,6 +8551,11 @@ Verbindingsverzoek herhalen?</target>
<target>geaccepteerde oproep</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>geaccepteerde uitnodiging</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>Beheerder</target>
@@ -8729,7 +8744,7 @@ Verbindingsverzoek herhalen?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>Verbinden…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9223,6 +9238,11 @@ Verbindingsverzoek herhalen?</target>
<target>heeft je verwijderd</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>gevraagd om verbinding te maken</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>opgeslagen</target>
@@ -572,6 +572,10 @@
<target>O SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Akcent</target>
@@ -741,8 +745,8 @@
<target>Wszystkie dane są usuwane po jego wprowadzeniu.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Wszystkie dane są prywatne na Twoim urządzeniu.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1580,8 +1584,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5958,7 +5962,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Zapisz i powiadom kontakt</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5993,7 +5997,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Zapisać preferencje?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6609,6 +6613,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Adres SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits.</target>
@@ -8408,6 +8416,10 @@ Powtórzyć prośbę połączenia?</target>
<target>zaakceptowane połączenie</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>administrator</target>
@@ -8596,7 +8608,7 @@ Powtórzyć prośbę połączenia?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>łączenie…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9089,6 +9101,10 @@ Powtórzyć prośbę połączenia?</target>
<target>usunął cię</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>zapisane</target>
@@ -5425,8 +5425,8 @@ Isso pode acontecer por causa de algum bug ou quando a conexão está comprometi
<source>Advanced settings</source>
<target state="translated">Configurações avançadas</target>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve" approved="no">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve" approved="no">
<source>All data is kept private on your device.</source>
<target state="translated">Toda informação é privada em seu dispositivo.</target>
</trans-unit>
<trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve" approved="no">
@@ -384,7 +384,7 @@
</trans-unit>
<trans-unit id="**Scan / Paste link**: to connect via a link you received." xml:space="preserve">
<source>**Scan / Paste link**: to connect via a link you received.</source>
<target>**Сканировать / Вставить ссылку**: чтобы соединится через полученную ссылку.</target>
<target>**Сканировать / Вставить ссылку**: чтобы соединиться через полученную ссылку.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
@@ -577,6 +577,11 @@
<target>Информация о SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<target>Об операторах</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Акцент</target>
@@ -755,8 +760,8 @@
<target>Все данные удаляются при его вводе.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Все данные хранятся только на вашем устройстве.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1612,8 +1617,8 @@
<target>Условия приняты для оператора(ов): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Условия уже приняты для следующих оператора(ов): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -5577,7 +5582,7 @@ Error: %@</source>
<source>Protect your IP address from the messaging relays chosen by your contacts.
Enable in *Network &amp; servers* settings.</source>
<target>Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.
Включите в настройках *Сеть и серверы*.</target>
Включите в настройках *Сети и серверов*.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Protect your chat profiles with a password!" xml:space="preserve">
@@ -6050,7 +6055,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Сохранить и уведомить контакт</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6085,7 +6090,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Сохранить предпочтения?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6708,6 +6713,11 @@ Enable in *Network &amp; servers* settings.</source>
<target>Адрес SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<target>SimpleX Chat и Flux заключили соглашение добавить серверы под управлением Flux в приложение.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Безопасность SimpleX Chat была проверена Trail of Bits.</target>
@@ -8140,12 +8150,12 @@ Repeat join request?</source>
</trans-unit>
<trans-unit id="You can configure operators in Network &amp; servers settings." xml:space="preserve">
<source>You can configure operators in Network &amp; servers settings.</source>
<target>Вы можете настроить операторов в настройках Сеть и серверы.</target>
<target>Вы можете настроить операторов в настройках Сети и серверов.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can configure servers via settings." xml:space="preserve">
<source>You can configure servers via settings.</source>
<target>Вы можете сконфигурировать серверы через настройки.</target>
<target>Вы можете настроить серверы позже.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="You can create it later" xml:space="preserve">
@@ -8540,6 +8550,11 @@ Repeat connection request?</source>
<target>принятый звонок</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<target>принятое приглашение</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>админ</target>
@@ -8728,7 +8743,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>соединяется…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9222,6 +9237,11 @@ Repeat connection request?</source>
<target>удалил(а) Вас из группы</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<target>запрошено соединение</target>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>сохранено</target>
@@ -536,6 +536,10 @@
<target>เกี่ยวกับ SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<note>No comment provided by engineer.</note>
@@ -695,8 +699,8 @@
<target>ข้อมูลทั้งหมดจะถูกลบเมื่อถูกป้อน</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1473,8 +1477,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5537,7 +5541,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>บันทึกและแจ้งผู้ติดต่อ</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5571,7 +5575,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>บันทึกการตั้งค่า?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6135,6 +6139,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>ที่อยู่ SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>ความปลอดภัยของ SimpleX Chat ได้รับการตรวจสอบโดย Trail of Bits</target>
@@ -7802,6 +7810,10 @@ Repeat connection request?</source>
<target>รับสายแล้ว</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>ผู้ดูแลระบบ</target>
@@ -7980,7 +7992,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>กำลังเชื่อมต่อ…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -8454,6 +8466,10 @@ Repeat connection request?</source>
<target>ลบคุณออกแล้ว</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<note>No comment provided by engineer.</note>
@@ -572,6 +572,10 @@
<target>SimpleX Chat hakkında</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Ana renk</target>
@@ -741,8 +745,8 @@
<target>Kullanıldığında bütün veriler silinir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Tüm veriler cihazınıza özeldir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1585,8 +1589,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5968,7 +5972,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Kaydet ve kişilere bildir</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6003,7 +6007,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Tercihler kaydedilsin mi?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6619,6 +6623,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Adresi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat güvenliği Trails of Bits tarafından denetlenmiştir.</target>
@@ -8421,6 +8429,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>kabul edilen arama</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>yönetici</target>
@@ -8609,7 +8621,7 @@ Bağlantı isteği tekrarlansın mı?</target>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>bağlanılıyor…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9102,6 +9114,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>sen kaldırıldın</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>kaydedildi</target>
@@ -577,6 +577,10 @@
<target>Про чат SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>Акцент</target>
@@ -752,8 +756,8 @@
<target>Всі дані стираються при введенні.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>Всі дані є приватними для вашого пристрою.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1602,8 +1606,8 @@
<target>Для оператора(ів) приймаються умови: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Умови вже прийняті для наступних операторів: **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -6030,7 +6034,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>Зберегти та повідомити контакт</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -6065,7 +6069,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>Зберегти настройки?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6688,6 +6692,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>Адреса SimpleX</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Безпека SimpleX Chat була перевірена компанією Trail of Bits.</target>
@@ -8517,6 +8525,10 @@ Repeat connection request?</source>
<target>прийнято виклик</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>адмін</target>
@@ -8705,7 +8717,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>з'єднання…</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9199,6 +9211,10 @@ Repeat connection request?</source>
<target>прибрали вас</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>збережено</target>
@@ -566,6 +566,10 @@
<target>关于SimpleX Chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="About operators" xml:space="preserve">
<source>About operators</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Accent" xml:space="preserve">
<source>Accent</source>
<target>强调</target>
@@ -735,8 +739,8 @@
<target>所有数据在输入后将被删除。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve">
<source>All data is private to your device.</source>
<trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is kept private on your device.</source>
<target>所有数据都是您设备的私有数据.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
@@ -1571,8 +1575,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source>
<trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve">
@@ -5921,7 +5925,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source>
<target>保存并通知联系人</target>
<note>No comment provided by engineer.</note>
<note>alert button</note>
</trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source>
@@ -5956,7 +5960,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source>
<target>保存偏好设置?</target>
<note>No comment provided by engineer.</note>
<note>alert title</note>
</trans-unit>
<trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source>
@@ -6566,6 +6570,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX 地址</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." xml:space="preserve">
<source>SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="SimpleX Chat security was audited by Trail of Bits." xml:space="preserve">
<source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat 的安全性 由 Trail of Bits 审核。</target>
@@ -8354,6 +8362,10 @@ Repeat connection request?</source>
<target>已接受通话</target>
<note>call status</note>
</trans-unit>
<trans-unit id="accepted invitation" xml:space="preserve">
<source>accepted invitation</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="admin" xml:space="preserve">
<source>admin</source>
<target>管理员</target>
@@ -8542,7 +8554,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source>
<target>连接中……</target>
<note>chat list item title</note>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="connection established" xml:space="preserve">
<source>connection established</source>
@@ -9035,6 +9047,10 @@ Repeat connection request?</source>
<target>已将您移除</target>
<note>rcv group event chat item</note>
</trans-unit>
<trans-unit id="requested to connect" xml:space="preserve">
<source>requested to connect</source>
<note>chat list item title</note>
</trans-unit>
<trans-unit id="saved" xml:space="preserve">
<source>saved</source>
<target>已保存</target>
+18 -18
View File
@@ -167,9 +167,9 @@
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */; };
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D82CFE07CF00536B68 /* libffi.a */; };
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */; };
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */; };
649B28DF2CFE07CF00536B68 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DA2CFE07CF00536B68 /* libgmpxx.a */; };
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */; };
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */; };
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649B28DC2CFE07CF00536B68 /* libgmp.a */; };
649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
@@ -516,9 +516,9 @@
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemForwardingView.swift; sourceTree = "<group>"; };
6493D667280ED77F007A76FB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
649B28D82CFE07CF00536B68 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a"; sourceTree = "<group>"; };
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a"; sourceTree = "<group>"; };
649B28DA2CFE07CF00536B68 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a"; sourceTree = "<group>"; };
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a"; sourceTree = "<group>"; };
649B28DC2CFE07CF00536B68 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
649BCD9F280460FD00C3A862 /* ComposeImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeImageView.swift; sourceTree = "<group>"; };
649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
@@ -671,9 +671,9 @@
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a in Frameworks */,
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a in Frameworks */,
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a in Frameworks */,
649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a in Frameworks */,
649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -754,8 +754,8 @@
649B28D82CFE07CF00536B68 /* libffi.a */,
649B28DC2CFE07CF00536B68 /* libgmp.a */,
649B28DA2CFE07CF00536B68 /* libgmpxx.a */,
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo-ghc9.6.3.a */,
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.6-5lGV6gtq9gSDlEsE8DHXYo.a */,
649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */,
649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */,
);
path = Libraries;
sourceTree = "<group>";
@@ -1931,7 +1931,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -1980,7 +1980,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -2021,7 +2021,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2041,7 +2041,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2066,7 +2066,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
GCC_OPTIMIZATION_LEVEL = s;
@@ -2103,7 +2103,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
ENABLE_CODE_COVERAGE = NO;
@@ -2140,7 +2140,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2191,7 +2191,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2242,7 +2242,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -2276,7 +2276,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 253;
CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
+12 -51
View File
@@ -1212,13 +1212,12 @@ public enum ServerProtocol: String, Decodable {
public enum OperatorTag: String, Codable {
case simplex = "simplex"
case flux = "flux"
case xyz = "xyz"
case demo = "demo"
}
public struct ServerOperatorInfo: Decodable {
public struct ServerOperatorInfo {
public var description: [String]
public var website: String
public var website: URL
public var selfhost: (text: String, link: URL)? = nil
public var logo: String
public var largeLogo: String
public var logoDarkMode: String
@@ -1228,10 +1227,10 @@ public struct ServerOperatorInfo: Decodable {
public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
.simplex: ServerOperatorInfo(
description: [
"SimpleX Chat is the first communication network that has no user profile IDs of any kind, not even random numbers or keys that identify the users.",
"SimpleX Chat is the first communication network that has no user profile IDs of any kind, not even random numbers or identity keys.",
"SimpleX Chat Ltd develops the communication software for SimpleX network."
],
website: "https://simplex.chat",
website: URL(string: "https://simplex.chat")!,
logo: "decentralized",
largeLogo: "logo",
logoDarkMode: "decentralized-light",
@@ -1239,31 +1238,17 @@ public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
),
.flux: ServerOperatorInfo(
description: [
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.",
"Flux offers a powerful, scalable, and affordable platform designed to support individuals, businesses, and cutting-edge technologies like AI. With high uptime and worldwide distribution, Flux ensures reliable, accessible cloud computing for all."
"Flux is the largest decentralized cloud, based on a global network of user-operated nodes.",
"Flux offers a powerful, scalable, and affordable cutting edge technology platform for all.",
"Flux operates servers in SimpleX network to improve its privacy and decentralization."
],
website: "https://runonflux.com",
website: URL(string: "https://runonflux.com")!,
selfhost: (text: "Self-host SimpleX servers on Flux", link: URL(string: "https://home.runonflux.io/apps/marketplace?q=simplex")!),
logo: "flux_logo_symbol",
largeLogo: "flux_logo",
logoDarkMode: "flux_logo_symbol",
largeLogoDarkMode: "flux_logo-light"
),
.xyz: ServerOperatorInfo(
description: ["XYZ servers"],
website: "XYZ website",
logo: "shield",
largeLogo: "logo",
logoDarkMode: "shield",
largeLogoDarkMode: "logo-light"
),
.demo: ServerOperatorInfo(
description: ["Demo operator"],
website: "Demo website",
logo: "decentralized",
largeLogo: "logo",
logoDarkMode: "decentralized-light",
largeLogoDarkMode: "logo-light"
)
]
public struct UsageConditions: Decodable {
@@ -1358,7 +1343,7 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
public static let dummyOperatorInfo = ServerOperatorInfo(
description: ["Default"],
website: "Default",
website: URL(string: "https://simplex.chat")!,
logo: "decentralized",
largeLogo: "logo",
logoDarkMode: "decentralized-light",
@@ -1384,30 +1369,6 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
smpRoles: ServerRoles(storage: true, proxy: true),
xftpRoles: ServerRoles(storage: true, proxy: true)
)
public static var sampleData2 = ServerOperator(
operatorId: 2,
operatorTag: .xyz,
tradeName: "XYZ",
legalName: nil,
serverDomains: ["xyz.com"],
conditionsAcceptance: .required(deadline: nil),
enabled: false,
smpRoles: ServerRoles(storage: false, proxy: true),
xftpRoles: ServerRoles(storage: false, proxy: true)
)
public static var sampleData3 = ServerOperator(
operatorId: 3,
operatorTag: .demo,
tradeName: "Demo",
legalName: nil,
serverDomains: ["demo.com"],
conditionsAcceptance: .required(deadline: nil),
enabled: false,
smpRoles: ServerRoles(storage: true, proxy: false),
xftpRoles: ServerRoles(storage: true, proxy: false)
)
}
public struct ServerRoles: Equatable, Codable {
@@ -2725,7 +2686,7 @@ public struct AppSettings: Codable, Equatable {
uiDarkColorScheme: DefaultTheme.SIMPLEX.themeName,
uiCurrentThemeIds: nil as [String: String]?,
uiThemes: nil as [ThemeOverrides]?,
oneHandUI: false,
oneHandUI: true,
chatBottomBar: true
)
}
+4 -2
View File
@@ -1782,9 +1782,11 @@ public struct PendingContactConnection: Decodable, NamedChat, Hashable {
public var displayName: String {
get {
if let initiated = pccConnStatus.initiated {
return initiated && !viaContactUri
return viaContactUri
? NSLocalizedString("requested to connect", comment: "chat list item title")
: initiated
? NSLocalizedString("invited to connect", comment: "chat list item title")
: NSLocalizedString("connecting…", comment: "chat list item title")
: NSLocalizedString("accepted invitation", comment: "chat list item title")
} else {
// this should not be in the list
return NSLocalizedString("connection established", comment: "chat list item title (it should not be shown")
+3 -3
View File
@@ -918,7 +918,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Свързване с настолно устройство";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "свързване…";
/* No comment provided by engineer. */
@@ -3139,7 +3139,7 @@
/* alert button */
"Save (and notify contacts)" = "Запази (и уведоми контактите)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Запази и уведоми контакта";
/* No comment provided by engineer. */
@@ -3157,7 +3157,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Запази паролата в Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Запази настройките?";
/* No comment provided by engineer. */
+3 -3
View File
@@ -729,7 +729,7 @@
/* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Připojování k serveru... (chyba: %@)";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "připojení…";
/* No comment provided by engineer. */
@@ -2538,7 +2538,7 @@
/* alert button */
"Save (and notify contacts)" = "Uložit (a informovat kontakty)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Uložit a upozornit kontakt";
/* No comment provided by engineer. */
@@ -2556,7 +2556,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Uložit přístupovou frázi do Klíčenky";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Uložit předvolby?";
/* No comment provided by engineer. */
+100 -16
View File
@@ -343,6 +343,9 @@
/* No comment provided by engineer. */
"Abort changing address?" = "Wechsel der Empfängeradresse beenden?";
/* No comment provided by engineer. */
"About operators" = "Über Betreiber";
/* No comment provided by engineer. */
"About SimpleX Chat" = "Über SimpleX Chat";
@@ -376,6 +379,9 @@
/* No comment provided by engineer. */
"Accepted conditions" = "Akzeptierte Nutzungsbedingungen";
/* chat list item title */
"accepted invitation" = "Einladung akzeptiert";
/* No comment provided by engineer. */
"Acknowledged" = "Bestätigt";
@@ -388,6 +394,9 @@
/* No comment provided by engineer. */
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Fügen Sie die Adresse Ihrem Profil hinzu, damit Ihre Kontakte sie mit anderen Personen teilen können. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet.";
/* No comment provided by engineer. */
"Add friends" = "Freunde aufnehmen";
/* No comment provided by engineer. */
"Add profile" = "Profil hinzufügen";
@@ -397,12 +406,18 @@
/* No comment provided by engineer. */
"Add servers by scanning QR codes." = "Fügen Sie Server durch Scannen der QR Codes hinzu.";
/* No comment provided by engineer. */
"Add team members" = "Team-Mitglieder aufnehmen";
/* No comment provided by engineer. */
"Add to another device" = "Einem anderen Gerät hinzufügen";
/* No comment provided by engineer. */
"Add welcome message" = "Begrüßungsmeldung hinzufügen";
/* No comment provided by engineer. */
"Add your team members to the conversations." = "Nehmen Sie Team-Mitglieder in Ihre Unterhaltungen auf.";
/* No comment provided by engineer. */
"Added media & file servers" = "Medien- und Dateiserver hinzugefügt";
@@ -464,7 +479,7 @@
"All data is erased when it is entered." = "Alle Daten werden gelöscht, sobald dieser eingegeben wird.";
/* No comment provided by engineer. */
"All data is private to your device." = "Alle Daten werden nur auf Ihrem Gerät gespeichert.";
"All data is kept private on your device." = "Alle Daten werden nur auf Ihrem Gerät gespeichert.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden.";
@@ -793,6 +808,12 @@
/* No comment provided by engineer. */
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Bulgarisch, Finnisch, Thailändisch und Ukrainisch - Dank der Nutzer und [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
/* No comment provided by engineer. */
"Business address" = "Geschäftliche Adresse";
/* No comment provided by engineer. */
"Business chats" = "Geschäftliche Chats";
/* No comment provided by engineer. */
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Per Chat-Profil (Voreinstellung) oder [per Verbindung](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
@@ -863,6 +884,9 @@
/* No comment provided by engineer. */
"Change" = "Ändern";
/* authentication reason */
"Change chat profiles" = "Chat-Profile wechseln";
/* No comment provided by engineer. */
"Change database passphrase?" = "Datenbank-Passwort ändern?";
@@ -891,9 +915,6 @@
set passcode view */
"Change self-destruct passcode" = "Selbstzerstörungs-Zugangscode ändern";
/* authentication reason */
"Change chat profiles" = "Chat-Profile wechseln";
/* chat item text */
"changed address for you" = "Wechselte die Empfängeradresse von Ihnen";
@@ -909,6 +930,15 @@
/* chat item text */
"changing address…" = "Wechsel der Empfängeradresse wurde gestartet…";
/* No comment provided by engineer. */
"Chat" = "Chat";
/* No comment provided by engineer. */
"Chat already exists" = "Chat besteht bereits";
/* No comment provided by engineer. */
"Chat already exists!" = "Chat besteht bereits!";
/* No comment provided by engineer. */
"Chat colors" = "Chat-Farben";
@@ -954,6 +984,12 @@
/* No comment provided by engineer. */
"Chat theme" = "Chat-Design";
/* No comment provided by engineer. */
"Chat will be deleted for all members - this cannot be undone!" = "Der Chat wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */
"Chat will be deleted for you - this cannot be undone!" = "Der Chat wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */
"Chats" = "Chats";
@@ -1030,7 +1066,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Nutzungsbedingungen";
@@ -1173,7 +1209,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Mit dem Desktop verbinden";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "Verbinde…";
/* No comment provided by engineer. */
@@ -1475,12 +1511,18 @@
/* No comment provided by engineer. */
"Delete and notify contact" = "Kontakt löschen und benachrichtigen";
/* No comment provided by engineer. */
"Delete chat" = "Chat löschen";
/* No comment provided by engineer. */
"Delete chat profile" = "Chat-Profil löschen";
/* No comment provided by engineer. */
"Delete chat profile?" = "Chat-Profil löschen?";
/* No comment provided by engineer. */
"Delete chat?" = "Chat löschen?";
/* No comment provided by engineer. */
"Delete connection" = "Verbindung löschen";
@@ -1655,6 +1697,9 @@
/* chat feature */
"Direct messages" = "Direkte Nachrichten";
/* No comment provided by engineer. */
"Direct messages between members are prohibited in this chat." = "In diesem Chat sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.";
/* No comment provided by engineer. */
"Direct messages between members are prohibited." = "In dieser Gruppe sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.";
@@ -2694,6 +2739,9 @@
/* No comment provided by engineer. */
"Invite members" = "Mitglieder einladen";
/* No comment provided by engineer. */
"Invite to chat" = "Zum Chat einladen";
/* No comment provided by engineer. */
"Invite to group" = "In Gruppe einladen";
@@ -2808,6 +2856,12 @@
/* swipe action */
"Leave" = "Verlassen";
/* No comment provided by engineer. */
"Leave chat" = "Chat verlassen";
/* No comment provided by engineer. */
"Leave chat?" = "Chat verlassen?";
/* No comment provided by engineer. */
"Leave group" = "Gruppe verlassen";
@@ -2904,12 +2958,18 @@
/* item status text */
"Member inactive" = "Mitglied inaktiv";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". All chat members will be notified." = "Die Rolle des Mitglieds wird auf \"%@\" geändert. Alle Chat-Mitglieder werden darüber informiert.";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". All group members will be notified." = "Die Mitgliederrolle wird auf \"%@\" geändert. Alle Mitglieder der Gruppe werden benachrichtigt.";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Die Mitgliederrolle wird auf \"%@\" geändert. Das Mitglied wird eine neue Einladung erhalten.";
/* No comment provided by engineer. */
"Member will be removed from chat - this cannot be undone!" = "Das Mitglied wird aus dem Chat entfernt. Dies kann nicht rückgängig gemacht werden!";
/* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Das Mitglied wird aus der Gruppe entfernt. Dies kann nicht rückgängig gemacht werden!";
@@ -3329,6 +3389,9 @@
/* No comment provided by engineer. */
"Onion hosts will not be used." = "Onion-Hosts werden nicht verwendet.";
/* No comment provided by engineer. */
"Only chat owners can change preferences." = "Nur Chat-Eigentümer können die Präferenzen ändern.";
/* No comment provided by engineer. */
"Only client devices store user profiles, contacts, groups, and messages." = "Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine **2-Schichten Ende-zu-Ende-Verschlüsselung** gesendet werden.";
@@ -3407,6 +3470,9 @@
/* alert title */
"Operator server" = "Betreiber-Server";
/* No comment provided by engineer. */
"Or import archive file" = "Oder importieren Sie eine Archiv-Datei";
/* No comment provided by engineer. */
"Or paste archive link" = "Oder fügen Sie den Archiv-Link ein";
@@ -3575,6 +3641,9 @@
/* No comment provided by engineer. */
"Privacy & security" = "Datenschutz & Sicherheit";
/* No comment provided by engineer. */
"Privacy for your customers." = "Schutz der Privatsphäre Ihrer Kunden.";
/* No comment provided by engineer. */
"Privacy redefined" = "Datenschutz neu definiert";
@@ -3867,6 +3936,9 @@
/* chat item action */
"Reply" = "Antwort";
/* chat list item title */
"requested to connect" = "Zur Verbindung aufgefordert";
/* No comment provided by engineer. */
"Required" = "Erforderlich";
@@ -3945,12 +4017,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Sicherere Gruppen";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
/* alert button
chat item action */
"Save" = "Speichern";
@@ -3958,7 +4024,7 @@
/* alert button */
"Save (and notify contacts)" = "Speichern (und Kontakte benachrichtigen)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Speichern und Kontakt benachrichtigen";
/* No comment provided by engineer. */
@@ -3979,7 +4045,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Passwort im Schlüsselbund speichern";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Präferenzen speichern?";
/* No comment provided by engineer. */
@@ -4397,6 +4463,9 @@
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "SimpleX-Adresse oder Einmal-Link?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX-Chat und Flux haben vereinbart, die von Flux betriebenen Server in die App aufzunehmen.";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "Die Sicherheit von SimpleX Chat wurde von Trail of Bits überprüft.";
@@ -4577,6 +4646,9 @@
/* No comment provided by engineer. */
"Tap button " = "Schaltfläche antippen ";
/* No comment provided by engineer. */
"Tap Create SimpleX address in the menu to create it later." = "Tippen Sie im Menü auf SimpleX-Adresse erstellen, um sie später zu erstellen.";
/* No comment provided by engineer. */
"Tap to activate profile." = "Zum Aktivieren des Profils tippen.";
@@ -4691,6 +4763,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Das Profil wird nur mit Ihren Kontakten geteilt.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den Betreiber **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Dieselben Nutzungsbedingungen gelten auch für den/die Betreiber: **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "Der zweite voreingestellte Netzwerk-Betreiber in der App!";
@@ -4701,10 +4779,10 @@
"The sender will NOT be notified" = "Der Absender wird NICHT benachrichtigt";
/* No comment provided by engineer. */
"The servers for new connections of your current chat profile **%@**." = "Mögliche Server für neue Verbindungen von Ihrem aktuellen Chat-Profil **%@**.";
"The servers for new connections of your current chat profile **%@**." = "Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil **%@**.";
/* No comment provided by engineer. */
"The servers for new files of your current chat profile **%@**." = "Die Server Deines aktuellen Chat-Profils für neue Dateien **%@**.";
"The servers for new files of your current chat profile **%@**." = "Medien- und Datei-Server für neue Daten über Ihr aktuelles Chat-Profil **%@**.";
/* No comment provided by engineer. */
"The text you pasted is not a SimpleX link." = "Der von Ihnen eingefügte Text ist kein SimpleX-Link.";
@@ -5279,6 +5357,9 @@
/* No comment provided by engineer. */
"You are already connected to %@." = "Sie sind bereits mit %@ verbunden.";
/* No comment provided by engineer. */
"You are already connected with %@." = "Sie sind bereits mit %@ verbunden.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Sie sind bereits mit %@ verbunden.";
@@ -5477,6 +5558,9 @@
/* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Sie können Anrufe und Benachrichtigungen auch von stummgeschalteten Profilen empfangen, solange diese aktiv sind.";
/* No comment provided by engineer. */
"You will stop receiving messages from this chat. Chat history will be preserved." = "Sie werden von diesem Chat keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.";
/* No comment provided by engineer. */
"You will stop receiving messages from this group. Chat history will be preserved." = "Sie werden von dieser Gruppe keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.";
+109 -25
View File
@@ -343,6 +343,9 @@
/* No comment provided by engineer. */
"Abort changing address?" = "¿Cancelar el cambio de servidor?";
/* No comment provided by engineer. */
"About operators" = "Acerca de los operadores";
/* No comment provided by engineer. */
"About SimpleX Chat" = "Sobre SimpleX Chat";
@@ -376,6 +379,9 @@
/* No comment provided by engineer. */
"Accepted conditions" = "Condiciones aceptadas";
/* chat list item title */
"accepted invitation" = "invitación aceptada";
/* No comment provided by engineer. */
"Acknowledged" = "Confirmaciones";
@@ -388,6 +394,9 @@
/* No comment provided by engineer. */
"Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Añade la dirección a tu perfil para que tus contactos puedan compartirla con otros. La actualización del perfil se enviará a tus contactos.";
/* No comment provided by engineer. */
"Add friends" = "Añadir amigos";
/* No comment provided by engineer. */
"Add profile" = "Añadir perfil";
@@ -397,12 +406,18 @@
/* No comment provided by engineer. */
"Add servers by scanning QR codes." = "Añadir servidores mediante el escaneo de códigos QR.";
/* No comment provided by engineer. */
"Add team members" = "Añadir miembros del equipo";
/* No comment provided by engineer. */
"Add to another device" = "Añadir a otro dispositivo";
/* No comment provided by engineer. */
"Add welcome message" = "Añadir mensaje de bienvenida";
/* No comment provided by engineer. */
"Add your team members to the conversations." = "Añade a los miembros de tu equipo a las conversaciones.";
/* No comment provided by engineer. */
"Added media & file servers" = "Servidores de archivos y multimedia añadidos";
@@ -464,7 +479,7 @@
"All data is erased when it is entered." = "Al introducirlo todos los datos son eliminados.";
/* No comment provided by engineer. */
"All data is private to your device." = "Todos los datos son privados y están en tu dispositivo.";
"All data is kept private on your device." = "Todos los datos son privados y están en tu dispositivo.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Todos los miembros del grupo permanecerán conectados.";
@@ -793,6 +808,12 @@
/* No comment provided by engineer. */
"Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Búlgaro, Finlandés, Tailandés y Ucraniano - gracias a los usuarios y [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
/* No comment provided by engineer. */
"Business address" = "Dirección empresarial";
/* No comment provided by engineer. */
"Business chats" = "Chats empresariales";
/* No comment provided by engineer. */
"By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "Mediante perfil (predeterminado) o [por conexión](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).";
@@ -863,6 +884,9 @@
/* No comment provided by engineer. */
"Change" = "Cambiar";
/* authentication reason */
"Change chat profiles" = "Cambiar perfil de usuario";
/* No comment provided by engineer. */
"Change database passphrase?" = "¿Cambiar contraseña de la base de datos?";
@@ -891,9 +915,6 @@
set passcode view */
"Change self-destruct passcode" = "Cambiar código autodestrucción";
/* authentication reason */
"Change chat profiles" = "Cambiar perfil de usuario";
/* chat item text */
"changed address for you" = "ha cambiado tu servidor de envío";
@@ -909,6 +930,15 @@
/* chat item text */
"changing address…" = "cambiando de servidor…";
/* No comment provided by engineer. */
"Chat" = "Chat";
/* No comment provided by engineer. */
"Chat already exists" = "El chat ya existe";
/* No comment provided by engineer. */
"Chat already exists!" = "¡El chat ya existe!";
/* No comment provided by engineer. */
"Chat colors" = "Colores del chat";
@@ -954,6 +984,12 @@
/* No comment provided by engineer. */
"Chat theme" = "Tema de chat";
/* No comment provided by engineer. */
"Chat will be deleted for all members - this cannot be undone!" = "El chat será eliminado para todos los miembros. ¡No podrá deshacerse!";
/* No comment provided by engineer. */
"Chat will be deleted for you - this cannot be undone!" = "El chat será eliminado para tí. ¡No podrá deshacerse!";
/* No comment provided by engineer. */
"Chats" = "Chats";
@@ -1030,7 +1066,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Las condiciones se han aceptado para el(los) operador(s): **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Condiciones de uso";
@@ -1173,7 +1209,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Conectando con ordenador";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "conectando…";
/* No comment provided by engineer. */
@@ -1475,12 +1511,18 @@
/* No comment provided by engineer. */
"Delete and notify contact" = "Eliminar y notificar contacto";
/* No comment provided by engineer. */
"Delete chat" = "Eliminar chat";
/* No comment provided by engineer. */
"Delete chat profile" = "Eliminar perfil";
/* No comment provided by engineer. */
"Delete chat profile?" = "¿Eliminar perfil?";
/* No comment provided by engineer. */
"Delete chat?" = "¿Eliminar chat?";
/* No comment provided by engineer. */
"Delete connection" = "Eliminar conexión";
@@ -1500,7 +1542,7 @@
"Delete file" = "Eliminar archivo";
/* No comment provided by engineer. */
"Delete files and media?" = "Eliminar archivos y multimedia?";
"Delete files and media?" = "¿Eliminar archivos y multimedia?";
/* No comment provided by engineer. */
"Delete files for all chat profiles" = "Eliminar archivos de todos los perfiles";
@@ -1655,6 +1697,9 @@
/* chat feature */
"Direct messages" = "Mensajes directos";
/* No comment provided by engineer. */
"Direct messages between members are prohibited in this chat." = "Mensajes directos no permitidos entre miembros de este chat.";
/* No comment provided by engineer. */
"Direct messages between members are prohibited." = "Los mensajes directos entre miembros del grupo no están permitidos.";
@@ -1798,7 +1843,7 @@
"Enable camera access" = "Permitir acceso a la cámara";
/* No comment provided by engineer. */
"Enable Flux" = "Habilitar Flux";
"Enable Flux" = "Habilita Flux";
/* No comment provided by engineer. */
"Enable for all" = "Activar para todos";
@@ -2296,7 +2341,7 @@
"Fix not supported by group member" = "Corrección no compatible con miembro del grupo";
/* No comment provided by engineer. */
"for better metadata privacy." = "para mayor privacidad de los metadatos.";
"for better metadata privacy." = "para mejorar la privacidad de los metadatos.";
/* servers error */
"For chat profile %@:" = "Para el perfil de chat %@:";
@@ -2694,6 +2739,9 @@
/* No comment provided by engineer. */
"Invite members" = "Invitar miembros";
/* No comment provided by engineer. */
"Invite to chat" = "Invitar al chat";
/* No comment provided by engineer. */
"Invite to group" = "Invitar al grupo";
@@ -2808,6 +2856,12 @@
/* swipe action */
"Leave" = "Salir";
/* No comment provided by engineer. */
"Leave chat" = "Salir del chat";
/* No comment provided by engineer. */
"Leave chat?" = "¿Salir del chat?";
/* No comment provided by engineer. */
"Leave group" = "Salir del grupo";
@@ -2904,12 +2958,18 @@
/* item status text */
"Member inactive" = "Miembro inactivo";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". All chat members will be notified." = "El rol del miembro cambiará a \"%@\" y todos serán notificados.";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". All group members will be notified." = "El rol del miembro cambiará a \"%@\" y se notificará al grupo.";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". The member will receive a new invitation." = "El rol del miembro cambiará a \"%@\" y recibirá una invitación nueva.";
/* No comment provided by engineer. */
"Member will be removed from chat - this cannot be undone!" = "El miembro será eliminado del chat. ¡No podrá deshacerse!";
/* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "El miembro será expulsado del grupo. ¡No podrá deshacerse!";
@@ -3329,6 +3389,9 @@
/* No comment provided by engineer. */
"Onion hosts will not be used." = "No se usarán hosts .onion.";
/* No comment provided by engineer. */
"Only chat owners can change preferences." = "Sólo los propietarios del chat pueden cambiar las preferencias.";
/* No comment provided by engineer. */
"Only client devices store user profiles, contacts, groups, and messages." = "Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes enviados con **cifrado de extremo a extremo de 2 capas**.";
@@ -3407,6 +3470,9 @@
/* alert title */
"Operator server" = "Servidor del operador";
/* No comment provided by engineer. */
"Or import archive file" = "O importa desde un archivo";
/* No comment provided by engineer. */
"Or paste archive link" = "O pegar enlace del archivo";
@@ -3561,7 +3627,7 @@
"Preserve the last message draft, with attachments." = "Conserva el último borrador del mensaje con los datos adjuntos.";
/* No comment provided by engineer. */
"Preset server address" = "Dirección del servidor predefinida";
"Preset server address" = "Dirección predefinida del servidor";
/* No comment provided by engineer. */
"Preset servers" = "Servidores predefinidos";
@@ -3575,6 +3641,9 @@
/* No comment provided by engineer. */
"Privacy & security" = "Seguridad y Privacidad";
/* No comment provided by engineer. */
"Privacy for your customers." = "Privacidad para tus clientes.";
/* No comment provided by engineer. */
"Privacy redefined" = "Privacidad redefinida";
@@ -3693,7 +3762,7 @@
"Read" = "Leer";
/* No comment provided by engineer. */
"Read more" = "Conoce más";
"Read more" = "Saber más";
/* No comment provided by engineer. */
"Read more in [User Guide](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode)." = "Conoce más en la [Guía del Usuario](https://simplex.chat/docs/guide/chat-profiles.html#incognito-mode).";
@@ -3867,6 +3936,9 @@
/* chat item action */
"Reply" = "Responder";
/* chat list item title */
"requested to connect" = "solicitado para conectar";
/* No comment provided by engineer. */
"Required" = "Obligatorio";
@@ -3945,12 +4017,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Grupos más seguros";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
/* alert button
chat item action */
"Save" = "Guardar";
@@ -3958,7 +4024,7 @@
/* alert button */
"Save (and notify contacts)" = "Guardar (y notificar contactos)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Guardar y notificar contacto";
/* No comment provided by engineer. */
@@ -3979,7 +4045,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Guardar la contraseña en Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "¿Guardar preferencias?";
/* No comment provided by engineer. */
@@ -4344,7 +4410,7 @@
"Share profile" = "Comparte perfil";
/* No comment provided by engineer. */
"Share SimpleX address on social media." = "Compartir dirección SimpleX en redes sociales.";
"Share SimpleX address on social media." = "Comparte tu dirección SimpleX en redes sociales.";
/* No comment provided by engineer. */
"Share this 1-time invite link" = "Comparte este enlace de un solo uso";
@@ -4392,10 +4458,13 @@
"SimpleX Address" = "Dirección SimpleX";
/* No comment provided by engineer. */
"SimpleX address and 1-time links are safe to share via any messenger." = "Compartir enlaces de un uso y direcciones SimpleX es seguro a través de cualquier medio.";
"SimpleX address and 1-time links are safe to share via any messenger." = "Compartir los enlaces de un uso y las direcciones SimpleX es seguro a través de cualquier medio.";
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "Dirección SimpleX o enlace de un uso?";
"SimpleX address or 1-time link?" = "¿Dirección SimpleX o enlace de un uso?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "Simplex Chat y Flux han acordado incluir servidores operados por Flux en la aplicación";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "La seguridad de SimpleX Chat ha sido auditada por Trail of Bits.";
@@ -4577,6 +4646,9 @@
/* No comment provided by engineer. */
"Tap button " = "Pulsa el botón ";
/* No comment provided by engineer. */
"Tap Create SimpleX address in the menu to create it later." = "Pulsa Crear dirección SimpleX en el menú para crearla más tarde.";
/* No comment provided by engineer. */
"Tap to activate profile." = "Pulsa sobre un perfil para activarlo.";
@@ -4692,7 +4764,13 @@
"The profile is only shared with your contacts." = "El perfil sólo se comparte con tus contactos.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "El segundo operador predefinido!";
"The same conditions will apply to operator **%@**." = "Las mismas condiciones se aplicarán al operador **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Las mismas condiciones se aplicarán a el/los operador(es) **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "¡Segundo operador predefinido!";
/* No comment provided by engineer. */
"The second tick we missed! ✅" = "¡El doble check que nos faltaba! ✅";
@@ -4701,7 +4779,7 @@
"The sender will NOT be notified" = "El remitente NO será notificado";
/* No comment provided by engineer. */
"The servers for new connections of your current chat profile **%@**." = "Lista de servidores para las conexiones nuevas de tu perfil actual **%@**.";
"The servers for new connections of your current chat profile **%@**." = "Lista de servidores para las conexiones nuevas del perfil **%@**.";
/* No comment provided by engineer. */
"The servers for new files of your current chat profile **%@**." = "Los servidores para archivos nuevos en tu perfil actual **%@**.";
@@ -5277,7 +5355,10 @@
"You already have a chat profile with the same display name. Please choose another name." = "Ya tienes un perfil con este nombre mostrado. Por favor, elige otro nombre.";
/* No comment provided by engineer. */
"You are already connected to %@." = "Ya estás conectado a %@.";
"You are already connected to %@." = "Ya estás conectado con %@.";
/* No comment provided by engineer. */
"You are already connected with %@." = "Ya estás conectado con %@.";
/* No comment provided by engineer. */
"You are already connecting to %@." = "Ya estás conectando con %@.";
@@ -5477,6 +5558,9 @@
/* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Seguirás recibiendo llamadas y notificaciones de los perfiles silenciados cuando estén activos.";
/* No comment provided by engineer. */
"You will stop receiving messages from this chat. Chat history will be preserved." = "Dejarás de recibir mensajes de este chat. El historial del chat se conserva.";
/* No comment provided by engineer. */
"You will stop receiving messages from this group. Chat history will be preserved." = "Dejarás de recibir mensajes de este grupo. El historial del chat se conservará.";
+3 -3
View File
@@ -711,7 +711,7 @@
/* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Yhteyden muodostaminen palvelimeen... (virhe: %@)";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "yhdistää…";
/* No comment provided by engineer. */
@@ -2508,7 +2508,7 @@
/* alert button */
"Save (and notify contacts)" = "Tallenna (ja ilmoita kontakteille)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Tallenna ja ilmoita kontaktille";
/* No comment provided by engineer. */
@@ -2526,7 +2526,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Tallenna tunnuslause Avainnippuun";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Tallenna asetukset?";
/* No comment provided by engineer. */
+4 -4
View File
@@ -431,7 +431,7 @@
"All data is erased when it is entered." = "Toutes les données sont effacées lorsqu'il est saisi.";
/* No comment provided by engineer. */
"All data is private to your device." = "Toutes les données restent confinées dans votre appareil.";
"All data is kept private on your device." = "Toutes les données restent confinées dans votre appareil.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Tous les membres du groupe resteront connectés.";
@@ -1101,7 +1101,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Connexion au bureau";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "connexion…";
/* No comment provided by engineer. */
@@ -3763,7 +3763,7 @@
/* alert button */
"Save (and notify contacts)" = "Enregistrer (et en informer les contacts)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Enregistrer et en informer le contact";
/* No comment provided by engineer. */
@@ -3784,7 +3784,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Enregistrer la phrase secrète dans la Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Enregistrer les préférences?";
/* No comment provided by engineer. */
+31 -19
View File
@@ -344,7 +344,10 @@
"Abort changing address?" = "Címváltoztatás megszakítása??";
/* No comment provided by engineer. */
"About SimpleX Chat" = "A SimpleX Chatről";
"About operators" = "Az üzemeltetőkről";
/* No comment provided by engineer. */
"About SimpleX Chat" = "SimpleX Chat névjegye";
/* No comment provided by engineer. */
"above, then choose:" = "gombra fent, majd válassza ki:";
@@ -376,6 +379,9 @@
/* No comment provided by engineer. */
"Accepted conditions" = "Elfogadott feltételek";
/* chat list item title */
"accepted invitation" = "elfogadott meghívó";
/* No comment provided by engineer. */
"Acknowledged" = "Nyugtázva";
@@ -473,7 +479,7 @@
"All data is erased when it is entered." = "A jelkód megadása után az összes adat törlésre kerül.";
/* No comment provided by engineer. */
"All data is private to your device." = "Az összes adat biztonságban van az eszközén.";
"All data is kept private on your device." = "Az összes adat biztonságban van az eszközén.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Az összes csoporttag kapcsolatban marad.";
@@ -878,6 +884,9 @@
/* No comment provided by engineer. */
"Change" = "Változtatás";
/* authentication reason */
"Change chat profiles" = "Csevegési profilok megváltoztatása";
/* No comment provided by engineer. */
"Change database passphrase?" = "Adatbázis-jelmondat megváltoztatása?";
@@ -906,9 +915,6 @@
set passcode view */
"Change self-destruct passcode" = "Önmegsemmisító jelkód megváltoztatása";
/* authentication reason */
"Change chat profiles" = "Felhasználói profilok megváltoztatása";
/* chat item text */
"changed address for you" = "cím megváltoztatva";
@@ -1060,7 +1066,7 @@
"Conditions are accepted for the operator(s): **%@**." = "A következő üzemeltető(k) számára elfogadott feltételek: **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "A feltételek már el lettek fogadva a következő üzemeltető(k) számára: **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Használati feltételek";
@@ -1203,7 +1209,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Kapcsolódás a számítógéphez";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "kapcsolódás…";
/* No comment provided by engineer. */
@@ -2344,7 +2350,7 @@
"For console" = "Konzolhoz";
/* No comment provided by engineer. */
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Ha például az ismerőse a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása a Flux egyik kiszolgálóját használja a kézbesítéshez.";
"For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server." = "Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.";
/* No comment provided by engineer. */
"For private routing" = "A privát útválasztáshoz";
@@ -3708,7 +3714,7 @@
"Protect app screen" = "Alkalmazás képernyőjének védelme";
/* No comment provided by engineer. */
"Protect IP address" = "IP-cím védelem";
"Protect IP address" = "IP-cím védelme";
/* No comment provided by engineer. */
"Protect your chat profiles with a password!" = "Védje meg a csevegési profiljait egy jelszóval!";
@@ -3930,6 +3936,9 @@
/* chat item action */
"Reply" = "Válasz";
/* chat list item title */
"requested to connect" = "kérelmezve a kapcsolódáshoz";
/* No comment provided by engineer. */
"Required" = "Szükséges";
@@ -4008,12 +4017,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Biztonságosabb csoportok";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
/* alert button
chat item action */
"Save" = "Mentés";
@@ -4021,7 +4024,7 @@
/* alert button */
"Save (and notify contacts)" = "Mentés és az ismerősök értesítése";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Mentés és az ismerős értesítése";
/* No comment provided by engineer. */
@@ -4042,7 +4045,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Jelmondat mentése a kulcstartóba";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Beállítások mentése?";
/* No comment provided by engineer. */
@@ -4460,6 +4463,9 @@
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "SimpleX-cím vagy egyszer használható meghívó-hivatkozás?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "A SimpleX Chat és a Flux megállapodást kötött arról, hogy a Flux által üzemeltetett kiszolgálókat beépítik az alkalmazásba.";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "A SimpleX Chat biztonsága a Trail of Bits által lett auditálva.";
@@ -4757,6 +4763,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "A profilja csak az ismerőseivel kerül megosztásra.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltetőre is: **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "A második előre beállított üzemeltető az alkalmazásban!";
@@ -5397,7 +5409,7 @@
"You can configure operators in Network & servers settings." = "Az üzemeltetőket a „Hálózat és kiszolgálók” beállításaban konfigurálhatja.";
/* No comment provided by engineer. */
"You can configure servers via settings." = "A kiszolgálókat a beállításokon keresztül konfigurálhatja.";
"You can configure servers via settings." = "A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja.";
/* No comment provided by engineer. */
"You can create it later" = "Létrehozás később";
@@ -5427,7 +5439,7 @@
"You can set connection name, to remember who the link was shared with." = "Beállíthatja az ismerős nevét, hogy emlékezzen arra, hogy kivel osztotta meg a hivatkozást.";
/* No comment provided by engineer. */
"You can set lock screen notification preview via settings." = "A beállításokon keresztül beállíthatja a lezárási képernyő értesítési előnézetét.";
"You can set lock screen notification preview via settings." = "A lezárási képernyő értesítési előnézetét az „Értesítések” menüben állíthatja be.";
/* No comment provided by engineer. */
"You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it." = "Megoszthat egy hivatkozást vagy QR-kódot - így bárki csatlakozhat a csoporthoz. Ha a csoport később törlésre kerül, akkor nem fogja elveszíteni annak tagjait.";
+26 -23
View File
@@ -473,7 +473,7 @@
"All data is erased when it is entered." = "Tutti i dati vengono cancellati quando inserito.";
/* No comment provided by engineer. */
"All data is private to your device." = "Tutti i dati sono privati, nel tuo dispositivo.";
"All data is kept private on your device." = "Tutti i dati sono privati, nel tuo dispositivo.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi.";
@@ -689,10 +689,10 @@
"Auto-accept" = "Accetta automaticamente";
/* No comment provided by engineer. */
"Auto-accept contact requests" = "Auto-accetta richieste di contatto";
"Auto-accept contact requests" = "Auto-accetta le richieste di contatto";
/* No comment provided by engineer. */
"Auto-accept images" = "Auto-accetta immagini";
"Auto-accept images" = "Auto-accetta le immagini";
/* alert title */
"Auto-accept settings" = "Accetta automaticamente le impostazioni";
@@ -779,7 +779,7 @@
"Blur for better privacy." = "Sfoca per una privacy maggiore.";
/* No comment provided by engineer. */
"Blur media" = "Sfocatura file multimediali";
"Blur media" = "Sfocatura dei file multimediali";
/* No comment provided by engineer. */
"bold" = "grassetto";
@@ -878,6 +878,9 @@
/* No comment provided by engineer. */
"Change" = "Cambia";
/* authentication reason */
"Change chat profiles" = "Modifica profili utente";
/* No comment provided by engineer. */
"Change database passphrase?" = "Cambiare password del database?";
@@ -906,9 +909,6 @@
set passcode view */
"Change self-destruct passcode" = "Cambia codice di autodistruzione";
/* authentication reason */
"Change chat profiles" = "Modifica profili utente";
/* chat item text */
"changed address for you" = "indirizzo cambiato per te";
@@ -1060,7 +1060,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Le condizioni sono state accettate per gli operatori: **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Le condizioni sono già state accettate per i seguenti operatori: **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Le condizioni sono già state accettate per i seguenti operatori: **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Condizioni d'uso";
@@ -1203,7 +1203,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Connessione al desktop";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "in connessione…";
/* No comment provided by engineer. */
@@ -3004,7 +3004,7 @@
"Message delivery warning" = "Avviso di consegna del messaggio";
/* No comment provided by engineer. */
"Message draft" = "Bozza dei messaggi";
"Message draft" = "Bozza del messaggio";
/* item status text */
"Message forwarded" = "Messaggio inoltrato";
@@ -3982,10 +3982,10 @@
"Reveal" = "Rivela";
/* No comment provided by engineer. */
"Review conditions" = "Esamina le condizioni";
"Review conditions" = "Leggi le condizioni";
/* No comment provided by engineer. */
"Review later" = "Esamina più tardi";
"Review later" = "Leggi più tardi";
/* No comment provided by engineer. */
"Revoke" = "Revoca";
@@ -4008,12 +4008,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Gruppi più sicuri";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
/* alert button
chat item action */
"Save" = "Salva";
@@ -4021,7 +4015,7 @@
/* alert button */
"Save (and notify contacts)" = "Salva (e avvisa i contatti)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Salva e avvisa il contatto";
/* No comment provided by engineer. */
@@ -4042,7 +4036,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Salva password nel portachiavi";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Salvare le preferenze?";
/* No comment provided by engineer. */
@@ -4187,7 +4181,7 @@
"Send errors" = "Errori di invio";
/* No comment provided by engineer. */
"Send link previews" = "Invia anteprime dei link";
"Send link previews" = "Invia le anteprime dei link";
/* No comment provided by engineer. */
"Send live message" = "Invia messaggio in diretta";
@@ -4407,7 +4401,7 @@
"Share profile" = "Condividi il profilo";
/* No comment provided by engineer. */
"Share SimpleX address on social media." = "Condividi indirizzo SimpleX sui social media.";
"Share SimpleX address on social media." = "Condividi l'indirizzo SimpleX sui social media.";
/* No comment provided by engineer. */
"Share this 1-time invite link" = "Condividi questo link di invito una tantum";
@@ -4460,6 +4454,9 @@
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "Indirizzo SimpleX o link una tantum?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX Chat e Flux hanno concluso un accordo per includere server gestiti da Flux nell'app";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "La sicurezza di SimpleX Chat è stata verificata da Trail of Bits.";
@@ -4641,7 +4638,7 @@
"Tap button " = "Tocca il pulsante ";
/* No comment provided by engineer. */
"Tap Create SimpleX address in the menu to create it later." = "Tocca \"Crea indirizzo SimpleX\" nel menu per crearlo più tardi.";
"Tap Create SimpleX address in the menu to create it later." = "Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi.";
/* No comment provided by engineer. */
"Tap to activate profile." = "Tocca per attivare il profilo.";
@@ -4757,6 +4754,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Il profilo è condiviso solo con i tuoi contatti.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Le stesse condizioni si applicheranno all'operatore **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Le stesse condizioni si applicheranno agli operatori **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "Il secondo operatore preimpostato nell'app!";
+3 -3
View File
@@ -828,7 +828,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "デスクトップに接続中";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "接続待ち…";
/* No comment provided by engineer. */
@@ -2655,7 +2655,7 @@
/* alert button */
"Save (and notify contacts)" = "保存(連絡先に通知)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "保存して、連絡先にに知らせる";
/* No comment provided by engineer. */
@@ -2673,7 +2673,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "パスフレーズをキーチェーンに保存";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "この設定でよろしいですか?";
/* No comment provided by engineer. */
+26 -14
View File
@@ -343,6 +343,9 @@
/* No comment provided by engineer. */
"Abort changing address?" = "Adres wijziging afbreken?";
/* No comment provided by engineer. */
"About operators" = "Over operatoren";
/* No comment provided by engineer. */
"About SimpleX Chat" = "Over SimpleX Chat";
@@ -376,6 +379,9 @@
/* No comment provided by engineer. */
"Accepted conditions" = "Geaccepteerde voorwaarden";
/* chat list item title */
"accepted invitation" = "geaccepteerde uitnodiging";
/* No comment provided by engineer. */
"Acknowledged" = "Erkend";
@@ -473,7 +479,7 @@
"All data is erased when it is entered." = "Alle gegevens worden bij het invoeren gewist.";
/* No comment provided by engineer. */
"All data is private to your device." = "Alle gegevens zijn privé op uw apparaat.";
"All data is kept private on your device." = "Alle gegevens zijn privé op uw apparaat.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Alle groepsleden blijven verbonden.";
@@ -878,6 +884,9 @@
/* No comment provided by engineer. */
"Change" = "Veranderen";
/* authentication reason */
"Change chat profiles" = "Gebruikersprofielen wijzigen";
/* No comment provided by engineer. */
"Change database passphrase?" = "Wachtwoord database wijzigen?";
@@ -906,9 +915,6 @@
set passcode view */
"Change self-destruct passcode" = "Zelfvernietigings code wijzigen";
/* authentication reason */
"Change chat profiles" = "Gebruikersprofielen wijzigen";
/* chat item text */
"changed address for you" = "adres voor u gewijzigd";
@@ -1060,7 +1066,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Voorwaarden worden geaccepteerd voor de operator(s): **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Voorwaarden zijn reeds geaccepteerd voor de volgende operator(s): **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Gebruiksvoorwaarden";
@@ -1203,7 +1209,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Verbinding maken met desktop";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "Verbinden…";
/* No comment provided by engineer. */
@@ -3930,6 +3936,9 @@
/* chat item action */
"Reply" = "Antwoord";
/* chat list item title */
"requested to connect" = "gevraagd om verbinding te maken";
/* No comment provided by engineer. */
"Required" = "Vereist";
@@ -4008,12 +4017,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Veiligere groepen";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
/* alert button
chat item action */
"Save" = "Opslaan";
@@ -4021,7 +4024,7 @@
/* alert button */
"Save (and notify contacts)" = "Bewaar (en informeer contacten)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Opslaan en Contact melden";
/* No comment provided by engineer. */
@@ -4042,7 +4045,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Sla het wachtwoord op in de Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Voorkeuren opslaan?";
/* No comment provided by engineer. */
@@ -4460,6 +4463,9 @@
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "SimpleX adres of eenmalige link?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "Simplex-chat en flux hebben een overeenkomst gemaakt om door flux geëxploiteerde servers in de app op te nemen.";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits.";
@@ -4757,6 +4763,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Het profiel wordt alleen gedeeld met uw contacten.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Dezelfde voorwaarden gelden voor operator **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Dezelfde voorwaarden gelden voor operator(s): **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "De tweede vooraf ingestelde operator in de app!";
+4 -4
View File
@@ -431,7 +431,7 @@
"All data is erased when it is entered." = "Wszystkie dane są usuwane po jego wprowadzeniu.";
/* No comment provided by engineer. */
"All data is private to your device." = "Wszystkie dane są prywatne na Twoim urządzeniu.";
"All data is kept private on your device." = "Wszystkie dane są prywatne na Twoim urządzeniu.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Wszyscy członkowie grupy pozostaną połączeni.";
@@ -1086,7 +1086,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Łączenie z komputerem";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "łączenie…";
/* No comment provided by engineer. */
@@ -3736,7 +3736,7 @@
/* alert button */
"Save (and notify contacts)" = "Zapisz (i powiadom kontakty)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Zapisz i powiadom kontakt";
/* No comment provided by engineer. */
@@ -3757,7 +3757,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Zapisz hasło w pęku kluczy";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Zapisać preferencje?";
/* No comment provided by engineer. */
+29 -17
View File
@@ -83,7 +83,7 @@
"**Recommended**: device token and end-to-end encrypted notifications are sent to SimpleX Chat push server, but it does not see the message content, size or who it is from." = "**Рекомендовано**: токен устройства и уведомления отправляются на сервер SimpleX Chat, но сервер не получает сами сообщения, их размер или от кого они.";
/* No comment provided by engineer. */
"**Scan / Paste link**: to connect via a link you received." = "**Сканировать / Вставить ссылку**: чтобы соединится через полученную ссылку.";
"**Scan / Paste link**: to connect via a link you received." = "**Сканировать / Вставить ссылку**: чтобы соединиться через полученную ссылку.";
/* No comment provided by engineer. */
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain.";
@@ -343,6 +343,9 @@
/* No comment provided by engineer. */
"Abort changing address?" = "Прекратить изменение адреса?";
/* No comment provided by engineer. */
"About operators" = "Об операторах";
/* No comment provided by engineer. */
"About SimpleX Chat" = "Информация о SimpleX Chat";
@@ -376,6 +379,9 @@
/* No comment provided by engineer. */
"Accepted conditions" = "Принятые условия";
/* chat list item title */
"accepted invitation" = "принятое приглашение";
/* No comment provided by engineer. */
"Acknowledged" = "Подтверждено";
@@ -473,7 +479,7 @@
"All data is erased when it is entered." = "Все данные удаляются при его вводе.";
/* No comment provided by engineer. */
"All data is private to your device." = "Все данные хранятся только на вашем устройстве.";
"All data is kept private on your device." = "Все данные хранятся только на вашем устройстве.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе.";
@@ -878,6 +884,9 @@
/* No comment provided by engineer. */
"Change" = "Поменять";
/* authentication reason */
"Change chat profiles" = "Поменять профили";
/* No comment provided by engineer. */
"Change database passphrase?" = "Поменять пароль базы данных?";
@@ -906,9 +915,6 @@
set passcode view */
"Change self-destruct passcode" = "Изменить код самоуничтожения";
/* authentication reason */
"Change chat profiles" = "Поменять профили";
/* chat item text */
"changed address for you" = "поменял(а) адрес для Вас";
@@ -1060,7 +1066,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Условия приняты для оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Условия уже приняты для следующих оператора(ов): **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Условия уже приняты для следующих оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Условия использования";
@@ -1203,7 +1209,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Подключение к компьютеру";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "соединяется…";
/* No comment provided by engineer. */
@@ -3714,7 +3720,7 @@
"Protect your chat profiles with a password!" = "Защитите Ваши профили чата паролем!";
/* No comment provided by engineer. */
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.\nВключите в настройках *Сеть и серверы*.";
"Protect your IP address from the messaging relays chosen by your contacts.\nEnable in *Network & servers* settings." = "Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.\nВключите в настройках *Сети и серверов*.";
/* No comment provided by engineer. */
"Protocol timeout" = "Таймаут протокола";
@@ -3930,6 +3936,9 @@
/* chat item action */
"Reply" = "Ответить";
/* chat list item title */
"requested to connect" = "запрошено соединение";
/* No comment provided by engineer. */
"Required" = "Обязательно";
@@ -4008,12 +4017,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Более безопасные группы";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Те же самые условия будут приняты для оператора **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Те же самые условия будут приняты для оператора(ов): **%@**.";
/* alert button
chat item action */
"Save" = "Сохранить";
@@ -4021,7 +4024,7 @@
/* alert button */
"Save (and notify contacts)" = "Сохранить (и уведомить контакты)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Сохранить и уведомить контакт";
/* No comment provided by engineer. */
@@ -4042,7 +4045,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Сохранить пароль в Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Сохранить предпочтения?";
/* No comment provided by engineer. */
@@ -4460,6 +4463,9 @@
/* No comment provided by engineer. */
"SimpleX address or 1-time link?" = "Адрес SimpleX или одноразовая ссылка?";
/* No comment provided by engineer. */
"SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app." = "SimpleX Chat и Flux заключили соглашение добавить серверы под управлением Flux в приложение.";
/* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "Безопасность SimpleX Chat была проверена Trail of Bits.";
@@ -4757,6 +4763,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Профиль отправляется только Вашим контактам.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Те же самые условия будут приняты для оператора **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Те же самые условия будут приняты для оператора(ов): **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "Второй оператор серверов в приложении!";
@@ -5394,7 +5406,7 @@
"You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса.";
/* No comment provided by engineer. */
"You can configure operators in Network & servers settings." = "Вы можете настроить операторов в настройках Сеть и серверы.";
"You can configure operators in Network & servers settings." = "Вы можете настроить операторов в настройках Сети и серверов.";
/* No comment provided by engineer. */
"You can configure servers via settings." = "Вы можете настроить серверы позже.";
+3 -3
View File
@@ -681,7 +681,7 @@
/* No comment provided by engineer. */
"Connecting server… (error: %@)" = "กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "กำลังเชื่อมต่อ…";
/* No comment provided by engineer. */
@@ -2439,7 +2439,7 @@
/* alert button */
"Save (and notify contacts)" = "บันทึก (และแจ้งผู้ติดต่อ)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "บันทึกและแจ้งผู้ติดต่อ";
/* No comment provided by engineer. */
@@ -2457,7 +2457,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "บันทึกข้อความรหัสผ่านใน Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "บันทึกการตั้งค่า?";
/* No comment provided by engineer. */
+4 -4
View File
@@ -431,7 +431,7 @@
"All data is erased when it is entered." = "Kullanıldığında bütün veriler silinir.";
/* No comment provided by engineer. */
"All data is private to your device." = "Tüm veriler cihazınıza özeldir.";
"All data is kept private on your device." = "Tüm veriler cihazınıza özeldir.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Tüm grup üyeleri bağlı kalacaktır.";
@@ -1101,7 +1101,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Bilgisayara bağlanıyor";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "bağlanılıyor…";
/* No comment provided by engineer. */
@@ -3763,7 +3763,7 @@
/* alert button */
"Save (and notify contacts)" = "Kaydet (ve kişilere bildir)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Kaydet ve kişilere bildir";
/* No comment provided by engineer. */
@@ -3784,7 +3784,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Parolayı Anahtar Zincirinde kaydet";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Tercihler kaydedilsin mi?";
/* No comment provided by engineer. */
+14 -17
View File
@@ -464,7 +464,7 @@
"All data is erased when it is entered." = "Всі дані стираються при введенні.";
/* No comment provided by engineer. */
"All data is private to your device." = "Всі дані є приватними для вашого пристрою.";
"All data is kept private on your device." = "Всі дані є приватними для вашого пристрою.";
/* No comment provided by engineer. */
"All group members will remain connected." = "Всі учасники групи залишаться на зв'язку.";
@@ -863,6 +863,9 @@
/* No comment provided by engineer. */
"Change" = "Зміна";
/* authentication reason */
"Change chat profiles" = "Зміна профілів користувачів";
/* No comment provided by engineer. */
"Change database passphrase?" = "Змінити пароль до бази даних?";
@@ -891,9 +894,6 @@
set passcode view */
"Change self-destruct passcode" = "Змінити пароль самознищення";
/* authentication reason */
"Change chat profiles" = "Зміна профілів користувачів";
/* chat item text */
"changed address for you" = "змінили для вас адресу";
@@ -1030,7 +1030,7 @@
"Conditions are accepted for the operator(s): **%@**." = "Для оператора(ів) приймаються умови: **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for following operator(s): **%@**." = "Умови вже прийняті для наступних операторів: **%@**.";
"Conditions are already accepted for these operator(s): **%@**." = "Умови вже прийняті для наступних операторів: **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Умови використання";
@@ -1173,7 +1173,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "Підключення до ПК";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "з'єднання…";
/* No comment provided by engineer. */
@@ -3668,9 +3668,6 @@
/* No comment provided by engineer. */
"Proxy requires password" = "Проксі вимагає пароль";
/* No comment provided by engineer. */
"Push notifications" = "Push-повідомлення";
/* No comment provided by engineer. */
"Push notifications" = "Push-сповіщення";
@@ -3948,12 +3945,6 @@
/* No comment provided by engineer. */
"Safer groups" = "Безпечніші групи";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
/* alert button
chat item action */
"Save" = "Зберегти";
@@ -3961,7 +3952,7 @@
/* alert button */
"Save (and notify contacts)" = "Зберегти (і повідомити контактам)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "Зберегти та повідомити контакт";
/* No comment provided by engineer. */
@@ -3982,7 +3973,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "Збережіть парольну фразу в Keychain";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "Зберегти настройки?";
/* No comment provided by engineer. */
@@ -4694,6 +4685,12 @@
/* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Профіль доступний лише вашим контактам.";
/* No comment provided by engineer. */
"The same conditions will apply to operator **%@**." = "Такі ж умови діятимуть і для оператора **%@**.";
/* No comment provided by engineer. */
"The same conditions will apply to operator(s): **%@**." = "Такі ж умови будуть застосовуватися до оператора(ів): **%@**.";
/* No comment provided by engineer. */
"The second preset operator in the app!" = "Другий попередньо встановлений оператор у застосунку!";
+4 -4
View File
@@ -413,7 +413,7 @@
"All data is erased when it is entered." = "所有数据在输入后将被删除。";
/* No comment provided by engineer. */
"All data is private to your device." = "所有数据都是您设备的私有数据.";
"All data is kept private on your device." = "所有数据都是您设备的私有数据.";
/* No comment provided by engineer. */
"All group members will remain connected." = "所有群组成员将保持连接。";
@@ -1059,7 +1059,7 @@
/* No comment provided by engineer. */
"Connecting to desktop" = "正连接到桌面";
/* chat list item title */
/* No comment provided by engineer. */
"connecting…" = "连接中……";
/* No comment provided by engineer. */
@@ -3634,7 +3634,7 @@
/* alert button */
"Save (and notify contacts)" = "保存(并通知联系人)";
/* No comment provided by engineer. */
/* alert button */
"Save and notify contact" = "保存并通知联系人";
/* No comment provided by engineer. */
@@ -3655,7 +3655,7 @@
/* No comment provided by engineer. */
"Save passphrase in Keychain" = "在钥匙串中保存密码";
/* No comment provided by engineer. */
/* alert title */
"Save preferences?" = "保存偏好设置?";
/* No comment provided by engineer. */
@@ -115,7 +115,6 @@
android:launchMode="singleInstance"
android:supportsPictureInPicture="true"
android:autoRemoveFromRecents="true"
android:screenOrientation="portrait"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"/>
<provider
@@ -360,6 +360,8 @@ class SimplexApp: Application(), LifecycleEventObserver {
return true
}
override fun androidCreateActiveCallState(): Closeable = ActiveCallState()
override val androidApiLevel: Int get() = Build.VERSION.SDK_INT
}
}
@@ -71,8 +71,12 @@ class PostSCallAudioDeviceManager: CallAudioDeviceManagerInterface {
}
override fun stop() {
am.unregisterAudioDeviceCallback(audioCallback)
am.removeOnCommunicationDeviceChangedListener(listener)
try {
am.unregisterAudioDeviceCallback(audioCallback)
am.removeOnCommunicationDeviceChangedListener(listener)
} catch (e: Exception) {
Log.e(TAG, e.stackTraceToString())
}
}
override fun selectLastExternalDeviceOrDefault(speaker: Boolean, keepAnyExternal: Boolean) {
@@ -6,12 +6,12 @@ import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.content.*
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.media.*
import android.os.Build
import android.os.PowerManager
import android.os.PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK
import android.os.PowerManager.WakeLock
import android.view.View
import android.view.ViewGroup
import android.webkit.*
@@ -23,7 +23,6 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -47,7 +46,6 @@ import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.helpers.*
import chat.simplex.common.views.onboarding.OnboardingStage
import chat.simplex.res.MR
import com.google.accompanist.permissions.*
import dev.icerock.moko.resources.StringResource
@@ -58,6 +56,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.datetime.Clock
import kotlinx.serialization.encodeToString
import java.io.Closeable
// Should be destroy()'ed and set as null when call is ended. Otherwise, it will be a leak
@SuppressLint("StaticFieldLeak")
@@ -72,49 +71,62 @@ fun activeCallDestroyWebView() = withApi {
Log.d(TAG, "CallView: webview was destroyed")
}
@SuppressLint("SourceLockedOrientationActivity")
@Composable
actual fun ActiveCallView() {
val call = remember { chatModel.activeCall }.value
val scope = rememberCoroutineScope()
val proximityLock = remember {
class ActiveCallState: Closeable {
val proximityLock: WakeLock? = screenOffWakeLock()
var wasConnected = false
val callAudioDeviceManager = CallAudioDeviceManagerInterface.new()
private var closed = false
init {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
callAudioDeviceManager.start()
}
}
override fun close() {
if (closed) return
closed = true
CallSoundsPlayer.stop()
if (wasConnected) {
CallSoundsPlayer.vibrate()
}
callAudioDeviceManager.stop()
dropAudioManagerOverrides()
if (proximityLock?.isHeld == true) {
proximityLock.release()
}
}
private fun screenOffWakeLock(): WakeLock? {
val pm = (androidAppContext.getSystemService(Context.POWER_SERVICE) as PowerManager)
if (pm.isWakeLockLevelSupported(PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
return if (pm.isWakeLockLevelSupported(PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, androidAppContext.packageName + ":proximityLock")
} else {
null
}
}
val wasConnected = rememberSaveable { mutableStateOf(false) }
}
@SuppressLint("SourceLockedOrientationActivity")
@Composable
actual fun ActiveCallView() {
val call = remember { chatModel.activeCall }.value
val callState = call?.androidCallState as ActiveCallState?
val scope = rememberCoroutineScope()
LaunchedEffect(call) {
if (call?.callState == CallState.Connected && !wasConnected.value) {
if (call?.callState == CallState.Connected && callState != null && !callState.wasConnected) {
CallSoundsPlayer.vibrate(2)
wasConnected.value = true
callState.wasConnected = true
}
}
val callAudioDeviceManager = remember { CallAudioDeviceManagerInterface.new() }
DisposableEffect(Unit) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
callAudioDeviceManager.start()
}
onDispose {
CallSoundsPlayer.stop()
if (wasConnected.value) {
CallSoundsPlayer.vibrate()
}
callAudioDeviceManager.stop()
dropAudioManagerOverrides()
if (proximityLock?.isHeld == true) {
proximityLock.release()
}
}
}
LaunchedEffect(chatModel.activeCallViewIsCollapsed.value) {
LaunchedEffect(callState, chatModel.activeCallViewIsCollapsed.value) {
callState ?: return@LaunchedEffect
if (chatModel.activeCallViewIsCollapsed.value) {
if (proximityLock?.isHeld == true) proximityLock.release()
if (callState.proximityLock?.isHeld == true) callState.proximityLock.release()
} else {
delay(1000)
if (proximityLock?.isHeld == false) proximityLock.acquire()
if (callState.proximityLock?.isHeld == false) callState.proximityLock.acquire()
}
}
Box(Modifier.fillMaxSize()) {
@@ -122,6 +134,7 @@ actual fun ActiveCallView() {
Log.d(TAG, "received from WebRTCView: $apiMsg")
val call = chatModel.activeCall.value
if (call != null) {
val callState = call.androidCallState as ActiveCallState
Log.d(TAG, "has active call $call")
val callRh = call.remoteHostId
when (val r = apiMsg.resp) {
@@ -131,9 +144,9 @@ actual fun ActiveCallView() {
updateActiveCall(call) { it.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities) }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
// Starting is delayed to make Android <= 11 working good with Bluetooth
callAudioDeviceManager.start()
callState.callAudioDeviceManager.start()
} else {
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
}
CallSoundsPlayer.startConnectingCallSound(scope)
activeCallWaitDeliveryReceipt(scope)
@@ -143,9 +156,9 @@ actual fun ActiveCallView() {
updateActiveCall(call) { it.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities) }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
// Starting is delayed to make Android <= 11 working good with Bluetooth
callAudioDeviceManager.start()
callState.callAudioDeviceManager.start()
} else {
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
}
}
is WCallResponse.Answer -> withBGApi {
@@ -228,14 +241,14 @@ actual fun ActiveCallView() {
!chatModel.activeCallViewIsCollapsed.value -> true
else -> false
}
if (call != null && showOverlay) {
ActiveCallOverlay(call, chatModel, callAudioDeviceManager)
if (call != null && showOverlay && callState != null) {
ActiveCallOverlay(call, chatModel, callState.callAudioDeviceManager)
}
}
KeyChangeEffect(call?.localMediaSources?.hasVideo) {
if (call != null && call.hasVideo && callAudioDeviceManager.currentDevice.value?.type == AudioDeviceInfo.TYPE_BUILTIN_EARPIECE) {
KeyChangeEffect(callState, call?.localMediaSources?.hasVideo) {
if (call != null && call.hasVideo && callState != null && callState.callAudioDeviceManager.currentDevice.value?.type == AudioDeviceInfo.TYPE_BUILTIN_EARPIECE) {
// enabling speaker on user action (peer action ignored) and not disabling it again
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
}
}
val context = LocalContext.current
@@ -243,16 +256,12 @@ actual fun ActiveCallView() {
val activity = context as? Activity ?: return@DisposableEffect onDispose {}
val prevVolumeControlStream = activity.volumeControlStream
activity.volumeControlStream = AudioManager.STREAM_VOICE_CALL
// Lock orientation to portrait in order to have good experience with calls
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
chatModel.activeCallViewIsVisible.value = true
// After the first call, End command gets added to the list which prevents making another calls
chatModel.callCommand.removeAll { it is WCallCommand.End }
keepScreenOn(true)
onDispose {
activity.volumeControlStream = prevVolumeControlStream
// Unlock orientation
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
chatModel.activeCallViewIsVisible.value = false
chatModel.callCommand.clear()
keepScreenOn(false)
@@ -264,8 +273,8 @@ actual fun ActiveCallView() {
private fun ActiveCallOverlay(call: Call, chatModel: ChatModel, callAudioDeviceManager: CallAudioDeviceManagerInterface) {
ActiveCallOverlayLayout(
call = call,
devices = remember { callAudioDeviceManager.devices }.value,
currentDevice = remember { callAudioDeviceManager.currentDevice },
devices = remember(callAudioDeviceManager) { callAudioDeviceManager.devices }.value,
currentDevice = remember(callAudioDeviceManager) { callAudioDeviceManager.currentDevice },
dismiss = { withBGApi { chatModel.callManager.endCall(call) } },
toggleAudio = { chatModel.callCommand.add(WCallCommand.Media(CallMediaSource.Mic, enable = !call.localMediaSources.mic)) },
selectDevice = { callAudioDeviceManager.selectDevice(it.id) },
@@ -832,7 +841,8 @@ fun PreviewActiveCallOverlayVideo() {
connectionInfo = ConnectionInfo(
RTCIceCandidate(RTCIceCandidateType.Host, "tcp"),
RTCIceCandidate(RTCIceCandidateType.Host, "tcp")
)
),
androidCallState = {}
),
devices = emptyList(),
currentDevice = remember { mutableStateOf(null) },
@@ -841,7 +851,7 @@ fun PreviewActiveCallOverlayVideo() {
selectDevice = {},
toggleVideo = {},
toggleSound = {},
flipCamera = {}
flipCamera = {},
)
}
}
@@ -862,7 +872,8 @@ fun PreviewActiveCallOverlayAudio() {
connectionInfo = ConnectionInfo(
RTCIceCandidate(RTCIceCandidateType.Host, "udp"),
RTCIceCandidate(RTCIceCandidateType.Host, "udp")
)
),
androidCallState = {}
),
devices = emptyList(),
currentDevice = remember { mutableStateOf(null) },
@@ -1895,8 +1895,9 @@ class PendingContactConnection(
generalGetString(MR.strings.display_name_connection_established)
} else {
generalGetString(
if (initiated && !viaContactUri) MR.strings.display_name_invited_to_connect
else MR.strings.display_name_connecting
if (viaContactUri) MR.strings.display_name_requested_to_connect
else if (initiated) MR.strings.display_name_invited_to_connect
else MR.strings.display_name_accepted_invitation
)
}
}
@@ -3669,14 +3669,13 @@ enum class ServerProtocol {
@Serializable
enum class OperatorTag {
@SerialName("simplex") SimpleX,
@SerialName("flux") Flux,
@SerialName("xyz") XYZ,
@SerialName("demo") Demo
@SerialName("flux") Flux
}
data class ServerOperatorInfo(
val description: List<String>,
val website: String,
val selfhost: Pair<String, String>? = null,
val logo: ImageResource,
val largeLogo: ImageResource,
val logoDarkMode: ImageResource,
@@ -3696,31 +3695,17 @@ val operatorsInfo: Map<OperatorTag, ServerOperatorInfo> = mapOf(
),
OperatorTag.Flux to ServerOperatorInfo(
description = listOf(
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.",
"Flux offers a powerful, scalable, and affordable platform designed to support individuals, businesses, and cutting-edge technologies like AI. With high uptime and worldwide distribution, Flux ensures reliable, accessible cloud computing for all."
"Flux is the largest decentralized cloud, based on a global network of user-operated nodes.",
"Flux offers a powerful, scalable, and affordable cutting edge technology platform for all.",
"Flux operates servers in SimpleX network to improve its privacy and decentralization."
),
website = "https://runonflux.com",
selfhost = "Self-host SimpleX servers on Flux" to "https://home.runonflux.io/apps/marketplace?q=simplex",
logo = MR.images.flux_logo_symbol,
largeLogo = MR.images.flux_logo,
logoDarkMode = MR.images.flux_logo_symbol,
largeLogoDarkMode = MR.images.flux_logo_light
),
OperatorTag.XYZ to ServerOperatorInfo(
description = listOf("XYZ servers"),
website = "XYZ website",
logo = MR.images.shield,
largeLogo = MR.images.logo,
logoDarkMode = MR.images.shield,
largeLogoDarkMode = MR.images.logo_light
),
OperatorTag.Demo to ServerOperatorInfo(
description = listOf("Demo operator"),
website = "Demo website",
logo = MR.images.decentralized,
largeLogo = MR.images.logo,
logoDarkMode = MR.images.decentralized_light,
largeLogoDarkMode = MR.images.logo_light
)
)
@Serializable
@@ -3800,7 +3785,7 @@ data class ServerOperator(
companion object {
val dummyOperatorInfo = ServerOperatorInfo(
description = listOf("Default"),
website = "Default",
website = "https://simplex.chat",
logo = MR.images.decentralized,
largeLogo = MR.images.logo,
logoDarkMode = MR.images.decentralized_light,
@@ -3818,30 +3803,6 @@ data class ServerOperator(
smpRoles = ServerRoles(storage = true, proxy = true),
xftpRoles = ServerRoles(storage = true, proxy = true)
)
val sampleData2 = ServerOperator(
operatorId = 2,
operatorTag = OperatorTag.XYZ,
tradeName = "XYZ",
legalName = null,
serverDomains = listOf("xyz.com"),
conditionsAcceptance = ConditionsAcceptance.Required(deadline = null),
enabled = false,
smpRoles = ServerRoles(storage = false, proxy = true),
xftpRoles = ServerRoles(storage = false, proxy = true)
)
val sampleData3 = ServerOperator(
operatorId = 3,
operatorTag = OperatorTag.Demo,
tradeName = "Demo",
legalName = null,
serverDomains = listOf("demo.com"),
conditionsAcceptance = ConditionsAcceptance.Required(deadline = null),
enabled = false,
smpRoles = ServerRoles(storage = true, proxy = false),
xftpRoles = ServerRoles(storage = true, proxy = false)
)
}
val id: Long
@@ -10,6 +10,7 @@ import chat.simplex.common.model.ChatId
import chat.simplex.common.model.NotificationsMode
import chat.simplex.common.ui.theme.CurrentColors
import kotlinx.coroutines.Job
import java.io.Closeable
interface PlatformInterface {
suspend fun androidServiceStart() {}
@@ -26,6 +27,7 @@ interface PlatformInterface {
fun androidPictureInPictureAllowed(): Boolean = true
fun androidCallEnded() {}
fun androidRestartNetworkObserver() {}
fun androidCreateActiveCallState(): Closeable = Closeable { }
fun androidIsXiaomiDevice(): Boolean = false
val androidApiLevel: Int? get() = null
@Composable fun androidLockPortraitOrientation() {}
@@ -609,6 +609,7 @@ fun themedBackgroundBrush(): Brush = Brush.linearGradient(
)
val DEFAULT_PADDING = 20.dp
val DEFAULT_ONBOARDING_HORIZONTAL_PADDING = 25.dp
val DEFAULT_SPACE_AFTER_ICON = 4.dp
val DEFAULT_PADDING_HALF = DEFAULT_PADDING / 2
val DEFAULT_BOTTOM_PADDING = 48.dp
@@ -117,7 +117,7 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
ColumnWithScrollBar {
val displayName = rememberSaveable { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(start = DEFAULT_PADDING * 2, end = DEFAULT_PADDING * 2, bottom = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally)) {
Column(if (appPlatform.isAndroid) Modifier.fillMaxSize().padding(start = DEFAULT_ONBOARDING_HORIZONTAL_PADDING * 2, end = DEFAULT_ONBOARDING_HORIZONTAL_PADDING * 2, bottom = DEFAULT_PADDING) else Modifier.widthIn(max = 600.dp).fillMaxHeight().padding(horizontal = DEFAULT_PADDING).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
Box(Modifier.align(Alignment.CenterHorizontally)) {
AppBarTitle(stringResource(MR.strings.create_your_profile), bottomPadding = DEFAULT_PADDING, withPadding = false)
}
@@ -130,7 +130,7 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
Spacer(Modifier.fillMaxHeight().weight(1f))
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingActionButton(
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
labelId = MR.strings.create_profile_button,
onboarding = null,
enabled = canCreateProfile(displayName.value),
@@ -43,6 +43,7 @@ class CallManager(val chatModel: ChatModel) {
private fun justAcceptIncomingCall(invitation: RcvCallInvitation, userProfile: Profile) {
with (chatModel) {
activeCall.value?.androidCallState?.close()
activeCall.value = Call(
remoteHostId = invitation.remoteHostId,
userProfile = userProfile,
@@ -51,6 +52,7 @@ class CallManager(val chatModel: ChatModel) {
callState = CallState.InvitationAccepted,
initialCallType = invitation.callType.media,
sharedKey = invitation.sharedKey,
androidCallState = platform.androidCreateActiveCallState()
)
showCallView.value = true
val useRelay = controller.appPrefs.webrtcPolicyRelay.get()
@@ -78,6 +80,7 @@ class CallManager(val chatModel: ChatModel) {
// Don't destroy WebView if you plan to accept next call right after this one
if (!switchingCall.value) {
showCallView.value = false
activeCall.value?.androidCallState?.close()
activeCall.value = null
activeCallViewIsCollapsed.value = false
platform.androidCallEnded()
@@ -7,6 +7,7 @@ import chat.simplex.res.MR
import kotlinx.datetime.Instant
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.io.Closeable
import java.net.URI
import kotlin.collections.ArrayList
@@ -27,7 +28,9 @@ data class Call(
// When a user has audio call, and then he wants to enable camera but didn't grant permissions for using camera yet,
// we show permissions view without enabling camera before permissions are granted. After they are granted, enabling camera
val wantsToEnableCamera: Boolean = false
val wantsToEnableCamera: Boolean = false,
val androidCallState: Closeable
) {
val encrypted: Boolean get() = localEncrypted && sharedKey != null
private val localEncrypted: Boolean get() = localCapabilities?.encryption ?: false
@@ -131,26 +131,14 @@ fun ChatInfoView(
},
syncContactConnection = {
withBGApi {
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = false)
connStats.value = cStats
if (cStats != null) {
withChats {
updateContactConnectionStats(chatRh, contact, cStats)
}
}
syncContactConnection(chatRh, contact, connStats, force = false)
close.invoke()
}
},
syncContactConnectionForce = {
showSyncConnectionForceAlert(syncConnectionForce = {
withBGApi {
val cStats = chatModel.controller.apiSyncContactRatchet(chatRh, contact.contactId, force = true)
connStats.value = cStats
if (cStats != null) {
withChats {
updateContactConnectionStats(chatRh, contact, cStats)
}
}
syncContactConnection(chatRh, contact, connStats, force = true)
close.invoke()
}
})
@@ -189,6 +177,16 @@ fun ChatInfoView(
}
}
suspend fun syncContactConnection(rhId: Long?, contact: Contact, connectionStats: MutableState<ConnectionStats?>, force: Boolean) {
val cStats = chatModel.controller.apiSyncContactRatchet(rhId, contact.contactId, force = force)
connectionStats.value = cStats
if (cStats != null) {
withChats {
updateContactConnectionStats(rhId, contact, cStats)
}
}
}
sealed class SendReceipts {
object Yes: SendReceipts()
object No: SendReceipts()
@@ -505,7 +503,7 @@ fun ChatInfoLayout(
currentUser: User,
sendReceipts: State<SendReceipts>,
setSendReceipts: (SendReceipts) -> Unit,
connStats: State<ConnectionStats?>,
connStats: MutableState<ConnectionStats?>,
contactNetworkStatus: NetworkStatus,
customUserProfile: Profile?,
localAlias: String,
@@ -553,8 +551,8 @@ fun ChatInfoLayout(
verticalAlignment = Alignment.CenterVertically
) {
SearchButton(modifier = Modifier.fillMaxWidth(0.25f), chat, contact, close, onSearchClicked)
AudioCallButton(modifier = Modifier.fillMaxWidth(0.33f), chat, contact)
VideoButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact)
AudioCallButton(modifier = Modifier.fillMaxWidth(0.33f), chat, contact, connStats)
VideoButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact, connStats)
MuteButton(modifier = Modifier.fillMaxWidth(1f), chat, contact)
}
}
@@ -825,12 +823,14 @@ fun MuteButton(
fun AudioCallButton(
modifier: Modifier,
chat: Chat,
contact: Contact
contact: Contact,
connectionStats: MutableState<ConnectionStats?>
) {
CallButton(
modifier = modifier,
chat,
contact,
connectionStats,
icon = painterResource(MR.images.ic_call),
title = generalGetString(MR.strings.info_view_call_button),
mediaType = CallMediaType.Audio
@@ -841,12 +841,14 @@ fun AudioCallButton(
fun VideoButton(
modifier: Modifier,
chat: Chat,
contact: Contact
contact: Contact,
connectionStats: MutableState<ConnectionStats?>
) {
CallButton(
modifier = modifier,
chat,
contact,
connectionStats,
icon = painterResource(MR.images.ic_videocam),
title = generalGetString(MR.strings.info_view_video_button),
mediaType = CallMediaType.Video
@@ -858,6 +860,7 @@ fun CallButton(
modifier: Modifier,
chat: Chat,
contact: Contact,
connectionStats: MutableState<ConnectionStats?>,
icon: Painter,
title: String,
mediaType: CallMediaType
@@ -879,7 +882,23 @@ fun CallButton(
disabledLook = !canCall,
onClick =
when {
canCall -> { { startChatCall(chat.remoteHostId, chat.chatInfo, mediaType) } }
canCall -> { {
val connStats = connectionStats.value
if (connStats != null) {
if (connStats.ratchetSyncState == RatchetSyncState.Ok) {
startChatCall(chat.remoteHostId, chat.chatInfo, mediaType)
} else if (connStats.ratchetSyncAllowed) {
showFixConnectionAlert(syncConnection = {
withBGApi { syncContactConnection(chat.remoteHostId, contact, connectionStats, force = false) }
})
} else {
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.cant_call_contact_alert_title),
generalGetString(MR.strings.encryption_renegotiation_in_progress)
)
}
}
} }
contact.nextSendGrpInv -> { { showCantCallContactSendMessageAlert() } }
!contact.active -> { { showCantCallContactDeletedAlert() } }
!contact.ready -> { { showCantCallContactConnectingAlert() } }
@@ -1265,6 +1284,15 @@ fun showSyncConnectionForceAlert(syncConnectionForce: () -> Unit) {
)
}
fun showFixConnectionAlert(syncConnection: () -> Unit) {
AlertManager.shared.showAlertDialog(
title = generalGetString(MR.strings.sync_connection_question),
text = generalGetString(MR.strings.sync_connection_desc),
confirmText = generalGetString(MR.strings.sync_connection_confirm),
onConfirm = syncConnection,
)
}
fun queueInfoText(info: Pair<RcvMsgInfo?, ServerQueueInfo>): String {
val (rcvMsgInfo, qInfo) = info
val msgInfo: String = if (rcvMsgInfo != null) json.encodeToString(rcvMsgInfo) else generalGetString(MR.strings.message_queue_info_none)
@@ -29,6 +29,7 @@ import androidx.compose.ui.unit.*
import chat.simplex.common.model.*
import chat.simplex.common.model.CIDirection.GroupRcv
import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.model.ChatModel.activeCall
import chat.simplex.common.model.ChatModel.controller
import chat.simplex.common.model.ChatModel.withChats
import chat.simplex.common.ui.theme.*
@@ -573,7 +574,8 @@ fun startChatCall(remoteHostId: Long?, chatInfo: ChatInfo, media: CallMediaType)
if (chatInfo is ChatInfo.Direct) {
val contactInfo = chatModel.controller.apiContactInfo(remoteHostId, chatInfo.contact.contactId)
val profile = contactInfo?.second ?: chatModel.currentUser.value?.profile?.toProfile() ?: return@withBGApi
chatModel.activeCall.value = Call(remoteHostId = remoteHostId, contact = chatInfo.contact, callUUID = null, callState = CallState.WaitCapabilities, initialCallType = media, userProfile = profile)
activeCall.value?.androidCallState?.close()
chatModel.activeCall.value = Call(remoteHostId = remoteHostId, contact = chatInfo.contact, callUUID = null, callState = CallState.WaitCapabilities, initialCallType = media, userProfile = profile, androidCallState = platform.androidCreateActiveCallState())
chatModel.showCallView.value = true
chatModel.callCommand.add(WCallCommand.Capabilities(media))
}
@@ -982,6 +984,7 @@ fun BoxScope.ChatItemsList(
})
val maxHeight = remember { derivedStateOf { listState.value.layoutInfo.viewportEndOffset - topPaddingToContentPx.value } }
val loadingMoreItems = remember { mutableStateOf(false) }
val animatedScrollingInProgress = remember { mutableStateOf(false) }
val ignoreLoadingRequests = remember(remoteHostId) { mutableSetOf<Long>() }
if (!loadingMoreItems.value) {
PreloadItems(chatInfo.id, if (searchValueIsEmpty.value) ignoreLoadingRequests else mutableSetOf(), mergedItems, listState, ChatPagination.UNTIL_PRELOAD_COUNT) { chatId, pagination ->
@@ -1002,7 +1005,7 @@ fun BoxScope.ChatItemsList(
val chatInfoUpdated = rememberUpdatedState(chatInfo)
val highlightedItems = remember { mutableStateOf(setOf<Long>()) }
val scope = rememberCoroutineScope()
val scrollToItem: (Long) -> Unit = remember { scrollToItem(searchValue, loadingMoreItems, highlightedItems, chatInfoUpdated, maxHeight, scope, reversedChatItems, mergedItems, listState, loadMessages) }
val scrollToItem: (Long) -> Unit = remember { scrollToItem(searchValue, loadingMoreItems, animatedScrollingInProgress, highlightedItems, chatInfoUpdated, maxHeight, scope, reversedChatItems, mergedItems, listState, loadMessages) }
val scrollToQuotedItemFromItem: (Long) -> Unit = remember { findQuotedItemFromItem(remoteHostIdUpdated, chatInfoUpdated, scope, scrollToItem) }
LoadLastItems(loadingMoreItems, remoteHostId, chatInfo)
@@ -1312,7 +1315,7 @@ fun BoxScope.ChatItemsList(
}
}
}
FloatingButtons(loadingMoreItems, mergedItems, unreadCount, maxHeight, composeViewHeight, searchValue, markChatRead, listState)
FloatingButtons(loadingMoreItems, animatedScrollingInProgress, mergedItems, unreadCount, maxHeight, composeViewHeight, searchValue, markChatRead, listState)
FloatingDate(Modifier.padding(top = 10.dp + topPaddingToContent(true)).align(Alignment.TopCenter), mergedItems, listState)
LaunchedEffect(Unit) {
@@ -1321,6 +1324,15 @@ fun BoxScope.ChatItemsList(
chatViewScrollState.value = it
}
}
LaunchedEffect(Unit) {
snapshotFlow { listState.value.isScrollInProgress }
.filter { !it }
.collect {
if (animatedScrollingInProgress.value) {
animatedScrollingInProgress.value = false
}
}
}
}
@Composable
@@ -1398,6 +1410,7 @@ private fun NotifyChatListOnFinishingComposition(
@Composable
fun BoxScope.FloatingButtons(
loadingMoreItems: MutableState<Boolean>,
animatedScrollingInProgress: MutableState<Boolean>,
mergedItems: State<MergedItems>,
unreadCount: State<Int>,
maxHeight: State<Int>,
@@ -1437,8 +1450,14 @@ fun BoxScope.FloatingButtons(
bottomUnreadCount,
showBottomButtonWithCounter,
showBottomButtonWithArrow,
animatedScrollingInProgress,
composeViewHeight,
onClick = { scope.launch { tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(0) } } }
onClick = {
scope.launch {
animatedScrollingInProgress.value = true
tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(0) }
}
}
)
// Don't show top FAB if is in search
if (searchValue.value.isNotEmpty()) return
@@ -1449,11 +1468,15 @@ fun BoxScope.FloatingButtons(
TopEndFloatingButton(
Modifier.padding(end = DEFAULT_PADDING, top = 24.dp + topPaddingToContent(true)).align(Alignment.TopEnd),
topUnreadCount,
animatedScrollingInProgress,
onClick = {
val index = mergedItems.value.items.indexOfLast { it.hasUnread() }
if (index != -1) {
// scroll to the top unread item
scope.launch { tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(index + 1, -maxHeight.value) } }
scope.launch {
animatedScrollingInProgress.value = true
tryBlockAndSetLoadingMore(loadingMoreItems) { listState.value.animateScrollToItem(index + 1, -maxHeight.value) }
}
}
},
onLongClick = { showDropDown.value = true }
@@ -1593,10 +1616,11 @@ fun MemberImage(member: GroupMember) {
private fun TopEndFloatingButton(
modifier: Modifier = Modifier,
unreadCount: State<Int>,
animatedScrollingInProgress: State<Boolean>,
onClick: () -> Unit,
onLongClick: () -> Unit
) {
if (unreadCount.value > 0) {
if (remember { derivedStateOf { unreadCount.value > 0 && !animatedScrollingInProgress.value } }.value) {
val interactionSource = interactionSourceWithDetection(onClick, onLongClick)
FloatingActionButton(
{}, // no action here
@@ -1837,6 +1861,7 @@ private fun lastFullyVisibleIemInListState(topPaddingToContentPx: State<Int>, de
private fun scrollToItem(
searchValue: State<String>,
loadingMoreItems: MutableState<Boolean>,
animatedScrollingInProgress: MutableState<Boolean>,
highlightedItems: MutableState<Set<Long>>,
chatInfo: State<ChatInfo>,
maxHeight: State<Int>,
@@ -1874,6 +1899,7 @@ private fun scrollToItem(
highlightedItems.value = setOf(itemId)
} else {
withContext(scope.coroutineContext) {
animatedScrollingInProgress.value = true
listState.value.animateScrollToItem(min(reversedChatItems.value.lastIndex, index + 1), -maxHeight.value)
highlightedItems.value = setOf(itemId)
}
@@ -1935,10 +1961,11 @@ private fun BoxScope.BottomEndFloatingButton(
unreadCount: State<Int>,
showButtonWithCounter: State<Boolean>,
showButtonWithArrow: State<Boolean>,
animatedScrollingInProgress: State<Boolean>,
composeViewHeight: State<Dp>,
onClick: () -> Unit
) = when {
showButtonWithCounter.value -> {
showButtonWithCounter.value && !animatedScrollingInProgress.value -> {
FloatingActionButton(
onClick = onClick,
elevation = FloatingActionButtonDefaults.elevation(0.dp, 0.dp, 0.dp, 0.dp),
@@ -1952,7 +1979,7 @@ private fun BoxScope.BottomEndFloatingButton(
)
}
}
showButtonWithArrow.value -> {
showButtonWithArrow.value && !animatedScrollingInProgress.value -> {
FloatingActionButton(
onClick = onClick,
elevation = FloatingActionButtonDefaults.elevation(0.dp, 0.dp, 0.dp, 0.dp),
@@ -8,8 +8,6 @@ import SectionSpacer
import SectionTextFooter
import SectionView
import androidx.compose.desktop.ui.tooling.preview.Preview
import java.net.URI
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.InlineTextContent
import androidx.compose.foundation.text.appendInlineContent
@@ -58,6 +56,19 @@ fun GroupMemberInfoView(
val developerTools = chatModel.controller.appPrefs.developerTools.get()
var progressIndicator by remember { mutableStateOf(false) }
fun syncMemberConnection() {
withBGApi {
val r = chatModel.controller.apiSyncGroupMemberRatchet(rhId, groupInfo.apiId, member.groupMemberId, force = false)
if (r != null) {
connStats.value = r.second
withChats {
updateGroupMemberConnectionStats(rhId, groupInfo, r.first, r.second)
}
close.invoke()
}
}
}
if (chat != null) {
val newRole = remember { mutableStateOf(member.memberRole) }
GroupMemberInfoLayout(
@@ -78,19 +89,30 @@ fun GroupMemberInfoView(
}
},
createMemberContact = {
withBGApi {
progressIndicator = true
val memberContact = chatModel.controller.apiCreateMemberContact(rhId, groupInfo.apiId, member.groupMemberId)
if (memberContact != null) {
val memberChat = Chat(remoteHostId = rhId, ChatInfo.Direct(memberContact), chatItems = arrayListOf())
withChats {
addChat(memberChat)
openLoadedChat(memberChat)
if (connectionStats != null) {
if (connectionStats.ratchetSyncState == RatchetSyncState.Ok) {
withBGApi {
progressIndicator = true
val memberContact = chatModel.controller.apiCreateMemberContact(rhId, groupInfo.apiId, member.groupMemberId)
if (memberContact != null) {
val memberChat = Chat(remoteHostId = rhId, ChatInfo.Direct(memberContact), chatItems = arrayListOf())
withChats {
addChat(memberChat)
openLoadedChat(memberChat)
}
closeAll()
chatModel.setContactNetworkStatus(memberContact, NetworkStatus.Connected())
}
progressIndicator = false
}
closeAll()
chatModel.setContactNetworkStatus(memberContact, NetworkStatus.Connected())
} else if (connectionStats.ratchetSyncAllowed) {
showFixConnectionAlert(syncConnection = { syncMemberConnection() })
} else {
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.cant_send_message_to_member_alert_title),
generalGetString(MR.strings.encryption_renegotiation_in_progress)
)
}
progressIndicator = false
}
},
connectViaAddress = { connReqUri ->
@@ -149,16 +171,7 @@ fun GroupMemberInfoView(
})
},
syncMemberConnection = {
withBGApi {
val r = chatModel.controller.apiSyncGroupMemberRatchet(rhId, groupInfo.apiId, member.groupMemberId, force = false)
if (r != null) {
connStats.value = r.second
withChats {
updateGroupMemberConnectionStats(rhId, groupInfo, r.first, r.second)
}
close.invoke()
}
}
syncMemberConnection()
},
syncMemberConnectionForce = {
showSyncConnectionForceAlert(syncConnectionForce = {
@@ -335,9 +348,20 @@ fun GroupMemberInfoLayout(
val knownChat = if (contactId != null) knownDirectChat(contactId) else null
if (knownChat != null) {
val (chat, contact) = knownChat
val knownContactConnectionStats: MutableState<ConnectionStats?> = remember { mutableStateOf(null) }
LaunchedEffect(contact.contactId) {
withBGApi {
val contactInfo = chatModel.controller.apiContactInfo(chat.remoteHostId, chat.chatInfo.apiId)
if (contactInfo != null) {
knownContactConnectionStats.value = contactInfo.first
}
}
}
OpenChatButton(modifier = Modifier.fillMaxWidth(0.33f), onClick = { openDirectChat(contact.contactId) })
AudioCallButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact)
VideoButton(modifier = Modifier.fillMaxWidth(1f), chat, contact)
AudioCallButton(modifier = Modifier.fillMaxWidth(0.5f), chat, contact, knownContactConnectionStats)
VideoButton(modifier = Modifier.fillMaxWidth(1f), chat, contact, knownContactConnectionStats)
} else if (groupInfo.fullGroupPreferences.directMessages.on(groupInfo.membership)) {
if (contactId != null) {
OpenChatButton(modifier = Modifier.fillMaxWidth(0.33f), onClick = { openDirectChat(contactId) }) // legacy - only relevant for direct contacts created when joining group
@@ -192,13 +192,7 @@ fun DatabaseLayout(
}
RunChatSetting(stopped, toggleEnabled && !progressIndicator, startChat, stopChatAlert)
}
SectionTextFooter(
if (stopped) {
stringResource(MR.strings.you_must_use_the_most_recent_version_of_database)
} else {
stringResource(MR.strings.stop_chat_to_enable_database_actions)
}
)
if (stopped) SectionTextFooter(stringResource(MR.strings.you_must_use_the_most_recent_version_of_database))
SectionDividerSpaced(maxTopPadding = true)
}
@@ -1,7 +1,11 @@
package chat.simplex.common.views.onboarding
import SectionBottomSpacer
import SectionDividerSpaced
import SectionItemView
import SectionTextFooter
import SectionView
import TextIconSpaced
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.*
@@ -12,8 +16,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import chat.simplex.common.model.*
import chat.simplex.common.model.ChatController.appPrefs
import chat.simplex.common.model.ServerOperator
import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.helpers.*
@@ -49,7 +53,7 @@ fun ModalData.ChooseServerOperators(
Column(Modifier.fillMaxWidth().padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingInformationButton(
stringResource(MR.strings.how_it_helps_privacy),
onClick = { modalManager.showModal { ChooseServerOperatorsInfoView() } }
onClick = { modalManager.showModal { ChooseServerOperatorsInfoView(modalManager) } }
)
}
@@ -57,7 +61,8 @@ fun ModalData.ChooseServerOperators(
Column((
if (appPlatform.isDesktop) Modifier.width(600.dp).align(Alignment.CenterHorizontally) else Modifier)
.fillMaxWidth()
.padding(horizontal = DEFAULT_PADDING)
.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING),
horizontalAlignment = Alignment.CenterHorizontally
) {
serverOperators.value.forEachIndexed { index, srvOperator ->
OperatorCheckView(srvOperator, selectedOperatorIds)
@@ -67,6 +72,7 @@ fun ModalData.ChooseServerOperators(
}
Spacer(Modifier.height(DEFAULT_PADDING_HALF))
SectionTextFooter(annotatedStringResource(MR.strings.onboarding_network_operators_simplex_flux_agreement), textAlign = TextAlign.Center)
SectionTextFooter(annotatedStringResource(MR.strings.onboarding_network_operators_configure_via_settings), textAlign = TextAlign.Center)
}
Spacer(Modifier.weight(1f))
@@ -169,7 +175,7 @@ private fun ReviewConditionsButton(
modalManager: ModalManager
) {
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
labelId = MR.strings.operator_review_conditions,
onboarding = null,
enabled = enabled,
@@ -184,7 +190,7 @@ private fun ReviewConditionsButton(
@Composable
private fun SetOperatorsButton(enabled: Boolean, onboarding: Boolean, serverOperators: State<List<ServerOperator>>, selectedOperatorIds: State<Set<Long>>, close: () -> Unit) {
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
labelId = MR.strings.onboarding_network_operators_update,
onboarding = null,
enabled = enabled,
@@ -206,7 +212,7 @@ private fun SetOperatorsButton(enabled: Boolean, onboarding: Boolean, serverOper
@Composable
private fun ContinueButton(enabled: Boolean, onboarding: Boolean, close: () -> Unit) {
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
labelId = MR.strings.onboarding_network_operators_continue,
onboarding = null,
enabled = enabled,
@@ -234,7 +240,7 @@ private fun ReviewConditionsView(
// remembering both since we don't want to reload the view after the user accepts conditions
val operatorsWithConditionsAccepted = remember { chatModel.conditions.value.serverOperators.filter { it.conditionsAcceptance.conditionsAccepted } }
val acceptForOperators = remember { selectedOperators.value.filter { !it.conditionsAcceptance.conditionsAccepted } }
ColumnWithScrollBar(modifier = Modifier.fillMaxSize().padding(horizontal = DEFAULT_PADDING)) {
ColumnWithScrollBar(modifier = Modifier.fillMaxSize().padding(horizontal = if (onboarding) DEFAULT_ONBOARDING_HORIZONTAL_PADDING else DEFAULT_PADDING)) {
AppBarTitle(stringResource(MR.strings.operator_conditions_of_use), withPadding = false, enableAlphaChanges = false, bottomPadding = DEFAULT_PADDING)
if (operatorsWithConditionsAccepted.isNotEmpty()) {
ReadableText(MR.strings.operator_conditions_accepted_for_some, args = operatorsWithConditionsAccepted.joinToString(", ") { it.legalName_ })
@@ -267,7 +273,7 @@ private fun AcceptConditionsButton(
}
}
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier,
modifier = if (appPlatform.isAndroid) Modifier.fillMaxWidth() else Modifier,
labelId = MR.strings.accept_conditions,
onboarding = null,
onclick = {
@@ -338,12 +344,49 @@ private fun enabledOperators(operators: List<ServerOperator>, selectedOperatorId
}
@Composable
private fun ChooseServerOperatorsInfoView() {
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING)) {
AppBarTitle(stringResource(MR.strings.onboarding_network_operators), withPadding = false)
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_different_operators))
ReadableText(stringResource(MR.strings.onboarding_network_operators_cant_see_who_talks_to_whom))
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_for_routing))
private fun ChooseServerOperatorsInfoView(
modalManager: ModalManager
) {
ColumnWithScrollBar {
AppBarTitle(stringResource(MR.strings.onboarding_network_operators))
Column(
Modifier.padding(horizontal = DEFAULT_PADDING)
) {
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_different_operators))
ReadableText(stringResource(MR.strings.onboarding_network_operators_cant_see_who_talks_to_whom))
ReadableText(stringResource(MR.strings.onboarding_network_operators_app_will_use_for_routing))
}
SectionDividerSpaced()
SectionView(title = stringResource(MR.strings.onboarding_network_about_operators).uppercase()) {
chatModel.conditions.value.serverOperators.forEach { op ->
ServerOperatorRow(op, modalManager)
}
}
SectionBottomSpacer()
}
}
@Composable()
private fun ServerOperatorRow(
operator: ServerOperator,
modalManager: ModalManager
) {
SectionItemView(
{
modalManager.showModalCloseable { close ->
OperatorInfoView(operator)
}
}
) {
Image(
painterResource(operator.logo),
operator.tradeName,
modifier = Modifier.size(24.dp)
)
TextIconSpaced()
Text(operator.tradeName)
}
}
@@ -35,14 +35,14 @@ fun SetNotificationsMode(m: ChatModel) {
AppBarTitle(stringResource(MR.strings.onboarding_notifications_mode_title), bottomPadding = DEFAULT_PADDING)
}
val currentMode = rememberSaveable { mutableStateOf(NotificationsMode.default) }
Column(Modifier.padding(horizontal = DEFAULT_PADDING).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
Column(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingInformationButton(
stringResource(MR.strings.onboarding_notifications_mode_subtitle),
onClick = { ModalManager.fullscreen.showModalCloseable { NotificationBatteryUsageInfo() } }
)
}
Spacer(Modifier.weight(1f))
Column(Modifier.padding(horizontal = DEFAULT_PADDING)) {
Column(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING)) {
SelectableCard(currentMode, NotificationsMode.SERVICE, stringResource(MR.strings.onboarding_notifications_mode_service), annotatedStringResource(MR.strings.onboarding_notifications_mode_service_desc_short)) {
currentMode.value = NotificationsMode.SERVICE
}
@@ -56,7 +56,7 @@ fun SetNotificationsMode(m: ChatModel) {
Spacer(Modifier.weight(1f))
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingActionButton(
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier,
modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier,
labelId = MR.strings.use_chat,
onboarding = OnboardingStage.OnboardingComplete,
onclick = {
@@ -190,7 +190,7 @@ private fun SetupDatabasePassphraseLayout(
@Composable
private fun SetPassphraseButton(disabled: Boolean, onClick: () -> Unit) {
OnboardingActionButton(
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING * 2).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp),
labelId = MR.strings.set_database_passphrase,
onboarding = null,
onclick = onClick,
@@ -5,6 +5,7 @@ import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@@ -13,6 +14,8 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.layout
import androidx.compose.ui.text.TextLayoutResult
import dev.icerock.moko.resources.compose.painterResource
import dev.icerock.moko.resources.compose.stringResource
import androidx.compose.ui.text.font.FontWeight
@@ -27,6 +30,8 @@ import chat.simplex.common.views.migration.MigrateToDeviceView
import chat.simplex.common.views.migration.MigrationToState
import chat.simplex.res.MR
import dev.icerock.moko.resources.StringResource
import kotlin.math.ceil
import kotlin.math.floor
@Composable
fun SimpleXInfo(chatModel: ChatModel, onboarding: Boolean = true) {
@@ -52,7 +57,7 @@ fun SimpleXInfoLayout(
user: User?,
onboardingStage: SharedPreference<OnboardingStage>?
) {
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
ColumnWithScrollBar(Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING), horizontalAlignment = Alignment.CenterHorizontally) {
Box(Modifier.widthIn(max = if (appPlatform.isAndroid) 250.dp else 500.dp).padding(top = DEFAULT_PADDING + 8.dp), contentAlignment = Alignment.Center) {
SimpleXLogo()
}
@@ -73,7 +78,7 @@ fun SimpleXInfoLayout(
Column(Modifier.fillMaxHeight().weight(1f)) { }
if (onboardingStage != null) {
Column(Modifier.padding(horizontal = DEFAULT_PADDING).widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally,) {
Column(Modifier.widthIn(max = if (appPlatform.isAndroid) 450.dp else 1000.dp).align(Alignment.CenterHorizontally), horizontalAlignment = Alignment.CenterHorizontally,) {
OnboardingActionButton(user, onboardingStage)
TextButtonBelowOnboardingButton(stringResource(MR.strings.migrate_from_another_device)) {
chatModel.migrationState.value = MigrationToState.PasteOrScanLink
@@ -139,7 +144,7 @@ fun OnboardingActionButton(
shape = CircleShape,
enabled = enabled,
// elevation = ButtonDefaults.elevation(defaultElevation = 0.dp, focusedElevation = 0.dp, pressedElevation = 0.dp, hoveredElevation = 0.dp),
contentPadding = PaddingValues(horizontal = if (icon == null) DEFAULT_PADDING * 2 else DEFAULT_PADDING * 1.5f, vertical = DEFAULT_PADDING),
contentPadding = PaddingValues(horizontal = if (icon == null) DEFAULT_PADDING * 2 else DEFAULT_PADDING * 1.5f, vertical = 17.dp),
colors = ButtonDefaults.buttonColors(MaterialTheme.colors.primary, disabledBackgroundColor = MaterialTheme.colors.secondary)
) {
if (icon != null) {
@@ -153,8 +158,8 @@ fun OnboardingActionButton(
fun TextButtonBelowOnboardingButton(text: String, onClick: (() -> Unit)?) {
val state = getKeyboardState()
val enabled = onClick != null
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else DEFAULT_PADDING_HALF)
val topPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else 7.5.dp)
val bottomPadding by animateDpAsState(if (appPlatform.isAndroid && state.value == KeyboardState.Opened) 0.dp else 7.5.dp)
if ((appPlatform.isAndroid && state.value == KeyboardState.Closed) || topPadding > 0.dp) {
TextButton({ onClick?.invoke() }, Modifier.padding(top = topPadding, bottom = bottomPadding).clip(CircleShape), enabled = enabled) {
Text(
@@ -187,7 +192,35 @@ fun OnboardingInformationButton(
null,
tint = MaterialTheme.colors.primary
)
Text(text, style = MaterialTheme.typography.button, color = MaterialTheme.colors.primary)
// https://issuetracker.google.com/issues/206039942#comment32
var textLayoutResult: TextLayoutResult? by remember { mutableStateOf(null) }
Text(
text,
Modifier
.layout { measurable, constraints ->
val placeable = measurable.measure(constraints)
val newTextLayoutResult = textLayoutResult
if (newTextLayoutResult == null || newTextLayoutResult.lineCount == 0) {
// Default behavior if there is no text or the text layout is not measured yet
layout(placeable.width, placeable.height) {
placeable.placeRelative(0, 0)
}
} else {
val minX = (0 until newTextLayoutResult.lineCount).minOf(newTextLayoutResult::getLineLeft)
val maxX = (0 until newTextLayoutResult.lineCount).maxOf(newTextLayoutResult::getLineRight)
layout(ceil(maxX - minX).toInt(), placeable.height) {
placeable.place(-floor(minX).toInt(), 0)
}
}
},
onTextLayout = {
textLayoutResult = it
},
style = MaterialTheme.typography.button,
color = MaterialTheme.colors.primary
)
}
}
}
@@ -410,7 +410,7 @@ fun OperatorViewLayout(
}
@Composable
private fun OperatorInfoView(serverOperator: ServerOperator) {
fun OperatorInfoView(serverOperator: ServerOperator) {
ColumnWithScrollBar {
AppBarTitle(stringResource(MR.strings.operator_info_title))
@@ -427,23 +427,27 @@ private fun OperatorInfoView(serverOperator: ServerOperator) {
SectionDividerSpaced(maxBottomPadding = false)
val uriHandler = LocalUriHandler.current
SectionView {
SectionItemView {
Column(verticalArrangement = Arrangement.spacedBy(10.dp)) {
serverOperator.info.description.forEach { d ->
Text(d)
}
val website = serverOperator.info.website
Text(website, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(website) })
}
}
}
SectionDividerSpaced()
SectionView(generalGetString(MR.strings.operator_website).uppercase()) {
SectionItemView {
val website = serverOperator.info.website
val uriHandler = LocalUriHandler.current
Text(website, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(website) })
val selfhost = serverOperator.info.selfhost
if (selfhost != null) {
SectionDividerSpaced(maxBottomPadding = false)
SectionView {
SectionItemView {
val (text, link) = selfhost
Text(text, color = MaterialTheme.colors.primary, modifier = Modifier.clickable { uriHandler.openUriCatching(link) })
}
}
}
}
File diff suppressed because it is too large Load Diff
@@ -71,6 +71,8 @@
<string name="connection_local_display_name">connection %1$d</string>
<string name="display_name_connection_established">connection established</string>
<string name="display_name_invited_to_connect">invited to connect</string>
<string name="display_name_requested_to_connect">requested to connect</string>
<string name="display_name_accepted_invitation">accepted invitation</string>
<string name="display_name_connecting">connecting…</string>
<string name="description_you_shared_one_time_link">you shared one-time link</string>
<string name="description_you_shared_one_time_link_incognito">you shared one-time link incognito</string>
@@ -522,6 +524,10 @@
<string name="sync_connection_force_question">Renegotiate encryption?</string>
<string name="sync_connection_force_desc">The encryption is working and the new encryption agreement is not required. It may result in connection errors!</string>
<string name="sync_connection_force_confirm">Renegotiate</string>
<string name="sync_connection_question">Fix connection?</string>
<string name="sync_connection_desc">Connection requires encryption renegotiation.</string>
<string name="sync_connection_confirm">Fix</string>
<string name="encryption_renegotiation_in_progress">Encryption renegotiation in progress.</string>
<string name="view_security_code">View security code</string>
<string name="verify_security_code">Verify security code</string>
@@ -1075,9 +1081,11 @@
<!-- ChooseServerOperators.kt -->
<string name="onboarding_choose_server_operators">Server operators</string>
<string name="onboarding_network_operators">Network operators</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">The app protects your privacy by using different operators in each conversation.</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">When more than one operator is enabled, none of them has metadata to learn who communicates with whom.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.</string>
<string name="onboarding_network_about_operators">About operators</string>
<string name="onboarding_select_network_operators_to_use">Select network operators to use.</string>
<string name="how_it_helps_privacy">How it helps privacy</string>
<string name="onboarding_network_operators_configure_via_settings">You can configure servers via settings.</string>
@@ -1306,7 +1314,6 @@
<string name="chat_database_deleted">Chat database deleted</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Restart the app to create a new chat profile.</string>
<string name="you_must_use_the_most_recent_version_of_database">You must use the most recent version of your chat database on one device ONLY, otherwise you may stop receiving the messages from some contacts.</string>
<string name="stop_chat_to_enable_database_actions">Stop chat to enable database actions.</string>
<string name="files_and_media_section">Files &amp; media</string>
<string name="delete_files_and_media_for_all_users">Delete files for all chat profiles</string>
<string name="delete_files_and_media_all">Delete all files</string>
@@ -1749,7 +1756,6 @@
<string name="operator_same_conditions_will_be_applied"><![CDATA[The same conditions will apply to operator <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[The same conditions will apply to operator(s): <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_applied"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[The same conditions will apply to operator: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Conditions will be accepted for operator(s): <b>%s</b>.]]></string>
<string name="operators_conditions_will_also_apply"><![CDATA[These conditions will also apply for: <b>%s</b>.]]></string>
<string name="view_conditions">View conditions</string>
@@ -2400,7 +2406,7 @@
<string name="servers_info_messages_sent">Messages sent</string>
<string name="servers_info_messages_received">Messages received</string>
<string name="servers_info_details">Details</string>
<string name="servers_info_private_data_disclaimer">Starting from %s.\nAll data is private to your device.</string>
<string name="servers_info_private_data_disclaimer">Starting from %s.\nAll data is kept private on your device..</string>
<string name="servers_info_subscriptions_section_header">Message reception</string>
<string name="servers_info_subscriptions_connections_subscribed">Active connections</string>
<string name="servers_info_subscriptions_connections_pending">Pending</string>
@@ -1133,7 +1133,6 @@
<string name="save_preferences_question">Запази настройките\?</string>
<string name="icon_descr_speaker_on">Високоговорителят е включен</string>
<string name="icon_descr_speaker_off">Високоговорителят е изключен</string>
<string name="stop_chat_to_enable_database_actions">Спрете чата, за да активирате действията с базата данни.</string>
<string name="role_in_group">Роля</string>
<string name="network_options_save">Запази</string>
<string name="reset_color">Нулирай цветовете</string>
@@ -280,7 +280,6 @@
<string name="delete_chat_profile_action_cannot_be_undone_warning">Tuto akci nelze vzít zpět! Váš profil, kontakty, zprávy a soubory budou nenávratně ztraceny.</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Restartujte aplikaci a vytvořte nový chat profil.</string>
<string name="you_must_use_the_most_recent_version_of_database">Nejnovější verzi databáze chatu musíte používat POUZE v jednom zařízení, jinak se může stát, že přestanete přijímat zprávy od některých kontaktů.</string>
<string name="stop_chat_to_enable_database_actions">Zastavte chat a povolte akce s databází.</string>
<string name="files_and_media_section">Soubory a média</string>
<string name="delete_files_and_media_question">Smazat soubory a média\?</string>
<string name="delete_messages">Odstranit zprávy</string>
@@ -1861,7 +1860,7 @@
<string name="smp_servers_configured">Nastavené SMP servery</string>
<string name="servers_info_subscriptions_connections_pending">Probíhá</string>
<string name="chunks_uploaded">Části nahrány</string>
<string name="n_file_errors">%1$d chuba souboru(ů):\n%2$s</string>
<string name="n_file_errors">%1$d chyba souboru(ů):\n%2$s</string>
<string name="n_other_file_errors">%1$d jiná chyba souboru(ů).</string>
<string name="error_forwarding_messages">Chyba přeposílaní zpráv</string>
<string name="srv_error_host">Adresa serveru není kompatibilní s nastavením sítě.</string>
@@ -62,7 +62,7 @@
<string name="sender_cancelled_file_transfer">Der Absender hat die Dateiübertragung abgebrochen.</string>
<string name="error_receiving_file">Fehler beim Empfangen der Datei</string>
<string name="error_creating_address">Fehler beim Erstellen der Adresse</string>
<string name="contact_already_exists">Kontakt ist bereits vorhanden</string>
<string name="contact_already_exists">Kontakt besteht bereits</string>
<string name="you_are_already_connected_to_vName_via_this_link">Sie sind bereits mit %1$s verbunden.</string>
<string name="invalid_connection_link">Ungültiger Verbindungslink</string>
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Überprüfen Sie bitte, ob Sie den richtigen Link genutzt haben, oder bitten Sie Ihren Kontakt darum, Ihnen nochmal einen Link zuzusenden.</string>
@@ -88,9 +88,9 @@
<string name="icon_descr_instant_notifications">Sofortige Benachrichtigungen</string>
<string name="service_notifications">Sofortige Benachrichtigungen!</string>
<string name="service_notifications_disabled">Sofortige Benachrichtigungen sind deaktiviert!</string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Um Ihre Privatsphäre zu schützen, kann statt der Push-Benachrichtigung der <b>SimpleX-Hintergrunddienst genutzt werden</b> dieser benötigt ein paar Prozent Akkuleistung am Tag.]]></string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Um Ihre Privatsphäre zu schützen, <b>läuft SimpleX im Hintergrund ab</b>, anstatt Push-Benachrichtigungen zu nutzen.]]></string>
<string name="it_can_disabled_via_settings_notifications_still_shown"><![CDATA[<b>Diese können über die Einstellungen deaktiviert werden</b> solange die App läuft, werden Benachrichtigungen weiterhin angezeigt.]]></string>
<string name="turn_off_battery_optimization"><![CDATA[Um diese Funktion zu nutzen, wählen Sie im nächsten Dialog bitte die Einstellung <b>Erlauben Sie SimpleX im Hintergrund abzulaufen</b>. Ansonsten werden die Benachrichtigungen deaktiviert.]]></string>
<string name="turn_off_battery_optimization"><![CDATA[Um Benachrichtigungen sofort zu erhalten, <b>Erlauben Sie es</b> im nächsten Dialog.]]></string>
<string name="turning_off_service_and_periodic">Die Akkuoptimierung ist aktiv, der Hintergrunddienst und die periodische Nachfrage nach neuen Nachrichten ist abgeschaltet. Sie können diese Funktion in den Einstellungen wieder aktivieren.</string>
<string name="periodic_notifications">Periodische Benachrichtigungen</string>
<string name="periodic_notifications_disabled">Periodische Benachrichtigungen sind deaktiviert!</string>
@@ -462,7 +462,7 @@
<string name="callstate_connected">Verbunden</string>
<string name="callstate_ended">Beendet</string>
<!-- SimpleXInfo -->
<string name="next_generation_of_private_messaging">Die nächste Generation \ndes privaten Messagings</string>
<string name="next_generation_of_private_messaging">Die Zukunft des Messagings</string>
<string name="privacy_redefined">Datenschutz neu definiert</string>
<string name="first_platform_without_user_ids">Keine Benutzerkennungen.</string>
<string name="immune_to_spam_and_abuse">Immun gegen Spam</string>
@@ -474,8 +474,8 @@
<string name="how_it_works">Wie es funktioniert</string>
<!-- How SimpleX Works -->
<string name="how_simplex_works">Wie SimpleX funktioniert</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Zum Schutz Ihrer Privatsphäre verwendet SimpleX anstelle von Benutzerkennungen, die von allen anderen Plattformen verwendet werden, Kennungen für Nachrichtenwarteschlangen, die für jeden Ihrer Kontakte individuell sind.</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Nur die Endgeräte speichern die Benutzerprofile, Kontakte, Gruppen und Nachrichten, welche über eine <b>zweischichtige Ende-zu-Ende-Verschlüsselung</b> gesendet werden.]]></string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">SimpleX nutzt individuelle Kennungen für jeden Ihrer Kontakte, um Ihre Privatsphäre zu schützen.</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Nur die Endgeräte speichern Benutzerprofile, Kontakte, Gruppen und Nachrichten.</string>
<string name="read_more_in_github_with_link"><![CDATA[Erfahren Sie in unserem <font color="#0088ff">GitHub-Repository</font> mehr dazu.]]></string>
<!-- MakeConnection -->
<string name="paste_the_link_you_received">Fügen Sie den erhaltenen Link ein</string>
@@ -597,7 +597,6 @@
<string name="chat_database_deleted">Chat-Datenbank gelöscht</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Starten Sie die App neu, um ein neues Chat-Profil zu erstellen.</string>
<string name="you_must_use_the_most_recent_version_of_database">Sie dürfen die neueste Version Ihrer Chat-Datenbank NUR auf einem Gerät verwenden, andernfalls erhalten Sie möglicherweise keine Nachrichten mehr von einigen Ihrer Kontakte.</string>
<string name="stop_chat_to_enable_database_actions">Chat beenden, um Datenbankaktionen zu erlauben.</string>
<string name="delete_files_and_media_question">Dateien und Medien löschen?</string>
<string name="delete_files_and_media_desc">Diese Aktion kann nicht rückgängig gemacht werden! Es werden alle empfangenen und gesendeten Dateien und Medien gelöscht. Bilder mit niedriger Auflösung bleiben erhalten.</string>
<string name="no_received_app_files">Keine empfangenen oder gesendeten Dateien</string>
@@ -684,7 +683,7 @@
<string name="alert_title_group_invitation_expired">Die Einladung ist abgelaufen!</string>
<string name="alert_message_group_invitation_expired">Die Gruppeneinladung ist nicht mehr gültig, da sie vom Absender entfernt wurde.</string>
<string name="alert_title_no_group">Die Gruppe wurde nicht gefunden!</string>
<string name="alert_message_no_group">Diese Gruppe existiert nicht mehr.</string>
<string name="alert_message_no_group">Diese Gruppe ist nicht mehr vorhanden.</string>
<string name="alert_title_cant_invite_contacts">Kontakte können nicht eingeladen werden!</string>
<string name="alert_title_cant_invite_contacts_descr">Sie verwenden ein Inkognito-Profil für diese Gruppe. Um zu verhindern, dass Sie Ihr Hauptprofil teilen, ist in diesem Fall das Einladen von Kontakten nicht erlaubt.</string>
<!-- CIGroupInvitationView.kt -->
@@ -782,8 +781,8 @@
<string name="change_verb">Ändern</string>
<string name="switch_verb">Wechseln</string>
<string name="change_member_role_question">Die Mitgliederrolle ändern?</string>
<string name="member_role_will_be_changed_with_notification">Die Mitgliederrolle wird auf "%s" geändert. Alle Mitglieder der Gruppe werden benachrichtigt.</string>
<string name="member_role_will_be_changed_with_invitation">Die Mitgliederrolle wird auf "%s" geändert. Das Mitglied wird eine neue Einladung erhalten.</string>
<string name="member_role_will_be_changed_with_notification">Die Rolle wird auf %s geändert. Alle Mitglieder der Gruppe werden benachrichtigt.</string>
<string name="member_role_will_be_changed_with_invitation">Die Rolle wird auf %s geändert. Das Mitglied wird eine neue Einladung erhalten.</string>
<string name="error_removing_member">Fehler beim Entfernen des Mitglieds</string>
<string name="error_changing_role">Fehler beim Ändern der Rolle</string>
<string name="info_row_group">Gruppe</string>
@@ -873,12 +872,12 @@
<string name="prohibit_message_deletion">Unwiederbringliches Löschen von Nachrichten nicht erlauben.</string>
<string name="allow_to_send_voice">Das Senden von Sprachnachrichten erlauben.</string>
<string name="prohibit_sending_voice">Das Senden von Sprachnachrichten nicht erlauben.</string>
<string name="group_members_can_send_dms">Gruppenmitglieder können Direktnachrichten versenden.</string>
<string name="group_members_can_send_dms">Mitglieder können Direktnachrichten versenden.</string>
<string name="direct_messages_are_prohibited_in_group">In dieser Gruppe sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.</string>
<string name="group_members_can_delete">Gruppenmitglieder können gesendete Nachrichten unwiederbringlich löschen (bis zu 24 Stunden).</string>
<string name="message_deletion_prohibited_in_chat">In dieser Gruppe ist das unwiederbringliche Löschen von Nachrichten nicht erlaubt.</string>
<string name="group_members_can_send_voice">Gruppenmitglieder können Sprachnachrichten versenden.</string>
<string name="voice_messages_are_prohibited">In dieser Gruppe sind Sprachnachrichten nicht erlaubt.</string>
<string name="group_members_can_delete">Mitglieder können gesendete Nachrichten unwiederbringlich löschen (bis zu 24 Stunden).</string>
<string name="message_deletion_prohibited_in_chat">Das unwiederbringliche Löschen von Nachrichten ist nicht erlaubt.</string>
<string name="group_members_can_send_voice">Mitglieder können Sprachnachrichten versenden.</string>
<string name="voice_messages_are_prohibited">Sprachnachrichten sind nicht erlaubt.</string>
<string name="live">LIVE</string>
<string name="view_security_code">Schauen Sie sich den Sicherheitscode an</string>
<string name="onboarding_notifications_mode_service">Sofort</string>
@@ -888,7 +887,7 @@
<string name="is_verified">%s wurde erfolgreich überprüft</string>
<string name="clear_verification">Verifikation zurücknehmen</string>
<string name="onboarding_notifications_mode_off">Solange die App abläuft</string>
<string name="onboarding_notifications_mode_subtitle">Kann später über die Einstellungen geändert werden.</string>
<string name="onboarding_notifications_mode_subtitle">Auswirkung auf den Akku</string>
<string name="delete_after">Löschen nach</string>
<string name="ttl_hour">%d Stunde</string>
<string name="ttl_hours">%d Stunden</string>
@@ -923,8 +922,8 @@
<string name="create_group_link">Gruppenlink erstellen</string>
<string name="allow_your_contacts_to_send_disappearing_messages">Erlauben Sie Ihren Kontakten das Senden von verschwindenden Nachrichten.</string>
<string name="prohibit_sending_disappearing_messages">Das Senden von verschwindenden Nachrichten nicht erlauben.</string>
<string name="disappearing_messages_are_prohibited">In dieser Gruppe sind verschwindende Nachrichten nicht erlaubt.</string>
<string name="group_members_can_send_disappearing">Gruppenmitglieder können verschwindende Nachrichten senden.</string>
<string name="disappearing_messages_are_prohibited">Verschwindende Nachrichten sind nicht erlaubt.</string>
<string name="group_members_can_send_disappearing">Mitglieder können verschwindende Nachrichten senden.</string>
<string name="v4_3_improved_server_configuration_desc">Fügen Sie Server durch Scannen der QR-Codes hinzu.</string>
<string name="v4_4_disappearing_messages">Verschwindende Nachrichten</string>
<string name="accept_feature">Übernehmen</string>
@@ -979,7 +978,7 @@
<string name="users_delete_profile_for">Chat-Profil löschen für</string>
<string name="network_option_ping_count">PING-Zähler</string>
<string name="update_network_session_mode_question">Transport-Isolations-Modus aktualisieren\?</string>
<string name="smp_servers_per_user">Mögliche Server für neue Verbindungen über Ihr aktuelles Chat-Profil</string>
<string name="smp_servers_per_user">Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil</string>
<string name="files_and_media_section">Dateien &amp; Medien</string>
<string name="network_session_mode_transport_isolation">Transport-Isolation</string>
<string name="users_delete_question">Chat-Profil löschen\?</string>
@@ -1249,7 +1248,7 @@
<string name="if_you_enter_passcode_data_removed">Wenn Sie diesen Zugangscode während des Öffnens der App eingeben, werden alle App-Daten unwiederbringlich gelöscht!</string>
<string name="self_destruct_passcode">Selbstzerstörungs-Zugangscode</string>
<string name="set_passcode">Zugangscode einstellen</string>
<string name="message_reactions_are_prohibited">In dieser Gruppe sind Reaktionen auf Nachrichten nicht erlaubt.</string>
<string name="message_reactions_are_prohibited">Reaktionen auf Nachrichten sind nicht erlaubt.</string>
<string name="error_loading_details">Fehler beim Laden von Details</string>
<string name="received_message">Empfangene Nachricht</string>
<string name="info_menu">Information</string>
@@ -1280,7 +1279,7 @@
<string name="only_your_contact_can_add_message_reactions">Nur Ihr Kontakt kann Reaktionen auf Nachrichten geben.</string>
<string name="allow_message_reactions">Reaktionen auf Nachrichten erlauben.</string>
<string name="prohibit_message_reactions_group">Reaktionen auf Nachrichten nicht erlauben.</string>
<string name="group_members_can_add_message_reactions">Gruppenmitglieder können eine Reaktion auf Nachrichten geben.</string>
<string name="group_members_can_add_message_reactions">Mitglieder können eine Reaktion auf Nachrichten geben.</string>
<string name="whats_new_read_more">Mehr erfahren</string>
<string name="v5_1_message_reactions_descr">Endlich haben wir sie! 🚀</string>
<string name="v5_1_message_reactions">Reaktionen auf Nachrichten</string>
@@ -1295,9 +1294,7 @@
<string name="v5_1_custom_themes_descr">Farbdesigns anpassen und weitergeben.</string>
<string name="custom_time_unit_days">Tage</string>
<string name="custom_time_unit_hours">Stunden</string>
<string name="v5_1_better_messages_descr">- Bis zu 5 Minuten lange Sprachnachrichten
\n- Zeitdauer für verschwindende Nachrichten anpassen
\n- Nachrichtenverlauf bearbeiten</string>
<string name="v5_1_better_messages_descr">- Bis zu 5 Minuten lange Sprachnachrichten\n- Zeitdauer für verschwindende Nachrichten anpassen\n- Nachrichtenverlauf bearbeiten</string>
<string name="custom_time_picker_custom">benutzerdefiniert</string>
<string name="custom_time_unit_months">Monate</string>
<string name="custom_time_picker_select">Auswählen</string>
@@ -1326,9 +1323,9 @@
<string name="abort_switch_receiving_address_question">Wechsel der Empfängeradresse beenden?</string>
<string name="files_and_media_prohibited">Dateien und Medien sind nicht erlaubt!</string>
<string name="only_owners_can_enable_files_and_media">Nur Gruppenbesitzer können Dateien und Medien aktivieren.</string>
<string name="group_members_can_send_files">Gruppenmitglieder können Dateien und Medien senden.</string>
<string name="group_members_can_send_files">Mitglieder können Dateien und Medien senden.</string>
<string name="abort_switch_receiving_address_desc">Der Wechsel der Empfängeradresse wird beendet. Die bisherige Adresse wird weiter verwendet.</string>
<string name="files_are_prohibited_in_group">In dieser Gruppe sind Dateien und Medien nicht erlaubt.</string>
<string name="files_are_prohibited_in_group">Dateien und Medien sind nicht erlaubt.</string>
<string name="unfavorite_chat">Favorit entfernen</string>
<string name="favorite_chat">Favorit</string>
<string name="no_filtered_chats">Keine gefilterten Chats</string>
@@ -1386,9 +1383,7 @@
<string name="v5_2_fix_encryption_descr">Reparatur der Verschlüsselung nach Wiedereinspielen von Backups.</string>
<string name="v5_2_more_things">Ein paar weitere Dinge</string>
<string name="v5_2_disappear_one_message_descr">Auch wenn sie in den Unterhaltungen deaktiviert sind.</string>
<string name="v5_2_more_things_descr">- stabilere Zustellung von Nachrichten.
\n- ein bisschen verbesserte Gruppen.
\n- und mehr!</string>
<string name="v5_2_more_things_descr">- Stabilere Zustellung von Nachrichten.\n- Ein bisschen verbesserte Gruppen.\n- Und mehr!</string>
<string name="dont_enable_receipts">Nicht aktivieren</string>
<string name="sending_delivery_receipts_will_be_enabled">Das Senden von Empfangsbestätigungen an alle Kontakte wird aktiviert.</string>
<string name="you_can_enable_delivery_receipts_later_alert">Sie können diese später in den Datenschutz- und Sicherheits-Einstellungen der App aktivieren.</string>
@@ -1458,9 +1453,7 @@
<string name="v5_3_new_interface_languages_descr">Arabisch, Bulgarisch, Finnisch, Hebräisch, Thailändisch und Ukrainisch - Dank der Nutzer und Weblate.</string>
<string name="v5_3_new_desktop_app_descr">Erstellen eines neuen Profils in der Desktop-App. 💻</string>
<string name="v5_3_simpler_incognito_mode_descr">Inkognito beim Verbinden einschalten.</string>
<string name="v5_3_discover_join_groups_descr">- Verbindung mit dem Directory-Service (BETA)!
\n- Empfangsbestätigungen (für bis zu 20 Mitglieder).
\n- Schneller und stabiler.</string>
<string name="v5_3_discover_join_groups_descr">- Verbindung mit dem Directory-Service (BETA)!\n- Empfangsbestätigungen (für bis zu 20 Mitglieder).\n- Schneller und stabiler.</string>
<string name="member_contact_send_direct_message">Direktnachricht senden</string>
<string name="rcv_group_event_member_created_contact">Direkt miteinander verbunden</string>
<string name="expand_verb">Erweitern</string>
@@ -1569,9 +1562,7 @@
<string name="paste_desktop_address">Desktop-Adresse einfügen</string>
<string name="verify_code_with_desktop">Code mit dem Desktop überprüfen</string>
<string name="scan_qr_code_from_desktop">Den QR-Code vom Desktop scannen</string>
<string name="v5_4_more_things_descr">- Optionale Benachrichtigung von gelöschten Kontakten.
\n- Profilnamen mit Leerzeichen.
\n- Und mehr!</string>
<string name="v5_4_more_things_descr">- Optionale Benachrichtigung von gelöschten Kontakten.\n- Profilnamen mit Leerzeichen.\n- Und mehr!</string>
<string name="scan_from_mobile">Vom Mobiltelefon scannen</string>
<string name="verify_connections">Verbindungen überprüfen</string>
<string name="loading_remote_file_desc">Bitte warten Sie, solange die Datei von dem verknüpften Mobiltelefon geladen wird</string>
@@ -1800,12 +1791,12 @@
<string name="simplex_links_not_allowed">SimpleX-Links sind nicht erlaubt</string>
<string name="voice_messages_not_allowed">Sprachnachrichten sind nicht erlaubt</string>
<string name="simplex_links">SimpleX-Links</string>
<string name="group_members_can_send_simplex_links">Gruppenmitglieder können SimpleX-Links senden.</string>
<string name="group_members_can_send_simplex_links">Mitglieder können SimpleX-Links senden.</string>
<string name="feature_roles_admins">Administratoren</string>
<string name="feature_roles_all_members">Alle Mitglieder</string>
<string name="feature_enabled_for">Aktiviert für</string>
<string name="feature_roles_owners">Eigentümer</string>
<string name="simplex_links_are_prohibited_in_group">In dieser Gruppe sind SimpleX-Links nicht erlaubt.</string>
<string name="simplex_links_are_prohibited_in_group">SimpleX-Links sind nicht erlaubt.</string>
<string name="prohibit_sending_simplex_links">Das Senden von SimpleX-Links nicht erlauben.</string>
<string name="allow_to_send_simplex_links">Das Senden von SimpleX-Links erlauben.</string>
<string name="audio_device_speaker">Lautsprecher</string>
@@ -2034,8 +2025,7 @@
<string name="appearance_zoom">Zoom</string>
<string name="smp_server">SMP-Server</string>
<string name="servers_info_target">Informationen zeigen für</string>
<string name="servers_info_private_data_disclaimer">Beginnend mit %s.
\nAlle Daten werden nur auf Ihrem Gerät gespeichert.</string>
<string name="servers_info_private_data_disclaimer">Beginnend mit %s.\nAlle Daten werden nur auf Ihrem Gerät gespeichert.</string>
<string name="servers_info_statistics_section_header">Statistiken</string>
<string name="servers_info_transport_sessions_section_header">Transport-Sitzungen</string>
<string name="servers_info_uploaded">Hochgeladen</string>
@@ -2078,7 +2068,7 @@
<string name="deleted_chats">Archivierte Kontakte</string>
<string name="no_filtered_contacts">Keine gefilterten Kontakte</string>
<string name="contact_list_header_title">Ihre Kontakte</string>
<string name="one_hand_ui">Chat-Symbolleiste unten</string>
<string name="one_hand_ui">App-Symbolleiste unten</string>
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Bitten Sie Ihren Kontakt darum, Anrufe zu aktivieren.</string>
<string name="you_need_to_allow_calls">Sie müssen Ihrem Kontakt Anrufe zu Ihnen erlauben, bevor Sie ihn selbst anrufen können.</string>
<string name="allow_calls_question">Anrufe erlauben?</string>
@@ -2158,8 +2148,7 @@
<string name="network_proxy_auth_mode_isolate_by_auth_user">Verwenden Sie für jedes Profil unterschiedliche Proxy-Anmeldeinformationen.</string>
<string name="network_proxy_random_credentials">Verwenden Sie zufällige Anmeldeinformationen</string>
<string name="network_proxy_username">Benutzername</string>
<string name="n_file_errors">%1$d Datei-Fehler:
\n%2$s</string>
<string name="n_file_errors">%1$d Datei-Fehler:\n%2$s</string>
<string name="forward_files_in_progress_desc">%1$d Datei(en) wird/werden immer noch heruntergeladen.</string>
<string name="forward_files_failed_to_receive_desc">Bei %1$d Datei(en) ist das Herunterladen fehlgeschlagen.</string>
<string name="error_forwarding_messages">Fehler beim Weiterleiten der Nachrichten</string>
@@ -2216,11 +2205,11 @@
<string name="for_social_media">Für soziale Medien</string>
<string name="or_to_share_privately">Oder zum privaten Teilen</string>
<string name="simplex_address_or_1_time_link">SimpleX-Adresse oder Einmal-Link?</string>
<string name="onboarding_choose_server_operators">Betreiber auswählen</string>
<string name="onboarding_choose_server_operators">Server-Betreiber</string>
<string name="onboarding_network_operators">Netzwerk-Betreiber</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Wenn mehr als ein Netzwerk-Betreiber aktiviert ist, verwendet die App für jede Unterhaltung Server der verschiedenen Betreiber.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Die App verwendet für jede Unterhaltung Server von unterschiedlichen Betreibern, um Ihre Privatsphäre zu schützen.</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">Die Nutzungsbedingungen der aktivierten Betreiber werden nach 30 Tagen akzeptiert.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Wenn Sie beispielsweise Nachrichten über einen SimpleX-Chatserver empfangen, verwendet die App einen der Server von Flux für die private Weiterleitung.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Wenn Ihr Kontakt beispielsweise Nachrichten über einen SimpleX-Chat-Server empfängt, wird Ihre App diese über einen Flux-Server versenden.</string>
<string name="onboarding_network_operators_review_later">Später einsehen</string>
<string name="onboarding_select_network_operators_to_use">Wählen sie die zu nutzenden Netzwerk-Betreiber aus.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Sie können die Betreiber in den Netzwerk- und Servereinstellungen konfigurieren.</string>
@@ -2247,7 +2236,7 @@
<string name="operator_use_for_messages">Für Nachrichten verwenden</string>
<string name="operator_added_message_servers">Nachrichtenserver hinzugefügt</string>
<string name="operator_use_for_messages_private_routing">Für privates Routing</string>
<string name="xftp_servers_per_user">Die Server Deines aktuellen Chat-Profils für neue Dateien</string>
<string name="xftp_servers_per_user">Medien- und Datei-Server für neue Daten über Ihr aktuelles Chat-Profil</string>
<string name="operator_use_for_sending">Für das Senden</string>
<string name="operator_use_for_files">Für Dateien verwenden</string>
<string name="error_adding_server">Fehler beim Hinzufügen des Servers</string>
@@ -2272,7 +2261,7 @@
<string name="one_time_link_can_be_used_with_one_contact_only"><![CDATA[Ein Einmal-Link kann <i>nur mit einem Kontakt</i> genutzt werden - teilen Sie in nur persönlich oder über einen beliebigen Messenger.]]></string>
<string name="operator_conditions_accepted_for_some"><![CDATA[Die Nutzungsbedingungen der/des folgenden Betreiber(s) wurden schon akzeptiert: <b>%s</b>.]]></string>
<string name="operators_conditions_will_be_accepted_for"><![CDATA[Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_on">Die Nutzungsbedingungen werden akzeptiert am: %s.</string>
<string name="operator_conditions_will_be_accepted_on">Die Nutzungsbedingungen wurden akzeptiert am: %s</string>
<string name="operator_conditions_will_be_applied"><![CDATA[Diese Nutzungsbedingungen gelten auch für: <b>%s</b>.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Um die Server von <b>%s</b> zu nutzen, müssen Sie dessen Nutzungsbedingungen akzeptieren.]]></string>
<string name="error_accepting_operator_conditions">Fehler beim Akzeptieren der Nutzungsbedingungen</string>
@@ -2286,10 +2275,50 @@
<string name="connection_error_quota_desc">Diese Verbindung hat das Limit der nicht ausgelieferten Nachrichten erreicht. Ihr Kontakt ist möglicherweise offline.</string>
<string name="message_deleted_or_not_received_error_desc">Diese Nachricht wurde gelöscht oder bisher noch nicht empfangen.</string>
<string name="to_protect_against_your_link_replaced_compare_codes">Zum Schutz vor dem Austausch Ihres Links können Sie die Sicherheitscodes Ihrer Kontakte vergleichen.</string>
<string name="operators_conditions_accepted_for"><![CDATA[Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: <b>%s</b>.]]></string>
<string name="operators_conditions_accepted_for"><![CDATA[Die Nutzungsbedingungen der/des Betreiber(s) wurden akzeptiert: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Die Nutzungsbedingungen der/des Betreiber(s) werden akzeptiert: <b>%s</b>.]]></string>
<string name="operator_conditions_accepted_on">Die Nutzungsbedingungen wurden akzeptiert am: %s.</string>
<string name="operator_conditions_failed_to_load">Der Text der aktuellen Nutzungsbedingungen konnte nicht geladen werden. Sie können die Nutzungsbedingungen unter diesem Link einsehen:</string>
<string name="remote_hosts_section">Ferngesteuerte Mobiltelefone</string>
<string name="chat_archive">Oder importieren Sie eine Archiv-Datei</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Hinweis für Geräte von Xiaomi</b>: Bitte aktivieren Sie in den System-Einstellungen die Option "Autostart", damit Benachrichtigungen funktionieren.]]></string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Alle Nachrichten und Dateien werden <b>Ende-zu-Ende-verschlüsselt</b> versendet. In Direktnachrichten sogar mit Post-Quantum-Security.]]></string>
<string name="button_add_team_members">Team-Mitglieder aufnehmen</string>
<string name="button_add_friends">Freunde aufnehmen</string>
<string name="display_name_accepted_invitation">Einladung akzeptiert</string>
<string name="business_address">Geschäftliche Adresse</string>
<string name="v6_2_business_chats">Geschäftliche Chats</string>
<string name="add_your_team_members_to_conversations">Nehmen Sie Team-Mitglieder in Ihre Unterhaltungen auf.</string>
<string name="onboarding_notifications_mode_service_desc_short">Die App läuft immer im Hintergrund ab</string>
<string name="direct_messages_are_prohibited_in_chat">In diesem Chat sind Direktnachrichten zwischen Mitgliedern nicht erlaubt.</string>
<string name="onboarding_notifications_mode_off_desc_short">Kein Hintergrund-Service</string>
<string name="onboarding_notifications_mode_periodic_desc_short">Nachrichten alle 10 Minuten überprüfen</string>
<string name="onboarding_notifications_mode_battery">Benachrichtigungen und Akku</string>
<string name="invite_to_chat_button">Zum Chat einladen</string>
<string name="connect_plan_chat_already_exists">Chat besteht bereits!</string>
<string name="chat_bottom_bar">Chat-Symbolleiste unten</string>
<string name="button_leave_chat">Chat verlassen</string>
<string name="member_will_be_removed_from_chat_cannot_be_undone">Das Mitglied wird aus dem Chat entfernt. Dies kann nicht rückgängig gemacht werden!</string>
<string name="chat_main_profile_sent">Ihr Chat-Profil wird an die Chat-Mitglieder gesendet.</string>
<string name="direct_messages_are_prohibited">Direktnachrichten zwischen Mitgliedern sind nicht erlaubt.</string>
<string name="how_it_helps_privacy">Wie die Privatsphäre geschützt wird</string>
<string name="leave_chat_question">Chat verlassen?</string>
<string name="delete_chat_question">Chat löschen?</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">Der Chat wird für alle Mitglieder gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="v6_2_business_chats_descr">Schutz der Privatsphäre Ihrer Kunden.</string>
<string name="display_name_requested_to_connect">Zur Verbindung aufgefordert</string>
<string name="maximum_message_size_reached_non_text">Bitte verkleinern Sie die Nachrichten-Größe oder entfernen Sie Medien und versenden Sie diese erneut.</string>
<string name="only_chat_owners_can_change_prefs">Nur Chat-Eigentümer können die Präferenzen ändern.</string>
<string name="maximum_message_size_reached_text">Bitte verkleinern Sie die Nachrichten-Größe und versenden Sie diese erneut.</string>
<string name="member_role_will_be_changed_with_notification_chat">Die Rolle wird auf %s geändert. Im Chat wird Jeder darüber informiert.</string>
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Sie werden von diesem Chat keine Nachrichten mehr erhalten. Der Nachrichtenverlauf wird beibehalten.</string>
<string name="maximum_message_size_reached_forwarding">Sie können die Nachricht kopieren und verkleinern, um sie zu versenden.</string>
<string name="button_delete_chat">Chat löschen</string>
<string name="delete_chat_for_self_cannot_undo_warning">Der Chat wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden!</string>
<string name="maximum_message_size_title">Die Nachricht ist zu umfangreich!</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Wenn mehr als ein Betreiber aktiviert ist, hat keiner von ihnen Metadaten, um zu erfahren, wer mit wem kommuniziert.</string>
<string name="info_row_chat">Chat</string>
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Sie sind bereits mit <b>%1$s</b> verbunden.]]></string>
<string name="onboarding_network_about_operators">Über Betreiber</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX-Chat und Flux haben vereinbart, die von Flux betriebenen Server in die App aufzunehmen.</string>
</resources>
@@ -36,8 +36,7 @@
<string name="appearance_settings">Apariencia</string>
<string name="app_version_title">Versión</string>
<string name="network_session_mode_user_description"><![CDATA[Se usará una conexión TCP (y credenciales SOCKS) independiente <b>por cada perfil que tengas en la aplicación</b>.]]></string>
<string name="network_session_mode_entity_description">Se usará una conexión TCP (y credenciales SOCKS) independiente <b>por cada contacto y miembro del grupo</b>.
\n<b>Recuerda</b>: si tienes muchas conexiones, el consumo de batería y tráfico pueden ser sustancialmente mayores y algunas conexiones pueden fallar.</string>
<string name="network_session_mode_entity_description">Se usará una conexión TCP (y credenciales SOCKS) independiente <b>por cada contacto y miembro del grupo</b>. \n<b>Recuerda</b>: si tienes muchas conexiones, el consumo de batería y tráfico pueden aumentar bastante y algunas conexiones pueden fallar.</string>
<string name="a_plus_b">a + b</string>
<string name="about_simplex">Acerca de SimpleX</string>
<string name="bold_text">negrita</string>
@@ -94,7 +93,7 @@
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">Autenticación de dispositivo desactivada. Puedes habilitar Bloqueo SimpleX en Configuración, después de activar la autenticación de dispositivo.</string>
<string name="no_call_on_lock_screen">Desactivar</string>
<string name="disappearing_prohibited_in_this_chat">Los mensajes temporales no están permitidos en este chat.</string>
<string name="disappearing_messages_are_prohibited">Los mensajes temporales no están permitidos en este grupo.</string>
<string name="disappearing_messages_are_prohibited">Mensajes temporales no permitidos.</string>
<string name="display_name_cannot_contain_whitespace">El nombre mostrado no puede contener espacios en blanco.</string>
<string name="encrypted_video_call">Videollamada con cifrado de extremo a extremo</string>
<string name="display_name_connection_established">conexión establecida</string>
@@ -337,7 +336,7 @@
<string name="enter_passphrase">Introduce la contraseña…</string>
<string name="icon_descr_group_inactive">Grupo inactivo</string>
<string name="group_member_status_group_deleted">grupo eliminado</string>
<string name="group_members_can_send_disappearing">Los miembros del grupo pueden enviar mensajes temporales.</string>
<string name="group_members_can_send_disappearing">Los miembros pueden enviar mensajes temporales.</string>
<string name="v4_2_group_links">Enlaces de grupo</string>
<string name="invalid_connection_link">Enlace de conexión no válido</string>
<string name="error_accepting_contact_request">Error al aceptar solicitud del contacto</string>
@@ -357,7 +356,7 @@
<string name="error_deleting_database">Error al eliminar base de datos</string>
<string name="encrypted_database">Base de datos cifrada</string>
<string name="error_removing_member">Error al eliminar miembro</string>
<string name="group_members_can_send_voice">Los miembros del grupo pueden enviar mensajes de voz.</string>
<string name="group_members_can_send_voice">Los miembros pueden enviar mensajes de voz.</string>
<string name="description_via_contact_address_link_incognito">en modo incógnito mediante enlace de dirección del contacto</string>
<string name="failed_to_create_user_title">¡Error al crear perfil!</string>
<string name="failed_to_parse_chat_title">No se pudo cargar el chat</string>
@@ -407,8 +406,8 @@
<string name="conn_stats_section_title_servers">SERVIDORES</string>
<string name="group_display_name_field">Nombre del grupo:</string>
<string name="group_preferences">Preferencias del grupo</string>
<string name="group_members_can_send_dms">Los miembros del grupo pueden enviar mensajes directos.</string>
<string name="group_members_can_delete">Los miembros del grupo pueden eliminar mensajes de forma irreversible. (24 horas)</string>
<string name="group_members_can_send_dms">Los miembros pueden enviar mensajes directos.</string>
<string name="group_members_can_delete">Los miembros pueden eliminar mensajes enviados de forma irreversible. (24 horas)</string>
<string name="v4_3_improved_privacy_and_security_desc">Ocultar pantalla de aplicaciones en aplicaciones recientes.</string>
<string name="encrypt_database">Cifrar</string>
<string name="icon_descr_expand_role">Ampliar la selección de roles</string>
@@ -431,7 +430,7 @@
<string name="how_it_works">Cómo funciona</string>
<string name="delete_message_cannot_be_undone_warning">El mensaje será eliminado. ¡No podrá deshacerse!</string>
<string name="incognito_info_protects">El modo incógnito protege tu privacidad creando un perfil aleatorio por cada contacto.</string>
<string name="turn_off_battery_optimization"><![CDATA[Para usar SimpleX, por favor <b>permite que SimpleX se ejecute en segundo plano</b> en el siguiente cuadro de diálogo. De lo contrario las notificaciones se desactivarán.]]></string>
<string name="turn_off_battery_optimization"><![CDATA[<b>Da permiso</b> en el siguiente diálogo para recibir notificaciones instantáneas.]]></string>
<string name="install_simplex_chat_for_terminal">Instalar terminal de SimpleX Chat</string>
<string name="group_invitation_item_description">invitación al grupo %1$s</string>
<string name="rcv_group_event_member_added">ha invitado a %1$s</string>
@@ -443,7 +442,7 @@
<string name="icon_descr_instant_notifications">Notificación instantánea</string>
<string name="network_settings_title">Configuración avanzada</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes.</string>
<string name="onboarding_notifications_mode_subtitle">Puedes cambiar estos ajustes más tarde en Configuración.</string>
<string name="onboarding_notifications_mode_subtitle">Cómo afecta a la batería</string>
<string name="onboarding_notifications_mode_service">Instantánea</string>
<string name="join_group_button">Unirte</string>
<string name="join_group_incognito_button">Unirte en modo incógnito</string>
@@ -451,7 +450,7 @@
<string name="theme_light">Claro</string>
<string name="chat_preferences_on">Activado</string>
<string name="message_deletion_prohibited">La eliminación irreversible de mensajes no está permitida en este chat.</string>
<string name="message_deletion_prohibited_in_chat">La eliminación irreversible de mensajes no está permitida en este grupo.</string>
<string name="message_deletion_prohibited_in_chat">Eliminación irreversible no permitida.</string>
<string name="v4_3_improved_server_configuration">Configuración del servidor mejorada</string>
<string name="alert_text_skipped_messages_it_can_happen_when">Esto puede ocurrir cuando:
\n1. Los mensajes hayan caducado en el cliente saliente tras 2 días o en el servidor tras 30 días.
@@ -555,7 +554,7 @@
<string name="snd_conn_event_switch_queue_phase_completed_for_member">has cambiado el servidor para %s</string>
<string name="rcv_group_event_member_left">ha salido</string>
<string name="button_leave_group">Salir del grupo</string>
<string name="only_group_owners_can_change_prefs">Sólo los propietarios pueden modificar las preferencias del grupo.</string>
<string name="only_group_owners_can_change_prefs">Sólo los propietarios del grupo pueden cambiar las preferencias.</string>
<string name="users_delete_data_only">Eliminar sólo el perfil</string>
<string name="chat_preferences_no">no</string>
<string name="thousand_abbreviation">k</string>
@@ -642,7 +641,7 @@
<string name="icon_descr_profile_image_placeholder">Espacio reservado para la imagen del perfil</string>
<string name="image_descr_qr_code">Código QR</string>
<string name="chat_with_the_founder">Consultas y sugerencias</string>
<string name="smp_servers_preset_address">Dirección del servidor predefinida</string>
<string name="smp_servers_preset_address">Dirección predefinida del servidor</string>
<string name="send_us_an_email">Contacta vía email</string>
<string name="rate_the_app">Valora la aplicación</string>
<string name="save_servers_button">Guardar</string>
@@ -718,7 +717,7 @@
<string name="icon_descr_sent_msg_status_unauthorized_send">envío no autorizado</string>
<string name="set_contact_name">Escribe un nombre para el contacto</string>
<string name="unknown_error">Error desconocido</string>
<string name="member_role_will_be_changed_with_notification">El rol del miembro cambiará a "%s" y se notificará al grupo.</string>
<string name="member_role_will_be_changed_with_notification">El rol cambiará a %s. Todos serán notificados.</string>
<string name="v4_2_security_assessment_desc">La seguridad de SimpleX Chat ha sido auditada por Trail of Bits.</string>
<string name="v4_4_disappearing_messages_desc">Los mensajes enviados se eliminarán una vez transcurrido el tiempo establecido.</string>
<string name="ntf_channel_messages">Mensajes de chat SimpleX</string>
@@ -733,16 +732,15 @@
<string name="share_invitation_link">Compartir enlace de un uso</string>
<string name="update_network_session_mode_question">¿Actualizar el modo de aislamiento de transporte\?</string>
<string name="icon_descr_speaker_on">Altavoz activado</string>
<string name="stop_chat_to_enable_database_actions">Para habilitar las acciones sobre la base de datos, debes parar SimpleX</string>
<string name="connection_you_accepted_will_be_cancelled">¡La conexión que has aceptado se cancelará!</string>
<string name="database_initialization_error_desc">La base de datos no funciona correctamente. Pulsa para conocer más</string>
<string name="moderate_message_will_be_marked_warning">El mensaje será marcado como moderado para todos los miembros.</string>
<string name="next_generation_of_private_messaging">La nueva generación \nde mensajería privada</string>
<string name="next_generation_of_private_messaging">El futuro de la mensajería</string>
<string name="delete_files_and_media_desc">Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán.</string>
<string name="enable_automatic_deletion_message">Esta acción es irreversible. Los mensajes enviados y recibidos anteriores a la selección serán eliminados. Podría tardar varios minutos.</string>
<string name="messages_section_description">Esta configuración se aplica a los mensajes del perfil actual</string>
<string name="this_string_is_not_a_connection_link">¡Esta cadena no es un enlace de conexión!</string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Para preservar tu privacidad, en lugar de notificaciones automáticas la aplicación cuenta con un <b>servicio en segundo planoSimpleX</b>, usa un pequeño porcentaje de la batería al día.]]></string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Para mejorar la privacidad <b>SimpleX se ejecuta en segundo plano</b> en lugar de usar notificaciones push.]]></string>
<string name="icon_descr_settings">Configuración</string>
<string name="icon_descr_speaker_off">Altavoz desactivado</string>
<string name="add_contact_or_create_group">Inciar chat nuevo</string>
@@ -786,7 +784,7 @@
<string name="smp_servers_test_server">Probar servidor</string>
<string name="smp_servers_test_servers">Probar servidores</string>
<string name="star_on_github">Estrella en GitHub</string>
<string name="smp_servers_per_user">Lista de servidores para las conexiones nuevas de tu perfil actual</string>
<string name="smp_servers_per_user">Servidores para conexiones nuevas en tu perfil</string>
<string name="network_disable_socks">¿Usar conexión directa a Internet\?</string>
<string name="profile_is_only_shared_with_your_contacts">El perfil sólo se comparte con tus contactos.</string>
<string name="callstate_starting">inicializando…</string>
@@ -805,7 +803,7 @@
<string name="update_database_passphrase">Actualizar contraseña base de datos</string>
<string name="group_invitation_tap_to_join_incognito">Pulsa para unirte en modo incógnito</string>
<string name="switch_verb">Cambiar</string>
<string name="member_role_will_be_changed_with_invitation">El rol del miembro cambiará a "%s" y recibirá una invitación nueva.</string>
<string name="member_role_will_be_changed_with_invitation">El rol cambiará a %s y el miembro recibirá una invitación nueva.</string>
<string name="update_network_settings_confirmation">Actualizar</string>
<string name="update_network_settings_question">¿Actualizar la configuración de red\?</string>
<string name="trying_to_connect_to_server_to_receive_messages">Intentando conectar con el servidor para recibir mensajes de este contacto.</string>
@@ -826,7 +824,7 @@
<string name="smp_servers_test_failed">¡Prueba no superada!</string>
<string name="smp_servers_test_some_failed">Algunos servidores no han superado la prueba:</string>
<string name="smp_servers_use_server">Usar servidor</string>
<string name="smp_servers_use_server_for_new_conn">Usar para conexiones nuevas</string>
<string name="smp_servers_use_server_for_new_conn">Para conexiones nuevas</string>
<string name="theme_system">Sistema</string>
<string name="description_via_one_time_link">mediante enlace de un solo uso</string>
<string name="your_chats">Chats</string>
@@ -841,9 +839,9 @@
<string name="v4_3_voice_messages">Mensajes de voz</string>
<string name="v4_3_irreversible_message_deletion_desc">Tus contactos pueden permitir la eliminación completa de mensajes.</string>
<string name="voice_messages">Mensajes de voz</string>
<string name="voice_messages_are_prohibited">Los mensajes de voz no están permitidos en este grupo.</string>
<string name="voice_messages_are_prohibited">Mensajes de voz no permitidos.</string>
<string name="v4_4_verify_connection_security">Comprobar la seguridad de la conexión</string>
<string name="you_are_already_connected_to_vName_via_this_link">¡Ya estás conectado a %1$s.</string>
<string name="you_are_already_connected_to_vName_via_this_link">¡Ya estás conectado con %1$s.</string>
<string name="welcome">¡Bienvenido!</string>
<string name="your_chat_profile_will_be_sent_to_your_contact">Tu perfil será enviado
\na tu contacto</string>
@@ -1029,7 +1027,7 @@
<string name="your_XFTP_servers">Servidores XFTP</string>
<string name="port_verb">Puerto</string>
<string name="network_proxy_port">puerto %d</string>
<string name="disable_onion_hosts_when_not_supported"><![CDATA[Configura <i>Usar hosts .onion</i> como <i>No</i> si el proxy SOCKS no los admite.]]></string>
<string name="disable_onion_hosts_when_not_supported"><![CDATA[<i>Usar hosts .onion</i> debe estar a <i>No</i> si el proxy SOCKS no los admite.]]></string>
<string name="smp_server_test_download_file">Descargar archivo</string>
<string name="network_socks_toggle_use_socks_proxy">Usar proxy SOCKS</string>
<string name="host_verb">Host</string>
@@ -1209,7 +1207,7 @@
<string name="custom_time_unit_weeks">semanas</string>
<string name="error_loading_details">Error al cargar detalles</string>
<string name="group_members_can_add_message_reactions">Los miembros pueden añadir reacciones a los mensajes.</string>
<string name="message_reactions_are_prohibited">Las reacciones a los mensajes no están permitidas en este grupo.</string>
<string name="message_reactions_are_prohibited">Reacciones a los mensajes no permitidas.</string>
<string name="only_your_contact_can_add_message_reactions">Sólo tu contacto puede añadir reacciones a los mensajes.</string>
<string name="send_disappearing_message_1_minute">1 minuto</string>
<string name="info_row_updated_at">Registro actualiz</string>
@@ -1229,12 +1227,12 @@
<string name="v5_1_custom_themes_descr">Personalizar y compartir temas de color.</string>
<string name="v5_1_message_reactions_descr">¡Por fin los tenemos! 🚀</string>
<string name="v5_1_message_reactions">Reacciones a los mensajes</string>
<string name="whats_new_read_more">Conoce más</string>
<string name="whats_new_read_more">Saber más</string>
<string name="v5_1_japanese_portuguese_interface">Interfaz en japonés y portugués</string>
<string name="item_info_no_text">sin texto</string>
<string name="non_fatal_errors_occured_during_import">Han ocurrido algunos errores no críticos durante la importación:</string>
<string name="shutdown_alert_question">¿Cerrar\?</string>
<string name="settings_section_title_app">Aplicación</string>
<string name="settings_section_title_app">APLICACIÓN</string>
<string name="settings_restart_app">Reiniciar</string>
<string name="settings_shutdown">Cerrar</string>
<string name="shutdown_alert_desc">Las notificaciones dejarán de funcionar hasta que reinicies la aplicación</string>
@@ -1249,8 +1247,8 @@
<string name="abort_switch_receiving_address">Cancelar cambio de dirección</string>
<string name="files_and_media">Archivos y multimedia</string>
<string name="prohibit_sending_files">No se permite el envío de archivos y multimedia.</string>
<string name="files_are_prohibited_in_group">Los archivos y multimedia no están permitidos en este grupo.</string>
<string name="group_members_can_send_files">Los miembros del grupo pueden enviar archivos y multimedia.</string>
<string name="files_are_prohibited_in_group">Archivos y multimedia no permitidos.</string>
<string name="group_members_can_send_files">Los miembros pueden enviar archivos y multimedia.</string>
<string name="allow_to_send_files">Se permite enviar archivos y multimedia</string>
<string name="favorite_chat">Favorito</string>
<string name="only_owners_can_enable_files_and_media">Sólo los propietarios del grupo pueden activar los archivos y multimedia.</string>
@@ -1357,7 +1355,7 @@
<string name="you_can_change_it_later">La contraseña aleatoria se almacenará en Configuración como texto plano.
\nPuedes cambiarlo más tarde.</string>
<string name="database_encryption_will_be_updated_in_settings">La contraseña para el cifrado de la base de datos se actualizará y almacenará en Configuración</string>
<string name="remove_passphrase_from_settings">Eliminar contraseña de configuración\?</string>
<string name="remove_passphrase_from_settings">¿Eliminar contraseña de configuración?</string>
<string name="use_random_passphrase">Usar contraseña aleatoria</string>
<string name="save_passphrase_in_settings">Guardar contraseña en configuración</string>
<string name="setup_database_passphrase">Configuración contraseña base de datos</string>
@@ -1369,7 +1367,7 @@
<string name="v5_3_encrypt_local_files">Cifra archivos almacenados y multimedia</string>
<string name="error_creating_member_contact">Error al establecer contacto con el miembro</string>
<string name="socks_proxy_setting_limitations"><![CDATA[<b>Recuerda</b>: los servidores están conectados mediante proxy SOCKS, pero las llamadas y las previsualizaciones de enlaces usan conexión directa.]]></string>
<string name="encrypt_local_files">Cifra archivos locales</string>
<string name="encrypt_local_files">Cifrar archivos locales</string>
<string name="v5_3_new_desktop_app">Nueva aplicación para ordenador!</string>
<string name="v5_3_new_interface_languages">6 idiomas nuevos para el interfaz</string>
<string name="v5_3_encrypt_local_files_descr">Cifrado de los nuevos archivos locales (excepto vídeos).</string>
@@ -1716,8 +1714,8 @@
<string name="simplex_links_not_allowed">Enlaces SimpleX no permitidos</string>
<string name="voice_messages_not_allowed">Mensajes de voz no permitidos</string>
<string name="simplex_links">Enlaces SimpleX</string>
<string name="group_members_can_send_simplex_links">Los miembros del grupo pueden enviar enlaces SimpleX.</string>
<string name="simplex_links_are_prohibited_in_group">Los enlaces SimpleX no se permiten en este grupo.</string>
<string name="group_members_can_send_simplex_links">Los miembros pueden enviar enlaces SimpleX.</string>
<string name="simplex_links_are_prohibited_in_group">Enlaces SimpleX no permitidos.</string>
<string name="feature_roles_owners">propietarios</string>
<string name="network_type_cellular">Móvil</string>
<string name="network_type_no_network_connection">Sin conexión de red</string>
@@ -1898,7 +1896,7 @@
<string name="decryption_errors">errores de descifrado</string>
<string name="deleted">Eliminadas</string>
<string name="deletion_errors">Errores de eliminación</string>
<string name="member_info_member_disabled">desactivado</string>
<string name="member_info_member_disabled">inactivo</string>
<string name="message_forwarded_title">Mensaje reenviado</string>
<string name="member_inactive_desc">El mensaje puede ser entregado más tarde si el miembro vuelve a estar activo.</string>
<string name="member_inactive_title">Miembro inactivo</string>
@@ -1969,8 +1967,7 @@
<string name="size">Tamaño</string>
<string name="servers_info_subscriptions_connections_subscribed">Conexiones activas</string>
<string name="servers_info_starting_from">Iniciado el %s.</string>
<string name="servers_info_private_data_disclaimer">Iniciado el %s
\nTodos los datos son privados a tu dispositivo</string>
<string name="servers_info_private_data_disclaimer">Iniciado el %s \nLa información es privada en tu dispositivo.</string>
<string name="chunks_deleted">Bloques eliminados</string>
<string name="chunks_downloaded">Bloques descargados</string>
<string name="chunks_uploaded">Bloques subidos</string>
@@ -1991,7 +1988,7 @@
<string name="privacy_media_blur_radius_medium">Medio</string>
<string name="privacy_media_blur_radius_soft">Suave</string>
<string name="one_hand_ui">Barra de herramientas accesible</string>
<string name="info_view_call_button">llamada</string>
<string name="info_view_call_button">llamar</string>
<string name="info_view_connect_button">conectar</string>
<string name="delete_members_messages__question">¿Eliminar %d mensajes de miembros?</string>
<string name="info_view_message_button">mensaje</string>
@@ -2040,7 +2037,7 @@
<string name="proxy_destination_error_broker_host">La dirección del servidor de destino de %1$s es incompatible con la configuración del servidor de reenvío %2$s.</string>
<string name="proxy_destination_error_broker_version">La versión del servidor de destino de %1$s es incompatible con el servidor de reenvío %2$s.</string>
<string name="contact_list_header_title">Tus contactos</string>
<string name="you_need_to_allow_calls">Necesitas permitir que tus contacto llamen para poder llamarles.</string>
<string name="you_need_to_allow_calls">Debes permitir que tus contacto te llamen para poder llamarles.</string>
<string name="smp_proxy_error_connecting">Error al conectar con el servidor de reenvío %1$s. Por favor, inténtalo más tarde.</string>
<string name="smp_proxy_error_broker_host">La dirección del servidor de reenvío es incompatible con la configuración de red: %1$s.</string>
<string name="proxy_destination_error_failed_to_connect">El servidor de reenvío %1$s no ha podido conectarse al servidor de destino %2$s. Por favor, intentalo más tarde.</string>
@@ -2084,8 +2081,8 @@
<string name="network_proxy_incorrect_config_title">Error guardando proxy</string>
<string name="network_proxy_password">Contraseña</string>
<string name="network_proxy_auth">Autenticación proxy</string>
<string name="network_proxy_auth_mode_isolate_by_auth_entity">Credenciales proxy diferentes para cada conexión.</string>
<string name="network_proxy_auth_mode_isolate_by_auth_user">Credenciales proxy diferentes para cada perfil.</string>
<string name="network_proxy_auth_mode_isolate_by_auth_entity">Se usan credenciales proxy diferentes para cada conexión.</string>
<string name="network_proxy_auth_mode_isolate_by_auth_user">Se usan credenciales proxy diferentes para cada perfil.</string>
<string name="network_proxy_random_credentials">Credenciales aleatorias</string>
<string name="network_proxy_username">Nombre de usuario</string>
<string name="network_proxy_auth_mode_username_password">Tus credenciales podrían ser enviadas sin cifrar.</string>
@@ -2102,12 +2099,12 @@
<string name="settings_message_shape_corner">Esquinas</string>
<string name="settings_message_shape_tail">Cola</string>
<string name="network_session_mode_session_description">Se usarán credenciales SOCKS nuevas cada vez que inicies la aplicación.</string>
<string name="network_session_mode_session">Sesión de aplicación</string>
<string name="network_session_mode_session">por sesión</string>
<string name="call_desktop_permission_denied_safari">Abre la configuración de Safari / Sitios Web / Micrófono y a continuación selecciona Permitir para localhost.</string>
<string name="call_desktop_permission_denied_chrome">Pulsa el botón info del campo dirección para permitir el uso del micrófono.</string>
<string name="call_desktop_permission_denied_title">Para hacer llamadas, permite el uso del micrófono. Cuelga e intenta llamar de nuevo.</string>
<string name="network_session_mode_server_description">Se usarán credenciales SOCKS nuevas por cada servidor.</string>
<string name="network_session_mode_server">Servidor</string>
<string name="network_session_mode_server_description">Se usarán credenciales SOCKS nuevas para cada servidor.</string>
<string name="network_session_mode_server">por servidor</string>
<string name="v6_1_better_calls">Llamadas mejoradas</string>
<string name="v6_1_message_dates_descr">Sistema de fechas mejorado.</string>
<string name="v6_1_better_user_experience">Experiencia de usuario mejorada</string>
@@ -2121,17 +2118,17 @@
<string name="failed_to_save_servers">Error al guardar servidores</string>
<string name="errors_in_servers_configuration">Error en la configuración del servidor.</string>
<string name="for_chat_profile">Para el perfil de chat %s:</string>
<string name="no_message_servers_configured">Ningún servidor de mensajes.</string>
<string name="no_media_servers_configured_for_private_routing">Ningún servidor para recibir archivos.</string>
<string name="no_media_servers_configured_for_sending">Ningún servidor para enviar archivos.</string>
<string name="no_message_servers_configured">Sin servidores para mensajes.</string>
<string name="no_media_servers_configured_for_private_routing">Sin servidores para recibir archivos.</string>
<string name="no_media_servers_configured_for_sending">Sin servidores para enviar archivos.</string>
<string name="connection_security">Seguridad de conexión</string>
<string name="share_1_time_link_with_a_friend">Compartir enlace de un uso con un amigo</string>
<string name="share_simplex_address_on_social_media">Compartir dirección SimpleX en redes sociales.</string>
<string name="share_simplex_address_on_social_media">Comparte tu dirección SimpleX en redes sociales.</string>
<string name="address_settings">Configuración de dirección</string>
<string name="create_1_time_link">Crear enlace de un uso</string>
<string name="for_social_media">Para redes sociales</string>
<string name="simplex_address_or_1_time_link">Dirección SimpleX o enlace de un uso?</string>
<string name="onboarding_choose_server_operators">Selecciona operadores</string>
<string name="simplex_address_or_1_time_link">¿Dirección SimpleX o enlace de un uso?</string>
<string name="onboarding_choose_server_operators">Operadores de servidores</string>
<string name="onboarding_network_operators">Operadores de red</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">Las condiciones de los operadores habilitados serán aceptadas después de 30 días.</string>
<string name="onboarding_network_operators_review_later">Revisar más tarde</string>
@@ -2143,7 +2140,7 @@
<string name="operator_servers_title">%s servidores</string>
<string name="operator_conditions_will_be_accepted_on">Las condiciones serán aceptadas el: %s.</string>
<string name="operator_conditions_of_use">Condiciones de uso</string>
<string name="operator_use_for_messages_private_routing">Para el enrutamiento privado</string>
<string name="operator_use_for_messages_private_routing">Para enrutamiento privado</string>
<string name="error_adding_server">Error al añadir servidor</string>
<string name="operator_open_changes">Abrir cambios</string>
<string name="operator_open_conditions">Abrir condiciones</string>
@@ -2163,20 +2160,20 @@
<string name="operator_conditions_accepted_for_enabled_operators_on">Las condiciones serán aceptadas automáticamente para los operadores habilitados el: %s.</string>
<string name="onboarding_network_operators_continue">Continuar</string>
<string name="operator_conditions_failed_to_load">El texto con las condiciones actuales no se ha podido cargar, puedes revisar las condiciones en el siguiente enlace:</string>
<string name="v6_2_network_decentralization_enable_flux">Habilitar Flux</string>
<string name="v6_2_network_decentralization_enable_flux">Habilita Flux</string>
<string name="error_accepting_operator_conditions">Error al aceptar las condiciones</string>
<string name="error_updating_server_title">Error al actualizar el servidor</string>
<string name="v6_2_network_decentralization_enable_flux_reason">para mayor privacidad de los metadatos.</string>
<string name="v6_2_network_decentralization_enable_flux_reason">para mejorar la privacidad de los metadatos.</string>
<string name="message_deleted_or_not_received_error_title">Ningún mensaje</string>
<string name="smp_servers_new_server">Servidor nuevo</string>
<string name="no_media_servers_configured">Ningún servidor de archivos y multimedia.</string>
<string name="no_message_servers_configured_for_private_routing">Ningún servidor para enrutamiento privado.</string>
<string name="no_message_servers_configured_for_receiving">Ningún servidor para recibir mensajes.</string>
<string name="no_media_servers_configured">Sin servidores para archivos y multimedia.</string>
<string name="no_message_servers_configured_for_private_routing">Sin servidores para enrutamiento privado.</string>
<string name="no_message_servers_configured_for_receiving">Sin servidores para recibir mensajes.</string>
<string name="operator_server_alert_title">Servidor del operador</string>
<string name="or_to_share_privately">O para compartir en privado</string>
<string name="onboarding_select_network_operators_to_use">Selecciona los operadores de red a utilizar</string>
<string name="share_address_publicly">Campartir dirección públicamente</string>
<string name="simplex_address_and_1_time_links_are_safe_to_share">Compartir enlaces de un uso y direcciones SimpleX es seguro a través de cualquier medio.</string>
<string name="simplex_address_and_1_time_links_are_safe_to_share">Compartir los enlaces de un uso y las direcciones SimpleX es seguro a través de cualquier medio.</string>
<string name="onboarding_network_operators_update">Actualizar</string>
<string name="operator_website">Sitio web</string>
<string name="your_servers">Tus servidores</string>
@@ -2192,25 +2189,65 @@
<string name="connection_error_quota">Mensajes no entregados</string>
<string name="one_time_link_can_be_used_with_one_contact_only"><![CDATA[Los enlaces de un uso pueden ser usados <i>solamente con un contacto</i> - comparte en persona o mediante cualquier aplicación de mensajería.]]></string>
<string name="you_can_set_connection_name_to_remember">Puedes añadir un nombre a la conexión para recordar a quién corresponde.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Cuando está habilitado más de un operador de red, la aplicación usa servidores de diferentes operadores para cada conversación.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">La aplicación protege tu privacidad mediante el uso de diferentes operadores en cada conversación.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Puedes configurar los operadores desde Servidores y Redes.</string>
<string name="operators_conditions_accepted_for"><![CDATA[Las condiciones se han aceptado para el(los) operador(s): <b>%s</b>.]]></string>
<string name="operators_conditions_will_be_accepted_for"><![CDATA[Las condiciones serán aceptadas para el/los operador(es): <b>%s</b>.]]></string>
<string name="operator_conditions_accepted_for_some"><![CDATA[Las condiciones ya se han aceptado para el/los siguiente(s) operador(s): <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Las mismas condiciones se aplican al operador <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Las mismas condiciones se aplican al operador <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Las condiciones serán aceptadas para el/los operador(es): <b>%s</b>.]]></string>
<string name="operators_conditions_will_also_apply"><![CDATA[Estas condiciones también se aplican para: <b>%s</b>.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Para usar los servidores de <b>%s</b>, acepta las condiciones de uso.]]></string>
<string name="xftp_servers_per_user">Los servidores para archivos nuevos en tu perfil actual</string>
<string name="v6_2_network_decentralization_descr">El segundo operador predefinido!</string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Para usar los servidores de <b>%s</b>, debes aceptar las condiciones de uso.]]></string>
<string name="xftp_servers_per_user">Servidores para archivos nuevos en tu perfil</string>
<string name="v6_2_network_decentralization_descr">¡Segundo operador predefinido!</string>
<string name="onboarding_network_operators_configure_via_settings">Puedes configurar los servidores a través de su configuración.</string>
<string name="to_protect_against_your_link_replaced_compare_codes">Para protegerte contra una sustitución del enlace, puedes comparar los códigos de seguridad con tu contacto.</string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Las mismas condiciones se aplican a el/los operador(es) <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Las mismas condiciones se aplican a el/los operador(es) <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_applied"><![CDATA[Estas condiciones también se aplican para: <b>%s</b>.]]></string>
<string name="onboarding_network_operators_app_will_use_for_routing">Si por ejemplo recibes los mensajes a través de un servidor de SimpleX Chat, la aplicación usará uno de Flux para el enrutamiento privado.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Por ejemplo, si tu contacto recibe a través de un servidor de SimpleX Chat, tu aplicación enviará a través de un servidor de Flux.</string>
<string name="address_creation_instruction">Pulsa Crear dirección SimpleX en el menú para crearla más tarde.</string>
<string name="connection_error_quota_desc">La conexión ha alcanzado el límite de mensajes no entregados. es posible que tu contacto esté desconectado.</string>
<string name="message_deleted_or_not_received_error_desc">El mensaje ha sido borrado o aún no se ha recibido.</string>
<string name="remote_hosts_section">Móvil remoto</string>
<string name="chat_archive">O importa desde un archivo</string>
<string name="direct_messages_are_prohibited_in_chat">Mensajes directos entre miembros de este chat no permitidos.</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>En dispositivos Xiaomi:</b> por favor, habilita el Autoinicio en los ajustes del sistema para que las notificaciones funcionen.]]></string>
<string name="maximum_message_size_reached_text">Por favor, reduce el tamaño del mensaje y envíalo de nuevo.</string>
<string name="maximum_message_size_reached_non_text">Por favor, reduce el tamaño del mensaje o elimina los archivos y envíalo de nuevo.</string>
<string name="maximum_message_size_reached_forwarding">Puedes copiar y reducir el tamaño del mensaje para enviarlo.</string>
<string name="add_your_team_members_to_conversations">Añade a los miembros de tu equipo a las conversaciones.</string>
<string name="onboarding_notifications_mode_battery">Notificaciones y batería</string>
<string name="invite_to_chat_button">Invitar al chat</string>
<string name="button_add_friends">Añadir amigos</string>
<string name="button_add_team_members">Añadir miembros del equipo</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">El chat será eliminado para todos los miembros. ¡No podrá deshacerse!</string>
<string name="button_delete_chat">Eliminar chat</string>
<string name="delete_chat_question">¿Eliminar chat?</string>
<string name="button_leave_chat">Salir del chat</string>
<string name="delete_chat_for_self_cannot_undo_warning">El chat será eliminado para tí. ¡No podrá deshacerse!</string>
<string name="only_chat_owners_can_change_prefs">Sólo los propietarios del chat pueden cambiar las preferencias.</string>
<string name="member_will_be_removed_from_chat_cannot_be_undone">El miembro será eliminado del chat. ¡No podrá deshacerse!</string>
<string name="member_role_will_be_changed_with_notification_chat">El rol cambiará a %s. Todos serán notificados.</string>
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Dejarás de recibir mensajes de este chat. El historial del chat se conserva.</string>
<string name="how_it_helps_privacy">Cómo ayuda a la privacidad</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Cuando está habilitado más de un operador, ninguno dispone de los metadatos para conocer quién se comunica con quién.</string>
<string name="chat_main_profile_sent">Tu perfil de chat será enviado a los miembros de chat</string>
<string name="v6_2_business_chats">Chats empresariales</string>
<string name="leave_chat_question">¿Salir del chat?</string>
<string name="v6_2_business_chats_descr">Privacidad para tus clientes.</string>
<string name="display_name_accepted_invitation">invitación aceptada</string>
<string name="display_name_requested_to_connect">solicitado para conectar</string>
<string name="business_address">Dirección empresarial</string>
<string name="onboarding_notifications_mode_periodic_desc_short">Comprobar mensajes cada 10 min.</string>
<string name="onboarding_notifications_mode_off_desc_short">Sin servicio en segundo plano</string>
<string name="info_row_chat">Chat</string>
<string name="chat_bottom_bar">Barra de herramientas accesible</string>
<string name="direct_messages_are_prohibited">Mensajes directos entre miembros no permitidos.</string>
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Ya estás conectado con <b>%1$s</b>.]]></string>
<string name="connect_plan_chat_already_exists">¡El chat ya existe!</string>
<string name="onboarding_network_about_operators">Acerca de los operadores</string>
<string name="onboarding_notifications_mode_service_desc_short">La aplicación siempre funciona en segundo plano</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Todos los mensajes y archivos son enviados <b>cifrados de extremo a extremo</b> y con seguridad postcuántica en mensajes directos.]]></string>
<string name="maximum_message_size_title">¡Mensaje demasiado largo!</string>
<string name="onboarding_network_operators_simplex_flux_agreement">Simplex Chat y Flux han acordado incluir servidores operados por Flux en la aplicación.</string>
</resources>
@@ -942,7 +942,6 @@
<string name="delete_files_and_media_desc">این عمل قابل برگشت نیست - تمام پرونده‌ها و رسانه دریافتی حذف خواهند شد. عکس‌های با کیفیت پایین باقی خواهند ماند.</string>
<string name="you_must_use_the_most_recent_version_of_database">شما باید از تازه‌ترین نسخه پایگاه داده گپ خود روی فقط یک دستگاه استفاده کنید، در غیر این صورت ممکن است از بعضی از مخاطب‌ها ‌دیگر پیامی دریافت نکنید.</string>
<string name="messages_section_title">پیام‌ها</string>
<string name="stop_chat_to_enable_database_actions">به منظور فعال‌سازی اقدامات پایگاه داده، گپ را متوقف کنید.</string>
<string name="enable_automatic_deletion_message">این عمل قابل برگشت نیست - پیام‌های ارسالی و دریافتی قدیمی‌تر از زمان انتخابی حذف خواهند شد. این کار ممکن است چندین دقیقه زمان ببرد.</string>
<string name="error_changing_message_deletion">خطا در تغییر تنظیمات</string>
<string name="save_passphrase_in_settings">ذخیره عبارت عبور در تنظیمات</string>
@@ -666,7 +666,6 @@
<string name="self_destruct_passcode">Itsetuhoutuva pääsykoodi</string>
<string name="restart_the_app_to_use_imported_chat_database">Käynnistä sovellus uudelleen käyttääksesi tuotua keskustelutietokantaa.</string>
<string name="old_database_archive">Vanha tietokanta-arkisto</string>
<string name="stop_chat_to_enable_database_actions">Pysäytä keskustelu, jotta tietokantatoiminnot voidaan ottaa käyttöön.</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Luo uusi keskusteluprofiili käynnistämällä sovellus uudelleen.</string>
<string name="messages_section_title">Viestit</string>
<string name="chat_item_ttl_none">ei koskaan</string>
@@ -617,7 +617,6 @@
<string name="error_importing_database">Erreur lors de l\'importation de la base de données du chat</string>
<string name="chat_database_imported">Base de données du chat importée</string>
<string name="delete_chat_profile_question">Supprimer le profil du chat \?</string>
<string name="stop_chat_to_enable_database_actions">Arrêter le chat pour agir sur la base de données.</string>
<string name="delete_files_and_media_question">Supprimer les fichiers et médias \?</string>
<string name="delete_files_and_media_desc">Cette action ne peut être annulée - tous les fichiers et médias reçus et envoyés seront supprimés. Les photos à faible résolution seront conservées.</string>
<string name="no_received_app_files">Aucun fichier reçu ou envoyé</string>
@@ -1952,8 +1951,7 @@
<string name="servers_info">Infos serveurs</string>
<string name="servers_info_target">Afficher les informations pour</string>
<string name="servers_info_starting_from">À partir de %s.</string>
<string name="servers_info_private_data_disclaimer">À partir de %s.
\nToutes les données restent confinées dans votre appareil.</string>
<string name="servers_info_private_data_disclaimer">À partir de %s. \nToutes les données restent confinées dans votre appareil.</string>
<string name="servers_info_statistics_section_header">Statistiques</string>
<string name="servers_info_subscriptions_total">Total</string>
<string name="xftp_server">Serveur XFTP</string>
@@ -15,7 +15,7 @@
<string name="send_disappearing_message_30_seconds">30 másodperc</string>
<string name="one_time_link_short">Egyszer használható meghívó-hivatkozás</string>
<string name="contact_wants_to_connect_via_call">%1$s szeretne kapcsolatba lépni Önnel ezen keresztül:</string>
<string name="about_simplex_chat">A SimpleX Chatről</string>
<string name="about_simplex_chat">SimpleX Chat névjegye</string>
<string name="chat_item_ttl_day">1 nap</string>
<string name="abort_switch_receiving_address">Címváltoztatás megszakítása</string>
<string name="about_simplex">A SimpleXről</string>
@@ -52,7 +52,7 @@
<string name="v4_5_transport_isolation_descr">A csevegési profillal (alapértelmezett), vagy a kapcsolattal (BÉTA).</string>
<string name="connect__a_new_random_profile_will_be_shared">Egy új véletlenszerű profil lesz megosztva.</string>
<string name="allow_voice_messages_only_if">A hangüzenetek küldése csak abban az esetben van engedélyezve, ha az ismerőse is engedélyezi.</string>
<string name="app_version_code">Az alkalmazás build száma: %s</string>
<string name="app_version_code">Az alkalmazás összeállítási száma: %s</string>
<string name="audio_video_calls">Hang- és videóhívások</string>
<string name="network_settings">Speciális hálózati beállítások</string>
<string name="allow_your_contacts_to_send_voice_messages">A hangüzenetek küldése engedélyezve van az ismerősei számára.</string>
@@ -106,7 +106,7 @@
<string name="v5_1_self_destruct_passcode_descr">A jelkód megadása után az összes adat törlésre kerül.</string>
<string name="icon_descr_video_asked_to_receive">Felkérték a videó fogadására</string>
<string name="block_member_button">Letiltás</string>
<string name="v5_2_more_things">Még néhány dolog</string>
<string name="v5_2_more_things">Néhány további dolog</string>
<string name="authentication_cancelled">Hitelesítés visszavonva</string>
<string name="allow_to_send_files">A fájlok- és a médiatartalmak küldése engedélyezve van.</string>
<string name="users_delete_all_chats_deleted">Az összes csevegés és üzenet törlésre kerül - ez a művelet nem vonható vissza!</string>
@@ -460,7 +460,7 @@
<string name="error_sending_message">Hiba az üzenet küldésekor</string>
<string name="la_enter_app_passcode">Jelkód megadása</string>
<string name="for_everybody">Mindenkinél</string>
<string name="encryption_renegotiation_error">Titkosítás újraegyeztetési hiba</string>
<string name="encryption_renegotiation_error">Titkosítás-újraegyeztetési hiba</string>
<string name="error_encrypting_database">Hiba az adatbázis titkosításakor</string>
<string name="error_deleting_group">Hiba a csoport törlésekor</string>
<string name="exit_without_saving">Kilépés mentés nélkül</string>
@@ -507,7 +507,7 @@
<string name="v4_6_group_moderation">Csoport moderáció</string>
<string name="choose_file">Fájl</string>
<string name="group_link">Csoporthivatkozás</string>
<string name="snd_conn_event_ratchet_sync_required">titkosítás-újraegyeztetés szükséges ehhez: %s</string>
<string name="snd_conn_event_ratchet_sync_required">a titkosítás újraegyeztetése szükséges a következőhöz: %s</string>
<string name="failed_to_active_user_title">Hiba a profilváltáskor!</string>
<string name="settings_experimental_features">Kísérleti funkciók</string>
<string name="receipts_contacts_enable_keep_overrides">Engedélyezés (felülírások megtartásával)</string>
@@ -532,7 +532,7 @@
<string name="fix_connection_question">Kapcsolat javítása?</string>
<string name="files_and_media">Fájlok és médiatartalmak</string>
<string name="section_title_for_console">KONZOLHOZ</string>
<string name="alert_text_encryption_renegotiation_failed">Sikertelen titkosítás-újraegyeztetés.</string>
<string name="alert_text_encryption_renegotiation_failed">Nem sikerült a titkosítást újraegyeztetni.</string>
<string name="error_deleting_user">Hiba a felhasználó-profil törlésekor</string>
<string name="fix_connection_not_supported_by_group_member">Csoporttag általi javítás nem támogatott</string>
<string name="enter_welcome_message">Üdvözlőüzenet megadása…</string>
@@ -610,7 +610,7 @@
<string name="feature_enabled">engedélyezve</string>
<string name="error_loading_details">Hiba a részletek betöltésekor</string>
<string name="error_accepting_contact_request">Hiba történt a kapcsolatkérés elfogadásakor</string>
<string name="snd_conn_event_ratchet_sync_allowed">titkosítás újraegyeztetése engedélyezett %s számára</string>
<string name="snd_conn_event_ratchet_sync_allowed">a titkosítás újraegyeztetése engedélyezve van a következőhöz: %s</string>
<string name="conn_event_ratchet_sync_required">titkosítás-újraegyeztetés szükséges</string>
<string name="v4_6_hidden_chat_profiles">Rejtett csevegési profilok</string>
<string name="files_and_media_section">Fájlok és médiatartalmak</string>
@@ -922,7 +922,6 @@
<string name="only_your_contact_can_make_calls">Csak az ismerőse tud hívást indítani.</string>
<string name="settings_section_title_themes">TÉMÁK</string>
<string name="videos_limit_title">Túl sok videó!</string>
<string name="stop_chat_to_enable_database_actions">Csevegési szolgáltatás megállítása az adatbázis műveletek elvégzéséhez.</string>
<string name="welcome">Üdvözöljük!</string>
<string name="v5_1_self_destruct_passcode">Önmegsemmisítési jelkód</string>
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(beolvasás, vagy beillesztés a vágólapról)</string>
@@ -1333,7 +1332,7 @@
<string name="this_link_is_not_a_valid_connection_link">Ez nem egy érvényes kapcsolattartási hivatkozás!</string>
<string name="to_verify_compare">A végpontok közötti titkosítás hitelesítéséhez hasonlítsa össze (vagy olvassa be a QR-kódot) az ismerőse eszközén lévő kóddal.</string>
<string name="you_must_use_the_most_recent_version_of_database">A csevegési adatbázis legfrissebb verzióját CSAK egy eszközön kell használnia, ellenkező esetben előfordulhat, hogy az üzeneteket nem fogja megkapni valamennyi ismerősétől.</string>
<string name="messages_section_description">Ez a beállítás csak a jelenlegi csevegési profiljában lévő üzenetekre vonatkozik</string>
<string name="messages_section_description">Ez a beállítás csak az Ön jelenlegi csevegő-profiljában lévő üzenetekre vonatkozik</string>
<string name="you_are_invited_to_group_join_to_connect_with_group_members">Meghívást kapott a csoportba. Csatlakozzon, hogy kapcsolatba léphessen a csoport tagjaival.</string>
<string name="alert_message_no_group">Ez a csoport már nem létezik.</string>
<string name="connect_plan_you_are_already_joining_the_group_via_this_link">A csatlakozás már folyamatban van a csoporthoz ezen a hivatkozáson keresztül.</string>
@@ -1351,7 +1350,7 @@
<string name="you_will_be_connected_when_your_connection_request_is_accepted">Akkor lesz kapcsolódva, ha a kapcsolatkérése elfogadásra kerül, várjon, vagy ellenőrizze később!</string>
<string name="voice_messages_are_prohibited">A hangüzenetek küldése le van tiltva.</string>
<string name="system_restricted_background_in_call_warn"><![CDATA[A háttérben való hívásokhoz válassza ki az <b>Alkalmazás akkumulátor-használata</b> / <b>Korlátlan</b> módot az alkalmazás beállításaiban.]]></string>
<string name="v5_4_link_mobile_desktop_descr">Biztonságos kvantumrezisztens-protokollon keresztül.</string>
<string name="v5_4_link_mobile_desktop_descr">Biztonságos kvantumálló-protokollon keresztül.</string>
<string name="v5_1_better_messages_descr">- 5 perc hosszúságú hangüzenetek.\n- egyéni üzenet-eltűnési időkorlát.\n- előzmények szerkesztése.</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Válassza a <i>Társítás számítógéppel</i> menüt a hordozható eszköz alkalmazásban és olvassa be a QR-kódot.]]></string>
<string name="sender_at_ts">%s ekkor: %s</string>
@@ -1466,7 +1465,7 @@
<string name="v4_4_live_messages_desc">A címzettek a beírás közben látják a szövegváltozásokat.</string>
<string name="store_passphrase_securely">Tárolja el biztonságosan jelmondatát, mert ha elveszíti azt, NEM tudja megváltoztatni.</string>
<string name="passphrase_will_be_saved_in_settings">A jelmondat a beállításokban egyszerű szövegként kerül tárolásra, miután megváltoztatta vagy újraindította az alkalmazást.</string>
<string name="smp_servers_per_user">A jelenlegi csevegési profilhoz tartozó új kapcsolatok kiszolgálói</string>
<string name="smp_servers_per_user">Az Ön jelenlegi csevegőprofilhoz tartozó új kapcsolatok kiszolgálói</string>
<string name="receiving_via">Fogadás ezen keresztül:</string>
<string name="store_passphrase_securely_without_recover">Tárolja el biztonságosan jelmondát, mert ha elveszti azt, akkor NEM férhet hozzá a csevegéshez.</string>
<string name="member_role_will_be_changed_with_invitation">A szerepkör meg fog változni erre: %s. A tag új meghívót fog kapni.</string>
@@ -1478,7 +1477,7 @@
<string name="settings_is_storing_in_clear_text">A jelmondat a beállításokban egyszerű szövegként van tárolva.</string>
<string name="terminal_always_visible">Konzol megjelenítése új ablakban</string>
<string name="alert_text_msg_bad_hash">Az előző üzenet hasító értéke különbözik.</string>
<string name="receipts_section_description">Ezek a beállítások csak a jelenlegi profiljára vonatkoznak</string>
<string name="receipts_section_description">Ezek a beállítások csak az Ön jelenlegi csevegő-profiljára vonatkoznak</string>
<string name="loading_remote_file_desc">Várjon, amíg a fájl betöltődik a társított hordozható eszközről</string>
<string name="read_more_in_github_with_link"><![CDATA[További információ a <font color="#0088ff">GitHub tárolónkban</font>.]]></string>
<string name="error_showing_content">hiba a tartalom megjelenítésekor</string>
@@ -1654,7 +1653,7 @@
<string name="migrate_from_device_to_another_device">Átköltöztetés egy másik eszközre</string>
<string name="migrate_from_device_archive_will_be_deleted"><![CDATA[<b>Figyelmeztetés:</b> az archívum törlésre kerül.]]></string>
<string name="migrate_from_another_device">Átköltöztetés egy másik eszközről</string>
<string name="v5_6_quantum_resistant_encryption">Kvantumrezisztens titkosítás</string>
<string name="v5_6_quantum_resistant_encryption">Kvantumálló titkosítás</string>
<string name="migrate_from_device_try_again">Megpróbálhatja még egyszer.</string>
<string name="migrate_from_device_migration_complete">Átköltöztetés befejezve</string>
<string name="v5_6_app_data_migration_descr">Átköltöztetés egy másik eszközre QR-kód használatával.</string>
@@ -1662,12 +1661,12 @@
<string name="migrate_from_device_using_on_two_device_breaks_encryption"><![CDATA[<b>Megjegyzés:</b> ha két eszközön is ugyanazt az adatbázist használja, akkor biztonsági védelemként megszakítja az ismerőseitől érkező üzenetek visszafejtését.]]></string>
<string name="migrate_to_device_try_again">Megpróbálhatja még egyszer.</string>
<string name="invalid_file_link">Érvénytelen hivatkozás</string>
<string name="conn_event_enabled_pq">végpontok közötti kvantumrezisztens titkosítás</string>
<string name="conn_event_enabled_pq">végpontok közötti kvantumálló titkosítás</string>
<string name="e2ee_info_no_pq_short">Ez a csevegés végpontok közötti titkosítással védett.</string>
<string name="auth_open_migration_to_another_device">Átköltöztetési párbeszédablak megnyitása</string>
<string name="e2ee_info_pq_short">Ez a csevegés végpontok közötti kvantumrezisztens tikosítással védett.</string>
<string name="e2ee_info_pq_short">Ez a csevegés végpontok közötti kvantumálló tikosítással védett.</string>
<string name="e2ee_info_no_pq"><![CDATA[Az üzeneteket, fájlokat és hívásokat <b>végpontok közötti titkosítással</b>, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.]]></string>
<string name="e2ee_info_pq"><![CDATA[Az üzeneteket, fájlokat és hívásokat <b>végpontok közötti kvantumrezisztens titkosítással</b>, sérülés utáni titkosság-védelemmel és -helyreállítással, továbbá visszautasítással védi.]]></string>
<string name="e2ee_info_pq"><![CDATA[Az üzenetek, fájlok és hívások <b>végpontok közötti kvantumálló titkosítással</b> sérülés utáni titkosságvédelemmel, visszautasítással és feltörés utáni helyreállítással vannak védve.]]></string>
<string name="error_showing_desktop_notification">Hiba az értesítés megjelenítésekor, lépjen kapcsolatba a fejlesztőkkel.</string>
<string name="permissions_find_in_settings_and_grant">Keresse meg ezt az engedélyt az Android beállításaiban, és adja meg kézzel.</string>
<string name="permissions_grant_in_settings">Engedélyezés a beállításokban</string>
@@ -1755,7 +1754,7 @@
<string name="network_smp_proxy_fallback_prohibit_description">Ne küldjön üzeneteket közvetlenül, még akkor sem, ha az Ön kiszolgálója vagy a célkiszolgáló nem támogatja a privát útválasztást.</string>
<string name="without_tor_or_vpn_ip_address_will_be_visible_to_file_servers">Tor vagy VPN nélkül az IP-címe látható lesz a fájlkiszolgálók számára.</string>
<string name="settings_section_title_files">FÁJLOK</string>
<string name="protect_ip_address">IP-cím védelem</string>
<string name="protect_ip_address">IP-cím védelme</string>
<string name="app_will_ask_to_confirm_unknown_file_servers">Az alkalmazás kérni fogja az ismeretlen fájlkiszolgálókról történő letöltések megerősítését (kivéve, ha az .onion vagy a SOCKS proxy engedélyezve van).</string>
<string name="file_not_approved_title">Ismeretlen kiszolgálók!</string>
<string name="file_not_approved_descr">Tor vagy VPN nélkül az IP-címe látható lesz az XFTP-közvetítő-kiszolgálók számára:\n%1$s.</string>
@@ -1785,7 +1784,7 @@
<string name="color_sent_quote">Válaszüzenet-buborék színe</string>
<string name="chat_theme_set_default_theme">Alapértelmezett téma beállítása</string>
<string name="color_mode_system">Rendszer</string>
<string name="color_wallpaper_tint">Háttérkép kiemelés</string>
<string name="color_wallpaper_tint">Háttérkép kiemelőszíne</string>
<string name="color_wallpaper_background">Háttérkép háttérszíne</string>
<string name="color_primary_variant2">További kiemelés 2</string>
<string name="theme_destination_app_theme">Alkalmazás téma</string>
@@ -1836,7 +1835,7 @@
<string name="servers_info_sessions_connecting">Kapcsolódás</string>
<string name="servers_info_sessions_errors">Hibák</string>
<string name="servers_info_subscriptions_connections_pending">Függőben</string>
<string name="servers_info_private_data_disclaimer">Statisztikagyűjtés kezdete: %s.\nAz összes adat biztonságban van az eszközén.</string>
<string name="servers_info_private_data_disclaimer">Statisztikagyűjtés kezdete: %s.\nAz összes adat privát módon van tárolva az Ön eszközén.</string>
<string name="servers_info_messages_sent">Elküldött üzenetek</string>
<string name="servers_info_proxied_servers_section_header">Proxyzott kiszolgálók</string>
<string name="servers_info_reconnect_servers_title">Újrakapcsolódás a kiszolgálókhoz?</string>
@@ -1907,7 +1906,7 @@
<string name="servers_info_transport_sessions_section_header">Munkamenetek átvitele</string>
<string name="servers_info_subscriptions_total">Összes kapcsolat</string>
<string name="servers_info_statistics_section_header">Statisztikák</string>
<string name="servers_info_target">Információk megjelenítése ehhez:</string>
<string name="servers_info_target">Információk megjelenítése a következőhöz:</string>
<string name="network_error_broker_version_desc">A kiszolgáló verziója nem kompatibilis az alkalmazással: %1$s.</string>
<string name="servers_info_proxied_servers_section_footer">Ön nem kapcsolódik ezekhez a kiszolgálókhoz. A privát útválasztás az üzenetek kézbesítésére szolgál.</string>
<string name="servers_info_subscriptions_connections_subscribed">Aktív kapcsolatok száma</string>
@@ -2110,13 +2109,13 @@
<string name="create_1_time_link">Egyszer használható meghívó-hivatkozás létrehozása</string>
<string name="onboarding_choose_server_operators">Kiszolgáló-üzemeltetők</string>
<string name="onboarding_network_operators">Hálózati üzemeltetők</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Amikor egynél több hálózati üzemeltető van engedélyezve, akkor az alkalmazás minden egyes beszélgetéshez a különböző üzemeltetők kiszolgálóit használja.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Ha például a SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, az alkalmazás a Flux egyik kiszolgálóját használja a privát útválasztáshoz.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Az alkalmazás úgy védi az adatait, hogy minden egyes beszélgetésben más-más üzemeltetőt használ.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Például, ha az Ön ismerőse egy SimpleX Chat-kiszolgálón keresztül fogadja az üzeneteket, az Ön alkalmazása egy Flux-kiszolgálón keresztül fogja azokat kézbesíteni.</string>
<string name="onboarding_select_network_operators_to_use">Válassza ki a használni kívánt hálózati üzemeltetőket.</string>
<string name="onboarding_network_operators_review_later">Felülvizsgálat később</string>
<string name="onboarding_network_operators_configure_via_settings">A kiszolgálókat a beállításokon keresztül konfigurálhatja.</string>
<string name="onboarding_network_operators_configure_via_settings">A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja.</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">A feltételek 30 nap elteltével lesznek elfogadva az engedélyezett üzemeltetők számára.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Az üzemeltetőket a „Hálózat és kiszolgálók” beállításaban konfigurálhatja.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Az üzemeltetőket a „Hálózat és kiszolgálók” menüben konfigurálhatja.</string>
<string name="onboarding_network_operators_update">Frissítés</string>
<string name="onboarding_network_operators_continue">Folytatás</string>
<string name="operator_review_conditions">Feltételek felülvizsgálata</string>
@@ -2134,14 +2133,14 @@
<string name="use_servers_of_operator_x">%s használata</string>
<string name="operator_conditions_failed_to_load">A jelenlegi feltételek szövegét nem lehetett betölteni, a feltételeket ezen a hivatkozáson keresztül vizsgálhatja felül:</string>
<string name="operator_conditions_accepted_for_some"><![CDATA[A feltételek már el lettek fogadva a következő üzemeltető(k) számára: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Ugyanezek a feltételek vonatkoznak a következő üzemeltetőre is: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k)re is: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető számára: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Ugyanezek a feltételek lesznek elfogadva a következő üzemeltető(k) számára: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_applied"><![CDATA[Ezek a feltételek lesznek elfogadva a következő számára is: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[A feltételek el lesznek fogadva a következő üzemeltető(k) számára: <b>%s</b>.]]></string>
<string name="operators_conditions_will_also_apply"><![CDATA[Ezek a feltételek lesznek elfogadva a következő számára is: <b>%s</b>.]]></string>
<string name="accept_conditions">Feltételek elfogadása</string>
<string name="operator_conditions_of_use">Használati feltételek</string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[A(z) <b>%s</b> kiszolgálóinak használatához fogadja el a használati feltételeket.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[A(z) <b>%s</b> kiszolgálók használatához fogadja el a használati feltételeket.]]></string>
<string name="operator_use_for_messages">Használat az üzenetekhez</string>
<string name="operator_use_for_messages_receiving">A fogadáshoz</string>
<string name="operator_use_for_messages_private_routing">A privát útválasztáshoz</string>
@@ -2172,9 +2171,9 @@
<string name="remote_hosts_section">Távoli hordozható eszközök</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Xiaomi eszközök</b>: engedélyezze az automatikus indítást a rendszerbeállításokban, hogy az értesítések működjenek.]]></string>
<string name="maximum_message_size_reached_forwarding">A küldéshez másolhatja és csökkentheti az üzenet méretét.</string>
<string name="add_your_team_members_to_conversations">Adja hozzá csapattagjait a beszélgetésekhez.</string>
<string name="add_your_team_members_to_conversations">Adja hozzá a kollégáit a beszélgetésekhez.</string>
<string name="business_address">Üzleti cím</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Az összes üzenet és fájl <b>végpontok közötti titkosítással</b>, a közvetlen üzenetek továbbá kvantumrezisztens titkosítással is rendelkeznek.]]></string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Az összes üzenet és fájl <b>végpontok közötti titkosítással</b>, a közvetlen üzenetek továbbá kvantumálló titkosítással is rendelkeznek.]]></string>
<string name="how_it_helps_privacy">Hogyan segíti az adatvédelmet</string>
<string name="onboarding_notifications_mode_off_desc_short">Nincs háttérszolgáltatás</string>
<string name="onboarding_notifications_mode_battery">Értesítések és akkumulátor</string>
@@ -2184,7 +2183,7 @@
<string name="button_delete_chat">Csevegés törlése</string>
<string name="invite_to_chat_button">Meghívás a csevegésbe</string>
<string name="button_add_friends">Barátok hozzáadása</string>
<string name="button_add_team_members">Csapattagok hozzáadása</string>
<string name="button_add_team_members">Kollégák hozzáadása</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">A csevegés minden tag számára törlésre kerül - ezt a műveletet nem lehet visszavonni!</string>
<string name="delete_chat_for_self_cannot_undo_warning">A csevegés törlésre kerül az Ön számára - ezt a műveletet nem lehet visszavonni!</string>
<string name="delete_chat_question">Csevegés törlése?</string>
@@ -2205,4 +2204,13 @@
<string name="maximum_message_size_title">Az üzenet túl nagy!</string>
<string name="maximum_message_size_reached_non_text">Csökkentse az üzenet méretét vagy távolítsa el a médiát, és küldje el újra.</string>
<string name="direct_messages_are_prohibited_in_chat">A tagok közötti közvetlen üzenetek le vannak tiltva ebben a csevegésben.</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Amikor egynél több üzemeltető van engedélyezve, akkor egyik sem rendelkezik olyan metaadatokkal, amelyekből megtudható, hogy ki kivel kommunikál.</string>
<string name="display_name_accepted_invitation">elfogadott meghívó</string>
<string name="display_name_requested_to_connect">kérelmezve a kapcsolódáshoz</string>
<string name="onboarding_network_about_operators">Az üzemeltetőkről</string>
<string name="onboarding_network_operators_simplex_flux_agreement">A SimpleX Chat és a Flux megállapodást kötött arról, hogy a Flux által üzemeltetett kiszolgálókat beépítik az alkalmazásba.</string>
<string name="encryption_renegotiation_in_progress">A titkosítás újraegyeztetése folyamatban van.</string>
<string name="sync_connection_desc">A kapcsolat titkosítása újraegyeztetést igényel.</string>
<string name="sync_connection_confirm">Javítás</string>
<string name="sync_connection_question">Kapcsolat javítása?</string>
</resources>
@@ -1347,4 +1347,655 @@
<string name="conn_level_desc_direct">langsung</string>
<string name="sending_via">Kirim via</string>
<string name="receiving_via">Terima via</string>
<string name="icon_descr_contact_checked">Kontak diperiksa</string>
<string name="invite_prohibited">Tak dapat undang kontak!</string>
<string name="snd_conn_event_ratchet_sync_agreed">enkripsi disetujui untuk %s</string>
<string name="group_member_status_creator">pembuat</string>
<string name="group_member_status_connecting">menghubungkan</string>
<string name="delete_group_question">Hapus grup?</string>
<string name="delete_group_for_all_members_cannot_undo_warning">Grup akan dihapus untuk semua anggota - ini tidak dapat dibatalkan!</string>
<string name="create_group_link">Buat tautan grup</string>
<string name="group_member_status_introduced">menghubungkan (diperkenalkan)</string>
<string name="rcv_conn_event_verification_code_reset">kode keamanan berubah</string>
<string name="num_contacts_selected">%d kontak dipilih</string>
<string name="group_link">Tautan grup</string>
<string name="past_member_vName">Anggota lama %1$s</string>
<string name="conn_event_disabled_pq">enkripsi end-to-end standar</string>
<string name="conn_event_enabled_pq">enkripsi e2e quantum resistant</string>
<string name="group_member_status_intro_invitation">menghubungkan (undangan perkenalan)</string>
<string name="group_member_status_unknown_short">tidak dikenal</string>
<string name="button_delete_chat">Hapus obrolan</string>
<string name="button_add_friends">Tambah teman</string>
<string name="button_add_team_members">Tambah anggota tim</string>
<string name="button_leave_group">Keluar grup</string>
<string name="group_member_status_announced">menghubungkan (diumumkan)</string>
<string name="group_member_status_accepted">menghubungkan (diterima)</string>
<string name="button_delete_group">Hapus grup</string>
<string name="delete_group_for_self_cannot_undo_warning">Grup akan dihapus untuk Anda - ini tidak dapat dibatalkan!</string>
<string name="delete_chat_question">Hapus obrolan?</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">Obrolan akan dihapus untuk semua anggota - ini tidak dapat dibatalkan!</string>
<string name="delete_chat_for_self_cannot_undo_warning">Obrolan akan dihapus untuk Anda - ini tidak dapat dibatalkan!</string>
<string name="button_leave_chat">Tinggalkan obrolan</string>
<string name="button_edit_group_profile">Edit profil grup</string>
<string name="button_welcome_message">Pesan sambutan</string>
<string name="button_add_members">Undang anggota</string>
<string name="group_info_member_you">anda: %1$s</string>
<string name="invite_prohibited_description">Anda mencoba mengundang kontak yang telah Anda bagikan profil samaran ke grup tempat Anda menggunakan profil utama</string>
<string name="invite_to_group_button">Undang ke grup</string>
<string name="invite_to_chat_button">Undang ke obrolan</string>
<string name="select_contacts">Pilih kontak</string>
<string name="skip_inviting_button">Lewati undang anggota</string>
<string name="address_or_1_time_link">Alamat atau tautan 1-kali?</string>
<string name="developer_options_section">Opsi pengembang</string>
<string name="onboarding_choose_server_operators">Operator server</string>
<string name="onboarding_network_operators">Operator jaringan</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Aplikasi ini melindungi privasi Anda dengan gunakan operator yang berbeda setiap percakapan.</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">Ketentuan akan diterima untuk operator yang diaktifkan setelah 30 hari.</string>
<string name="settings_developer_tools">Alat pengembang</string>
<string name="settings_section_title_chat_colors">Warna obrolan</string>
<string name="rcv_group_event_member_created_contact">terhubung langsung</string>
<string name="remote_ctrl_error_bad_state">Koneksi ke desktop dalam kondisi buruk</string>
<string name="confirm_delete_contact_question">Konfirmasi hapus kontak?</string>
<string name="send_disappearing_message_custom_time">Waktu kustom</string>
<string name="choose_file_title">Pilih berkas</string>
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[Anda dapat <font color="#0088ff">terhubung ke pengembang SimpleX Chat untuk mengajukan pertanyaan dan menerima pembaruan</font>.]]></string>
<string name="clear_chat_question">Hapus obrolan?</string>
<string name="network_proxy_auth_mode_no_auth">Jangan gunakan kredensial dengan proxy.</string>
<string name="disable_onion_hosts_when_not_supported"><![CDATA[Atur <i>Gunakan host .onion</i> ke Tidak jika proxy SOCKS tidak mendukung.]]></string>
<string name="socks_proxy_setting_limitations"><![CDATA[<b>Harap diperhatikan</b>: relay pesan dan berkas terhubung melalui proxy SOCKS. Panggilan dan pengiriman pratinjau tautan menggunakan koneksi langsung.]]></string>
<string name="network_smp_proxy_fallback_prohibit_description">JANGAN mengirim pesan secara langsung, meskipun server Anda atau server tujuan tidak mendukung routing pribadi.</string>
<string name="display_name_cannot_contain_whitespace">Nama tampilan tidak boleh terdapat spasi.</string>
<string name="you_can_change_it_later">Frasa sandi acak disimpan dalam pengaturan sebagai teks biasa.\nAnda dapat mengubahnya nanti.</string>
<string name="setup_database_passphrase">Pasang frasa sandi basis data</string>
<string name="database_will_be_encrypted">Basis data akan dienkripsi.</string>
<string name="database_upgrade">Peningkatan basis data</string>
<string name="confirm_database_upgrades">Konfirmasi peningkatan basis data</string>
<string name="downgrade_and_open_chat">Turunkan dan buka obrolan</string>
<string name="rcv_group_event_changed_member_role">mengubah hak %s menjadi %s</string>
<string name="share_text_deleted_at">Dihapus pada: %s</string>
<string name="delete_profile">Hapus profil</string>
<string name="connect_plan_this_is_your_link_for_group_vName"><![CDATA[Ini adalah tautan untuk grup <b>%1$s</b>!]]></string>
<string name="migrate_from_device_cancel_migration">Batal pindah</string>
<string name="chunks_uploaded">Potongan diunggah</string>
<string name="info_view_connect_button">hubungkan</string>
<string name="conversation_deleted">Percakapan dihapus!</string>
<string name="disappearing_message">Pesan sementara</string>
<string name="clear_note_folder_question">Hapus catatan pribadi?</string>
<string name="chat_is_stopped">Obrolan dihentikan</string>
<string name="database_passphrase">Frasa sandi basis data</string>
<string name="confirm_new_passphrase">Konfirmasi frasa sandi baru…</string>
<string name="change_database_passphrase_question">Ubah frasa sandi basis data?</string>
<string name="cannot_access_keychain">Tidak dapat mengakses Keystore untuk menyimpan kata sandi basis data</string>
<string name="database_downgrade">Penurunan basis data</string>
<string name="chat_is_stopped_indication">Obrolan dihentikan</string>
<string name="button_create_group_link">Buat tautan</string>
<string name="info_row_deleted_at">Dihapus di</string>
<string name="direct_messages_are_prohibited_in_chat">Pesan pribadi antar anggota dilarang dalam obrolan ini.</string>
<string name="delivery_receipts_title">Tanda terima pengirim!</string>
<string name="this_device_version"><![CDATA[<i>(perangkat ini v%s)</i>]]></string>
<string name="devices">Perangkat</string>
<string name="remote_ctrl_was_disconnected_title">Koneksi terputus</string>
<string name="copy_error">Gagal salin</string>
<string name="discover_on_network">Temukan melalui jaringan lokal</string>
<string name="remote_ctrl_error_bad_invitation">Kode undangan desktop salah</string>
<string name="remote_ctrl_error_disconnected">Desktop terputus</string>
<string name="connect_plan_you_are_already_connecting_to_vName"><![CDATA[Anda sudah terhubung ke <b>%1$s</b>.]]></string>
<string name="migrate_to_device_confirm_network_settings">Konfirmasi pengaturan jaringan</string>
<string name="chunks_deleted">Potongan dihapus</string>
<string name="chunks_downloaded">Potongan diunduh</string>
<string name="downloaded_files">Berkas terunduh</string>
<string name="download_errors">Gagal unduh</string>
<string name="delete_files_and_media_all">Hapus semua berkas</string>
<string name="delete_files_and_media_question">Hapus berkas dan media?</string>
<string name="total_files_count_and_size">%d berkas dengan total ukuran %s</string>
<string name="chat_database_exported_continue">Lanjutkan</string>
<string name="rcv_direct_event_contact_deleted">kontak dihapus</string>
<string name="alert_title_cant_invite_contacts">Tak dapat undang kontak!</string>
<string name="info_row_disappears_at">Terhapus pada</string>
<string name="share_text_disappears_at">Terhapus pada: %s</string>
<string name="item_info_current">(saat ini)</string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Ketentuan yang sama akan berlaku untuk operator <b>%s</b>.]]></string>
<string name="appearance_bars_blur_radius">Buram</string>
<string name="appearance_in_app_bars_alpha">Transparansi</string>
<string name="appearance_app_toolbars">Bilah alat aplikasi</string>
<string name="v6_0_connection_servers_status_descr">Status koneksi dan server.</string>
<string name="remote_ctrl_error_bad_version">Desktop memiliki versi tidak didukung. Pastikan Anda gunakan versi yang sama di kedua perangkat</string>
<string name="migrate_to_device_chat_migrated">Obrolan dipindahkan!</string>
<string name="migrate_from_device_delete_database_from_device">Hapus basis data dari perangkat ini</string>
<string name="delete_files_and_media_for_all_users">Hapus berkas untuk semua profil obrolan</string>
<string name="info_row_created_at">Dibuat di</string>
<string name="onboarding_notifications_mode_off_desc"><![CDATA[<b>Terbaik untuk baterai</b>. Anda akan menerima notifikasi saat aplikasi sedang berjalan (TANPA layanan latar belakang).]]></string>
<string name="onboarding_notifications_mode_periodic_desc"><![CDATA[<b>Baik untuk baterai</b>. Aplikasi memeriksa pesan setiap 10 menit. Anda mungkin melewatkan panggilan atau pesan penting.]]></string>
<string name="settings_section_title_chat_theme">Tema obrolan</string>
<string name="chat_database_section">BASIS DATA OBROLAN</string>
<string name="set_password_to_export_desc">Basis data dienkripsi menggunakan frasa sandi acak. Harap ubah frasa sandi sebelum mengekspor.</string>
<string name="chat_database_exported_title">Basis data obrolan diekspor</string>
<string name="current_passphrase">Frasa sandi saat ini…</string>
<string name="impossible_to_recover_passphrase"><![CDATA[<b>Harap diperhatikan</b>: Anda TIDAK akan dapat pulihkan atau ubah frasa sandi jika hilang.]]></string>
<string name="encrypted_with_random_passphrase">Basis data dienkripsi menggunakan frasa sandi acak, Anda dapat mengubahnya.</string>
<string name="database_will_be_encrypted_and_passphrase_stored_in_settings">Basis data akan dienkripsi dan frasa sandi disimpan dalam pengaturan.</string>
<string name="mtr_error_no_down_migration">versi database lebih baru daripada aplikasi, tetapi tidak ada penurunan migrasi untuk: %s</string>
<string name="rcv_group_events_count">%d acara grup</string>
<string name="rcv_conn_event_switch_queue_phase_completed">mengubah alamat untuk Anda</string>
<string name="info_row_database_id">ID basis data</string>
<string name="cant_call_contact_connecting_wait_alert_text">Menghubungkan ke kontak, harap tunggu atau periksa nanti!</string>
<string name="users_delete_question">Hapus profil obrolan?</string>
<string name="deletion_errors">Gagal hapus</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Perangkat Xiaomi</b>: harap aktifkan Autostart di pengaturan sistem agar notifikasi berfungsi.]]></string>
<string name="clear_chat_button">Hapus obrolan</string>
<string name="connect_via_link_or_qr">Hubungkan via tautan / kode QR</string>
<string name="connect__a_new_random_profile_will_be_shared">Profil acak baru akan dibagikan.</string>
<string name="connection_request_sent">Permintaan koneksi terkirim!</string>
<string name="connection_security">Keamanan koneksi</string>
<string name="correct_name_to">Nama telah benar untuk %s?</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Anda dapat konfigurasi operator di pengaturan Jaringan dan server.</string>
<string name="database_error">Kesalahan basis data</string>
<string name="passphrase_is_different">Frasa sandi basis data berbeda dengan yang disimpan di Keystore.</string>
<string name="change_member_role_question">Ubah hak grup?</string>
<string name="operators_conditions_will_also_apply"><![CDATA[Ketentuan ini juga berlaku untuk: <b>%s</b>.]]></string>
<string name="operator_conditions_of_use">Ketentuan Penggunaan</string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Ketentuan akan diterima untuk operator: <b>%s</b>.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Untuk gunakan server <b>%s</b>, terima ketentuan penggunaan.]]></string>
<string name="operator_added_message_servers">Menambahkan server pesan</string>
<string name="delete_chat_profile">Hapus profil obrolan</string>
<string name="v6_2_business_chats">Obrolan bisnis</string>
<string name="remote_ctrl_disconnected_with_reason">Terputus dikarenakan: %s</string>
<string name="remote_host_disconnected_from"><![CDATA[Terputus dari ponsel <b>%s</b> dengan alasan: %s]]></string>
<string name="remote_ctrl_error_busy">Desktop sedang sibuk</string>
<string name="rcv_group_event_group_deleted">grup dihapus</string>
<string name="profile_update_event_contact_name_changed">kontak %1$s diubah menjadi %2$s</string>
<string name="calls_prohibited_alert_title">Panggilan dilarang!</string>
<string name="operator_conditions_accepted_for_some"><![CDATA[Ketentuan sudah diterima untuk operator berikut: <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Ketentuan yang sama akan berlaku untuk operator: <b>%s</b>.]]></string>
<string name="operator_conditions_failed_to_load">Teks ketentuan saat ini tidak dapat dimuat, Anda dapat meninjau ketentuan via tautan ini:</string>
<string name="direct_messages_are_prohibited">Pesan pribadi antar anggota dilarang.</string>
<string name="migrate_from_device_choose_migrate_from_another_device"><![CDATA[Pilih <i>Pindah dari perangkat lain</i> pada perangkat baru dan pindai kode QR.]]></string>
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">Kontak dan semua pesan akan dihapus - ini tidak dapat dibatalkan!</string>
<string name="delete_contact_cannot_undo_warning">Kontak akan dihapus - ini tidak dapat dibatalkan!</string>
<string name="delete_contact_question">Hapus kontak?</string>
<string name="contact_deleted">Kontak dihapus!</string>
<string name="delete_without_notification">Hapus tanpa notifikasi</string>
<string name="switch_receiving_address_question">Ubah alamat penerima?</string>
<string name="icon_descr_server_status_disconnected">Terputus</string>
<string name="add_contact_button_to_create_link_or_connect_via_link"><![CDATA[<b>Tambahkan kontak</b>: untuk buat tautan undangan baru, atau terhubung via tautan yang Anda terima.]]></string>
<string name="delete_pending_connection__question">Hapus koneksi yang tertunda?</string>
<string name="alert_title_contact_connection_pending">Kontak belum terhubung!</string>
<string name="delete_address">Hapus alamat</string>
<string name="delete_database">Hapus basis data</string>
<string name="chat_database_deleted">Basis data obrolan dihapus</string>
<string name="chat_database_imported">Basis data obrolan diimpor</string>
<string name="send_receipts_disabled">Dimatikan</string>
<string name="v6_0_connection_servers_status">Kontrol jaringan Anda</string>
<string name="connecting_to_desktop">Menghubungkan ke desktop</string>
<string name="desktop_app_version_is_incompatible">Versi aplikasi desktop %s tidak kompatibel dengan aplikasi ini.</string>
<string name="remote_host_error_bad_state"><![CDATA[Koneksi ponsel <b>%s</b> dalam kondisi buruk]]></string>
<string name="auth_device_authentication_is_not_enabled_you_can_turn_on_in_settings_once_enabled">Autentikasi perangkat tidak diaktifkan. Anda dapat aktifkan SimpleX Lock via Pengaturan, setelah mengaktifkan autentikasi perangkat.</string>
<string name="auth_unavailable">Autentikasi tidak tersedia</string>
<string name="auth_confirm_credential">Konfirmasi kredensial Anda</string>
<string name="auth_device_authentication_is_disabled_turning_off">Autentikasi perangkat mati. Matikan SimpleX Lock.</string>
<string name="auth_disable_simplex_lock">Matikan Kunci SimpleX</string>
<string name="snd_error_relay">Kesalahan server tujuan: %1$s</string>
<string name="delete_and_notify_contact">Hapus dan beritahu kontak</string>
<string name="button_delete_contact">Hapus kontak</string>
<string name="icon_descr_cancel_live_message">Batal pesan langsung</string>
<string name="confirm_verb">Konfirmasi</string>
<string name="create_group">Buat grup rahasia</string>
<string name="camera_not_available">Kamera tidak tersedia</string>
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code"><![CDATA[💻 desktop: pindai kode QR yang ditampilkan dari aplikasi, via <b>Pindai kode QR</b>.]]></string>
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app"><![CDATA[📱 ponsel: ketuk <b>Buka di aplikasi seluler</b>, lalu ketuk <b>Hubungkan</b> di aplikasi.]]></string>
<string name="delete_contact_menu_action">Hapus</string>
<string name="delete_group_menu_action">Hapus</string>
<string name="icon_descr_cancel_link_preview">batal pratinjau tautan</string>
<string name="icon_descr_close_button">Tombol tutup</string>
<string name="icon_descr_email">Email</string>
<string name="if_you_cannot_meet_in_person_scan_QR_in_video_call_or_ask_for_invitation_link"><![CDATA[Jika Anda tidak dapat bertemu langsung, Anda dapat <b>pindai kode QR dalam panggilan video</b>, atau kontak Anda dapat bagikan tautan undangan.]]></string>
<string name="read_more_in_user_guide_with_link"><![CDATA[Lebih lanjut di <font color="#0088ff">Panduan Pengguna</font>.]]></string>
<string name="enable_receipts_all">Aktifkan</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Ketika lebih dari satu operator diaktifkan, tidak satupun dari mereka memiliki metadata untuk mengetahui siapa yang berkomunikasi.</string>
<string name="chat_is_running">Obrolan sedang berjalan</string>
<string name="database_will_be_encrypted_and_passphrase_stored">Basis data akan dienkripsi dan frasa sandi disimpan di Keystore.</string>
<string name="rcv_group_event_changed_your_role">mengubah hak Anda jadi %s</string>
<string name="snd_conn_event_switch_queue_phase_changing">mengubah alamat…</string>
<string name="snd_conn_event_switch_queue_phase_changing_for_member">mengubah alamat untuk %s…</string>
<string name="share_text_database_id">ID basis data: %d</string>
<string name="operator_added_xftp_servers">Menambahkan media dan berkas server</string>
<string name="connect_plan_chat_already_exists">Obrolan sudah ada!</string>
<string name="database_encrypted">Basis data dienkripsi!</string>
<string name="database_encryption_will_be_updated_in_settings">Frasa sandi enkripsi basis data akan diperbarui dan disimpan di pengaturan.</string>
<string name="database_encryption_will_be_updated">Frasa sandi enkripsi basis data akan diperbarui dan disimpan di Keystore.</string>
<string name="mtr_error_different">migrasi berbeda di aplikasi/basis data: %s / %s</string>
<string name="if_you_cannot_meet_in_person_show_QR_in_video_call_or_via_another_channel"><![CDATA[Jika Anda tidak dapat bertemu langsung, <b>tunjukkan kode QR dalam panggilan video</b>, atau bagikan tautan.]]></string>
<string name="dont_create_address">Jangan buat alamat</string>
<string name="servers_info_details">Rincian</string>
<string name="connections">Koneksi</string>
<string name="connected_to_mobile">Terhubung ke ponsel</string>
<string name="dont_enable_receipts">Jangan aktifkan</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Buka <i>Gunakan dari desktop</i> di aplikasi seluler dan pindai kode QR.]]></string>
<string name="desktop_device">Desktop</string>
<string name="display_name_accepted_invitation">undangan diterima</string>
<string name="display_name_requested_to_connect">diminta untuk terhubung</string>
<string name="auth_open_chat_profiles">Ubah profil obrolan</string>
<string name="snd_error_quota">Kapasitas terlampaui - penerima tidak menerima pesan yang dikirim sebelumnya.</string>
<string name="one_time_link_can_be_used_with_one_contact_only"><![CDATA[tautan 1-kali dapat digunakan <i>hanya dengan satu kontak</i> - bagikan secara langsung atau melalui messenger apa pun.]]></string>
<string name="copied">Disalin ke papan klip</string>
<string name="share_one_time_link">Buat tautan undangan satu-kali</string>
<string name="maximum_supported_file_size">Saat ini maksimal ukuran berkas adalah %1$s.</string>
<string name="you_can_also_connect_by_clicking_the_link"><![CDATA[Anda juga dapat terhubung dengan ketuk tautan. Jika tautan terbuka di peramban, ketuk <b>Buka di ponsel</b>.]]></string>
<string name="address_settings">Pengaturan alamat</string>
<string name="add_your_team_members_to_conversations">Tambahkan anggota tim Anda ke percakapan.</string>
<string name="business_address">Alamat bisnis</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Semua pesan dan berkas dikirim <b>dengan enkripsi end-to-end</b>, dengan keamanan post-quantum dalam pesan pribadi.]]></string>
<string name="create_1_time_link">Buat tautan 1-kali</string>
<string name="onboarding_notifications_mode_battery">Notifikasi dan baterai</string>
<string name="onboarding_notifications_mode_off_desc_short">Tiada layanan latar belakang</string>
<string name="onboarding_notifications_mode_service_desc_short">Aplikasi selalu berjalan di latar belakang</string>
<string name="onboarding_notifications_mode_periodic_desc_short">Periksa pesan setiap 10 menit</string>
<string name="onboarding_select_network_operators_to_use">Pilih operator jaringan yang akan digunakan.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Misalnya, jika kontak Anda menerima pesan melalui server SimpleX Chat, aplikasi Anda akan mengirimkannya melalui server Flux.</string>
<string name="how_it_helps_privacy">Bagaimana ini membantu privasi</string>
<string name="onboarding_network_operators_continue">Lanjutkan</string>
<string name="onboarding_network_operators_configure_via_settings">Anda dapat konfigurasi server di pengaturan.</string>
<string name="read_more_in_github_with_link"><![CDATA[Lebih lengkap di <font color="#0088ff">repositori GitHub</font> kami.]]></string>
<string name="onboarding_network_operators_review_later">Nilai nanti</string>
<string name="onboarding_network_operators_update">Perbarui</string>
<string name="migrate_to_device_downloading_details">Rincian tautan unduhan</string>
<string name="network_session_mode_user_description"><![CDATA[Koneksi TCP terpisah (dan kredensial SOCKS) akan digunakan <b>untuk setiap profil obrolan yang Anda miliki di aplikasi</b>.]]></string>
<string name="network_session_mode_entity_description"><![CDATA[Koneksi TCP terpisah (dan kredensial SOCKS) akan digunakan <b>untuk setiap kontak dan anggota grup</b>.\n<b>Harap diperhatikan</b>: jika Anda memiliki banyak koneksi, konsumsi baterai dan lalu lintas dapat jauh lebih tinggi dan beberapa koneksi mungkin gagal.]]></string>
<string name="app_check_for_updates_download_started">Mengunduh pembaruan aplikasi, jangan tutup aplikasi</string>
<string name="app_check_for_updates_notice_disable">Mati</string>
<string name="create_simplex_address">Buat alamat SimpleX</string>
<string name="create_address_and_let_people_connect">Buat alamat agar orang dapat terhubung dengan Anda.</string>
<string name="continue_to_next_step">Lanjutkan</string>
<string name="delete_image">Hapus gambar</string>
<string name="edit_image">Edit gambar</string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Mengonsumsi banyak baterai</b>! Aplikasi selalu berjalan di latar belakang notifikasi ditampilkan secara instan.]]></string>
<string name="settings_message_shape_corner">Sudut</string>
<string name="dont_show_again">Jangan tampilkan lagi</string>
<string name="migrate_from_device_confirm_upload">Konfirmasi unggahan</string>
<string name="migrate_from_device_archive_and_upload">Arsip dan unggah</string>
<string name="deleted">Dihapus</string>
<string name="desktop_connection_terminated">Koneksi dihentikan</string>
<string name="desktop_address">Alamat desktop</string>
<string name="desktop_devices">Perangkat desktop</string>
<string name="onboarding_network_about_operators">Tentang operator</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat dan Flux membuat kesepakatan untuk sertakan server yang dioperasikan Flux ke aplikasi.</string>
<string name="delete_chat_profile_question">Hapus profil obrolan?</string>
<string name="chat_is_stopped_you_should_transfer_database">Obrolan dihentikan. Jika Anda sudah gunakan basis data ini di perangkat lain, Anda harus transfer kembali sebelum memulai obrolan.</string>
<string name="database_passphrase_will_be_updated">Frasa sandi enkripsi basis data akan diperbarui.</string>
<string name="database_passphrase_is_required">Frasa sandi basis data diperlukan untuk membuka obrolan.</string>
<string name="operator_conditions_will_be_applied"><![CDATA[Ketentuan ini juga berlaku untuk: <b>%s</b>.]]></string>
<string name="migrate_from_device_you_must_not_start_database_on_two_device"><![CDATA[Anda <b>tidak</b> boleh menggunakan basis data yang sama pada dua perangkat.]]></string>
<string name="connected_to_desktop">Terhubung ke desktop</string>
<string name="connect_to_desktop">Hubungkan ke desktop</string>
<string name="custom_time_unit_days">hari</string>
<string name="decryption_errors">kesalahan dekripsi</string>
<string name="disconnect_remote_hosts">Putuskan ponsel</string>
<string name="multicast_discoverable_via_local_network">Dapat ditemukan melalui jaringan lokal</string>
<string name="duplicates_label">duplikat</string>
<string name="v6_1_better_security">Keamanan yang lebih baik ✅</string>
<string name="v6_1_customizable_message_descr">Bentuk pesan yang dapat disesuaikan.</string>
<string name="migrate_from_device_using_on_two_device_breaks_encryption"><![CDATA[<b>Harap diperhatikan</b>: menggunakan database yang sama pada dua perangkat akan merusak dekripsi pesan dari koneksi Anda, sebagai perlindungan keamanan.]]></string>
<string name="connect_plan_you_are_already_joining_the_group_vName"><![CDATA[Anda sudah bergabung dengan grup <b>%1$s</b>.]]></string>
<string name="rcv_conn_event_switch_queue_phase_changing">mengubah alamat…</string>
<string name="delete_link_question">Hapus tautan?</string>
<string name="delete_link">Hapus tautan</string>
<string name="disconnect_remote_host">Putuskan</string>
<string name="servers_info_connected_servers_section_header">Server terhubung</string>
<string name="delete_member_message__question">Hapus pesan anggota?</string>
<string name="v6_1_message_dates_descr">Tanggal pesan lebih baik.</string>
<string name="new_desktop"><![CDATA[<i>(baru)</i>]]></string>
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Anda sudah terhubung dengan <b>%1$s</b>.]]></string>
<string name="created">Dibuat</string>
<string name="delete_members_messages__question">Hapus %d pesan anggota?</string>
<string name="failed_to_save_servers">Gagal simpan server</string>
<string name="ci_status_other_error">Galat: %1$s</string>
<string name="image_will_be_received_when_contact_completes_uploading">Gambar akan diterima setelah kontak Anda selesai mengunggah.</string>
<string name="error_saving_file">Gagal simpan berkas</string>
<string name="invalid_contact_link">Tautan tidak valid!</string>
<string name="app_check_for_updates_button_install">Instal pembaruan</string>
<string name="hide_dev_options">Sembunyikan:</string>
<string name="for_social_media">Untuk media sosial</string>
<string name="settings_experimental_features">Fitur eksperimental</string>
<string name="auth_enable_simplex_lock">Aktifkan Kunci SimpleX</string>
<string name="file_error_no_file">Berkas tidak ditemukan - kemungkinan besar telah dihapus atau dibatalkan.</string>
<string name="file_error_relay">Kesalahan berkas server: %1$s</string>
<string name="in_reply_to">Balasan untuk</string>
<string name="choose_file">Berkas</string>
<string name="gallery_image_button">gambar</string>
<string name="favorite_chat">Favorit</string>
<string name="exit_without_saving">Keluar tanpa menyimpan</string>
<string name="file_with_path">Berkas: %s</string>
<string name="group_invitation_item_description">undangan ke grup %1$s</string>
<string name="alert_title_no_group">Grup tidak ditemukan!</string>
<string name="error_sending_message_contact_invitation">Gagal kirim undangan</string>
<string name="action_button_add_members">Undang</string>
<string name="info_row_file_status">Status berkas</string>
<string name="error_changing_role">Gagal ganti hak</string>
<string name="error_removing_member">Gagal hapus anggota</string>
<string name="incognito">Samaran</string>
<string name="incognito_info_protects">Mode samaran melindungi privasi Anda dengan menggunakan profil acak baru untuk setiap kontak.</string>
<string name="error_enabling_delivery_receipts">Gagal aktifkan tanda terima pengirim!</string>
<string name="enter_this_device_name">Masukkan nama perangkat ini…</string>
<string name="migrate_to_device_import_failed">Impor gagal</string>
<string name="migrate_to_device_error_downloading_archive">Gagal unduh arsipan</string>
<string name="migrate_from_device_exported_file_doesnt_exist">Berkas yang diekspor tidak ada</string>
<string name="migrate_from_device_finalize_migration">Selesaikan migrasi</string>
<string name="servers_info_reset_stats_alert_error_title">Gagal atur ulang statistik</string>
<string name="error_importing_database">Gagal impor basis data obrolan</string>
<string name="error_deleting_database">Gagal hapus basis data obrolan</string>
<string name="files_and_media_section">Berkas dan media</string>
<string name="encrypt_database_question">Enkripsi basis data?</string>
<string name="incompatible_database_version">Versi basis data tidak kompatibel</string>
<string name="section_title_for_console">UNTUK KONSOL</string>
<string name="connect_plan_group_already_exists">Grup sudah ada!</string>
<string name="migrate_to_device_enter_passphrase">Masukkan frasa sandi</string>
<string name="enable_automatic_deletion_question">Aktifkan hapus pesan otomatis?</string>
<string name="encrypted_database">Basis data terenkripsi</string>
<string name="invalid_migration_confirmation">Konfirmasi migrasi tidak valid</string>
<string name="group_invitation_expired">Undangan grup kedaluwarsa</string>
<string name="conn_event_ratchet_sync_allowed">negosiasi ulang enkripsi diperbolehkan</string>
<string name="conn_event_ratchet_sync_required">negosiasi ulang enkripsi diperlukan</string>
<string name="snd_conn_event_ratchet_sync_allowed">negosiasi ulang enkripsi diizinkan untuk %s</string>
<string name="v6_2_network_decentralization_enable_flux">Aktifkan flux</string>
<string name="v6_2_network_decentralization_enable_flux_reason">untuk privasi metadata lebih baik.</string>
<string name="v6_2_improved_chat_navigation">Navigasi obrolan ditingkatkan</string>
<string name="error">Galat</string>
<string name="migrate_to_device_finalize_migration">Selesaikan migrasi pada perangkat lain.</string>
<string name="migrate_from_device_error_verifying_passphrase">Gagal verifikasi frasa sandi:</string>
<string name="servers_info_reconnect_server_error">Gagal hubungkan ulang server</string>
<string name="servers_info_reconnect_servers_error">Gagal hubungkan ulang server</string>
<string name="settings_section_title_experimenta">EKSPERIMENTAL</string>
<string name="export_database">Ekspor basis data</string>
<string name="import_database">Impor basis data</string>
<string name="error_stopping_chat">Gagal hentikan obrolan</string>
<string name="error_changing_message_deletion">Gagal ganti pengaturan</string>
<string name="error_with_info">Galat: %s</string>
<string name="icon_descr_group_inactive">Grup tidak aktif</string>
<string name="alert_title_group_invitation_expired">Undangan kedaluwarsa!</string>
<string name="snd_group_event_group_profile_updated">profil grup diperbarui</string>
<string name="initial_member_role">Hak awal</string>
<string name="error_creating_link_for_group">Gagal membuat tautan grup</string>
<string name="error_deleting_link_for_group">Gagal hapus tautan grup</string>
<string name="error_updating_link_for_group">Gagal perbarui tautan grup</string>
<string name="error_creating_member_contact">Gagal membuat kontak anggota</string>
<string name="user_hide">Sembunyikan</string>
<string name="image_will_be_received_when_contact_is_online">Gambar akan diterima saat kontak Anda online, harap tunggu atau periksa nanti!</string>
<string name="file_error">Kesalahan berkas</string>
<string name="from_gallery_button">Dari Galeri</string>
<string name="how_to_use_markdown">Cara menggunakan markdown</string>
<string name="alert_message_group_invitation_expired">Undangan grup tidak lagi berlaku, telah dihapus oleh pengirim.</string>
<string name="operator_use_for_messages_private_routing">Untuk routing pribadi</string>
<string name="error_updating_server_title">Gagal perbarui server</string>
<string name="enter_password_to_show">Masukkan kata sandi dalam pencarian</string>
<string name="enter_correct_passphrase">Masukkan frasa sandi yang benar.</string>
<string name="custom_time_unit_hours">jam</string>
<string name="desktop_incompatible_version">Versi tidak kompatibel</string>
<string name="servers_info_sessions_errors">Galat</string>
<string name="snd_error_proxy">Server penerusan: %1$s\nKesalahan: %2$s</string>
<string name="snd_error_proxy_relay">Server penerusan: %1$s\nKesalahan server tujuan: %2$s</string>
<string name="files_and_media_prohibited">Berkas dan media dilarang!</string>
<string name="file_will_be_received_when_contact_completes_uploading">Berkas akan diterima setelah kontak Anda selesai mengunggah.</string>
<string name="file_will_be_received_when_contact_is_online">Berkas akan diterima saat kontak Anda online, harap tunggu atau periksa nanti!</string>
<string name="enable_camera_access">Aktifkan akses kamera</string>
<string name="if_you_received_simplex_invitation_link_you_can_open_in_browser">Jika Anda menerima tautan undangan SimpleX Chat, Anda dapat buka di peramban Anda:</string>
<string name="icon_descr_help">bantuan</string>
<string name="if_you_cant_meet_in_person">Jika Anda tidak dapat bertemu langsung, tunjukkan kode QR dalam panggilan video, atau bagikan tautan.</string>
<string name="network_option_enable_tcp_keep_alive">Aktifkan TCP keep-alive</string>
<string name="error_starting_chat">Gagal memulai obrolan</string>
<string name="settings_section_title_incognito">Mode samaran</string>
<string name="migrate_from_device_error_deleting_database">Gagal hapus basis data</string>
<string name="invalid_QR_code">Kode QR tidak valid</string>
<string name="error_encrypting_database">Gagal enkripsi basis data</string>
<string name="icon_descr_server_status_error">Galat</string>
<string name="import_database_confirmation">Impor</string>
<string name="expired_label">kedaluwarsa</string>
<string name="if_you_choose_to_reject_the_sender_will_not_be_notified">Jika Anda memilih menolak, pengirim TIDAK akan diberitahu.</string>
<string name="errors_in_servers_configuration">Kesalahan dalam konfigurasi server.</string>
<string name="for_chat_profile">Untuk profil obrolan %s:</string>
<string name="error_accepting_operator_conditions">Gagal menerima ketentuan</string>
<string name="app_check_for_updates_installed_successfully_title">Berhasil diinstal</string>
<string name="hide_profile">Sembunyikan profil</string>
<string name="enter_passphrase">Masukkan frasa sandi…</string>
<string name="migrate_to_device_file_delete_or_link_invalid">Berkas telah dihapus atau tautan tidak valid</string>
<string name="enter_welcome_message_optional">Masukkan pesan sambutan… (opsional)</string>
<string name="full_name__field">Nama lengkap:</string>
<string name="migrate_from_device_chat_should_be_stopped">Untuk melanjutkan, obrolan harus dihentikan.</string>
<string name="snd_conn_event_ratchet_sync_required">negosiasi ulang enkripsi diperlukan untuk %s</string>
<string name="icon_descr_expand_role">Perluas pemilihan hak</string>
<string name="found_desktop">Ditemukan desktop</string>
<string name="migrate_from_device_error_saving_settings">Gagal simpan pengaturan</string>
<string name="snd_conn_event_ratchet_sync_ok">enkripsi ok untuk %s</string>
<string name="error_exporting_chat_database">Gagal ekspor basis data obrolan</string>
<string name="import_database_question">Impor basis data obrolan?</string>
<string name="conn_level_desc_indirect">tidak langsung (%1$s)</string>
<string name="error_adding_server">Gagal menambah server</string>
<string name="migrate_from_device_error_uploading_archive">Gagal perbarui arsipan</string>
<string name="error_blocking_member_for_all">Gagal blokir anggota untuk semua</string>
<string name="error_saving_user_password">Gagal simpan kata sandi pengguna</string>
<string name="invalid_file_link">Tautan tidak valid</string>
<string name="no_message_servers_configured">Tiada server pesan.</string>
<string name="no_message_servers_configured_for_private_routing">Tiada server untuk routing pesan pribadi.</string>
<string name="no_media_servers_configured">Tiada server media dan berkas.</string>
<string name="no_message_servers_configured_for_receiving">Tiada server untuk menerima pesan.</string>
<string name="or_to_share_privately">Atau bagikan secara pribadi</string>
<string name="save_and_notify_group_members">Simpan dan beritahu anggota grup</string>
<string name="current_version_timestamp">%s (saat ini)</string>
<string name="unblock_member_desc">Pesan dari %s akan ditampilkan!</string>
<string name="auth_log_in_using_credential">Masuk dengan kredensial Anda</string>
<string name="send_disappearing_message_send">Kirim</string>
<string name="save_and_notify_contacts">Simpan dan beritahu kontak</string>
<string name="alert_title_msg_bad_id">ID pesan salah</string>
<string name="keychain_error">Kesalahan Keychain</string>
<string name="save_passphrase_and_open_chat">Simpan frasa sandi dan buka obrolan</string>
<string name="open_chat">Buka obrolan</string>
<string name="restore_passphrase_not_found_desc">Frasa sandi tidak ditemukan di Keystore, silakan masukkan secara manual. Hal ini mungkin terjadi jika Anda pulihkan data aplikasi menggunakan alat cadangan. Jika tidak, silakan hubungi pengembang.</string>
<string name="one_hand_ui">Toolbar aplikasi yang dijangkau</string>
<string name="member_will_be_removed_from_group_cannot_be_undone">Anggota akan dihapus dari grup - ini tidak dapat dibatalkan!</string>
<string name="network_option_protocol_timeout_per_kb">Batas waktu protokol per KB</string>
<string name="network_option_rcv_concurrency">Menerima konkurensi</string>
<string name="profile_password">Kata sandi profil</string>
<string name="v4_5_italian_interface">Antarmuka Italia</string>
<string name="link_a_mobile">Hubungkan ponsel</string>
<string name="you_can_enable_delivery_receipts_later_alert">Anda dapat aktifkan nanti di pengaturan Privasi dan Keamanan aplikasi.</string>
<string name="linked_desktop_options">Opsi desktop tertaut</string>
<string name="migrate_from_device_try_again">Anda dapat mencoba lagi.</string>
<string name="servers_info_reset_stats_alert_confirm">Reset</string>
<string name="settings_restart_app">Mulai ulang</string>
<string name="restart_the_app_to_use_imported_chat_database">Mulai ulang aplikasi untuk gunakan basis data obrolan yang diimpor.</string>
<string name="restore_database">Pulihkan cadangan basis data</string>
<string name="database_restore_error">Gagal pulihkan basis data</string>
<string name="you_can_share_group_link_anybody_will_be_able_to_connect">Anda dapat bagikan tautan atau kode QR - siapa pun dapat bergabung ke grup. Anda tidak akan kehilangan anggota grup jika nanti Anda hapus.</string>
<string name="send_receipts_disabled_alert_title">Tanda terima dimatikan</string>
<string name="you_can_share_this_address_with_your_contacts">Anda dapat bagikan alamat ini dengan kontak agar dapat terhubung dengan %s.</string>
<string name="you_can_enable_delivery_receipts_later">Anda dapat aktifkan nanti di Pengaturan</string>
<string name="sending_delivery_receipts_will_be_enabled_all_profiles">Kirim tanda terima pengirim akan diaktifkan untuk semua kontak di semua profil obrolan yang terlihat.</string>
<string name="or_paste_archive_link">Atau tempel tautan arsip</string>
<string name="migrate_to_device_database_init">Mempersiapkan unduhan</string>
<string name="migrate_to_device_title">Pindah ke sini</string>
<string name="migrate_to_device_repeat_import">Impor ulang</string>
<string name="migrate_to_device_confirm_network_settings_footer">Harap konfirmasi bahwa pengaturan jaringan sudah benar untuk perangkat ini.</string>
<string name="migrate_from_device_database_init">Mempersiapkan unggahan</string>
<string name="servers_info_reconnect_servers_message">Hubungkan ulang semua server yang terhubung untuk paksa kirim pesan. Ini menggunakan lalu lintas tambahan.</string>
<string name="servers_info_reconnect_server_title">Hubungkan ulang server?</string>
<string name="servers_info_reset_stats">Reset semua statistik</string>
<string name="servers_info_reset_stats_alert_title">Reset seluruh statistik?</string>
<string name="servers_info_reconnect_all_servers_button">Hubungkan ulang semua server</string>
<string name="save_passphrase_in_keychain">Simpan frasa sandi di Keystore</string>
<string name="info_row_local_name">Nama lokal</string>
<string name="info_row_sent_at">Dikirim pada</string>
<string name="info_row_received_at">Diterima pada</string>
<string name="network_options_reset_to_defaults">Reset ke bawaan</string>
<string name="v6_2_network_decentralization">Jaringan desentralisasi</string>
<string name="sending_delivery_receipts_will_be_enabled">Kirim tanda terima pengirim akan diaktifkan untuk semua kontak.</string>
<string name="linked_desktops">Desktop terhubung</string>
<string name="migrate_to_device_bytes_downloaded">%s diunduh</string>
<string name="servers_info_messages_received">Pesan diterima</string>
<string name="info_row_updated_at">Catatan diperbarui pada</string>
<string name="settings_section_title_messages">PESAN DAN BERKAS</string>
<string name="settings_section_title_user_theme">Tema profil</string>
<string name="settings_section_title_profile_images">Gambar profil</string>
<string name="enter_correct_current_passphrase">Harap masukkan frasa sandi saat ini yang benar.</string>
<string name="database_migrations">Migrasi: %s</string>
<string name="rcv_group_event_1_member_connected">%s terhubung</string>
<string name="profile_update_event_member_name_changed">anggota %1$s berubah menjadi %2$s</string>
<string name="info_row_message_status">Status pesan</string>
<string name="info_row_moderated_at">Dimoderasi pada</string>
<string name="button_send_direct_message">Kirim pesan pribadi</string>
<string name="network_option_protocol_timeout">Batas waktu protokol</string>
<string name="network_options_save_and_reconnect">Simpan dan hubungkan ulang</string>
<string name="incognito_info_allows">Memungkinkan adanya banyak koneksi anonim tanpa ada data bersama di antara mereka dalam satu profil obrolan.</string>
<string name="servers_info_reconnect_servers_title">Hubungkan ulang server?</string>
<string name="maximum_message_size_title">Pesan terlalu besar!</string>
<string name="maximum_message_size_reached_non_text">Mohon kurangi ukuran pesan atau hapus media dan kirim lagi.</string>
<string name="maximum_message_size_reached_text">Mohon kurangi ukuran pesan dan kirim lagi.</string>
<string name="maximum_message_size_reached_forwarding">Anda dapat salin dan kurangi ukuran pesan untuk kirim.</string>
<string name="reset_verb">Reset</string>
<string name="send_live_message_desc">Kirim pesan langsung - pesan akan diperbarui pada penerima saat Anda mengetik</string>
<string name="icon_descr_send_message">Kirim Pesan</string>
<string name="mark_unread">Tandai belum dibaca</string>
<string name="you_can_set_connection_name_to_remember">Anda dapat setel nama koneksi, untuk mengingat dengan siapa tautan dibagikan.</string>
<string name="app_check_for_updates_button_open">Buka lokasi berkas</string>
<string name="app_check_for_updates_installed_successfully_desc">Silakan mulai ulang aplikasi.</string>
<string name="join_group_incognito_button">Gabung ke samaran</string>
<string name="sender_at_ts">%s pada %s</string>
<string name="member_will_be_removed_from_chat_cannot_be_undone">Anggota akan dihapus dari obrolan - ini tidak dapat dibatalkan!</string>
<string name="operator_server_alert_title">Server operator</string>
<string name="server_added_to_operator__name">Server ditambah ke operator %s.</string>
<string name="error_server_operator_changed">Operator server berubah.</string>
<string name="error_server_protocol_changed">Protokol server berubah.</string>
<string name="network_option_ping_count">Jumlah PING</string>
<string name="network_option_ping_interval">Interval PING</string>
<string name="v6_2_improved_chat_navigation_descr">- Buka obrolan pada pesan belum dibaca pertama.\n- Lompat ke pesan yang dikutip.</string>
<string name="custom_time_picker_select">Pilih</string>
<string name="servers_info_reconnect_server_message">Hubungkan ulang server untuk paksa kirim pesan. Ini menggunakan lalu lintas tambahan.</string>
<string name="chat_bottom_bar">Bilah alat obrolan yang dijangkau</string>
<string name="profile_update_event_removed_picture">foto profil dihapus</string>
<string name="rcv_group_event_2_members_connected">%s dan %s terhubung</string>
<string name="v6_2_business_chats_descr">Privasi untuk pelanggan Anda.</string>
<string name="migrate_to_device_repeat_download">Unduh ulang</string>
<string name="migrate_to_device_try_again">Anda dapat mencoba lagi.</string>
<string name="migrate_from_device_remove_archive_question">Hapus arsip?</string>
<string name="migrate_from_device_repeat_upload">Unggah ulang</string>
<string name="keep_conversation">Simpan percakapan</string>
<string name="you_can_still_send_messages_to_contact">Anda dapat kirim pesan ke %1$s dari kontak yang diarsip.</string>
<string name="switch_receiving_address_desc">Alamat penerima akan diubah ke server lain. Perubahan alamat akan selesai setelah pengirim online.</string>
<string name="ask_your_contact_to_enable_voice">Minta kontak Anda untuk aktifkan kirim pesan suara.</string>
<string name="image_descr_profile_image">gambar profil</string>
<string name="save_auto_accept_settings">Simpan pengaturan terima otomatis</string>
<string name="share_text_updated_at">Catatan diperbarui pada: %s</string>
<string name="network_option_seconds_label">dtk</string>
<string name="bad_desktop_address">Alamat desktop salah</string>
<string name="scan_qr_code_from_desktop">Pindai kode QR dari desktop</string>
<string name="servers_info_messages_sent">Pesan terkirim</string>
<string name="moderated_item_description">dimoderasi oleh %s</string>
<string name="auth_open_chat_console">Buka konsol obrolan</string>
<string name="message_delivery_warning_title">Peringatan kirim pesan</string>
<string name="message_delivery_error_title">Kesalahan kirim pesan</string>
<string name="recipients_can_not_see_who_message_from">Penerima tidak dapat melihat siapa pengirim pesan ini.</string>
<string name="observer_cant_send_message_desc">Silakan hubungi admin grup.</string>
<string name="loading_remote_file_title">Memuat berkas</string>
<string name="loading_remote_file_desc">Harap tunggu sementara berkas sedang dimuat dari ponsel yang terhubung</string>
<string name="icon_descr_server_status_pending">Tertunda</string>
<string name="sync_connection_force_question">Negosiasi ulang enkripsi?</string>
<string name="sync_connection_force_confirm">Negosiasi ulang</string>
<string name="send_disappearing_message">Kirim pesan sementara</string>
<string name="send_verb">Kirim</string>
<string name="scan_QR_code">Pindai kode QR</string>
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(pindai atau tempel dari papan klip)</string>
<string name="toast_permission_denied">Izin Ditolak!</string>
<string name="mark_read">Tandai dibaca</string>
<string name="image_descr_link_preview">tautan pratinjau gambar</string>
<string name="you_can_share_your_address">Anda dapat bagikan alamat sebagai tautan atau kode QR - siapa pun dapat terhubung dengan Anda.</string>
<string name="network_options_save">Simpan</string>
<string name="make_profile_private">Jadikan profil pribadi!</string>
<string name="remote_hosts_section">Ponsel jarak jauh</string>
<string name="run_chat_section">JALANKAN OBROLAN</string>
<string name="store_passphrase_securely_without_recover">Harap simpan frasa sandi dengan aman, Anda TIDAK akan dapat mengakses obrolan jika hilang.</string>
<string name="rcv_group_event_member_deleted">dihapus %1$s</string>
<string name="share_text_sent_at">Dikirim pada: %s</string>
<string name="integrity_msg_bad_id">ID pesan salah</string>
<string name="remove_passphrase_from_keychain">Hapus frasa sandi dari Keystore?</string>
<string name="remove_passphrase_from_settings">Hapus frasa sandi dari pengaturan?</string>
<string name="save_passphrase_in_settings">Simpan frasa sandi di pengaturan</string>
<string name="proxied">Diproxy</string>
<string name="paste_the_link_you_received_to_connect_with_your_contact">Tempel tautan yang Anda terima untuk terhubung dengan kontak…</string>
<string name="other_label">lainnya</string>
<string name="send_live_message">Kirim pesan langsung</string>
<string name="live_message">Pesan langsung!</string>
<string name="image_descr_qr_code">Kode QR</string>
<string name="migrate_to_device_migrating">Memindah</string>
<string name="server_address">Alamat server</string>
<string name="open_server_settings_button">Buka pengaturan server</string>
<string name="profile_update_event_removed_address">alamat kontak dihapus</string>
<string name="v6_0_chat_list_media">Putar dari daftar obrolan.</string>
<string name="linked_mobiles">Ponsel terhubung</string>
<string name="scan_from_mobile">Pindai dari ponsel</string>
<string name="network_type_other">Lainnya</string>
<string name="no_media_servers_configured_for_private_routing">Tiada server untuk menerima berkas.</string>
<string name="no_media_servers_configured_for_sending">Tiada server untuk kirim berkas.</string>
<string name="message_deleted_or_not_received_error_title">Tiada pesan</string>
<string name="auth_open_migration_to_another_device">Buka layar migrasi</string>
<string name="delete_messages_cannot_be_undone_warning">Pesan akan dihapus - ini tidak dapat dibatalkan!</string>
<string name="icon_descr_profile_image_placeholder">tempat penampung gambar profil</string>
<string name="srv_error_host">Alamat server tidak kompatibel dengan pengaturan jaringan.</string>
<string name="password_to_show">Kata sandi ditampilkan</string>
<string name="app_check_for_updates_button_remind_later">Ingatkan nanti</string>
<string name="restore_database_alert_desc">Harap masukkan kata sandi sebelumnya setelah memulihkan cadangan basis data. Tindakan ini tidak dapat dibatalkan.</string>
<string name="restore_database_alert_confirm">Pulihkan</string>
<string name="you_can_start_chat_via_setting_or_by_restarting_the_app">Anda dapat mulai obrolan via Pengaturan aplikasi / Basis Data atau dengan mulai ulang aplikasi.</string>
<string name="only_chat_owners_can_change_prefs">Hanya pemilik obrolan yang dapat ubah preferensi.</string>
<string name="send_receipts">Kirim tanda terima</string>
<string name="custom_time_unit_seconds">detik</string>
<string name="agent_critical_error_desc">Harap laporkan ke pengembang:\n%s\n\nDisarankan untuk memulai ulang aplikasi.</string>
<string name="custom_time_unit_minutes">menit</string>
<string name="network_session_mode_session_description">Kredensial SOCKS baru akan digunakan setiap kali Anda memulai aplikasi.</string>
<string name="email_invite_subject">Mari bicara di SimpleX Chat</string>
<string name="save_and_notify_contact">Simpan dan beritahu kontak</string>
<string name="save_preferences_question">Simpan preferensi?</string>
<string name="you_can_create_it_later">Anda dapat buat nanti</string>
<string name="join_group_question">Gabung ke grup?</string>
<string name="joining_group">Bergabung dengan grup</string>
<string name="calls_prohibited_ask_to_enable_calls_alert_text">Minta kontak Anda untuk aktifkan panggilan.</string>
<string name="you_can_hide_or_mute_user_profile">Anda dapat sembunyikan atau matikan profil pengguna - tekan tahan untuk buka menu.</string>
<string name="v4_5_reduced_battery_usage">Penggunaan baterai sedikit</string>
<string name="migrate_from_device_migration_complete">Berhasil dipindah</string>
<string name="icon_descr_record_voice_message">Rekam pesan suara</string>
<string name="servers_info_subscriptions_section_header">Penerima pesan</string>
<string name="alert_title_msg_bad_hash">Hash pesan salah</string>
<string name="leave_chat_question">Keluar dari obrolan?</string>
<string name="store_passphrase_securely">Harap simpan frasa sandi dengan aman, Anda TIDAK akan dapat mengubahnya jika hilang.</string>
<string name="restore_database_alert_title">Pulihkan cadangan basis data?</string>
<string name="share_text_moderated_at">Dimoderasi pada: %s</string>
<string name="share_text_received_at">Diterima pada: %s</string>
<string name="chat_archive">Atau impor berkas arsip</string>
<string name="agent_internal_error_desc">Harap laporkan ke pengembang:\n%S</string>
<string name="display_name__field">Nama profil:</string>
<string name="servers_info_subscriptions_connections_pending">Tertunda</string>
<string name="servers_info_previously_connected_servers_section_header">Server yang terhubung sebelumnya</string>
<string name="servers_info_proxied_servers_section_header">Server proxy</string>
<string name="delete_messages_mark_deleted_warning">Pesan akan ditandai sebagai dihapus. Penerima tetap dapat melihat pesan tersebut.</string>
<string name="delete_message_mark_deleted_warning">Pesan akan ditandai sebagai dihapus. Penerima tetap dapat melihat pesan ini.</string>
<string name="sync_connection_confirm">Perbaiki</string>
<string name="sync_connection_question">Perbaiki koneksi?</string>
<string name="smp_servers_new_server">Server baru</string>
<string name="message_queue_info">Info antrian pesan</string>
<string name="settings_section_title_message_shape">Bentuk pesan</string>
<string name="settings_section_title_private_message_routing">ROUTING PESAN PRIBADI</string>
<string name="message_queue_info_server_info">info antrean server: %1$s\n\npesan terakhir diterima: %2$s</string>
<string name="users_delete_data_only">Hanya data profil lokal</string>
<string name="operator_open_changes">Buka perubahan</string>
<string name="operator_open_conditions">Ketentuan terbuka</string>
<string name="migrate_from_device_or_share_this_file_link">Atau bagikan tautan berkas dengan aman</string>
<string name="paste_desktop_address">Tempel alamat desktop</string>
<string name="users_delete_with_connections">Profil dan koneksi server</string>
<string name="other_errors">Kesalahan lainnya</string>
<string name="secured">Aman</string>
<string name="send_errors">Kesalahan kirim</string>
<string name="sent_directly">Dikirim langsung</string>
<string name="sent_via_proxy">Dikirim via proxy</string>
<string name="profile_update_will_be_sent_to_contacts">Pembaruan profil akan dikirim ke kontak Anda.</string>
<string name="paste_archive_link">Tempel tautan arsip</string>
<string name="remote_ctrl_connection_stopped_desc">Harap periksa apakah perangkat seluler dan desktop terhubung ke jaringan lokal yang sama, dan firewall desktop mengizinkan koneksi.\nHarap sampaikan masalah lain kepada pengembang.</string>
<string name="sync_connection_desc">Koneksi memerlukan negosiasi ulang enkripsi.</string>
<string name="encryption_renegotiation_in_progress">Negosiasi ulang enkripsi sedang berlangsung.</string>
</resources>
@@ -363,7 +363,7 @@
<string name="icon_descr_audio_off">Audio spento</string>
<string name="icon_descr_audio_on">Audio acceso</string>
<string name="settings_audio_video_calls">Chiamate audio e video</string>
<string name="auto_accept_images">Auto-accetta immagini</string>
<string name="auto_accept_images">Auto-accetta le immagini</string>
<string name="integrity_msg_bad_hash">hash del messaggio errato</string>
<string name="integrity_msg_bad_id">ID messaggio errato</string>
<string name="icon_descr_call_ended">Chiamata terminata</string>
@@ -470,7 +470,7 @@
<string name="feature_enabled_for_contact">attivato per il contatto</string>
<string name="feature_enabled_for_you">attivato per te</string>
<string name="group_preferences">Preferenze del gruppo</string>
<string name="v4_2_auto_accept_contact_requests">Auto-accetta richieste di contatto</string>
<string name="v4_2_auto_accept_contact_requests">Auto-accetta le richieste di contatto</string>
<string name="ttl_d">%dg</string>
<string name="ttl_day">%d giorno</string>
<string name="ttl_days">%d giorni</string>
@@ -538,7 +538,7 @@
<string name="invalid_QR_code">Codice QR non valido</string>
<string name="image_descr_link_preview">immagine di anteprima link</string>
<string name="mark_read">Segna come già letto</string>
<string name="mark_unread">Segna come non letto</string>
<string name="mark_unread">Segna come non letta</string>
<string name="icon_descr_more_button">Altro</string>
<string name="mute_chat">Silenzia</string>
<string name="image_descr_profile_image">immagine del profilo</string>
@@ -704,7 +704,7 @@
<string name="restart_the_app_to_create_a_new_chat_profile">Riavvia l\'app per creare un profilo di chat nuovo.</string>
<string name="restart_the_app_to_use_imported_chat_database">Riavvia l\'app per usare il database della chat importato.</string>
<string name="run_chat_section">AVVIA CHAT</string>
<string name="send_link_previews">Invia anteprime dei link</string>
<string name="send_link_previews">Invia le anteprime dei link</string>
<string name="set_password_to_export">Imposta la password per esportare</string>
<string name="settings_section_title_settings">IMPOSTAZIONI</string>
<string name="settings_section_title_socks">PROXY SOCKS</string>
@@ -874,7 +874,6 @@
<string name="remove_passphrase_from_keychain">Rimuovere la password dal Keystore\?</string>
<string name="save_passphrase_in_keychain">Salva la password nel Keystore</string>
<string name="chat_item_ttl_seconds">%s secondo/i</string>
<string name="stop_chat_to_enable_database_actions">Ferma la chat per attivare le azioni del database.</string>
<string name="delete_files_and_media_desc">Questa azione non può essere annullata: tutti i file e i media ricevuti e inviati verranno eliminati. Rimarranno le immagini a bassa risoluzione.</string>
<string name="enable_automatic_deletion_message">Questa azione non può essere annullata: i messaggi inviati e ricevuti prima di quanto selezionato verranno eliminati. Potrebbe richiedere diversi minuti.</string>
<string name="update_database">Aggiorna</string>
@@ -919,7 +918,7 @@
<string name="v4_5_italian_interface_descr">Grazie agli utenti contribuite via Weblate!</string>
<string name="v4_4_french_interface">Interfaccia francese</string>
<string name="v4_5_italian_interface">Interfaccia italiana</string>
<string name="v4_5_message_draft">Bozza dei messaggi</string>
<string name="v4_5_message_draft">Bozza del messaggio</string>
<string name="v4_5_message_draft_descr">Conserva la bozza dell\'ultimo messaggio, con gli allegati.</string>
<string name="v4_5_private_filenames">Nomi di file privati</string>
<string name="v4_5_transport_isolation_descr">Per profilo di chat (predefinito) o per connessione (BETA).</string>
@@ -1349,7 +1348,7 @@
<string name="rcv_group_event_2_members_connected">%s e %s si sono connessi/e</string>
<string name="rcv_group_event_n_members_connected">%s, %s e altri %d membri si sono connessi</string>
<string name="rcv_group_event_3_members_connected">%s, %s e %s si sono connessi/e</string>
<string name="privacy_message_draft">Bozza</string>
<string name="privacy_message_draft">Bozza del messaggio</string>
<string name="privacy_show_last_messages">Mostra gli ultimi messaggi</string>
<string name="database_will_be_encrypted_and_passphrase_stored_in_settings">Il database verrà crittografato e la password conservata nelle impostazioni.</string>
<string name="you_can_change_it_later">La password casuale viene conservata nelle impostazioni come testo normale.
@@ -1616,8 +1615,7 @@
<string name="snd_group_event_member_blocked">hai bloccato %s</string>
<string name="welcome_message_is_too_long">Il messaggio di benvenuto è troppo lungo</string>
<string name="message_too_large">Messaggio troppo grande</string>
<string name="database_migration_in_progress">Migrazione database in corso.
\nPuò richiedere qualche minuto.</string>
<string name="database_migration_in_progress">Migrazione del database in corso.\nPuò richiedere qualche minuto.</string>
<string name="call_service_notification_audio_call">Chiamata audio</string>
<string name="call_service_notification_end_call">Termina chiamata</string>
<string name="call_service_notification_video_call">Videochiamata</string>
@@ -1949,8 +1947,7 @@
<string name="appearance_font_size">Dimensione carattere</string>
<string name="servers_info_detailed_statistics_sent_messages_total">Totale inviato</string>
<string name="message_forwarded_title">Messaggio inoltrato</string>
<string name="servers_info_private_data_disclaimer">Inizio da %s.
\nTutti i dati sono privati, nel tuo dispositivo.</string>
<string name="servers_info_private_data_disclaimer">Partendo da %s. \nTutti i dati sono privati, nel tuo dispositivo.</string>
<string name="message_forwarded_desc">Ancora nessuna connessione diretta, il messaggio viene inoltrato dall\'amministratore.</string>
<string name="servers_info_proxied_servers_section_footer">Non sei connesso/a a questi server. L\'instradamento privato è usato per consegnare loro i messaggi.</string>
<string name="xftp_servers_other">Altri server XFTP</string>
@@ -1981,7 +1978,7 @@
<string name="smp_proxy_error_connecting">Errore di connessione al server di inoltro %1$s. Riprova più tardi.</string>
<string name="smp_proxy_error_broker_version">La versione server di inoltro è incompatibile con le impostazioni di rete: %1$s.</string>
<string name="privacy_media_blur_radius_off">Off</string>
<string name="privacy_media_blur_radius">Sfocatura file multimediali</string>
<string name="privacy_media_blur_radius">Sfocatura dei file multimediali</string>
<string name="privacy_media_blur_radius_soft">Leggera</string>
<string name="privacy_media_blur_radius_medium">Media</string>
<string name="privacy_media_blur_radius_strong">Forte</string>
@@ -2132,18 +2129,18 @@
<string name="for_social_media">Per i social media</string>
<string name="or_to_share_privately">O per condividere in modo privato</string>
<string name="onboarding_network_operators">Operatori di rete</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Quando più di un operatore di rete è attivato, l\'app userà i server di diversi operatori per ogni conversazione.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">L\'app protegge la tua privacy usando diversi operatori per ogni conversazione.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Puoi configurare gli operatori nelle impostazioni di rete e server.</string>
<string name="onboarding_choose_server_operators">Operatori del server</string>
<string name="onboarding_select_network_operators_to_use">Seleziona gli operatori di rete da usare.</string>
<string name="onboarding_network_operators_continue">Continua</string>
<string name="onboarding_network_operators_update">Aggiorna</string>
<string name="onboarding_network_operators_review_later">Esamina più tardi</string>
<string name="onboarding_network_operators_review_later">Leggi più tardi</string>
<string name="network_preset_servers_title">Server preimpostati</string>
<string name="operator_conditions_accepted">Condizioni accettate</string>
<string name="operator_conditions_accepted_for_enabled_operators_on">Le condizioni verranno accettate automaticamente per gli operatori attivati il: %s.</string>
<string name="your_servers">I tuoi server</string>
<string name="operator_review_conditions">Esamina le condizioni</string>
<string name="operator_review_conditions">Leggi le condizioni</string>
<string name="operators_conditions_accepted_for"><![CDATA[Condizioni accettate per gli operatori: <b>%s</b>.]]></string>
<string name="operator_conditions_accepted_for_some"><![CDATA[Condizioni già accettate per i seguenti operatori: <b>%s</b>.]]></string>
<string name="operator_conditions_failed_to_load">Il testo delle condizioni attuali testo non è stato caricato, puoi consultare le condizioni tramite questo link:</string>
@@ -2193,13 +2190,13 @@
<string name="error_accepting_operator_conditions">Errore di accettazione delle condizioni</string>
<string name="failed_to_save_servers">Errore di salvataggio dei server</string>
<string name="v6_2_network_decentralization_enable_flux_reason">per una migliore privacy dei metadati.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Ad esempio, se ricevi messaggi tramite il server di SimpleX Chat, l\'app userà uno dei server Flux per l\'instradamento privato.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Ad esempio, se il tuo contatto riceve i messaggi tramite un server di SimpleX Chat, la tua app li consegnerà tramite un server di Flux.</string>
<string name="v6_2_improved_chat_navigation">Navigazione della chat migliorata</string>
<string name="smp_servers_new_server">Nuovo server</string>
<string name="operator_use_for_files">Usa per i file</string>
<string name="simplex_address_or_1_time_link">Indirizzo SimpleX o link una tantum?</string>
<string name="message_deleted_or_not_received_error_desc">Questo messaggio è stato eliminato o non ancora ricevuto.</string>
<string name="address_creation_instruction">Tocca \"Crea indirizzo SimpleX\" nel menu per crearlo più tardi.</string>
<string name="address_creation_instruction">Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi.</string>
<string name="connection_error_quota_desc">La connessione ha raggiunto il limite di messaggi non consegnati, il contatto potrebbe essere offline.</string>
<string name="operator_use_operator_toggle_description">Usa i server</string>
<string name="onboarding_network_operators_configure_via_settings">Puoi configurare i server nelle impostazioni.</string>
@@ -2209,7 +2206,7 @@
<string name="no_media_servers_configured_for_sending">Nessun server per inviare file.</string>
<string name="v6_2_improved_chat_navigation_descr">- Apri la chat sul primo messaggio non letto.\n- Salta ai messaggi citati.</string>
<string name="share_address_publicly">Condividi indirizzo pubblicamente</string>
<string name="share_simplex_address_on_social_media">Condividi indirizzo SimpleX sui social media.</string>
<string name="share_simplex_address_on_social_media">Condividi l\'indirizzo SimpleX sui social media.</string>
<string name="chat_archive">O importa file archivio</string>
<string name="remote_hosts_section">Telefoni remoti</string>
<string name="direct_messages_are_prohibited_in_chat">I messaggi diretti tra i membri sono vietati in questa chat.</string>
@@ -2247,4 +2244,13 @@
<string name="member_role_will_be_changed_with_notification_chat">Il ruolo verrà cambiato in %s. Verrà notificato a tutti nella chat.</string>
<string name="chat_main_profile_sent">Il tuo profilo di chat verrà inviato ai membri della chat</string>
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Non riceverai più messaggi da questa chat. La cronologia della chat verrà conservata.</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Quando più di un operatore è attivato, nessuno di essi ha metadati per capire chi comunica con chi.</string>
<string name="display_name_accepted_invitation">invito accettato</string>
<string name="display_name_requested_to_connect">richiesto di connettersi</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat e Flux hanno concluso un accordo per includere server gestiti da Flux nell\'app.</string>
<string name="onboarding_network_about_operators">Info sugli operatori</string>
<string name="sync_connection_desc">La connessione richiede la rinegoziazione della crittografia.</string>
<string name="sync_connection_confirm">Correggi</string>
<string name="sync_connection_question">Correggere la connessione?</string>
<string name="encryption_renegotiation_in_progress">Rinegoziazione della crittografia in corso.</string>
</resources>
@@ -981,7 +981,6 @@
<string name="stop_chat_question">לעצור צ׳אט\?</string>
<string name="stop_chat_to_export_import_or_delete_chat_database">עיצרו את הצ׳אט כדי לייצא, לייבא או למחוק את מסד הנתונים. לא תוכלו לקבל ולשלוח הודעות בזמן שהצ׳אט מופסק.</string>
<string name="stop_chat_confirmation">עצור</string>
<string name="stop_chat_to_enable_database_actions">עיצרו את הצ׳אט כדי לאפשר פעולות מסד נתונים.</string>
<string name="skip_inviting_button">דלג על הזמנת חברים</string>
<string name="share_address">שתף כתובת</string>
<string name="theme_simplex">SimpleX</string>
@@ -662,7 +662,6 @@
<string name="icon_descr_speaker_off">スピーカーオフ</string>
<string name="your_chat_database">あなたのチャットデータベース</string>
<string name="stop_chat_confirmation">停止</string>
<string name="stop_chat_to_enable_database_actions">データベース操作をするにはチャットを停止する必要があります。</string>
<string name="simplex_link_contact">SimpleX連絡先アドレス</string>
<string name="simplex_link_invitation">SimpleX使い捨て招待リンク</string>
<string name="description_via_contact_address_link">連絡先アドレスリンク経由</string>
@@ -851,7 +851,6 @@
<string name="submit_passcode">제출하기</string>
<string name="store_passphrase_securely_without_recover">암호를 모르면 채팅에 액세스할 수 없으니 암호를 안전하게 보관해 주세요.</string>
<string name="stop_chat_question">채팅 기능을 중지할까요\?</string>
<string name="stop_chat_to_enable_database_actions">데이터베이스 작업을 할 수 있도록 채팅 기능을 중지하기</string>
<string name="switch_receiving_address">수신 주소 바꾸기</string>
<string name="decryption_error">복호화 오류</string>
<string name="confirm_passcode">패스코드 확인</string>
@@ -1219,7 +1219,6 @@
<string name="set_database_passphrase">Nustatyti duomenų slaptafrazę</string>
<string name="set_passphrase">Nustatyti slaptafrazę</string>
<string name="privacy_show_last_messages">Rodyti paskutines žinutes</string>
<string name="stop_chat_to_enable_database_actions">Sustabdykite pokalbius, kad įgalinti duomenų bazės veiksmus.</string>
<string name="settings_section_title_support">PALAIKYKITE SIMPLEX CHAT</string>
<string name="receipts_section_description_1">Jų galima nepaisyti kontaktų ir grupių nustatymuose.</string>
<string name="enable_automatic_deletion_message">Šis veiksmas negali būti atšauktas - žinutės išsiųstos ir gautos anksčiau nei pasirinkta bus ištrintos. Tai gali užtrukti kelias minutes.</string>
@@ -740,7 +740,6 @@
<string name="restart_the_app_to_create_a_new_chat_profile">Start de app opnieuw om een nieuw chatprofiel aan te maken.</string>
<string name="you_must_use_the_most_recent_version_of_database">U mag ALLEEN de meest recente versie van uw chat-database op één apparaat gebruiken, anders ontvangt u mogelijk geen berichten meer van sommige contacten.</string>
<string name="restart_the_app_to_use_imported_chat_database">Start de app opnieuw om de geïmporteerde chat database te gebruiken.</string>
<string name="stop_chat_to_enable_database_actions">Stop de chat om database acties mogelijk te maken.</string>
<string name="delete_files_and_media_desc">Deze actie kan niet ongedaan worden gemaakt, alle ontvangen en verzonden bestanden en media worden verwijderd. Foto\'s met een lage resolutie blijven behouden.</string>
<string name="remove_passphrase_from_keychain">Wachtwoord verwijderen uit Keychain\?</string>
<string name="remove_passphrase">Verwijderen</string>
@@ -1873,8 +1872,7 @@
<string name="servers_info_details">Details</string>
<string name="servers_info_messages_received">Berichten ontvangen</string>
<string name="servers_info_subscriptions_section_header">Bericht ontvangst</string>
<string name="servers_info_private_data_disclaimer">Beginnend vanaf %s.
\nAlle gegevens zijn privé op uw apparaat.</string>
<string name="servers_info_private_data_disclaimer">Beginnend vanaf %s. \nAlle gegevens zijn privé op uw apparaat.</string>
<string name="servers_info_connected_servers_section_header">Verbonden servers</string>
<string name="servers_info_subscriptions_connections_pending">In behandeling</string>
<string name="servers_info_previously_connected_servers_section_header">Eerder verbonden servers</string>
@@ -2148,7 +2146,7 @@
<string name="onboarding_network_operators_review_later">Later beoordelen</string>
<string name="onboarding_select_network_operators_to_use">Selecteer welke netwerkoperators u wilt gebruiken.</string>
<string name="onboarding_network_operators_update">Update</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Wanneer er meer dan één netwerkoperator is ingeschakeld, gebruikt de app voor elk gesprek de servers van verschillende operators.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">De app beschermt uw privacy door in elk gesprek verschillende operators te gebruiken.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">U kunt operators configureren in Netwerk- en serverinstellingen.</string>
<string name="onboarding_network_operators_continue">Doorgaan</string>
<string name="operator_review_conditions">Voorwaarden bekijken</string>
@@ -2184,7 +2182,7 @@
<string name="v6_2_improved_chat_navigation">Verbeterde chatnavigatie</string>
<string name="v6_2_network_decentralization">Netwerk decentralisatie</string>
<string name="v6_2_network_decentralization_descr">De tweede vooraf ingestelde operator in de app!</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Als u bijvoorbeeld berichten ontvangt via de SimpleX Chat-server, gebruikt de app een van de Flux-servers voor privéroutering.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Als uw contactpersoon bijvoorbeeld berichten ontvangt via een SimpleX Chat-server, worden deze door uw app via een Flux-server verzonden.</string>
<string name="v6_2_network_decentralization_enable_flux">Flux inschakelen</string>
<string name="message_deleted_or_not_received_error_title">Geen bericht</string>
<string name="appearance_app_toolbars">App-werkbalken</string>
@@ -2243,4 +2241,9 @@
<string name="onboarding_notifications_mode_off_desc_short">Geen achtergrondservice</string>
<string name="only_chat_owners_can_change_prefs">Alleen chateigenaren kunnen voorkeuren wijzigen.</string>
<string name="maximum_message_size_reached_non_text">Verklein de berichtgrootte of verwijder de media en verzend het bericht opnieuw.</string>
<string name="display_name_accepted_invitation">geaccepteerde uitnodiging</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Wanneer er meer dan één operator is ingeschakeld, beschikt geen enkele operator over metagegevens om te achterhalen wie met wie communiceert.</string>
<string name="display_name_requested_to_connect">gevraagd om verbinding te maken</string>
<string name="onboarding_network_about_operators">Over operatoren</string>
<string name="onboarding_network_operators_simplex_flux_agreement">Simplex-chat en flux hebben een overeenkomst gemaakt om door flux geëxploiteerde servers in de app op te nemen.</string>
</resources>
@@ -562,7 +562,6 @@
<string name="restart_the_app_to_create_a_new_chat_profile">Uruchom ponownie aplikację, aby utworzyć nowy profil czatu.</string>
<string name="save_passphrase_in_keychain">Zapisz hasło w Keystore</string>
<string name="chat_item_ttl_seconds">%s sekund(y)</string>
<string name="stop_chat_to_enable_database_actions">Zatrzymaj czat, aby umożliwić działania na bazie danych.</string>
<string name="enable_automatic_deletion_message">Tego działania nie można cofnąć - wiadomości wysłane i odebrane wcześniej niż wybrane zostaną usunięte. Może to potrwać kilka minut.</string>
<string name="delete_chat_profile_action_cannot_be_undone_warning">Tego działania nie można cofnąć - Twój profil, kontakty, wiadomości i pliki zostaną nieodwracalnie utracone.</string>
<string name="messages_section_description">To ustawienie dotyczy wiadomości Twojego bieżącego profilu czatu</string>
@@ -1933,8 +1932,7 @@
<string name="servers_info_target">Wyświetlanie informacji dla</string>
<string name="servers_info_statistics_section_header">Statystyki</string>
<string name="servers_info_transport_sessions_section_header">Sesje transportowe</string>
<string name="servers_info_private_data_disclaimer">Zaczynanie od %s.
\nWszystkie dane są prywatne na Twoim urządzeniu.</string>
<string name="servers_info_private_data_disclaimer">Zaczynanie od %s. \nWszystkie dane są prywatne na Twoim urządzeniu.</string>
<string name="servers_info_reconnect_all_servers_button">Połącz ponownie wszystkie serwery</string>
<string name="servers_info_reconnect_server_title">Połączyć ponownie serwer?</string>
<string name="servers_info_proxied_servers_section_footer">Nie jesteś połączony z tymi serwerami. Prywatne trasowanie jest używane do dostarczania do nich wiadomości.</string>
@@ -853,7 +853,6 @@
<string name="settings_section_title_socks">PROXY SOCKS</string>
<string name="database_backup_can_be_restored">A tentativa de alterar a senha do banco de dados não foi concluída.</string>
<string name="stop_chat_to_export_import_or_delete_chat_database">Pare o bate-papo para exportar, importar ou excluir o banco de dados do chat. Você não poderá receber e enviar mensagens enquanto o chat estiver interrompido.</string>
<string name="stop_chat_to_enable_database_actions">Pare o bate-papo para ativar ações no banco de dados.</string>
<string name="chat_item_ttl_seconds">%s segundo(s)</string>
<string name="unknown_database_error_with_info">Erro de banco de dados desconhecido: %s</string>
<string name="unknown_error">Erro desconhecido</string>
@@ -1983,8 +1982,7 @@
<string name="servers_info_transport_sessions_section_header">Sessões de transporte</string>
<string name="servers_info_subscriptions_section_header">Recepção de mensagem</string>
<string name="servers_info_subscriptions_connections_pending">Pendente</string>
<string name="servers_info_private_data_disclaimer">Começando de %s.
\nTodos os dados são privados do seu dispositivo.</string>
<string name="servers_info_private_data_disclaimer">Começando de %s. \nTodos os dados são privados do seu dispositivo.</string>
<string name="servers_info_subscriptions_total">Total</string>
<string name="servers_info_proxied_servers_section_header">Servidores proxiados</string>
<string name="servers_info_previously_connected_servers_section_header">Servidores conectados anteriormente</string>
@@ -760,7 +760,6 @@
<string name="group_members_n">%s, %s e %d membros</string>
<string name="add_contact_or_create_group">Iniciar nova conversa</string>
<string name="la_mode_system">Sistema</string>
<string name="stop_chat_to_enable_database_actions">Parar conversa para habilitar ações do banco de dados</string>
<string name="group_invitation_tap_to_join">Toque para participar</string>
<string name="rcv_group_event_3_members_connected">%s, %s e %s conectado</string>
<string name="network_option_tcp_connection_timeout">Tempo esgotado da conexão TCP</string>
@@ -600,7 +600,6 @@
<string name="chat_database_deleted">Данные чата удалены</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Перезапустите приложение, чтобы создать новый профиль.</string>
<string name="you_must_use_the_most_recent_version_of_database">Используйте самую последнюю версию архива чата и ТОЛЬКО на одном устройстве, иначе Вы можете перестать получать сообщения от некоторых контактов.</string>
<string name="stop_chat_to_enable_database_actions">Остановите чат, чтобы разблокировать операции с архивом чата.</string>
<string name="delete_files_and_media_for_all_users">Удалить файлы во всех профилях чата</string>
<string name="delete_files_and_media_all">Удалить все файлы</string>
<string name="delete_files_and_media_question">Удалить файлы и медиа?</string>
@@ -1883,8 +1882,7 @@
<string name="message_queue_info">Информация об очереди сообщений</string>
<string name="v5_8_persian_ui">Персидский интерфейс</string>
<string name="protect_ip_address">Защитить IP адрес</string>
<string name="v5_8_private_routing_descr">Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами.
\nВключите в настройках Сеть и серверы.</string>
<string name="v5_8_private_routing_descr">Защитите ваш IP адрес от серверов сообщений, выбранных Вашими контактами. \nВключите в настройках Сети и серверов.</string>
<string name="network_smp_proxy_fallback_allow_description">Отправьте сообщения напрямую, когда Ваш сервер или сервер получателя не поддерживает конфиденциальную доставку.</string>
<string name="network_smp_proxy_mode_private_routing">Конфиденциальная доставка</string>
<string name="network_smp_proxy_mode_unknown_description">Использовать конфиденциальную доставку с неизвестными серверами.</string>
@@ -2029,8 +2027,7 @@
<string name="servers_info_connected_servers_section_header">Подключенные серверы</string>
<string name="servers_info_previously_connected_servers_section_header">Ранее подключенные серверы</string>
<string name="servers_info_proxied_servers_section_header">Проксированные серверы</string>
<string name="servers_info_private_data_disclaimer">Начиная с %s.
\nВсе данные хранятся только на вашем устройстве.</string>
<string name="servers_info_private_data_disclaimer">Начиная с %s. \nВсе данные хранятся только на вашем устройстве.</string>
<string name="servers_info_reconnect_server_message">Переподключить сервер для устранения неполадок доставки сообщений. Это использует дополнительный трафик.</string>
<string name="servers_info_modal_error_title">Ошибка</string>
<string name="servers_info_reconnect_server_error">Ошибка переподключения к серверу</string>
@@ -2266,7 +2263,7 @@
<string name="how_it_helps_privacy">Как это улучшает конфиденциальность</string>
<string name="onboarding_network_operators">Операторы серверов</string>
<string name="onboarding_select_network_operators_to_use">Выберите операторов сети.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Вы можете настроить операторов в настройках Сеть и серверы.</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Вы можете настроить операторов в настройках Сети и серверов.</string>
<string name="onboarding_network_operators_continue">Продолжить</string>
<string name="onboarding_network_operators_review_later">Посмотреть позже</string>
<string name="onboarding_network_operators_update">Обновить</string>
@@ -2306,7 +2303,7 @@
<string name="error_updating_server_title">Ошибка сохранения сервера</string>
<string name="operator_use_for_messages_private_routing">Для доставки сообщений</string>
<string name="operator_open_changes">Открыть изменения</string>
<string name="error_server_operator_changed">Оператор серверов изменен.</string>
<string name="error_server_operator_changed">Оператор сервера изменен.</string>
<string name="error_server_protocol_changed">Протокол сервера изменен.</string>
<string name="xftp_servers_per_user">Серверы для новых файлов Вашего текущего профиля</string>
<string name="operator_use_for_messages_receiving">Для получения</string>
@@ -2321,6 +2318,7 @@
<string name="one_time_link_can_be_used_with_one_contact_only"><![CDATA[Одноразовая ссылка может быть использована <i>только с одним контактом</i> - поделитесь при встрече или через любой мессенджер.]]></string>
<string name="no_message_servers_configured_for_private_routing">Нет серверов для доставки сообщений.</string>
<string name="onboarding_network_operators_configure_via_settings">Вы можете настроить серверы позже.</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat и Flux заключили соглашение добавить серверы под управлением Flux в приложение.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.</string>
<string name="failed_to_save_servers">Ошибка сохранения серверов</string>
@@ -937,7 +937,6 @@
<string name="star_on_github">ติดดาวบน GitHub</string>
<string name="switch_verb">เปลี่ยน</string>
<string name="callstate_starting">กำลังเริ่มต้น…</string>
<string name="stop_chat_to_enable_database_actions">หยุดการแชทเพื่อเปิดใช้งานการดำเนินการกับฐานข้อมูล</string>
<string name="stop_chat_to_export_import_or_delete_chat_database">หยุดแชทเพื่อส่งออก นำเข้า หรือลบฐานข้อมูลแชท คุณจะไม่สามารถรับและส่งข้อความได้ในขณะที่การแชทหยุดลง</string>
<string name="v4_6_audio_video_calls_descr">รองรับบลูทูธและการปรับปรุงอื่นๆ</string>
<string name="stop_sharing_address">หยุดแชร์ที่อยู่ไหม\?</string>
@@ -1034,7 +1034,6 @@
<string name="stop_file__action">Dosyayı durdur</string>
<string name="error_alert_title">Hata</string>
<string name="create_another_profile_button">ProfilProfil oluştur</string>
<string name="stop_chat_to_enable_database_actions">Veri tabanı eylemlerini etkinleştirmek için sohbeti durdur.</string>
<string name="stop_snd_file__title">Dosya göndermeyi durdur?</string>
<string name="auth_stop_chat">Sohbeti durdur</string>
<string name="connect_use_current_profile">Mevcut profili kullan</string>
@@ -219,7 +219,7 @@
<string name="ok">OK</string>
<string name="copied">Скопійовано в буфер обміну</string>
<string name="to_connect_via_link_title">Для підключення через посилання</string>
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app"><![CDATA[📱 мобільний телефон: натисніть <b>Відкрити у мобільному додатку</b>, а потім торкніться <b>Підключити</b> в додатку.]]></string>
<string name="mobile_tap_open_in_mobile_app_then_tap_connect_in_app"><![CDATA[📱 мобільний: натисніть <b>Відкрити у мобільному додатку</b>, а потім торкніться <b>Підключити</b> в додатку.]]></string>
<string name="mute_chat">Приглушити</string>
<string name="unmute_chat">Скасувати приглушення</string>
<string name="you_invited_a_contact">Ви запросили контакт</string>
@@ -233,7 +233,7 @@
<string name="one_time_link">Одноразове запрошення</string>
<string name="incorrect_code">Невірний код безпеки!</string>
<string name="to_verify_compare">Для перевірки end-to-end шифрування порівняйте (або скануйте) код на своїх пристроях.</string>
<string name="your_settings">Ваші налаштування</string>
<string name="your_settings">Налаштування</string>
<string name="your_simplex_contact_address">Ваша SimpleX-адреса</string>
<string name="markdown_help">Допомога з Markdown</string>
<string name="chat_lock">Блокування SimpleX</string>
@@ -268,7 +268,7 @@
<string name="first_platform_without_user_ids">Ніяких ідентифікаторів користувачів.</string>
<string name="decentralized">Децентралізована</string>
<string name="use_chat">Використовувати чат</string>
<string name="onboarding_notifications_mode_subtitle">Це можна змінити пізніше в налаштуваннях.</string>
<string name="onboarding_notifications_mode_subtitle">Як це впливає на батарею</string>
<string name="onboarding_notifications_mode_service">Миттєво</string>
<string name="call_already_ended">Виклик вже завершено!</string>
<string name="your_calls">Ваші виклики</string>
@@ -496,7 +496,7 @@
<string name="only_your_contact_can_send_voice">Тільки ваш контакт може надсилати голосові повідомлення.</string>
<string name="prohibit_sending_disappearing">Забороняйте надсилання повідомлень, які зникають.</string>
<string name="prohibit_message_deletion">Забороняйте невідворотне видалення повідомлень.</string>
<string name="group_members_can_send_voice">Учасники групи можуть надсилати голосові повідомлення.</string>
<string name="group_members_can_send_voice">Учасники можуть надсилати голосові повідомлення.</string>
<string name="ttl_m">%dm</string>
<string name="new_in_version">Нове в %s</string>
<string name="v5_1_self_destruct_passcode">Самознищуючий пароль</string>
@@ -544,7 +544,7 @@
<string name="smp_server_test_create_file">Створити файл</string>
<string name="error_deleting_user">Помилка видалення користувача</string>
<string name="error_updating_user_privacy">Помилка оновлення конфіденційності користувача</string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Для збереження вашої конфіденційності, замість торкання сповіщень, програма використовує <b>фоновий сервіс SimpleX</b> – він використовує кілька відсотків батареї щодня.]]></string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Для покращення конфіденційності, <b>SimpleX працює у фоновому режимі</b> замість використання пуш-повідомлень.]]></string>
<string name="periodic_notifications">Періодичні сповіщення</string>
<string name="simplex_service_notification_title">Служба чату SimpleX</string>
<string name="notifications_mode_periodic_desc">Перевіряє нові повідомлення кожні 10 хвилин протягом 1 хвилини</string>
@@ -649,7 +649,7 @@
<string name="you_can_use_markdown_to_format_messages__prompt">Ви можете використовувати markdown для форматування повідомлень:</string>
<string name="create_your_profile">Створіть свій профіль</string>
<string name="make_private_connection">Створіть приватне підключення</string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages"><![CDATA[Тільки пристрої клієнта зберігають профілі користувачів, контакти, групи та повідомлення, відправлені за допомогою <b>шифрування на двох рівнях</b>.]]></string>
<string name="only_client_devices_store_contacts_groups_e2e_encrypted_messages">Тільки клієнтські пристрої зберігають профілі, контакти, групи та повідомлення.</string>
<string name="onboarding_notifications_mode_title">Приватні сповіщення</string>
<string name="onboarding_notifications_mode_service_desc"><![CDATA[<b>Споживає більше акумулятора</b>! Додаток завжди працює у фоновому режимі – сповіщення відображаються миттєво.]]></string>
<string name="paste_the_link_you_received">Вставте отримане посилання</string>
@@ -746,14 +746,14 @@
<string name="only_you_can_send_voice">Тільки ви можете надсилати голосові повідомлення.</string>
<string name="only_you_can_add_message_reactions">Тільки ви можете додавати реакції на повідомлення.</string>
<string name="prohibit_message_reactions_group">Заборонити реакції на повідомлення.</string>
<string name="disappearing_messages_are_prohibited">Самознищувальні повідомлення заборонені в цій групі.</string>
<string name="group_members_can_send_dms">Учасники групи можуть надсилати приватні повідомлення.</string>
<string name="disappearing_messages_are_prohibited">Повідомлення, що зникають, заборонені.</string>
<string name="group_members_can_send_dms">Учасники можуть надсилати прямі повідомлення.</string>
<string name="direct_messages_are_prohibited_in_group">Приватні повідомлення між учасниками заборонені в цій групі.</string>
<string name="group_members_can_delete">Учасники групи можуть назавжди видаляти відправлені повідомлення. (24 години)</string>
<string name="message_deletion_prohibited_in_chat">Назавжди видалення повідомлень заборонене в цій групі.</string>
<string name="voice_messages_are_prohibited">Голосові повідомлення заборонені в цій групі.</string>
<string name="group_members_can_add_message_reactions">Учасники групи можуть додавати реакції на повідомлення.</string>
<string name="message_reactions_are_prohibited">Реакції на повідомлення заборонені в цій групі.</string>
<string name="group_members_can_delete">Учасники можуть необоротно видаляти надіслані повідомлення (протягом 24 годин).</string>
<string name="message_deletion_prohibited_in_chat">Заборонено необоротне видалення повідомлень.</string>
<string name="voice_messages_are_prohibited">Голосові повідомлення заборонені</string>
<string name="group_members_can_add_message_reactions">Учасники можуть додавати реакції на повідомлення.</string>
<string name="message_reactions_are_prohibited">Реакції на повідомлення заборонені.</string>
<string name="ttl_hour">%d година</string>
<string name="ttl_week">%d тиждень</string>
<string name="ttl_weeks">%d тижні</string>
@@ -805,7 +805,7 @@
<string name="smp_server_test_secure_queue">Безпечна черга</string>
<string name="smp_server_test_delete_queue">Видалити чергу</string>
<string name="please_check_correct_link_and_maybe_ask_for_a_new_one">Будь ласка, перевірте, що ви використали правильне посилання або попросіть вашого контакту вислати інше.</string>
<string name="turn_off_battery_optimization"><![CDATA[Щоб його використовувати, будь ласка, <b>дозвольте SimpleX працювати в фоновому режимі</b> в наступному діалозі. В іншому випадку сповіщення будуть вимкнені.]]></string>
<string name="turn_off_battery_optimization"><![CDATA[<b>Дозвольте це</b> в наступному діалозі, щоб отримувати сповіщення миттєво.]]></string>
<string name="icon_descr_instant_notifications">Миттєві сповіщення</string>
<string name="notification_preview_somebody">Контакт прихований:</string>
<string name="notification_preview_new_message">нове повідомлення</string>
@@ -892,14 +892,13 @@
<string name="v4_6_chinese_spanish_interface_descr">Дякуємо користувачам – приєднуйтеся через Weblate!</string>
<string name="la_lock_mode">Режим блокування SimpleX</string>
<string name="la_lock_mode_system">Системна аутентифікація</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Для захисту приватності, замість ідентифікаторів користувачів, які використовуються всіма іншими платформами, у SimpleX є ідентифікатори черг повідомлень, окремі для кожного з ваших контактів.</string>
<string name="to_protect_privacy_simplex_has_ids_for_queues">Для захисту вашої конфіденційності SimpleX використовує окремі ID для кожного вашого контакту.</string>
<string name="onboarding_notifications_mode_off">Коли додаток запущено</string>
<string name="onboarding_notifications_mode_periodic">Періодично</string>
<string name="status_contact_has_no_e2e_encryption">контакт не має зашифрування e2e</string>
<string name="enable_lock">Увімкнути блокування</string>
<string name="passcode_not_changed">Пароль не змінено!</string>
<string name="change_lock_mode">Змінити режим блокування</string>
<string name="stop_chat_to_enable_database_actions">Зупиніть чат, щоб увімкнути дії з базою даних.</string>
<string name="restart_the_app_to_create_a_new_chat_profile">Перезапустіть додаток, щоб створити новий профіль чату.</string>
<string name="delete_files_and_media_for_all_users">Видалити файли для всіх профілів чату</string>
<string name="delete_files_and_media_question">Видалити файли та медіа?</string>
@@ -920,7 +919,7 @@
<string name="snd_group_event_member_deleted">ви видалили %1$s</string>
<string name="tap_to_activate_profile">Торкніться для активації профілю.</string>
<string name="prohibit_sending_voice">Забороняйте надсилання голосових повідомлень.</string>
<string name="group_members_can_send_disappearing">Учасники групи можуть надсилати самознищувальні повідомлення.</string>
<string name="group_members_can_send_disappearing">Учасники можуть надсилати повідомлення, що зникають.</string>
<string name="ttl_min">%d хв</string>
<string name="v4_5_reduced_battery_usage">Зменшене споживання енергії батареї</string>
<string name="edit_image">Редагувати зображення</string>
@@ -1013,7 +1012,7 @@
<string name="clear_verification">Очистити перевірку</string>
<string name="is_verified">%s перевірено</string>
<string name="is_not_verified">%s не перевірено</string>
<string name="send_us_an_email">Надішліть нам електронного листа</string>
<string name="send_us_an_email">Написати нам ел. листа</string>
<string name="smp_servers_test_server">Тестовий сервер</string>
<string name="smp_save_servers_question">Зберегти сервери\?</string>
<string name="your_ICE_servers">Ваші сервери ICE</string>
@@ -1090,7 +1089,7 @@
<string name="chat_preferences_no">ні</string>
<string name="chat_preferences_off">вимк</string>
<string name="set_group_preferences">Встановити налаштування групи</string>
<string name="your_preferences">Ваші налаштування</string>
<string name="your_preferences">Налаштування</string>
<string name="direct_messages">Прямі повідомлення</string>
<string name="icon_descr_server_status_error">Помилка</string>
<string name="add_contact">Одноразове запрошення</string>
@@ -1162,7 +1161,7 @@
<string name="colored_text">кольоровий</string>
<string name="callstatus_ended">дзвінок завершено %1$s</string>
<string name="callstatus_error">помилка дзвінка</string>
<string name="next_generation_of_private_messaging">Наступне покоління \nприватних повідомлень</string>
<string name="next_generation_of_private_messaging">Майбутнє обміну повідомленнями</string>
<string name="opensource_protocol_and_code_anybody_can_run_servers">Кожен може хостити сервери.</string>
<string name="settings_developer_tools">Інструменти розробника</string>
<string name="settings_experimental_features">Експериментальні функції</string>
@@ -1179,7 +1178,7 @@
<string name="to_share_with_your_contact">(щоб поділитися з вашим контактом)</string>
<string name="connect_via_link_or_qr_from_clipboard_or_in_person">(сканувати або вставити з буферу обміну)</string>
<string name="you_can_connect_to_simplex_chat_founder"><![CDATA[Ви можете <font color="#0088ff">підключитися до розробників SimpleX Chat, щоб задати будь-які питання і отримувати оновлення</font>.]]></string>
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code"><![CDATA[💻 настільний комп\'ютер: скануйте відображений QR-код з додатка за допомогою <b>Сканувати QR-код</b>.]]></string>
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code"><![CDATA[💻 на комп\'ютері: скануйте відображений QR-код з додатка за допомогою <b>Сканувати QR-код</b>.]]></string>
<string name="icon_descr_address">Адреса SimpleX</string>
<string name="show_QR_code">Показати QR-код</string>
<string name="joining_group">Приєднання до групи</string>
@@ -1250,7 +1249,7 @@
<string name="error_aborting_address_change">Помилка відміни зміни адреси</string>
<string name="abort_switch_receiving_address">Перервати зміну адреси</string>
<string name="allow_to_send_files">Дозволити надсилання файлів та медіафайлів.</string>
<string name="files_are_prohibited_in_group">Файли та медіафайли заборонені в цій групі.</string>
<string name="files_are_prohibited_in_group">Файли та медіа заборонені.</string>
<string name="connect_via_link_incognito">Підключити інкогніто</string>
<string name="connect_use_current_profile">Використовувати поточний профіль</string>
<string name="turn_off_battery_optimization_button">Дозволити</string>
@@ -1348,7 +1347,7 @@
<string name="abort_switch_receiving_address_desc">Зміна адреси буде скасована. Буде використовуватися стара адреса для отримання.</string>
<string name="sync_connection_force_question">Повторно узгодити шифрування?</string>
<string name="sync_connection_force_desc">Шифрування працює і нова угода про шифрування не потрібна. Це може призвести до помилок підключення!</string>
<string name="group_members_can_send_files">Учасники групи можуть надсилати файли та медіафайли.</string>
<string name="group_members_can_send_files">Учасники можуть надсилати файли та медіа.</string>
<string name="database_will_be_encrypted_and_passphrase_stored_in_settings">База даних буде зашифрована, і ключова фраза буде збережена в налаштуваннях.</string>
<string name="expand_verb">Розгорнути</string>
<string name="connect_plan_repeat_connection_request">Повторити запит на підключення?</string>
@@ -1442,7 +1441,7 @@
<string name="multicast_connect_automatically">Підключати автоматично</string>
<string name="desktop_address">Адреса робочого столу</string>
<string name="only_one_device_can_work_at_the_same_time">Одночасно може працювати лише один пристрій</string>
<string name="v5_4_link_mobile_desktop">Посилання на мобільний та комп\'ютерний додатки! 🔗</string>
<string name="v5_4_link_mobile_desktop">Підключіть мобільний і десктопний додатки! 🔗</string>
<string name="v5_4_link_mobile_desktop_descr">Через безпечний квантовостійкий протокол.</string>
<string name="open_on_mobile_and_scan_qr_code"><![CDATA[Відкрийте <i>Використовувати з робочого столу</i> у мобільному додатку і скануйте QR-код.]]></string>
<string name="v5_4_block_group_members_descr">Щоб приховати небажані повідомлення.</string>
@@ -1735,7 +1734,7 @@
<string name="forward_chat_item">Переслати</string>
<string name="forwarded_chat_item_info_tab">Переслано</string>
<string name="forwarded_from_chat_item_info_title">Переслано з</string>
<string name="group_members_can_send_simplex_links">Учасники групи можуть надсилати посилання SimpleX.</string>
<string name="group_members_can_send_simplex_links">Учасники можуть надсилати посилання SimpleX.</string>
<string name="v5_7_call_sounds">Звуки вхідного дзвінка</string>
<string name="chat_theme_apply_to_light_mode">Світлий режим</string>
<string name="update_network_smp_proxy_fallback_question">Запасний варіант маршрутизації повідомлень</string>
@@ -1829,7 +1828,7 @@
<string name="network_smp_proxy_fallback_allow_protected">Коли IP приховано</string>
<string name="network_smp_proxy_fallback_allow">Так</string>
<string name="network_option_rcv_concurrency">Отримання паралелізму</string>
<string name="simplex_links_are_prohibited_in_group">У цій групі заборонені посилання на SimpleX.</string>
<string name="simplex_links_are_prohibited_in_group">Посилання SimpleX заборонені.</string>
<string name="v5_7_shape_profile_images">Сформуйте зображення профілю</string>
<string name="v5_7_call_sounds_descr">При підключенні аудіо та відеодзвінків.</string>
<string name="reset_single_color">Скинути колір</string>
@@ -1954,8 +1953,7 @@
<string name="servers_info_subscriptions_connections_pending">В очікуванні</string>
<string name="servers_info_proxied_servers_section_header">Проксіровані сервери</string>
<string name="servers_info_target">Показувати інформацію для</string>
<string name="servers_info_private_data_disclaimer">Починаючи з %s.
\nВсі дані зберігаються лише на вашому пристрою.</string>
<string name="servers_info_private_data_disclaimer">Починаючи з %s.\nУсі дані зберігаються приватно на вашому пристрої.</string>
<string name="servers_info_reconnect_server_message">Перепідключити сервер для примусової доставки повідомлень. Це використовує додатковий трафік.</string>
<string name="servers_info_reset_stats">Скинути всю статистику</string>
<string name="servers_info_reset_stats_alert_title">Скинути всю статистику?</string>
@@ -2012,7 +2010,7 @@
<string name="app_check_for_updates_button_download">Завантажити %s (%s)</string>
<string name="app_check_for_updates_button_open">Відкрити розташування файлу</string>
<string name="app_check_for_updates_button_skip">Пропустити цю версію</string>
<string name="one_hand_ui">Доступна панель чату</string>
<string name="one_hand_ui">Доступні панелі додатка</string>
<string name="cant_call_contact_alert_title">Не можна зателефонувати контакту</string>
<string name="cant_call_contact_connecting_wait_alert_text">Підключення до контакту, будь ласка, зачекайте або перевірте пізніше!</string>
<string name="calls_prohibited_alert_title">Дзвінки заборонені!</string>
@@ -2130,10 +2128,10 @@
<string name="to_protect_against_your_link_replaced_compare_codes">Щоб захиститися від заміни вашого посилання, ви можете порівняти коди безпеки контактів.</string>
<string name="for_social_media">Для соціальних мереж</string>
<string name="or_to_share_privately">Або поділитися приватно</string>
<string name="onboarding_choose_server_operators">Обирайте операторів</string>
<string name="onboarding_choose_server_operators">Оператори серверів</string>
<string name="onboarding_network_operators">Мережеві оператори</string>
<string name="onboarding_network_operators_conditions_will_be_accepted">Умови будуть прийняті для ввімкнених операторів через 30 днів.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Наприклад, якщо ви отримуєте повідомлення через сервер SimpleX Chat, програма використовуватиме один із серверів Flux для приватної маршрутизації.</string>
<string name="onboarding_network_operators_app_will_use_for_routing">Наприклад, якщо ваш контакт отримує повідомлення через сервер SimpleX Chat, ваш додаток доставлятиме їх через сервер Flux.</string>
<string name="onboarding_select_network_operators_to_use">Виберіть мережевих операторів для використання.</string>
<string name="onboarding_network_operators_configure_via_settings">Ви можете налаштувати сервери за допомогою налаштувань.</string>
<string name="onboarding_network_operators_review_later">Перегляньте пізніше</string>
@@ -2146,16 +2144,16 @@
<string name="your_servers">Ваші сервери</string>
<string name="use_servers_of_operator_x">Використовуйте %s</string>
<string name="operator_use_operator_toggle_description">Використовуйте сервери</string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Ті самі умови стосуватимуться оператора <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_be_applied"><![CDATA[Ті ж умови будуть застосовуватись до оператора <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_applied"><![CDATA[Ці умови також застосовуватимуться для: <b>%s</b>.]]></string>
<string name="accept_conditions">Прийняти умови</string>
<string name="view_conditions">Умови перегляду</string>
<string name="view_conditions">Переглянути умови</string>
<string name="operator_added_message_servers">Додано сервери повідомлень</string>
<string name="operator_use_for_messages_private_routing">Для приватної маршрутизації</string>
<string name="operator_use_for_messages_receiving">Щоб отримати</string>
<string name="operator_use_for_files">Використовуйте для файлів</string>
<string name="operator_added_xftp_servers">Додано медіа та файлові сервери</string>
<string name="operator_open_changes">Відкриті зміни</string>
<string name="operator_open_changes">Відкрити зміни</string>
<string name="operator_open_conditions">Відкриті умови</string>
<string name="xftp_servers_per_user">Сервери для нових файлів вашого поточного профілю чату</string>
<string name="operator_use_for_sending">Щоб відправити</string>
@@ -2178,7 +2176,7 @@
<string name="operator_conditions_accepted_for_some"><![CDATA[Умови вже прийняті для наступних операторів: <b>%s</b>.]]></string>
<string name="operator_conditions_will_be_accepted_for_some"><![CDATA[Умови будуть прийняті для оператора(ів): <b>%s</b>.]]></string>
<string name="operators_conditions_will_be_accepted_for"><![CDATA[Умови будуть прийняті для оператора(ів): <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Ті самі умови застосовуватимуться до оператора(ів): <b>%s</b>.]]></string>
<string name="operator_same_conditions_will_apply_to_operators"><![CDATA[Ті ж умови будуть застосовуватись до оператора(ів): <b>%s</b>.]]></string>
<string name="operators_conditions_will_also_apply"><![CDATA[Ці умови також застосовуватимуться для: <b>%s</b>.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Щоб використовувати сервери <b>%s</b>, прийміть умови використання.]]></string>
<string name="operator_conditions_failed_to_load">Текст поточних умов не вдалося завантажити, ви можете переглянути умови за цим посиланням:</string>
@@ -2196,7 +2194,7 @@
<string name="simplex_address_or_1_time_link">SimpleX адреса або одноразове посилання?</string>
<string name="smp_servers_new_server">Новий сервер</string>
<string name="no_media_servers_configured_for_private_routing">Немає серверів для отримання файлів.</string>
<string name="operator_review_conditions">Умови перегляду</string>
<string name="operator_review_conditions">Переглянути умови</string>
<string name="no_media_servers_configured_for_sending">Немає серверів для надсилання файлів.</string>
<string name="network_preset_servers_title">Попередньо встановлені сервери</string>
<string name="error_server_protocol_changed">Протокол сервера змінено.</string>
@@ -2204,9 +2202,53 @@
<string name="simplex_address_and_1_time_links_are_safe_to_share">SimpleX-адреси та одноразові посилання можна безпечно ділитися через будь-який месенджер.</string>
<string name="connection_error_quota_desc">З\'єднання досягло ліміту недоставлених повідомлень, ваш контакт може бути офлайн.</string>
<string name="address_creation_instruction">Натисніть Створити адресу SimpleX у меню, щоб створити її пізніше.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Якщо увімкнено більше одного оператора, програма використовуватиме сервери різних операторів для кожної розмови.</string>
<string name="onboarding_network_operators_app_will_use_different_operators">Додаток захищає вашу конфіденційність, використовуючи різних операторів у кожній розмові.</string>
<string name="operator_use_for_messages">Використовуйте для повідомлень</string>
<string name="onboarding_network_operators_conditions_you_can_configure">Ви можете налаштувати операторів у налаштуваннях Мережі та серверів.</string>
<string name="chat_archive">Або імпортуйте архівний файл</string>
<string name="remote_hosts_section">Віддалені мобільні</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Пристрої Xiaomi</b>: будь ласка, увімкніть Автозапуск у налаштуваннях системи, щоб сповіщення працювали.]]></string>
<string name="maximum_message_size_title">Повідомлення занадто велике!</string>
<string name="maximum_message_size_reached_non_text">Будь ласка, зменшіть розмір повідомлення або видаліть медіа та надішліть знову.</string>
<string name="add_your_team_members_to_conversations">Додайте учасників команди до розмов.</string>
<string name="business_address">Бізнес адреса</string>
<string name="onboarding_notifications_mode_periodic_desc_short">Перевіряти повідомлення кожні 10 хвилин.</string>
<string name="onboarding_notifications_mode_off_desc_short">Без фонової служби</string>
<string name="onboarding_notifications_mode_battery">Сповіщення та батарея</string>
<string name="onboarding_notifications_mode_service_desc_short">Додаток завжди працює у фоні.</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Усі повідомлення та файли надсилаються <b>зашифрованими end-to-end</b>, з пост-квантовою безпекою в особистих повідомленнях.]]></string>
<string name="leave_chat_question">Покинути чат?</string>
<string name="member_will_be_removed_from_chat_cannot_be_undone">Учасник буде видалений з чату — це неможливо скасувати!</string>
<string name="v6_2_business_chats">Бізнес чати</string>
<string name="v6_2_business_chats_descr">Конфіденційність для ваших клієнтів.</string>
<string name="chat_bottom_bar">Доступна панель чату</string>
<string name="button_add_friends">Додати друзів</string>
<string name="button_add_team_members">Додати учасників команди</string>
<string name="invite_to_chat_button">Запросити до чату</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">Чат буде видалений для всіх учасників — це неможливо скасувати!</string>
<string name="button_delete_chat">Видалити чат</string>
<string name="delete_chat_question">Видалити чат?</string>
<string name="only_chat_owners_can_change_prefs">Тільки власники чату можуть змінювати налаштування.</string>
<string name="member_role_will_be_changed_with_notification_chat">Роль буде змінена на %s. Усі учасники чату отримають повідомлення.</string>
<string name="direct_messages_are_prohibited">Прямі повідомлення між учасниками заборонені.</string>
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Ви вже підключені до <b>%1$s</b>.]]></string>
<string name="connect_plan_chat_already_exists">Чат вже існує!</string>
<string name="how_it_helps_privacy">Як це допомагає зберігати конфіденційність</string>
<string name="direct_messages_are_prohibited_in_chat">Прямі повідомлення між учасниками заборонені в цьому чаті.</string>
<string name="button_leave_chat">Покинути чат</string>
<string name="info_row_chat">Чат</string>
<string name="delete_chat_for_self_cannot_undo_warning">Чат буде видалений для вас — це неможливо скасувати!</string>
<string name="maximum_message_size_reached_text">Будь ласка, зменшіть розмір повідомлення та надішліть знову.</string>
<string name="maximum_message_size_reached_forwarding">Скопіюйте та зменшіть розмір повідомлення для відправки.</string>
<string name="you_will_stop_receiving_messages_from_this_chat_chat_history_will_be_preserved">Ви припините отримувати повідомлення з цього чату. Історія чату буде збережена.</string>
<string name="chat_main_profile_sent">Ваш профіль чату буде надіслано учасникам чату.</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">Коли увімкнено більше ніж одного оператора, жоден з них не має метаданих, щоб дізнатися, хто спілкується з ким.</string>
<string name="display_name_accepted_invitation">прийнято запрошення</string>
<string name="display_name_requested_to_connect">запит на підключення</string>
<string name="onboarding_network_about_operators">Про операторів</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat та Flux уклали угоду про включення серверів, що працюють на Flux, до додатку.</string>
<string name="sync_connection_desc">Підключення вимагає повторного узгодження шифрування.</string>
<string name="encryption_renegotiation_in_progress">Виконується повторне узгодження шифрування.</string>
<string name="sync_connection_confirm">Виправити</string>
<string name="sync_connection_question">Виправити підключення?</string>
</resources>
@@ -1217,7 +1217,7 @@
<string name="selected_chat_items_nothing_selected">Không có gì được chọn</string>
<string name="open_verb">Mở</string>
<string name="auth_open_chat_console">Mở bảng điều khiển trò chuyện</string>
<string name="auth_open_chat_profiles">Mở hồ sơ trò chuyện</string>
<string name="auth_open_chat_profiles">Thay đổi hồ sơ trò chuyện</string>
<string name="network_use_onion_hosts_required_desc">Dịch vụ onion sẽ được yêu cầu để kết nối.\nXin lưu ý: bạn sẽ không thể kết nối tới các máy chủ mà không có địa chỉ .onion.</string>
<string name="rcv_group_event_open_chat">Mở</string>
<string name="open_database_folder">Mở thư mục cơ sở dữ liệu</string>
@@ -1373,9 +1373,9 @@
<string name="connect_plan_you_are_already_connecting_to_vName"><![CDATA[Bạn đã kết nối tới <b>%1$s</b> rồi.]]></string>
<string name="system_restricted_background_in_call_warn"><![CDATA[Để thực hiện cuộc gọi trong nền, vui lòng chọn <b>Mức sử dụng pin ứng dụng</b> / <b>Không hạn chế</b> trong phần cài đặt ứng dụng.]]></string>
<string name="remote_host_error_timeout"><![CDATA[Đã hết thời gian chờ khi kết nối tới thiết bị di động <b>%s</b>]]></string>
<string name="turn_off_battery_optimization"><![CDATA[Để sử dụng, xin vui lòng <b>cho phép SimpleX chạy trong nền</b> trong hộp thoại tiếp theo. Nếu không, thông báo sẽ bị vô hiệu hóa.]]></string>
<string name="turn_off_battery_optimization"><![CDATA[<b>Chọn cho phép</b> trong hộp thoại tiếp theo để nhận thông báo ngay lập tức.]]></string>
<string name="operator_in_order_to_use_accept_conditions"><![CDATA[Để sử dụng các máy chủ của <b>%s</b>, vui lòng chấp nhận điều kiện sử dụng.]]></string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Để bảo vệ sự riêng tư của bạn, thay vì sử dụng thông báo đẩy thì ứng dụng dùng <b>Dịch vụ nền SimpleX</b> nó tiêu tốn một vài phần trăm pin mỗi ngày.]]></string>
<string name="to_preserve_privacy_simplex_has_background_service_instead_of_push_notifications_it_uses_a_few_pc_battery"><![CDATA[Để tăng cường sự riêng tư, <b>SimpleX chạy trong nền</b> thay vì ng thông báo đẩy.]]></string>
<string name="system_restricted_background_warn"><![CDATA[Để bật thông báo, vui lòng chọn <b>Mức sử dụng pin ứng dụng</b> / <b>Không hạn chế</b> trong phần cài đặt ứng dụng.]]></string>
<string name="connect_plan_you_are_already_in_group_vName"><![CDATA[Bạn đã ở trong nhóm <b>%1$s</b> rồi.]]></string>
<string name="connect_plan_this_is_your_link_for_group_vName"><![CDATA[Đây là đường dẫn của bạn cho nhóm <b>%1$s</b>!]]></string>
@@ -1399,4 +1399,19 @@
<string name="error_updating_server_title">Lỗi cập nhật máy chủ</string>
<string name="operator_conditions_accepted_on">Các điều kiện đã được chấp nhận vào: %s.</string>
<string name="operator_conditions_accepted_for_enabled_operators_on">Các điều kiện sẽ được tự động chấp nhận với các nhà cung cấp được cho phép vào: %s.</string>
<string name="xiaomi_ignore_battery_optimization"><![CDATA[<b>Thiết bị Xiaomi</b>: vui lòng bật Tự động khởi động trong phần cài đặt hệ thống để thông báo có thể hoạt động bình thường.]]></string>
<string name="onboarding_notifications_mode_service_desc_short">Ứng dụng luôn chạy dưới nền</string>
<string name="delete_chat_for_all_members_cannot_undo_warning">Cuộc trò chuyện sẽ bị xóa cho tất cả các thành viên - việc này không thể được hoàn tác!</string>
<string name="delete_chat_for_self_cannot_undo_warning">Cuộc trò chuyện sẽ bị xóa cho bạn - việc này không thể được hoàn tác!</string>
<string name="v6_2_business_chats">Các cuộc trò chuyện công việc</string>
<string name="button_add_team_members">Thêm các thành viên nhóm</string>
<string name="info_row_chat">Cuộc trò chuyện</string>
<string name="connect_plan_you_are_already_connected_with_vName"><![CDATA[Bạn đã kết nối với <b>%1$s</b> rồi.]]></string>
<string name="connect_plan_chat_already_exists">Cuộc trò chuyện đã tồn tại!</string>
<string name="button_add_friends">Thêm bạn bè</string>
<string name="display_name_accepted_invitation">đã chấp nhận lời mời</string>
<string name="all_message_and_files_e2e_encrypted"><![CDATA[Tất cả các tin nhắn và tệp gửi đi đều được <b>mã hóa đầu cuối</b>, với bảo mật sau ượng tử trong các tin nhắn trực tiếp.]]></string>
<string name="onboarding_network_about_operators">Giới thiệu về các nhà cung cấp</string>
<string name="add_your_team_members_to_conversations">Thêm các thành viên nhóm của bạn vào các cuộc trò chuyện.</string>
<string name="business_address">Địa chỉ doanh nghiệp</string>
</resources>
@@ -799,7 +799,6 @@
<string name="prohibit_direct_messages">禁止向成员发送私信。</string>
<string name="protect_app_screen">保护应用程序屏幕</string>
<string name="settings_section_title_themes">主题</string>
<string name="stop_chat_to_enable_database_actions">停止聊天以启用数据库操作。</string>
<string name="chat_item_ttl_seconds">%s 秒</string>
<string name="alert_message_no_group">该群已不存在。</string>
<string name="group_invitation_tap_to_join">点击加入</string>
@@ -1918,8 +1917,7 @@
<string name="servers_info_reset_stats_alert_confirm">重置</string>
<string name="network_error_broker_host_desc">服务器地址不兼容网络设置:%1$s。</string>
<string name="servers_info_starting_from">起始自 %s。</string>
<string name="servers_info_private_data_disclaimer">起始自 %s.
\n所有数据都是设备的私有数据。</string>
<string name="servers_info_private_data_disclaimer">自 %s 起 \n所有数据均私密地保存在你的设备上..</string>
<string name="subscribed">已订阅</string>
<string name="acknowledged">已认可</string>
<string name="network_error_broker_version_desc">服务器版本不兼容你的应用:%1$s.</string>
@@ -2158,8 +2156,8 @@
<string name="v6_2_network_decentralization_descr">应用中的第二个预设运营者!</string>
<string name="v6_2_improved_chat_navigation">改进了聊天导航</string>
<string name="view_updated_conditions">查看更新后的条款</string>
<string name="onboarding_network_operators_app_will_use_for_routing">比如,如果你通过 SimpleX 服务器收到消息,应用会使用 Flux 服务器中的一台进行私密路由</string>
<string name="onboarding_network_operators_app_will_use_different_operators">启用了多于一个网络运营者时,应用会为每个对话使用不同运营者的服务器</string>
<string name="onboarding_network_operators_app_will_use_for_routing">比如,如果你通过 SimpleX 服务器收到消息,应用会通过 Flux 服务器传送它们</string>
<string name="onboarding_network_operators_app_will_use_different_operators">应用通过在每个对话使用不同运营者保护你的隐私</string>
<string name="accept_conditions">接受条款</string>
<string name="appearance_bars_blur_radius">模糊</string>
<string name="address_or_1_time_link">地址或一次性链接?</string>
@@ -2230,4 +2228,13 @@
<string name="info_row_chat">聊天</string>
<string name="member_will_be_removed_from_chat_cannot_be_undone">将从聊天中删除成员 - 此操作无法撤销!</string>
<string name="maximum_message_size_reached_text">请减小消息尺寸并再次发送。</string>
<string name="onboarding_network_operators_cant_see_who_talks_to_whom">当启用了超过一个运营者时,没有一个运营者拥有了解谁和谁联络的元数据。</string>
<string name="display_name_accepted_invitation">已接受邀请</string>
<string name="display_name_requested_to_connect">被请求连接</string>
<string name="onboarding_network_about_operators">关于运营者</string>
<string name="onboarding_network_operators_simplex_flux_agreement">SimpleX Chat 和 Flux 达成协议将 Flux 运营的服务器包括在应用中。</string>
<string name="sync_connection_confirm">修复</string>
<string name="sync_connection_question">修复连接?</string>
<string name="encryption_renegotiation_in_progress">正进行加密重协商。</string>
<string name="sync_connection_desc">连接需要加密重协商。</string>
</resources>
@@ -119,7 +119,6 @@
<string name="chat_is_stopped">聊天室已停止運作</string>
<string name="stop_chat_confirmation">停止</string>
<string name="chat_database_deleted">已刪除數據庫的對話內容</string>
<string name="stop_chat_to_enable_database_actions">停止聊天室以啟用數據庫功能。</string>
<string name="change_database_passphrase_question">修改數據庫密碼?</string>
<string name="leave_group_question">確定要退出群組?</string>
<string name="leave_group_button">退出</string>
@@ -12,26 +12,60 @@ body {
object-fit: cover;
}
#remote-video-stream.collapsed {
position: absolute;
max-width: 30%;
max-height: 30%;
object-fit: cover;
margin: 16px;
border-radius: 16px;
bottom: 80px;
right: 0;
@media (orientation: portrait) {
#remote-video-stream.collapsed {
position: absolute;
width: 30%;
max-width: 30%;
height: 39.9vw;
object-fit: cover;
margin: 16px;
border-radius: 16px;
bottom: 80px;
right: 0;
}
}
#remote-video-stream.collapsed-pip {
position: absolute;
max-width: 50%;
max-height: 50%;
object-fit: cover;
margin: 8px;
border-radius: 8px;
bottom: 0;
right: 0;
@media (orientation: landscape) {
#remote-video-stream.collapsed {
position: absolute;
width: 20%;
max-width: 20%;
height: 15.03vw;
object-fit: cover;
margin: 16px;
border-radius: 16px;
bottom: 80px;
right: 0;
}
}
@media (orientation: portrait) {
#remote-video-stream.collapsed-pip {
position: absolute;
width: 50%;
max-width: 50%;
height: 66.5vw;
object-fit: cover;
margin: 8px;
border-radius: 8px;
bottom: 0;
right: 0;
}
}
@media (orientation: landscape) {
#remote-video-stream.collapsed-pip {
position: absolute;
width: 50%;
max-width: 50%;
height: 37.59vw;
object-fit: cover;
margin: 8px;
border-radius: 8px;
bottom: 0;
right: 0;
}
}
#remote-screen-video-stream.inline {
@@ -41,15 +75,32 @@ body {
object-fit: cover;
}
#local-video-stream.inline {
position: absolute;
width: 30%;
max-width: 30%;
object-fit: cover;
margin: 16px;
border-radius: 16px;
top: 0;
right: 0;
@media (orientation: portrait) {
#local-video-stream.inline {
position: absolute;
width: 30%;
max-width: 30%;
height: 39.9vw;
object-fit: cover;
margin: 16px;
border-radius: 16px;
top: 0;
right: 0;
}
}
@media (orientation: landscape) {
#local-video-stream.inline {
position: absolute;
width: 20%;
max-width: 20%;
height: 15.03vw;
object-fit: cover;
margin: 16px;
border-radius: 16px;
top: 0;
right: 0;
}
}
#local-screen-video-stream.inline {
@@ -301,6 +301,7 @@ const processCommand = (function () {
localStream = await getLocalMediaStream(true, command.media == CallMediaType.Video && (await browserHasCamera()), VideoCamera.User);
const videos = getVideoElements();
if (videos) {
setupLocalVideoRatio(videos.local);
videos.local.srcObject = localStream;
videos.local.play().catch((e) => console.log(e));
}
@@ -330,9 +331,12 @@ const processCommand = (function () {
console.log("starting incoming call - create webrtc session");
if (activeCall)
endCall();
// It can be already defined on Android when switching calls (if the previous call was outgoing)
notConnectedCall = undefined;
inactiveCallMediaSources.mic = true;
inactiveCallMediaSources.camera = command.media == CallMediaType.Video;
inactiveCallMediaSourcesChanged(inactiveCallMediaSources);
setupLocalVideoRatio(getVideoElements().local);
const { media, iceServers, relay } = command;
const encryption = supportsInsertableStreams(useWorker);
const aesKey = encryption ? command.aesKey : undefined;
@@ -547,13 +551,13 @@ const processCommand = (function () {
}
function endCall() {
var _a;
shutdownCameraAndMic();
try {
(_a = activeCall === null || activeCall === void 0 ? void 0 : activeCall.connection) === null || _a === void 0 ? void 0 : _a.close();
}
catch (e) {
console.log(e);
}
shutdownCameraAndMic();
activeCall = undefined;
resetVideoElements();
}
@@ -642,27 +646,21 @@ const processCommand = (function () {
}
// Without doing it manually Firefox shows black screen but video can be played in Picture-in-Picture
videos.local.play().catch((e) => console.log(e));
setupLocalVideoRatio(videos.local);
}
function setupLocalVideoRatio(local) {
const ratio = isDesktop ? 1.33 : 1 / 1.33;
const currentRect = local.getBoundingClientRect();
// better to get percents from here than to hardcode values from styles (the styles can be changed)
const screenWidth = currentRect.left + currentRect.width;
const percents = currentRect.width / screenWidth;
local.style.width = `${percents * 100}%`;
local.style.height = `${(percents / ratio) * 100}vw`;
local.addEventListener("loadedmetadata", function () {
console.log("Local video videoWidth: " + local.videoWidth + "px, videoHeight: " + local.videoHeight + "px");
if (local.videoWidth == 0 || local.videoHeight == 0)
return;
local.style.height = `${(percents / (local.videoWidth / local.videoHeight)) * 100}vw`;
const ratio = local.videoWidth > local.videoHeight ? 0.2 : 0.3;
local.style.height = `${(ratio / (local.videoWidth / local.videoHeight)) * 100}vw`;
});
local.onresize = function () {
console.log("Local video size changed to " + local.videoWidth + "x" + local.videoHeight);
if (local.videoWidth == 0 || local.videoHeight == 0)
return;
local.style.height = `${(percents / (local.videoWidth / local.videoHeight)) * 100}vw`;
const ratio = local.videoWidth > local.videoHeight ? 0.2 : 0.3;
local.style.height = `${(ratio / (local.videoWidth / local.videoHeight)) * 100}vw`;
};
}
function setupEncryptionForLocalStream(call) {
@@ -1128,8 +1126,9 @@ const processCommand = (function () {
(!!useWorker && "RTCRtpScriptTransform" in window));
}
function shutdownCameraAndMic() {
if (activeCall === null || activeCall === void 0 ? void 0 : activeCall.localStream) {
if (activeCall) {
activeCall.localStream.getTracks().forEach((track) => track.stop());
activeCall.localScreenStream.getTracks().forEach((track) => track.stop());
}
}
function resetVideoElements() {
@@ -1295,6 +1294,9 @@ function changeLayout(layout) {
break;
}
videos.localScreen.style.visibility = localSources.screenVideo ? "visible" : "hidden";
if (!isDesktop && !localSources.camera) {
resetLocalVideoElementHeight(videos.local);
}
}
function getVideoElements() {
const local = document.getElementById("local-video-stream");
@@ -1312,6 +1314,11 @@ function getVideoElements() {
return;
return { local, localScreen, remote, remoteScreen };
}
// Allow CSS to figure out the size of view by itself on Android because rotating to different orientation
// without dropping override will cause the view to have not normal proportion while no video is present
function resetLocalVideoElementHeight(local) {
local.style.height = "";
}
function desktopShowPermissionsAlert(mediaType) {
if (!isDesktop)
return;

Some files were not shown because too many files have changed in this diff Show More