Compare commits

...

84 Commits

Author SHA1 Message Date
Avently 4c4794fe33 lib path 2024-12-13 10:31:34 -08:00
Avently f179db9545 package 2024-12-13 10:19:43 -08:00
Avently 52160f2602 change lib name 2024-12-13 10:14:37 -08:00
Avently 2a99a5235b changes 2024-12-13 19:57:06 +07:00
Avently 4fe7b674e6 rename 2024-12-13 16:50:22 +07:00
Avently a5e7fa2f9f nodejs: addon 2024-12-12 22:11:42 +07:00
spaced4ndy 708368c9c5 android, desktop: fix operators text (#5371) 2024-12-12 07:26:17 +00: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
Evgeny Poberezkin 5ef14ca95e 6.2-beta.6: ios 253, android 258, desktop 81 2024-12-05 23:30:05 +00:00
Evgeny Poberezkin 886dc56de8 ui: update business chat info type 2024-12-05 23:01:37 +00:00
Evgeny Poberezkin bd2ca74987 ui: update "server operators privacy" in onboarding 2024-12-05 22:22:03 +00:00
Evgeny 586671c307 website: translations (#5331)
* Translated using Weblate (Chinese (Simplified Han script))

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/zh_Hans/

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

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/zh_Hans/

* Translated using Weblate (Italian)

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/it/

* Translated using Weblate (Hungarian)

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/hu/

---------

Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
2024-12-05 21:46:35 +00:00
Evgeny ff504702de ui: translations (#5330)
* Translated using Weblate (German)

Currently translated at 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (French)

Currently translated at 93.2% (2060 of 2209 strings)

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

* Translated using Weblate (Italian)

Currently translated at 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 97.6% (2157 of 2209 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 97.5% (2154 of 2209 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.3% (2041 of 2209 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 97.4% (2153 of 2209 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 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (Polish)

Currently translated at 93.2% (2059 of 2209 strings)

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

* Translated using Weblate (Russian)

Currently translated at 93.2% (2061 of 2210 strings)

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

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

Currently translated at 97.4% (2154 of 2210 strings)

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

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

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/zh_Hans/

* Translated using Weblate (Dutch)

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/nl/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (1932 of 1932 strings)

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

* 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% (1932 of 1932 strings)

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

* Translated using Weblate (Italian)

Currently translated at 98.9% (2187 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 99.5% (2201 of 2210 strings)

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

* Translated using Weblate (Russian)

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/ru/

* Translated using Weblate (Russian)

Currently translated at 96.6% (1868 of 1932 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% (1932 of 1932 strings)

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

* Translated using Weblate (Indonesian)

Currently translated at 60.0% (1326 of 2210 strings)

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

* Translated using Weblate (Russian)

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/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (1932 of 1932 strings)

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

* Translated using Weblate (German)

Currently translated at 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (French)

Currently translated at 93.2% (2060 of 2209 strings)

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

* Translated using Weblate (Italian)

Currently translated at 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 97.6% (2157 of 2209 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 97.5% (2154 of 2209 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.3% (2041 of 2209 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 97.4% (2153 of 2209 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 97.5% (2155 of 2209 strings)

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

* Translated using Weblate (Polish)

Currently translated at 93.2% (2059 of 2209 strings)

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

* Translated using Weblate (Russian)

Currently translated at 93.2% (2061 of 2210 strings)

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

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

Currently translated at 97.4% (2154 of 2210 strings)

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

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

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/zh_Hans/

* Translated using Weblate (Dutch)

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/nl/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (1932 of 1932 strings)

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

* 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% (1932 of 1932 strings)

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

* Translated using Weblate (Italian)

Currently translated at 98.9% (2187 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 99.5% (2201 of 2210 strings)

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

* Translated using Weblate (Russian)

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/ru/

* Translated using Weblate (Russian)

Currently translated at 96.6% (1868 of 1932 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% (1932 of 1932 strings)

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

* Translated using Weblate (Indonesian)

Currently translated at 60.0% (1326 of 2210 strings)

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

* Translated using Weblate (Russian)

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/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (1932 of 1932 strings)

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

* process localizations

* update translations

---------

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Rafi <rafimuhmad90@gmail.com>
2024-12-05 21:42:53 +00:00
spaced4ndy 69e23ad58f android, desktop: don't show unwanted notifications (#5328)
* android, desktop: don't show unwanted notifications

* format

* fix

* code style

---------

Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
2024-12-05 18:45:19 +00:00
Evgeny Poberezkin e9bf229a9d core: 6.2.0.6 2024-12-05 18:36:07 +00:00
Evgeny 60e0e454e8 core: only update business chat preferences (#5325)
* core: only update business chat preferences

* rework

* migration

* test, bump protocol version

* fix tests
2024-12-05 18:32:00 +00:00
Stanislav Dmitrenko de76e271a8 android, desktop: displaying deleted message with file in chat list (#5329) 2024-12-05 18:10:36 +00:00
Diogo 5f66c29dbd ios: fix open from notification and connected directly chat item chat loading (#5326)
* ios: fix opening from notification and connected directly chat item chat loading

* better fix
2024-12-05 16:15:24 +00:00
spaced4ndy 97cd2682d7 core: take address lock before reading contact request data (to prevent possible race condition if user quickly accepts request several times in a row); android, desktop: show error context in agent CMD errors (#5324) 2024-12-05 20:10:44 +04:00
Stanislav Dmitrenko 4f8a70a6c1 android, desktop: allow to scan QR multiple times after fail (#5323) 2024-12-05 15:52:45 +00:00
Evgeny Poberezkin c1a0943448 6.2-beta.5: ios 251, android 256, desktop 80 2024-12-04 21:56:09 +00:00
Evgeny Poberezkin c1c17d1f19 core: 6.2.0.5 (simplexmq: 6.2.0.6) 2024-12-04 19:59:42 +00:00
spaced4ndy 009d13210f android: fix simplex chat team contact card opening empty page on connection (#5320) 2024-12-04 17:33:30 +00:00
spaced4ndy 892f6498be ios: fix contact cards opening empty page on connection 2 (#5319) 2024-12-04 17:33:12 +00:00
spaced4ndy 3fa1d7b07c core: fix cli servers override (#5317) 2024-12-04 16:50:19 +00:00
Stanislav Dmitrenko ee146cdc7b android, desktop, core: option to show toolbar in chat at the top in reachable UI (#5316)
* android, desktop: ability to show toolbar in chat at the top in reachable UI

* rename

* core AppSettings

* ios AppSettings

* rename

* strings, enable reachable chat toolbar when enabled reachable app toolbars

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-04 16:49:45 +00:00
Stanislav Dmitrenko 219381f941 android, desktop: don't load new messages when pressing quote while searching (#5315) 2024-12-04 16:33:14 +00:00
Evgeny 89f380400e core: update business chat profile (#5313)
* core: update business chat profile

* fix, test

* refactor

* test changing non-title member profile

* fix history
2024-12-04 16:32:01 +00:00
sh 4f1cf6e79f docs: business page, technical advice (#5314)
* docs/business: populate technical advice sections

* dev tools

* update

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-04 10:24:31 +00:00
spaced4ndy 6ff7d4a73c core: fix business chat state on accept (fixes icon) (#5312) 2024-12-04 12:12:30 +04:00
Evgeny Poberezkin 3acc69c6d8 6.2-beta.4: ios 250, android 255, desktop 79 2024-12-03 20:13:09 +00:00
Evgeny Poberezkin b9777c92a5 core: 6.2.0.4 (simplexmq: 6.2.0.5) 2024-12-03 18:52:06 +00:00
Evgeny Poberezkin f3be723cde ios: export localizations 2024-12-03 18:40:58 +00:00
Evgeny a182cf5730 ui, site: v6.2 whats new, business (#5309)
* ui, site: v6.2 whats new, business

* icon

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

* business

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

* typo

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

* typo

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2024-12-03 18:23:24 +00:00
spaced4ndy 247d12fa40 android, desktop: make more texts different for groups and business chats; ios: preferences texts (#5308) 2024-12-03 21:44:06 +04:00
spaced4ndy 6593de89c2 ios: make more texts different for groups and business chats (#5307) 2024-12-03 15:25:15 +00:00
Evgeny a1e25620f7 website: translations (#5306)
* Translated using Weblate (German)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (257 of 257 strings)

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

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

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (257 of 257 strings)

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

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

Currently translated at 100.0% (257 of 257 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (257 of 257 strings)

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

---------

Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Max <Prototypem95@users.noreply.hosted.weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: summoner001 <summoner@vivaldi.net>
2024-12-03 15:23:23 +00:00
Evgeny 29b9abf241 ui: translations (#5267)
* Translated using Weblate (German)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Russian)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (French)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Italian)

Currently translated at 95.6% (2087 of 2182 strings)

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

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

Currently translated at 95.6% (2087 of 2182 strings)

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

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

Currently translated at 80.7% (1763 of 2182 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 88.6% (1935 of 2182 strings)

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

* Translated using Weblate (Czech)

Currently translated at 91.9% (2006 of 2182 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 95.6% (2087 of 2182 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 95.5% (2085 of 2182 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 67.5% (1474 of 2182 strings)

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

* Translated using Weblate (Polish)

Currently translated at 95.6% (2086 of 2182 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 43.9% (959 of 2182 strings)

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

* Translated using Weblate (Hebrew)

Currently translated at 86.2% (1883 of 2182 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 79.1% (1726 of 2182 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Persian)

Currently translated at 83.3% (1819 of 2182 strings)

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

* Translated using Weblate (Romanian)

Currently translated at 33.1% (723 of 2182 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 61.5% (1342 of 2182 strings)

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

* Translated using Weblate (German)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Russian)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (French)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Italian)

Currently translated at 95.6% (2087 of 2182 strings)

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

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

Currently translated at 95.6% (2087 of 2182 strings)

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

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

Currently translated at 80.7% (1763 of 2182 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 88.6% (1935 of 2182 strings)

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

* Translated using Weblate (Czech)

Currently translated at 91.9% (2006 of 2182 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 95.6% (2087 of 2182 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 95.5% (2085 of 2182 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 67.5% (1474 of 2182 strings)

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

* Translated using Weblate (Polish)

Currently translated at 95.6% (2086 of 2182 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 43.9% (959 of 2182 strings)

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

* Translated using Weblate (Hebrew)

Currently translated at 86.2% (1883 of 2182 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 79.1% (1726 of 2182 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 95.6% (2087 of 2182 strings)

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

* Translated using Weblate (Persian)

Currently translated at 83.3% (1819 of 2182 strings)

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

* Translated using Weblate (Romanian)

Currently translated at 33.1% (723 of 2182 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 61.5% (1342 of 2182 strings)

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

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

Currently translated at 100.0% (2182 of 2182 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 95.9% (2093 of 2182 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 96.1% (2099 of 2182 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2182 of 2182 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2182 of 2182 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% (1918 of 1918 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2182 of 2182 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% (1918 of 1918 strings)

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

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

Currently translated at 100.0% (2182 of 2182 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 98.4% (2148 of 2182 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 100.0% (2182 of 2182 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 99.0% (1900 of 1918 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% (2182 of 2182 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% (2182 of 2182 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2182 of 2182 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (1918 of 1918 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2182 of 2182 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% (1918 of 1918 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 62.4% (1362 of 2182 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 99.0% (2161 of 2182 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 100.0% (1918 of 1918 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2182 of 2182 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 99.5% (1910 of 1918 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 99.6% (1911 of 1918 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2178 of 2178 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% (1918 of 1918 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2178 of 2178 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% (2178 of 2178 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (2178 of 2178 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% (2178 of 2178 strings)

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

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

Currently translated at 100.0% (2178 of 2178 strings)

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

* Translated using Weblate (Korean)

Currently translated at 66.6% (1452 of 2178 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 62.7% (1367 of 2178 strings)

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

* Translated using Weblate (Indonesian)

Currently translated at 59.3% (1293 of 2178 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (1918 of 1918 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 99.9% (2177 of 2178 strings)

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

* Translated using Weblate (Czech)

Currently translated at 91.9% (2002 of 2178 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 62.9% (1372 of 2178 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 63.6% (1387 of 2178 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2178 of 2178 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 62.5% (1199 of 1918 strings)

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

* fix/process localizations

---------

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: Abdullah Koyuncu <wisewebworks@outlook.com>
Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Max <Prototypem95@users.noreply.hosted.weblate.org>
Co-authored-by: Bezruchenko Simon <worcposj44@gmail.com>
Co-authored-by: tuananh-ng <158744840+tuananh-ng@users.noreply.github.com>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Максим Горпиніч <mgorpinic2005@gmail.com>
Co-authored-by: translatorforkr <tsgjklvfdyu@onionmail.com>
Co-authored-by: Rafi <rafimuhmad90@gmail.com>
Co-authored-by: zenobit <zenobit@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
2024-12-03 15:22:41 +00:00
spaced4ndy a0b8cf62be android, desktop: support business addresses and chats (#5302) 2024-12-03 17:27:00 +04:00
Narasimha-sc 43fa4c43a2 docs: update FAQ (#5179)
* Update FAQ.md

Added:
- Why invite links use simplex.chat domain?
- I do not know my database passphrase

* Update FAQ.md

* Add flatpak directory

* corrections

* correction

* invitation

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
2024-12-03 12:48:54 +00:00
Diogo 85e7a13dba desktop: show group message reaction on right click (#5304)
* desktop: show group message reaction on right click

* open on ctrl + click too
2024-12-03 12:26:50 +00:00
Evgeny 9d992735f4 core, ios: improve business address (connection plan, repeat requests, feature items) (#5303)
* core, ios: connection plan for business address

* core: store xcontact_id on business groups to prevent duplicate contact requests

* core: create feature items in new groups and in business groups

* fix tests

* error message
2024-12-03 12:11:38 +00:00
Stanislav Dmitrenko e61babdc8f android, desktop: preserving long message when failed to send (#5297)
* android, desktop: preserving long message when failed to send

* forwarding

* unused code

* strings

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-02 23:36:48 +00:00
Diogo c04e952620 desktop: onboarding improvements (#5294)
* consistent space to bottom on future of messaging

* consistent button suze on server operators

* updated setup database passphrase screen

* ability to cancel random passphrase

* reduce conditions padding to header

* show scrollbar in desktop

* EOLs

* EOL

* fix random passphrase param when deleting database and recreating new one

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
2024-12-02 21:00:55 +00:00
Diogo 92967dfe0c ios: disable autocorrect add group member search (#5301) 2024-12-02 20:14:26 +00:00
spaced4ndy bc96000131 ios: support business addresses and chats (#5300)
* ios: support business addresses and chats

* improve

* words

* fix

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-02 17:40:22 +00:00
Stanislav Dmitrenko a588e7003d android: alert round corners (#5299)
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-02 16:33:22 +00:00
Stanislav Dmitrenko 665501026d android: show info for Xiaomi users about autostart restrictions (#5295)
* android: show info for Xiaomi users about autostart restrictions

* text and placement

* update strings

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-12-02 16:32:04 +00:00
spaced4ndy a62ce9168e core: fix names created for business request group and member (#5296) 2024-12-02 20:30:05 +04:00
Stanislav Dmitrenko f6b611aa30 android, desktop: check existence before deleting database (#5298) 2024-12-02 15:58:21 +00:00
Stanislav Dmitrenko 5a59fdd91c android, desktop: fix Can't represent a width ... and a height ... in Constraints (#5293) 2024-12-02 15:28:58 +00:00
Evgeny 5f01dc1a3f core: support business addresses and chats (#5272)
* core: support business addresses and chats

* types

* connect plan, add link type

* ios: toggle on address UI

* make compile

* todo

* fix migration

* types

* comments

* fix

* remove

* fix schema

* comment

* simplify

* remove diff

* comment

* comment

* diff

* acceptBusinessJoinRequestAsync wip

* comment

* update

* simplify types

* remove business

* wip

* read/write columns

* createBusinessRequestGroup

* remove comments

* read/write business_address column

* validate that business address is not set to be incognito

* replace contact card

* update simplexmq

* refactor

* event when accepting business address request

* sendGroupAutoReply

* delete contact request earlier

* test, fix

* refactor

* refactor2

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2024-12-02 14:01:23 +00:00
240 changed files with 13206 additions and 4205 deletions
+3
View File
@@ -79,3 +79,6 @@ website/package-lock.json
website/.cache website/.cache
website/test/stubs-layout-cache/_includes/*.js website/test/stubs-layout-cache/_includes/*.js
apps/android/app/release apps/android/app/release
packages/simplex-chat-nodejs/build
packages/simplex-chat-nodejs/.vscode
packages/simplex-chat-nodejs/libs
+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: 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) [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) [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). [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). [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). [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). [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) [All updates](./blog)
## :zap: Quick installation of a terminal app ## :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). - ✅ Improve sending videos (including encryption of locally stored videos).
- ✅ Post-quantum resistant key exchange in double ratchet protocol. - ✅ 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). - ✅ 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 stability and reduce battery usage.
- 🏗 Improve experience for the new users. - 🏗 Improve experience for the new users.
- 🏗 Large groups, communities and public channels.
- Privacy & security slider - a simple way to set all settings at once. - Privacy & security slider - a simple way to set all settings at once.
- SMP queue redundancy and rotation (manual is supported). - SMP queue redundancy and rotation (manual is supported).
- Include optional message into connection request sent via contact address. - Include optional message into connection request sent via contact address.
+5 -1
View File
@@ -26,6 +26,7 @@ enum NtfCallAction {
class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject { class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
static let shared = NtfManager() static let shared = NtfManager()
public var navigatingToChat = false
private var granted = false private var granted = false
private var prevNtfTime: Dictionary<ChatId, Date> = [:] private var prevNtfTime: Dictionary<ChatId, Date> = [:]
@@ -74,7 +75,10 @@ class NtfManager: NSObject, UNUserNotificationCenterDelegate, ObservableObject {
} }
} else { } else {
if let chatId = content.targetContentIdentifier { if let chatId = content.targetContentIdentifier {
ItemsModel.shared.loadOpenChat(chatId) self.navigatingToChat = true
ItemsModel.shared.loadOpenChat(chatId) {
self.navigatingToChat = false
}
} }
} }
} }
+21 -2
View File
@@ -519,7 +519,14 @@ func testProtoServer(server: String) async throws -> Result<(), ProtocolTestFail
throw r 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) let r = chatSendCmdSync(.apiGetServerOperators)
if case let .serverOperatorConditions(conditions) = r { return conditions } if case let .serverOperatorConditions(conditions) = r { return conditions }
logger.error("getServerOperators error: \(String(describing: r))") 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()) try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
m.chatInitialized = true m.chatInitialized = true
m.currentUser = try apiGetActiveUser() m.currentUser = try apiGetActiveUser()
m.conditions = try getServerOperators() m.conditions = try getServerOperatorsSync()
if shouldImportAppSettingsDefault.get() { if shouldImportAppSettingsDefault.get() {
do { do {
let appSettings = try apiGetAppSettings(settings: AppSettings.current.prepareForExport()) let appSettings = try apiGetAppSettings(settings: AppSettings.current.prepareForExport())
@@ -2014,6 +2021,18 @@ func processReceivedMsg(_ res: ChatResponse) async {
m.removeChat(hostConn.id) m.removeChat(hostConn.id)
} }
} }
case let .businessLinkConnecting(user, groupInfo, _, fromContact):
if !active(user) { return }
await MainActor.run {
m.updateGroup(groupInfo)
}
if m.chatId == fromContact.id {
ItemsModel.shared.loadOpenChat(groupInfo.id)
}
await MainActor.run {
m.removeChat(fromContact.id)
}
case let .joinedGroupMemberConnecting(user, groupInfo, _, member): case let .joinedGroupMemberConnecting(user, groupInfo, _, member):
if active(user) { if active(user) {
await MainActor.run { await MainActor.run {
+2 -1
View File
@@ -143,7 +143,8 @@ struct SimpleXApp: App {
let chats = try await apiGetChatsAsync() let chats = try await apiGetChatsAsync()
await MainActor.run { chatModel.updateChats(chats) } await MainActor.run { chatModel.updateChats(chats) }
if let id = chatModel.chatId, if let id = chatModel.chatId,
let chat = chatModel.getChat(id) { let chat = chatModel.getChat(id),
!NtfManager.shared.navigatingToChat {
Task { await loadChat(chat: chat, clearItems: false) } Task { await loadChat(chat: chat, clearItems: false) }
} }
if let ncr = chatModel.ntfContactRequest { if let ncr = chatModel.ntfContactRequest {
+105 -24
View File
@@ -96,6 +96,8 @@ struct ChatInfoView: View {
@ObservedObject var chat: Chat @ObservedObject var chat: Chat
@State var contact: Contact @State var contact: Contact
@State var localAlias: String @State var localAlias: String
@State var featuresAllowed: ContactFeaturesAllowed
@State var currentFeaturesAllowed: ContactFeaturesAllowed
var onSearch: () -> Void var onSearch: () -> Void
@State private var connectionStats: ConnectionStats? = nil @State private var connectionStats: ConnectionStats? = nil
@State private var customUserProfile: Profile? = nil @State private var customUserProfile: Profile? = nil
@@ -154,8 +156,8 @@ struct ChatInfoView: View {
HStack(alignment: .center, spacing: 8) { HStack(alignment: .center, spacing: 8) {
let buttonWidth = g.size.width / 4 let buttonWidth = g.size.width / 4
searchButton(width: buttonWidth) searchButton(width: buttonWidth)
AudioCallButton(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, width: buttonWidth) { alert = .someAlert(alert: $0) } VideoButton(chat: chat, contact: contact, connectionStats: $connectionStats, width: buttonWidth) { alert = .someAlert(alert: $0) }
muteButton(width: buttonWidth) muteButton(width: buttonWidth)
} }
} }
@@ -312,7 +314,15 @@ struct ChatInfoView: View {
case .networkStatusAlert: return networkStatusAlert() case .networkStatusAlert: return networkStatusAlert()
case .switchAddressAlert: return switchAddressAlert(switchContactAddress) case .switchAddressAlert: return switchAddressAlert(switchContactAddress)
case .abortSwitchAddressAlert: return abortSwitchAddressAlert(abortSwitchContactAddress) 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 .queueInfo(info): return queueInfoAlert(info)
case let .someAlert(a): return a.alert case let .someAlert(a): return a.alert
case let .error(title, error): return mkAlert(title: title, message: error) case let .error(title, error): return mkAlert(title: title, message: error)
@@ -327,6 +337,16 @@ struct ChatInfoView: View {
$0.content $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 { private func contactInfoHeader() -> some View {
@@ -447,8 +467,9 @@ struct ChatInfoView: View {
NavigationLink { NavigationLink {
ContactPreferencesView( ContactPreferencesView(
contact: $contact, contact: $contact,
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences), featuresAllowed: $featuresAllowed,
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences) currentFeaturesAllowed: $currentFeaturesAllowed,
savePreferences: savePreferences
) )
.navigationBarTitle("Contact preferences") .navigationBarTitle("Contact preferences")
.modifier(ThemedBackground(grouped: true)) .modifier(ThemedBackground(grouped: true))
@@ -480,7 +501,12 @@ struct ChatInfoView: View {
private func synchronizeConnectionButton() -> some View { private func synchronizeConnectionButton() -> some View {
Button { Button {
syncContactConnection(force: false) Task {
if let stats = await syncContactConnection(contact, force: false, showAlert: { alert = .someAlert(alert: $0) }) {
connectionStats = stats
dismiss()
}
}
} label: { } label: {
Label("Fix connection", systemImage: "exclamationmark.arrow.triangle.2.circlepath") Label("Fix connection", systemImage: "exclamationmark.arrow.triangle.2.circlepath")
.foregroundColor(.orange) .foregroundColor(.orange)
@@ -599,29 +625,50 @@ struct ChatInfoView: View {
} }
} }
private func syncContactConnection(force: Bool) { private func savePreferences() {
Task { Task {
do { do {
let stats = try apiSyncContactRatchet(contact.apiId, force) let prefs = contactFeaturesAllowedToPrefs(featuresAllowed)
connectionStats = stats if let toContact = try await apiSetContactPrefs(contactId: contact.contactId, preferences: prefs) {
await MainActor.run { await MainActor.run {
chatModel.updateContactConnectionStats(contact, stats) contact = toContact
dismiss() chatModel.updateContact(toContact)
} currentFeaturesAllowed = featuresAllowed
} 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)
} }
} 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 { struct AudioCallButton: View {
var chat: Chat var chat: Chat
var contact: Contact var contact: Contact
@Binding var connectionStats: ConnectionStats?
var width: CGFloat var width: CGFloat
var showAlert: (SomeAlert) -> Void var showAlert: (SomeAlert) -> Void
@@ -629,6 +676,7 @@ struct AudioCallButton: View {
CallButton( CallButton(
chat: chat, chat: chat,
contact: contact, contact: contact,
connectionStats: $connectionStats,
image: "phone.fill", image: "phone.fill",
title: "call", title: "call",
mediaType: .audio, mediaType: .audio,
@@ -641,6 +689,7 @@ struct AudioCallButton: View {
struct VideoButton: View { struct VideoButton: View {
var chat: Chat var chat: Chat
var contact: Contact var contact: Contact
@Binding var connectionStats: ConnectionStats?
var width: CGFloat var width: CGFloat
var showAlert: (SomeAlert) -> Void var showAlert: (SomeAlert) -> Void
@@ -648,6 +697,7 @@ struct VideoButton: View {
CallButton( CallButton(
chat: chat, chat: chat,
contact: contact, contact: contact,
connectionStats: $connectionStats,
image: "video.fill", image: "video.fill",
title: "video", title: "video",
mediaType: .video, mediaType: .video,
@@ -660,6 +710,7 @@ struct VideoButton: View {
private struct CallButton: View { private struct CallButton: View {
var chat: Chat var chat: Chat
var contact: Contact var contact: Contact
@Binding var connectionStats: ConnectionStats?
var image: String var image: String
var title: LocalizedStringKey var title: LocalizedStringKey
var mediaType: CallMediaType var mediaType: CallMediaType
@@ -671,12 +722,40 @@ private struct CallButton: View {
InfoViewButton(image: image, title: title, disabledLook: !canCall, width: width) { InfoViewButton(image: image, title: title, disabledLook: !canCall, width: width) {
if canCall { if canCall {
if CallController.useCallKit() { if let connStats = connectionStats {
CallController.shared.startCall(contact, mediaType) if connStats.ratchetSyncState == .ok {
} else { if CallController.useCallKit() {
// When CallKit is not used, colorscheme will be changed and it will be visible if not hiding sheets first CallController.shared.startCall(contact, mediaType)
dismissAllSheets(animated: true) { } else {
CallController.shared.startCall(contact, mediaType) // 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 { } else if contact.nextSendGrpInv {
@@ -1173,6 +1252,8 @@ struct ChatInfoView_Previews: PreviewProvider {
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []), chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []),
contact: Contact.sampleData, contact: Contact.sampleData,
localAlias: "", localAlias: "",
featuresAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(Contact.sampleData.mergedPreferences),
onSearch: {} onSearch: {}
) )
} }
@@ -23,7 +23,7 @@ struct CIMemberCreatedContactView: View {
.onTapGesture { .onTapGesture {
dismissAllSheets(animated: true) dismissAllSheets(animated: true)
DispatchQueue.main.async { DispatchQueue.main.async {
m.chatId = "@\(contactId)" ItemsModel.shared.loadOpenChat("@\(contactId)")
} }
} }
} else { } else {
+10 -1
View File
@@ -133,7 +133,12 @@ struct ChatView: View {
.appSheet(item: $selectedMember) { member in .appSheet(item: $selectedMember) { member in
Group { Group {
if case let .group(groupInfo) = chat.chatInfo { 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, chat: chat,
contact: contact, contact: contact,
localAlias: chat.chatInfo.localAlias, localAlias: chat.chatInfo.localAlias,
featuresAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
currentFeaturesAllowed: contactUserPrefsToFeaturesAllowed(contact.mergedPreferences),
onSearch: { focusSearch() } onSearch: { focusSearch() }
) )
} }
@@ -1122,6 +1129,7 @@ struct ChatView: View {
} else { } else {
let mem = GMember.init(member) let mem = GMember.init(member)
m.groupMembers.append(mem) m.groupMembers.append(mem)
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
selectedMember = mem selectedMember = mem
} }
} }
@@ -1877,6 +1885,7 @@ struct ReactionContextMenu: View {
} else { } else {
let member = GMember.init(mem) let member = GMember.init(mem)
m.groupMembers.append(member) m.groupMembers.append(member)
m.groupMembersIndexes[member.groupMemberId] = m.groupMembers.count - 1
selectedMember = member selectedMember = member
} }
} label: { } label: {
@@ -14,9 +14,10 @@ struct ContactPreferencesView: View {
@EnvironmentObject var chatModel: ChatModel @EnvironmentObject var chatModel: ChatModel
@EnvironmentObject var theme: AppTheme @EnvironmentObject var theme: AppTheme
@Binding var contact: Contact @Binding var contact: Contact
@State var featuresAllowed: ContactFeaturesAllowed @Binding var featuresAllowed: ContactFeaturesAllowed
@State var currentFeaturesAllowed: ContactFeaturesAllowed @Binding var currentFeaturesAllowed: ContactFeaturesAllowed
@State private var showSaveDialogue = false @State private var showSaveDialogue = false
let savePreferences: () -> Void
var body: some View { var body: some View {
let user: User = chatModel.currentUser! let user: User = chatModel.currentUser!
@@ -48,7 +49,10 @@ struct ContactPreferencesView: View {
savePreferences() savePreferences()
dismiss() 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 { private func featureFooter(_ feature: ChatFeature, _ enabled: FeatureEnabled) -> some View {
Text(feature.enabledDescription(enabled)) 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 { struct ContactPreferencesView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
ContactPreferencesView( ContactPreferencesView(
contact: Binding.constant(Contact.sampleData), contact: Binding.constant(Contact.sampleData),
featuresAllowed: ContactFeaturesAllowed.sampleData, featuresAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
currentFeaturesAllowed: ContactFeaturesAllowed.sampleData currentFeaturesAllowed: Binding.constant(ContactFeaturesAllowed.sampleData),
savePreferences: {}
) )
} }
} }
@@ -78,7 +78,12 @@ struct AddGroupMembersViewCommon: View {
let count = selectedContacts.count let count = selectedContacts.count
Section { Section {
if creatingGroup { if creatingGroup {
groupPreferencesButton($groupInfo, true) GroupPreferencesButton(
groupInfo: $groupInfo,
preferences: groupInfo.fullGroupPreferences,
currentPreferences: groupInfo.fullGroupPreferences,
creatingGroup: true
)
} }
rolePicker() rolePicker()
inviteMembersButton() inviteMembersButton()
@@ -140,12 +145,13 @@ struct AddGroupMembersViewCommon: View {
return dummy return dummy
}() }()
private func inviteMembersButton() -> some View { @ViewBuilder private func inviteMembersButton() -> some View {
let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Invite to group" : "Invite to chat"
Button { Button {
inviteMembers() inviteMembers()
} label: { } label: {
HStack { HStack {
Text("Invite to group") Text(label)
Image(systemName: "checkmark") Image(systemName: "checkmark")
} }
} }
@@ -231,6 +237,7 @@ func searchFieldView(text: Binding<String>, focussed: FocusState<Bool>.Binding,
.focused(focussed) .focused(focussed)
.foregroundColor(onBackgroundColor) .foregroundColor(onBackgroundColor)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)
.autocorrectionDisabled(true)
Image(systemName: "xmark.circle.fill") Image(systemName: "xmark.circle.fill")
.resizable() .resizable()
.scaledToFit() .scaledToFit()
@@ -81,13 +81,13 @@ struct GroupChatInfoView: View {
.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
Section { Section {
if groupInfo.canEdit { if groupInfo.isOwner && groupInfo.businessChat == nil {
editGroupButton() editGroupButton()
} }
if groupInfo.groupProfile.description != nil || groupInfo.canEdit { if groupInfo.groupProfile.description != nil || (groupInfo.isOwner && groupInfo.businessChat == nil) {
addOrEditWelcomeMessage() addOrEditWelcomeMessage()
} }
groupPreferencesButton($groupInfo) GroupPreferencesButton(groupInfo: $groupInfo, preferences: groupInfo.fullGroupPreferences, currentPreferences: groupInfo.fullGroupPreferences)
if members.filter({ $0.wrapped.memberCurrent }).count <= SMALL_GROUPS_RCPS_MEM_LIMIT { if members.filter({ $0.wrapped.memberCurrent }).count <= SMALL_GROUPS_RCPS_MEM_LIMIT {
sendReceiptsOption() sendReceiptsOption()
} else { } else {
@@ -101,13 +101,20 @@ struct GroupChatInfoView: View {
} header: { } header: {
Text("") Text("")
} footer: { } footer: {
Text("Only group owners can change group preferences.") let label: LocalizedStringKey = (
groupInfo.businessChat == nil
? "Only group owners can change group preferences."
: "Only chat owners can change preferences."
)
Text(label)
.foregroundColor(theme.colors.secondary) .foregroundColor(theme.colors.secondary)
} }
Section(header: Text("\(members.count + 1) members").foregroundColor(theme.colors.secondary)) { Section(header: Text("\(members.count + 1) members").foregroundColor(theme.colors.secondary)) {
if groupInfo.canAddMembers { if groupInfo.canAddMembers {
groupLinkButton() if groupInfo.businessChat == nil {
groupLinkButton()
}
if (chat.chatInfo.incognito) { if (chat.chatInfo.incognito) {
Label("Invite members", systemImage: "plus") Label("Invite members", systemImage: "plus")
.foregroundColor(Color(uiColor: .tertiaryLabel)) .foregroundColor(Color(uiColor: .tertiaryLabel))
@@ -276,10 +283,15 @@ struct GroupChatInfoView: View {
} }
private func addMembersButton() -> some View { private func addMembersButton() -> some View {
NavigationLink { let label: LocalizedStringKey = switch groupInfo.businessChat?.chatType {
case .customer: "Add team members"
case .business: "Add friends"
case .none: "Invite members"
}
return NavigationLink {
addMembersDestinationView() addMembersDestinationView()
} label: { } label: {
Label("Invite members", systemImage: "plus") Label(label, systemImage: "plus")
} }
} }
@@ -427,7 +439,7 @@ struct GroupChatInfoView: View {
} }
private func memberInfoView(_ groupMember: GMember) -> some View { private func memberInfoView(_ groupMember: GMember) -> some View {
GroupMemberInfoView(groupInfo: groupInfo, groupMember: groupMember) GroupMemberInfoView(groupInfo: groupInfo, chat: chat, groupMember: groupMember)
.navigationBarHidden(false) .navigationBarHidden(false)
} }
@@ -487,11 +499,12 @@ struct GroupChatInfoView: View {
} }
} }
private func deleteGroupButton() -> some View { @ViewBuilder private func deleteGroupButton() -> some View {
let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Delete group" : "Delete chat"
Button(role: .destructive) { Button(role: .destructive) {
alert = .deleteGroupAlert alert = .deleteGroupAlert
} label: { } label: {
Label("Delete group", systemImage: "trash") Label(label, systemImage: "trash")
.foregroundColor(Color.red) .foregroundColor(Color.red)
} }
} }
@@ -505,20 +518,22 @@ struct GroupChatInfoView: View {
} }
} }
private func leaveGroupButton() -> some View { @ViewBuilder private func leaveGroupButton() -> some View {
let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Leave group" : "Leave chat"
Button(role: .destructive) { Button(role: .destructive) {
alert = .leaveGroupAlert alert = .leaveGroupAlert
} label: { } label: {
Label("Leave group", systemImage: "rectangle.portrait.and.arrow.right") Label(label, systemImage: "rectangle.portrait.and.arrow.right")
.foregroundColor(Color.red) .foregroundColor(Color.red)
} }
} }
// TODO reuse this and clearChatAlert with ChatInfoView // TODO reuse this and clearChatAlert with ChatInfoView
private func deleteGroupAlert() -> Alert { private func deleteGroupAlert() -> Alert {
let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Delete group?" : "Delete chat?"
return Alert( return Alert(
title: Text("Delete group?"), title: Text(label),
message: deleteGroupAlertMessage(), message: deleteGroupAlertMessage(groupInfo),
primaryButton: .destructive(Text("Delete")) { primaryButton: .destructive(Text("Delete")) {
Task { Task {
do { do {
@@ -537,10 +552,6 @@ struct GroupChatInfoView: View {
) )
} }
private func deleteGroupAlertMessage() -> Text {
groupInfo.membership.memberCurrent ? Text("Group will be deleted for all members - this cannot be undone!") : Text("Group will be deleted for you - this cannot be undone!")
}
private func clearChatAlert() -> Alert { private func clearChatAlert() -> Alert {
Alert( Alert(
title: Text("Clear conversation?"), title: Text("Clear conversation?"),
@@ -556,9 +567,15 @@ struct GroupChatInfoView: View {
} }
private func leaveGroupAlert() -> Alert { private func leaveGroupAlert() -> Alert {
Alert( let titleLabel: LocalizedStringKey = groupInfo.businessChat == nil ? "Leave group?" : "Leave chat?"
title: Text("Leave group?"), let messageLabel: LocalizedStringKey = (
message: Text("You will stop receiving messages from this group. Chat history will be preserved."), groupInfo.businessChat == nil
? "You will stop receiving messages from this group. Chat history will be preserved."
: "You will stop receiving messages from this chat. Chat history will be preserved."
)
return Alert(
title: Text(titleLabel),
message: Text(messageLabel),
primaryButton: .destructive(Text("Leave")) { primaryButton: .destructive(Text("Leave")) {
Task { Task {
await leaveGroup(chat.chatInfo.apiId) await leaveGroup(chat.chatInfo.apiId)
@@ -602,9 +619,14 @@ struct GroupChatInfoView: View {
} }
private func removeMemberAlert(_ mem: GroupMember) -> Alert { private func removeMemberAlert(_ mem: GroupMember) -> Alert {
Alert( let messageLabel: LocalizedStringKey = (
groupInfo.businessChat == nil
? "Member will be removed from group - this cannot be undone!"
: "Member will be removed from chat - this cannot be undone!"
)
return Alert(
title: Text("Remove member?"), title: Text("Remove member?"),
message: Text("Member will be removed from group - this cannot be undone!"), message: Text(messageLabel),
primaryButton: .destructive(Text("Remove")) { primaryButton: .destructive(Text("Remove")) {
Task { Task {
do { do {
@@ -624,26 +646,80 @@ struct GroupChatInfoView: View {
} }
} }
func groupPreferencesButton(_ groupInfo: Binding<GroupInfo>, _ creatingGroup: Bool = false) -> some View { func deleteGroupAlertMessage(_ groupInfo: GroupInfo) -> Text {
NavigationLink { groupInfo.businessChat == nil ? (
GroupPreferencesView( groupInfo.membership.memberCurrent ? Text("Group will be deleted for all members - this cannot be undone!") : Text("Group will be deleted for you - this cannot be undone!")
groupInfo: groupInfo, ) : (
preferences: groupInfo.wrappedValue.fullGroupPreferences, groupInfo.membership.memberCurrent ? Text("Chat will be deleted for all members - this cannot be undone!") : Text("Chat will be deleted for you - this cannot be undone!")
currentPreferences: groupInfo.wrappedValue.fullGroupPreferences, )
creatingGroup: creatingGroup }
)
.navigationBarTitle("Group preferences") struct GroupPreferencesButton: View {
.modifier(ThemedBackground(grouped: true)) @Binding var groupInfo: GroupInfo
.navigationBarTitleDisplayMode(.large) @State var preferences: FullGroupPreferences
} label: { @State var currentPreferences: FullGroupPreferences
if creatingGroup { var creatingGroup: Bool = false
Text("Set group preferences")
} else { private var label: LocalizedStringKey {
Label("Group preferences", systemImage: "switch.2") 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 { func cantInviteIncognitoAlert() -> Alert {
Alert( Alert(
title: Text("Can't invite contacts!"), title: Text("Can't invite contacts!"),
@@ -14,11 +14,15 @@ struct GroupMemberInfoView: View {
@EnvironmentObject var theme: AppTheme @EnvironmentObject var theme: AppTheme
@Environment(\.dismiss) var dismiss: DismissAction @Environment(\.dismiss) var dismiss: DismissAction
@State var groupInfo: GroupInfo @State var groupInfo: GroupInfo
@ObservedObject var chat: Chat
@ObservedObject var groupMember: GMember @ObservedObject var groupMember: GMember
var navigation: Bool = false var navigation: Bool = false
@State private var connectionStats: ConnectionStats? = nil @State private var connectionStats: ConnectionStats? = nil
@State private var connectionCode: String? = nil @State private var connectionCode: String? = nil
@State private var connectionLoaded: Bool = false @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 newRole: GroupMemberRole = .member
@State private var alert: GroupMemberInfoViewAlert? @State private var alert: GroupMemberInfoViewAlert?
@State private var sheet: PlanAndConnectActionSheet? @State private var sheet: PlanAndConnectActionSheet?
@@ -118,8 +122,8 @@ struct GroupMemberInfoView: View {
} label: { } label: {
Label("Share address", systemImage: "square.and.arrow.up") Label("Share address", systemImage: "square.and.arrow.up")
} }
if let contactId = member.memberContactId { if member.memberContactId != nil {
if knownDirectChat(contactId) == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) { if knownContactChat == nil && !groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
connectViaAddressButton(contactLink) connectViaAddressButton(contactLink)
} }
} else { } else {
@@ -135,7 +139,8 @@ struct GroupMemberInfoView: View {
} }
Section(header: Text("Member").foregroundColor(theme.colors.secondary)) { Section(header: Text("Member").foregroundColor(theme.colors.secondary)) {
infoRow("Group", groupInfo.displayName) let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Group" : "Chat"
infoRow(label, groupInfo.displayName)
if let roles = member.canChangeRoleTo(groupInfo: groupInfo) { if let roles = member.canChangeRoleTo(groupInfo: groupInfo) {
Picker("Change role", selection: $newRole) { Picker("Change role", selection: $newRole) {
@@ -227,6 +232,18 @@ struct GroupMemberInfoView: View {
} }
logger.error("apiGroupMemberInfo or apiGetGroupMemberCode error: \(responseError(error))") 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 .onChange(of: newRole) { newRole in
if newRole != member.memberRole { if newRole != member.memberRole {
@@ -260,6 +277,11 @@ struct GroupMemberInfoView: View {
ProgressView().scaleEffect(2) ProgressView().scaleEffect(2)
} }
} }
.onChange(of: chat.chatInfo) { c in
if case let .group(gI) = chat.chatInfo {
groupInfo = gI
}
}
.modifier(ThemedBackground(grouped: true)) .modifier(ThemedBackground(grouped: true))
} }
@@ -267,10 +289,10 @@ struct GroupMemberInfoView: View {
GeometryReader { g in GeometryReader { g in
let buttonWidth = g.size.width / 4 let buttonWidth = g.size.width / 4
HStack(alignment: .center, spacing: 8) { 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) knownDirectChatButton(chat, width: buttonWidth)
AudioCallButton(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, 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) { } else if groupInfo.fullGroupPreferences.directMessages.on(for: groupInfo.membership) {
if let contactId = member.memberContactId { if let contactId = member.memberContactId {
newDirectChatButton(contactId, width: buttonWidth) newDirectChatButton(contactId, width: buttonWidth)
@@ -305,10 +327,15 @@ struct GroupMemberInfoView: View {
} }
func showDirectMessagesProhibitedAlert(_ title: LocalizedStringKey) { func showDirectMessagesProhibitedAlert(_ title: LocalizedStringKey) {
let messageLabel: LocalizedStringKey = (
groupInfo.businessChat == nil
? "Direct messages between members are prohibited."
: "Direct messages between members are prohibited in this chat."
)
alert = .someAlert(alert: SomeAlert( alert = .someAlert(alert: SomeAlert(
alert: mkAlert( alert: mkAlert(
title: title, title: title,
message: "Direct messages between members are prohibited in this group." message: messageLabel
), ),
id: "can't message member, direct messages prohibited" id: "can't message member, direct messages prohibited"
)) ))
@@ -354,25 +381,49 @@ struct GroupMemberInfoView: View {
func createMemberContactButton(width: CGFloat) -> some View { func createMemberContactButton(width: CGFloat) -> some View {
InfoViewButton(image: "message.fill", title: "message", width: width) { InfoViewButton(image: "message.fill", title: "message", width: width) {
progressIndicator = true if let connStats = connectionStats {
Task { if connStats.ratchetSyncState == .ok {
do { progressIndicator = true
let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId) Task {
await MainActor.run { do {
progressIndicator = false let memberContact = try await apiCreateMemberContact(groupInfo.apiId, groupMember.groupMemberId)
chatModel.addChat(Chat(chatInfo: .direct(contact: memberContact))) await MainActor.run {
ItemsModel.shared.loadOpenChat(memberContact.id) { progressIndicator = false
dismissAllSheets(animated: true) 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"
))
} }
} }
} }
@@ -537,9 +588,14 @@ struct GroupMemberInfoView: View {
} }
private func removeMemberAlert(_ mem: GroupMember) -> Alert { private func removeMemberAlert(_ mem: GroupMember) -> Alert {
Alert( let label: LocalizedStringKey = (
groupInfo.businessChat == nil
? "Member will be removed from group - this cannot be undone!"
: "Member will be removed from chat - this cannot be undone!"
)
return Alert(
title: Text("Remove member?"), title: Text("Remove member?"),
message: Text("Member will be removed from group - this cannot be undone!"), message: Text(label),
primaryButton: .destructive(Text("Remove")) { primaryButton: .destructive(Text("Remove")) {
Task { Task {
do { do {
@@ -562,7 +618,15 @@ struct GroupMemberInfoView: View {
private func changeMemberRoleAlert(_ mem: GroupMember) -> Alert { private func changeMemberRoleAlert(_ mem: GroupMember) -> Alert {
Alert( Alert(
title: Text("Change member role?"), title: Text("Change member role?"),
message: mem.memberCurrent ? Text("Member role will be changed to \"\(newRole.text)\". All group members will be notified.") : Text("Member role will be changed to \"\(newRole.text)\". The member will receive a new invitation."), message: (
mem.memberCurrent
? (
groupInfo.businessChat == nil
? Text("Member role will be changed to \"\(newRole.text)\". All group members will be notified.")
: Text("Member role will be changed to \"\(newRole.text)\". All chat members will be notified.")
)
: Text("Member role will be changed to \"\(newRole.text)\". The member will receive a new invitation.")
),
primaryButton: .default(Text("Change")) { primaryButton: .default(Text("Change")) {
Task { Task {
do { do {
@@ -570,7 +634,7 @@ struct GroupMemberInfoView: View {
await MainActor.run { await MainActor.run {
_ = chatModel.upsertGroupMember(groupInfo, updatedMember) _ = chatModel.upsertGroupMember(groupInfo, updatedMember)
} }
} catch let error { } catch let error {
newRole = mem.memberRole newRole = mem.memberRole
logger.error("apiMemberRole error: \(responseError(error))") logger.error("apiMemberRole error: \(responseError(error))")
@@ -739,6 +803,7 @@ struct GroupMemberInfoView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
GroupMemberInfoView( GroupMemberInfoView(
groupInfo: GroupInfo.sampleData, groupInfo: GroupInfo.sampleData,
chat: Chat.sampleData,
groupMember: GMember.sampleData groupMember: GMember.sampleData
) )
} }
@@ -20,9 +20,10 @@ struct GroupPreferencesView: View {
@EnvironmentObject var chatModel: ChatModel @EnvironmentObject var chatModel: ChatModel
@EnvironmentObject var theme: AppTheme @EnvironmentObject var theme: AppTheme
@Binding var groupInfo: GroupInfo @Binding var groupInfo: GroupInfo
@State var preferences: FullGroupPreferences @Binding var preferences: FullGroupPreferences
@State var currentPreferences: FullGroupPreferences var currentPreferences: FullGroupPreferences
let creatingGroup: Bool let creatingGroup: Bool
let savePreferences: () -> Void
@State private var showSaveDialogue = false @State private var showSaveDialogue = false
var body: some View { var body: some View {
@@ -38,7 +39,7 @@ struct GroupPreferencesView: View {
featureSection(.simplexLinks, $preferences.simplexLinks.enable, $preferences.simplexLinks.role) featureSection(.simplexLinks, $preferences.simplexLinks.enable, $preferences.simplexLinks.role)
featureSection(.history, $preferences.history.enable) featureSection(.history, $preferences.history.enable)
if groupInfo.canEdit { if groupInfo.isOwner {
Section { Section {
Button("Reset") { preferences = currentPreferences } Button("Reset") { preferences = currentPreferences }
Button(saveText) { savePreferences() } Button(saveText) { savePreferences() }
@@ -68,7 +69,10 @@ struct GroupPreferencesView: View {
savePreferences() savePreferences()
dismiss() dismiss()
} }
Button("Exit without saving") { dismiss() } Button("Exit without saving") {
preferences = currentPreferences
dismiss()
}
} }
} }
@@ -77,7 +81,7 @@ struct GroupPreferencesView: View {
let color: Color = enableFeature.wrappedValue == .on ? .green : theme.colors.secondary let color: Color = enableFeature.wrappedValue == .on ? .green : theme.colors.secondary
let icon = enableFeature.wrappedValue == .on ? feature.iconFilled : feature.icon let icon = enableFeature.wrappedValue == .on ? feature.iconFilled : feature.icon
let timedOn = feature == .timedMessages && enableFeature.wrappedValue == .on let timedOn = feature == .timedMessages && enableFeature.wrappedValue == .on
if groupInfo.canEdit { if groupInfo.isOwner {
let enable = Binding( let enable = Binding(
get: { enableFeature.wrappedValue == .on }, get: { enableFeature.wrappedValue == .on },
set: { on, _ in enableFeature.wrappedValue = on ? .on : .off } set: { on, _ in enableFeature.wrappedValue = on ? .on : .off }
@@ -123,7 +127,7 @@ struct GroupPreferencesView: View {
} }
} }
} footer: { } footer: {
Text(feature.enableDescription(enableFeature.wrappedValue, groupInfo.canEdit)) Text(feature.enableDescription(enableFeature.wrappedValue, groupInfo.isOwner))
.foregroundColor(theme.colors.secondary) .foregroundColor(theme.colors.secondary)
} }
.onChange(of: enableFeature.wrappedValue) { enabled in .onChange(of: enableFeature.wrappedValue) { enabled in
@@ -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 { struct GroupPreferencesView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
GroupPreferencesView( GroupPreferencesView(
groupInfo: Binding.constant(GroupInfo.sampleData), groupInfo: Binding.constant(GroupInfo.sampleData),
preferences: FullGroupPreferences.sampleData, preferences: Binding.constant(FullGroupPreferences.sampleData),
currentPreferences: FullGroupPreferences.sampleData, currentPreferences: FullGroupPreferences.sampleData,
creatingGroup: false creatingGroup: false,
savePreferences: {}
) )
} }
} }
@@ -23,7 +23,7 @@ struct GroupWelcomeView: View {
var body: some View { var body: some View {
VStack { VStack {
if groupInfo.canEdit { if groupInfo.isOwner && groupInfo.businessChat == nil {
editorView() editorView()
.modifier(BackButton(disabled: Binding.constant(false)) { .modifier(BackButton(disabled: Binding.constant(false)) {
if welcomeTextUnchanged() { if welcomeTextUnchanged() {
@@ -404,8 +404,9 @@ struct ChatListNavLink: View {
} }
private func deleteGroupAlert(_ groupInfo: GroupInfo) -> Alert { private func deleteGroupAlert(_ groupInfo: GroupInfo) -> Alert {
Alert( let label: LocalizedStringKey = groupInfo.businessChat == nil ? "Delete group?" : "Delete chat?"
title: Text("Delete group?"), return Alert(
title: Text(label),
message: deleteGroupAlertMessage(groupInfo), message: deleteGroupAlertMessage(groupInfo),
primaryButton: .destructive(Text("Delete")) { primaryButton: .destructive(Text("Delete")) {
Task { await deleteChat(chat) } Task { await deleteChat(chat) }
@@ -414,10 +415,6 @@ struct ChatListNavLink: View {
) )
} }
private func deleteGroupAlertMessage(_ groupInfo: GroupInfo) -> Text {
groupInfo.membership.memberCurrent ? Text("Group will be deleted for all members - this cannot be undone!") : Text("Group will be deleted for you - this cannot be undone!")
}
private func clearChatAlert() -> Alert { private func clearChatAlert() -> Alert {
Alert( Alert(
title: Text("Clear conversation?"), title: Text("Clear conversation?"),
@@ -441,9 +438,15 @@ struct ChatListNavLink: View {
} }
private func leaveGroupAlert(_ groupInfo: GroupInfo) -> Alert { private func leaveGroupAlert(_ groupInfo: GroupInfo) -> Alert {
Alert( let titleLabel: LocalizedStringKey = groupInfo.businessChat == nil ? "Leave group?" : "Leave chat?"
title: Text("Leave group?"), let messageLabel: LocalizedStringKey = (
message: Text("You will stop receiving messages from this group. Chat history will be preserved."), groupInfo.businessChat == nil
? "You will stop receiving messages from this group. Chat history will be preserved."
: "You will stop receiving messages from this chat. Chat history will be preserved."
)
return Alert(
title: Text(titleLabel),
message: Text(messageLabel),
primaryButton: .destructive(Text("Leave")) { primaryButton: .destructive(Text("Leave")) {
Task { await leaveGroup(groupInfo.groupId) } Task { await leaveGroup(groupInfo.groupId) }
}, },
@@ -587,7 +587,7 @@ struct SMPStatsView: View {
} header: { } header: {
Text("Statistics") Text("Statistics")
} footer: { } 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: { } header: {
Text("Statistics") Text("Statistics")
} footer: { } 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.")
} }
} }
} }
@@ -916,11 +916,17 @@ func planAndConnectAlert(_ alert: PlanAndConnectAlert, dismiss: Bool, cleanup: (
) )
case let .groupLinkConnecting(_, groupInfo): case let .groupLinkConnecting(_, groupInfo):
if let groupInfo = groupInfo { if let groupInfo = groupInfo {
return Alert( return groupInfo.businessChat == nil
? Alert(
title: Text("Group already exists!"), title: Text("Group already exists!"),
message: Text("You are already joining the group \(groupInfo.displayName)."), message: Text("You are already joining the group \(groupInfo.displayName)."),
dismissButton: .default(Text("OK")) { cleanup?() } dismissButton: .default(Text("OK")) { cleanup?() }
) )
: Alert(
title: Text("Chat already exists!"),
message: Text("You are already connecting to \(groupInfo.displayName)."),
dismissButton: .default(Text("OK")) { cleanup?() }
)
} else { } else {
return Alert( return Alert(
title: Text("Already joining the group!"), title: Text("Already joining the group!"),
@@ -1237,10 +1243,15 @@ func contactAlreadyConnectingAlert(_ contact: Contact) -> Alert {
} }
func groupAlreadyExistsAlert(_ groupInfo: GroupInfo) -> Alert { func groupAlreadyExistsAlert(_ groupInfo: GroupInfo) -> Alert {
mkAlert( groupInfo.businessChat == nil
? mkAlert(
title: "Group already exists", title: "Group already exists",
message: "You are already in group \(groupInfo.displayName)." message: "You are already in group \(groupInfo.displayName)."
) )
: mkAlert(
title: "Chat already exists",
message: "You are already connected with \(groupInfo.displayName)."
)
} }
enum ConnReqType: Equatable { enum ConnReqType: Equatable {
@@ -62,7 +62,6 @@ struct ChooseServerOperators: View {
var onboarding: Bool var onboarding: Bool
@State private var serverOperators: [ServerOperator] = [] @State private var serverOperators: [ServerOperator] = []
@State private var selectedOperatorIds = Set<Int64>() @State private var selectedOperatorIds = Set<Int64>()
@State private var reviewConditionsNavLinkActive = false
@State private var sheetItem: ChooseServerOperatorsSheet? = nil @State private var sheetItem: ChooseServerOperatorsSheet? = nil
@State private var notificationsModeNavLinkActive = false @State private var notificationsModeNavLinkActive = false
@State private var justOpened = true @State private var justOpened = true
@@ -79,7 +78,7 @@ struct ChooseServerOperators: View {
.frame(maxWidth: .infinity, alignment: .center) .frame(maxWidth: .infinity, alignment: .center)
if onboarding { if onboarding {
title.padding(.top, 50) title.padding(.top, 25)
} else { } else {
title title
} }
@@ -92,11 +91,14 @@ struct ChooseServerOperators: View {
ForEach(serverOperators) { srvOperator in ForEach(serverOperators) { srvOperator in
operatorCheckView(srvOperator) operatorCheckView(srvOperator)
} }
Text("You can configure servers via settings.") VStack {
.font(.footnote) Text("SimpleX Chat and Flux made an agreement to include Flux-operated servers into the app.").padding(.bottom, 8)
.multilineTextAlignment(.center) Text("You can configure servers via settings.")
.frame(maxWidth: .infinity, alignment: .center) }
.padding(.horizontal, 32) .font(.footnote)
.multilineTextAlignment(.center)
.frame(maxWidth: .infinity, alignment: .center)
.padding(.horizontal, 16)
Spacer() Spacer()
@@ -166,8 +168,9 @@ struct ChooseServerOperators: View {
.modifier(ThemedBackground(grouped: true)) .modifier(ThemedBackground(grouped: true))
} }
} }
.frame(maxHeight: .infinity, alignment: .top)
} }
.frame(maxHeight: .infinity) .frame(maxHeight: .infinity, alignment: .top)
.padding(onboarding ? 25 : 16) .padding(onboarding ? 25 : 16)
} }
@@ -214,23 +217,15 @@ struct ChooseServerOperators: View {
} }
private func reviewConditionsButton() -> some View { private func reviewConditionsButton() -> some View {
ZStack { NavigationLink("Review conditions") {
Button { reviewConditionsView()
reviewConditionsNavLinkActive = true .navigationTitle("Conditions of use")
} label: { .navigationBarTitleDisplayMode(.large)
Text("Review conditions") .toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
} .modifier(ThemedBackground(grouped: true))
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
.disabled(selectedOperatorIds.isEmpty)
NavigationLink(isActive: $reviewConditionsNavLinkActive) {
reviewConditionsDestinationView()
} label: {
EmptyView()
}
.frame(width: 1, height: 1)
.hidden()
} }
.buttonStyle(OnboardingButtonStyle(isDisabled: selectedOperatorIds.isEmpty))
.disabled(selectedOperatorIds.isEmpty)
} }
private func setOperatorsButton() -> some View { private func setOperatorsButton() -> some View {
@@ -309,21 +304,13 @@ struct ChooseServerOperators: View {
.modifier(ThemedBackground()) .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 { @ViewBuilder private func reviewConditionsView() -> some View {
let operatorsWithConditionsAccepted = ChatModel.shared.conditions.serverOperators.filter { $0.conditionsAcceptance.conditionsAccepted } let operatorsWithConditionsAccepted = ChatModel.shared.conditions.serverOperators.filter { $0.conditionsAcceptance.conditionsAccepted }
let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted } let acceptForOperators = selectedOperators.filter { !$0.conditionsAcceptance.conditionsAccepted }
VStack(alignment: .leading, spacing: 20) { VStack(alignment: .leading, spacing: 20) {
if !operatorsWithConditionsAccepted.isEmpty { 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("Same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.") Text("The same conditions will apply to operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.")
} else { } else {
Text("Conditions will be accepted for operator(s): **\(acceptForOperators.map { $0.legalName_ }.joined(separator: ", "))**.") 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")! let operatorsPostLink = URL(string: "https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html")!
struct ChooseServerOperatorsInfoView: View { struct ChooseServerOperatorsInfoView: View {
@Environment(\.colorScheme) var colorScheme: ColorScheme
@EnvironmentObject var theme: AppTheme
var body: some View { var body: some View {
VStack(alignment: .leading) { NavigationView {
Text("Server operators") List {
.font(.largeTitle) VStack(alignment: .leading, spacing: 12) {
.bold() Text("The app protects your privacy by using different operators in each conversation.")
.padding(.vertical) Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.")
ScrollView { Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.")
VStack(alignment: .leading) { }
Group { .fixedSize(horizontal: false, vertical: true)
Text("The app protects your privacy by using different operators in each conversation.") .listRowBackground(Color.clear)
Text("When more than one operator is enabled, none of them has metadata to learn who communicates with whom.") .listRowSeparator(.hidden)
Text("For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server.") .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) .multilineTextAlignment(.center)
} }
.frame(maxWidth: .infinity) // Ensures it takes up the full width .frame(maxWidth: .infinity) // Ensures it takes up the full width
.padding(.top, 25)
.padding(.horizontal, 10) .padding(.horizontal, 10)
HStack { HStack {
@@ -19,10 +19,10 @@ struct SetNotificationsMode: View {
GeometryReader { g in GeometryReader { g in
ScrollView { ScrollView {
VStack(alignment: .center, spacing: 20) { VStack(alignment: .center, spacing: 20) {
Text("Push Notifications") Text("Push notifications")
.font(.largeTitle) .font(.largeTitle)
.bold() .bold()
.padding(.top, 50) .padding(.top, 25)
infoText() infoText()
@@ -119,6 +119,7 @@ struct NtfModeSelector: View {
Text(ntfModeShortDescription(mode)) Text(ntfModeShortDescription(mode))
.lineLimit(2) .lineLimit(2)
.font(.callout) .font(.callout)
.fixedSize(horizontal: false, vertical: true)
} }
} }
.padding(.vertical, 12) .padding(.vertical, 12)
@@ -520,14 +520,19 @@ private let versionDescriptions: [VersionDescription] = [
] ]
), ),
VersionDescription( VersionDescription(
version: "v6.2 (beta.1)", version: "v6.2",
post: URL(string: "https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html"), post: URL(string: "https://simplex.chat/blog/20241210-simplex-network-v6-2-servers-by-flux-business-chats.html"),
features: [ features: [
.view(FeatureView( .view(FeatureView(
icon: nil, icon: nil,
title: "Network decentralization", title: "Network decentralization",
view: { NewOperatorsView() } view: { NewOperatorsView() }
)), )),
.feature(Description(
icon: "briefcase",
title: "Business chats",
description: "Privacy for your customers."
)),
.feature(Description( .feature(Description(
icon: "bolt", icon: "bolt",
title: "More reliable notifications", title: "More reliable notifications",
@@ -65,6 +65,7 @@ extension AppSettings {
if let val = uiCurrentThemeIds { currentThemeIdsDefault.set(val) } if let val = uiCurrentThemeIds { currentThemeIdsDefault.set(val) }
if let val = uiThemes { themeOverridesDefault.set(val.skipDuplicates()) } if let val = uiThemes { themeOverridesDefault.set(val.skipDuplicates()) }
if let val = oneHandUI { groupDefaults.setValue(val, forKey: GROUP_DEFAULT_ONE_HAND_UI) } if let val = oneHandUI { groupDefaults.setValue(val, forKey: GROUP_DEFAULT_ONE_HAND_UI) }
if let val = chatBottomBar { groupDefaults.setValue(val, forKey: GROUP_DEFAULT_CHAT_BOTTOM_BAR) }
} }
public static var current: AppSettings { public static var current: AppSettings {
@@ -100,6 +101,7 @@ extension AppSettings {
c.uiCurrentThemeIds = currentThemeIdsDefault.get() c.uiCurrentThemeIds = currentThemeIdsDefault.get()
c.uiThemes = themeOverridesDefault.get() c.uiThemes = themeOverridesDefault.get()
c.oneHandUI = groupDefaults.bool(forKey: GROUP_DEFAULT_ONE_HAND_UI) c.oneHandUI = groupDefaults.bool(forKey: GROUP_DEFAULT_ONE_HAND_UI)
c.chatBottomBar = groupDefaults.bool(forKey: GROUP_DEFAULT_CHAT_BOTTOM_BAR)
return c return c
} }
} }
@@ -331,9 +331,12 @@ struct OperatorInfoView: View {
Text(d) Text(d)
} }
} }
Link(serverOperator.info.website.absoluteString, destination: serverOperator.info.website)
} }
Section { if let selfhost = serverOperator.info.selfhost {
Link("\(serverOperator.info.website)", destination: URL(string: serverOperator.info.website)!) Section {
Link(selfhost.text, destination: selfhost.link)
}
} }
} }
} }
@@ -421,7 +424,6 @@ struct SingleOperatorUsageConditionsView: View {
@Binding var userServers: [UserOperatorServers] @Binding var userServers: [UserOperatorServers]
@Binding var serverErrors: [UserServersError] @Binding var serverErrors: [UserServersError]
var operatorIndex: Int var operatorIndex: Int
@State private var usageConditionsNavLinkActive: Bool = false
var body: some View { var body: some View {
viewBody() 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 // 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) { VStack(alignment: .leading, spacing: 20) {
Group { viewHeader()
viewHeader() ConditionsTextView()
ConditionsTextView()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
} }
.padding(.bottom)
.padding(.bottom)
.padding(.horizontal)
.frame(maxHeight: .infinity) .frame(maxHeight: .infinity)
} else if !operatorsWithConditionsAccepted.isEmpty { } else if !operatorsWithConditionsAccepted.isEmpty {
NavigationView { NavigationView {
VStack(alignment: .leading, spacing: 20) { VStack(alignment: .leading, spacing: 20) {
Group { viewHeader()
viewHeader() Text("Conditions are already accepted for these operator(s): **\(operatorsWithConditionsAccepted.map { $0.legalName_ }.joined(separator: ", "))**.")
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_)**.")
Text("Same conditions will apply to operator **\(userServers[operatorIndex].operator_.legalName_)**.") conditionsAppliedToOtherOperatorsText()
conditionsAppliedToOtherOperatorsText() Spacer()
usageConditionsNavLinkButton()
Spacer() acceptConditionsButton()
usageConditionsNavLinkButton()
acceptConditionsButton()
.padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
} }
.padding(.bottom)
.padding(.bottom)
.padding(.horizontal)
.frame(maxHeight: .infinity) .frame(maxHeight: .infinity)
} }
} else { } else {
VStack(alignment: .leading, spacing: 20) { VStack(alignment: .leading, spacing: 20) {
Group { viewHeader()
viewHeader() Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.")
Text("To use the servers of **\(userServers[operatorIndex].operator_.legalName_)**, accept conditions of use.") conditionsAppliedToOtherOperatorsText()
conditionsAppliedToOtherOperatorsText() ConditionsTextView()
ConditionsTextView() acceptConditionsButton()
acceptConditionsButton() .padding(.bottom)
.padding(.bottom) .padding(.bottom)
.padding(.bottom)
}
.padding(.horizontal)
} }
.padding(.horizontal)
.frame(maxHeight: .infinity) .frame(maxHeight: .infinity)
} }
@@ -545,31 +540,16 @@ struct SingleOperatorUsageConditionsView: View {
} }
private func usageConditionsNavLinkButton() -> some View { private func usageConditionsNavLinkButton() -> some View {
ZStack { NavigationLink("View conditions") {
Button { ConditionsTextView()
usageConditionsNavLinkActive = true .padding()
} label: { .navigationTitle("Conditions of use")
Text("View conditions") .navigationBarTitleDisplayMode(.large)
} .toolbar { ToolbarItem(placement: .navigationBarTrailing, content: conditionsLinkButton) }
.modifier(ThemedBackground(grouped: true))
NavigationLink(isActive: $usageConditionsNavLinkActive) {
usageConditionsDestinationView()
} label: {
EmptyView()
}
.frame(width: 1, height: 1)
.hidden()
} }
} .font(.callout)
.frame(maxWidth: .infinity, alignment: .center)
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))
} }
} }
@@ -16,6 +16,8 @@ struct UserAddressView: View {
@EnvironmentObject var theme: AppTheme @EnvironmentObject var theme: AppTheme
@State var shareViaProfile = false @State var shareViaProfile = false
@State var autoCreate = false @State var autoCreate = false
@State private var aas = AutoAcceptState()
@State private var savedAAS = AutoAcceptState()
@State private var showMailView = false @State private var showMailView = false
@State private var mailViewResult: Result<MFMailComposeResult, Error>? = nil @State private var mailViewResult: Result<MFMailComposeResult, Error>? = nil
@State private var alert: UserAddressAlert? @State private var alert: UserAddressAlert?
@@ -62,6 +64,10 @@ struct UserAddressView: View {
List { List {
if let userAddress = chatModel.userAddress { if let userAddress = chatModel.userAddress {
existingAddressView(userAddress) existingAddressView(userAddress)
.onAppear {
aas = AutoAcceptState(userAddress: userAddress)
savedAAS = aas
}
} else { } else {
Section { Section {
createAddressButton() createAddressButton()
@@ -135,10 +141,25 @@ struct UserAddressView: View {
// if MFMailComposeViewController.canSendMail() { // if MFMailComposeViewController.canSendMail() {
// shareViaEmailButton(userAddress) // shareViaEmailButton(userAddress)
// } // }
settingsRow("briefcase", color: theme.colors.secondary) {
Toggle("Business address", isOn: $aas.business)
.onChange(of: aas.business) { ba in
if ba {
aas.enable = true
aas.incognito = false
}
saveAAS($aas, $savedAAS)
}
}
addressSettingsButton(userAddress) addressSettingsButton(userAddress)
} header: { } header: {
Text("For social media") Text("For social media")
.foregroundColor(theme.colors.secondary) .foregroundColor(theme.colors.secondary)
} footer: {
if aas.business {
Text("Add your team members to the conversations.")
.foregroundColor(theme.colors.secondary)
}
} }
Section { Section {
@@ -276,11 +297,13 @@ struct UserAddressView: View {
private struct AutoAcceptState: Equatable { private struct AutoAcceptState: Equatable {
var enable = false var enable = false
var incognito = false var incognito = false
var business = false
var welcomeText = "" var welcomeText = ""
init(enable: Bool = false, incognito: Bool = false, welcomeText: String = "") { init(enable: Bool = false, incognito: Bool = false, business: Bool = false, welcomeText: String = "") {
self.enable = enable self.enable = enable
self.incognito = incognito self.incognito = incognito
self.business = business
self.welcomeText = welcomeText self.welcomeText = welcomeText
} }
@@ -288,6 +311,7 @@ private struct AutoAcceptState: Equatable {
if let aa = userAddress.autoAccept { if let aa = userAddress.autoAccept {
enable = true enable = true
incognito = aa.acceptIncognito incognito = aa.acceptIncognito
business = aa.businessAddress
if let msg = aa.autoReply { if let msg = aa.autoReply {
welcomeText = msg.text welcomeText = msg.text
} else { } else {
@@ -296,6 +320,7 @@ private struct AutoAcceptState: Equatable {
} else { } else {
enable = false enable = false
incognito = false incognito = false
business = false
welcomeText = "" welcomeText = ""
} }
} }
@@ -305,7 +330,7 @@ private struct AutoAcceptState: Equatable {
var autoReply: MsgContent? = nil var autoReply: MsgContent? = nil
let s = welcomeText.trimmingCharacters(in: .whitespacesAndNewlines) let s = welcomeText.trimmingCharacters(in: .whitespacesAndNewlines)
if s != "" { autoReply = .text(s) } if s != "" { autoReply = .text(s) }
return AutoAccept(acceptIncognito: incognito, autoReply: autoReply) return AutoAccept(businessAddress: business, acceptIncognito: incognito, autoReply: autoReply)
} }
return nil return nil
} }
@@ -355,7 +380,7 @@ struct UserAddressSettingsView: View {
title: NSLocalizedString("Auto-accept settings", comment: "alert title"), title: NSLocalizedString("Auto-accept settings", comment: "alert title"),
message: NSLocalizedString("Settings were changed.", comment: "alert message"), message: NSLocalizedString("Settings were changed.", comment: "alert message"),
buttonTitle: NSLocalizedString("Save", comment: "alert button"), buttonTitle: NSLocalizedString("Save", comment: "alert button"),
buttonAction: saveAAS, buttonAction: { saveAAS($aas, $savedAAS) },
cancelButton: true cancelButton: true
) )
} }
@@ -373,7 +398,7 @@ struct UserAddressSettingsView: View {
List { List {
Section { Section {
shareWithContactsButton() shareWithContactsButton()
autoAcceptToggle() autoAcceptToggle().disabled(aas.business)
} }
if aas.enable { if aas.enable {
@@ -443,14 +468,16 @@ struct UserAddressSettingsView: View {
settingsRow("checkmark", color: theme.colors.secondary) { settingsRow("checkmark", color: theme.colors.secondary) {
Toggle("Auto-accept", isOn: $aas.enable) Toggle("Auto-accept", isOn: $aas.enable)
.onChange(of: aas.enable) { _ in .onChange(of: aas.enable) { _ in
saveAAS() saveAAS($aas, $savedAAS)
} }
} }
} }
private func autoAcceptSection() -> some View { private func autoAcceptSection() -> some View {
Section { Section {
acceptIncognitoToggle() if !aas.business {
acceptIncognitoToggle()
}
welcomeMessageEditor() welcomeMessageEditor()
saveAASButton() saveAASButton()
.disabled(aas == savedAAS) .disabled(aas == savedAAS)
@@ -490,22 +517,24 @@ struct UserAddressSettingsView: View {
private func saveAASButton() -> some View { private func saveAASButton() -> some View {
Button { Button {
keyboardVisible = false keyboardVisible = false
saveAAS() saveAAS($aas, $savedAAS)
} label: { } label: {
Text("Save") Text("Save")
} }
} }
}
private func saveAAS() { private func saveAAS(_ aas: Binding<AutoAcceptState>, _ savedAAS: Binding<AutoAcceptState>) {
Task { Task {
do { do {
if let address = try await userAddressAutoAccept(aas.autoAccept) { if let address = try await userAddressAutoAccept(aas.wrappedValue.autoAccept) {
await MainActor.run {
ChatModel.shared.userAddress = address ChatModel.shared.userAddress = address
savedAAS = aas savedAAS.wrappedValue = aas.wrappedValue
} }
} catch let error {
logger.error("userAddressAutoAccept error: \(responseError(error))")
} }
} catch let error {
logger.error("userAddressAutoAccept error: \(responseError(error))")
} }
} }
} }
@@ -197,7 +197,7 @@ struct UserProfilesView: View {
action() action()
} else { } else {
authenticate( authenticate(
reason: NSLocalizedString("Change user profiles", comment: "authentication reason") reason: NSLocalizedString("Change chat profiles", comment: "authentication reason")
) { laResult in ) { laResult in
switch laResult { switch laResult {
case .success, .unavailable: case .success, .unavailable:
@@ -1043,8 +1043,8 @@
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1059,8 +1059,8 @@
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1423,16 +1423,16 @@
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1620,8 +1620,8 @@
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -2855,8 +2855,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -566,6 +566,10 @@
<target>За SimpleX Chat</target> <target>За SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -618,6 +622,10 @@
<target>Добавете адрес към вашия профил, така че вашите контакти да могат да го споделят с други хора. Актуализацията на профила ще бъде изпратена до вашите контакти.</target> <target>Добавете адрес към вашия профил, така че вашите контакти да могат да го споделят с други хора. Актуализацията на профила ще бъде изпратена до вашите контакти.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Добави профил</target> <target>Добави профил</target>
@@ -633,6 +641,10 @@
<target>Добави сървъри чрез сканиране на QR кодове.</target> <target>Добави сървъри чрез сканиране на QR кодове.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Добави към друго устройство</target> <target>Добави към друго устройство</target>
@@ -643,6 +655,10 @@
<target>Добави съобщение при посрещане</target> <target>Добави съобщение при посрещане</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -715,8 +731,8 @@
<target>Всички данни се изтриват при въвеждане.</target> <target>Всички данни се изтриват при въвеждане.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1183,6 +1199,14 @@
<target>Български, финландски, тайландски и украински - благодарение на потребителите и [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>Български, финландски, тайландски и украински - благодарение на потребителите и [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Чрез чат профил (по подразбиране) или [чрез връзка](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА).</target> <target>Чрез чат профил (по подразбиране) или [чрез връзка](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА).</target>
@@ -1268,6 +1292,10 @@
<target>Промени</target> <target>Промени</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Промяна на паролата на базата данни?</target> <target>Промяна на паролата на базата данни?</target>
@@ -1314,9 +1342,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1388,6 +1424,14 @@
<source>Chat theme</source> <source>Chat theme</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Чатове</target> <target>Чатове</target>
@@ -1493,8 +1537,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2098,6 +2142,10 @@ This is your own one-time link!</source>
<target>Изтрий и уведоми контакт</target> <target>Изтрий и уведоми контакт</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Изтрий чат профила</target> <target>Изтрий чат профила</target>
@@ -2108,6 +2156,10 @@ This is your own one-time link!</source>
<target>Изтриване на чат профила?</target> <target>Изтриване на чат профила?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Изтрий връзката</target> <target>Изтрий връзката</target>
@@ -2360,8 +2412,12 @@ This is your own one-time link!</source>
<target>Лични съобщения</target> <target>Лични съобщения</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Личните съобщения между членовете са забранени в тази група.</target> <target>Личните съобщения между членовете са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2399,8 +2455,8 @@ This is your own one-time link!</source>
<target>Изчезващите съобщения са забранени в този чат.</target> <target>Изчезващите съобщения са забранени в този чат.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Изчезващите съобщения са забранени в тази група.</target> <target>Изчезващите съобщения са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3222,8 +3278,8 @@ This is your own one-time link!</source>
<target>Файлове и медия</target> <target>Файлове и медия</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Файловете и медията са забранени в тази група.</target> <target>Файловете и медията са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3478,41 +3534,6 @@ Error: %2$@</source>
<target>Групови линкове</target> <target>Групови линкове</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Членовете на групата могат да добавят реакции към съобщенията.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>Членовете на групата могат да изпращат SimpleX линкове.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Членовете на групата могат да изпращат лични съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Членовете на групата могат да изпращат изчезващи съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Членовете на групата могат да изпращат файлове и медия.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Членовете на групата могат да изпращат гласови съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Групово съобщение:</target> <target>Групово съобщение:</target>
@@ -3905,6 +3926,10 @@ More improvements are coming soon!</source>
<target>Покани членове</target> <target>Покани членове</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Покани в групата</target> <target>Покани в групата</target>
@@ -3920,8 +3945,8 @@ More improvements are coming soon!</source>
<target>Необратимото изтриване на съобщения е забранено в този чат.</target> <target>Необратимото изтриване на съобщения е забранено в този чат.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Необратимото изтриване на съобщения е забранено в тази група.</target> <target>Необратимото изтриване на съобщения е забранено в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4061,6 +4086,14 @@ This is your link for group %@!</source>
<target>Напусни</target> <target>Напусни</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Напусни групата</target> <target>Напусни групата</target>
@@ -4188,6 +4221,10 @@ This is your link for group %@!</source>
<source>Member inactive</source> <source>Member inactive</source>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Ролята на члена ще бъде променена на "%@". Всички членове на групата ще бъдат уведомени.</target> <target>Ролята на члена ще бъде променена на "%@". Всички членове на групата ще бъдат уведомени.</target>
@@ -4198,11 +4235,50 @@ This is your link for group %@!</source>
<target>Ролята на члена ще бъде променена на "%@". Членът ще получи нова покана.</target> <target>Ролята на члена ще бъде променена на "%@". Членът ще получи нова покана.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Членът ще бъде премахнат от групата - това не може да бъде отменено!</target> <target>Членът ще бъде премахнат от групата - това не може да бъде отменено!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Членовете на групата могат да добавят реакции към съобщенията.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Членовете на групата могат да изпращат SimpleX линкове.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Членовете на групата могат да изпращат лични съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Членовете на групата могат да изпращат изчезващи съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Членовете на групата могат да изпращат файлове и медия.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Членовете на групата могат да изпращат гласови съобщения.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4248,8 +4324,8 @@ This is your link for group %@!</source>
<target>Реакциите на съобщения са забранени в този чат.</target> <target>Реакциите на съобщения са забранени в този чат.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Реакциите на съобщения са забранени в тази група.</target> <target>Реакциите на съобщения са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4740,6 +4816,10 @@ Requires compatible VPN.</source>
<target>Няма се използват Onion хостове.</target> <target>Няма се използват Onion хостове.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Само потребителските устройства съхраняват потребителски профили, контакти, групи и съобщения, изпратени с **двуслойно криптиране от край до край**.</target> <target>Само потребителските устройства съхраняват потребителски профили, контакти, групи и съобщения, изпратени с **двуслойно криптиране от край до край**.</target>
@@ -5118,6 +5198,10 @@ Error: %@</source>
<target>Поверителност и сигурност</target> <target>Поверителност и сигурност</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Поверителността преосмислена</target> <target>Поверителността преосмислена</target>
@@ -5264,10 +5348,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Push известия</target> <target>Push известия</target>
@@ -5672,14 +5752,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>По-безопасни групи</target> <target>По-безопасни групи</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Запази</target> <target>Запази</target>
@@ -5694,7 +5766,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Запази и уведоми контакта</target> <target>Запази и уведоми контакта</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5728,7 +5800,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Запази настройките?</target> <target>Запази настройките?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6308,6 +6380,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Адрес</target> <target>SimpleX Адрес</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Сигурността на SimpleX Chat беше одитирана от Trail of Bits.</target> <target>Сигурността на SimpleX Chat беше одитирана от Trail of Bits.</target>
@@ -6366,8 +6442,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX линкове</target> <target>SimpleX линкове</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>SimpleX линкове са забранени в тази група.</target> <target>SimpleX линкове са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -6770,6 +6846,14 @@ It can happen because of some bug or when the connection is compromised.</source
<target>Профилът се споделя само с вашите контакти.</target> <target>Профилът се споделя само с вашите контакти.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7403,8 +7487,8 @@ To connect, please ask your contact to create another connection link and check
<target>Гласовите съобщения са забранени в този чат.</target> <target>Гласовите съобщения са забранени в този чат.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Гласовите съобщения са забранени в тази група.</target> <target>Гласовите съобщения са забранени в тази група.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7590,6 +7674,10 @@ To connect, please ask your contact to create another connection link and check
<target>Вече сте вече свързани с %@.</target> <target>Вече сте вече свързани с %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Вече се свързвате с %@.</target> <target>Вече се свързвате с %@.</target>
@@ -7854,6 +7942,10 @@ Repeat connection request?</source>
<target>Все още ще получавате обаждания и известия от заглушени профили, когато са активни.</target> <target>Все още ще получавате обаждания и известия от заглушени профили, когато са активни.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Ще спрете да получавате съобщения от тази група. Историята на чата ще бъде запазена.</target> <target>Ще спрете да получавате съобщения от тази група. Историята на чата ще бъде запазена.</target>
@@ -8034,6 +8126,10 @@ Repeat connection request?</source>
<target>обаждането прието</target> <target>обаждането прието</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>админ</target> <target>админ</target>
@@ -8220,7 +8316,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>свързване…</target> <target>свързване…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8704,6 +8800,10 @@ Repeat connection request?</source>
<target>ви острани</target> <target>ви острани</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>запазено</target> <target>запазено</target>
@@ -1247,8 +1247,8 @@
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1267,8 +1267,8 @@
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappears at" xml:space="preserve"> <trans-unit id="Disappears at" xml:space="preserve">
@@ -1747,24 +1747,24 @@
<source>Group links</source> <source>Group links</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve"> <trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source> <source>Members can add message reactions.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages." xml:space="preserve"> <trans-unit id="Group members can irreversibly delete sent messages." xml:space="preserve">
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -2016,8 +2016,8 @@
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -2203,8 +2203,8 @@
<source>Message reactions are prohibited in this chat.</source> <source>Message reactions are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
@@ -3720,8 +3720,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -548,6 +548,10 @@
<target>O SimpleX chat</target> <target>O SimpleX chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -600,6 +604,10 @@
<target>Přidejte adresu do svého profilu, aby ji vaše kontakty mohly sdílet s dalšími lidmi. Aktualizace profilu bude zaslána vašim kontaktům.</target> <target>Přidejte adresu do svého profilu, aby ji vaše kontakty mohly sdílet s dalšími lidmi. Aktualizace profilu bude zaslána vašim kontaktům.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Přidat profil</target> <target>Přidat profil</target>
@@ -615,6 +623,10 @@
<target>Přidejte servery skenováním QR kódů.</target> <target>Přidejte servery skenováním QR kódů.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Přidat do jiného zařízení</target> <target>Přidat do jiného zařízení</target>
@@ -625,6 +637,10 @@
<target>Přidat uvítací zprávu</target> <target>Přidat uvítací zprávu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -696,8 +712,8 @@
<target>Všechna data se při zadání vymažou.</target> <target>Všechna data se při zadání vymažou.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1145,6 +1161,14 @@
<target>Bulharský, finský, thajský a ukrajinský - díky uživatelům a [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>Bulharský, finský, thajský a ukrajinský - díky uživatelům a [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Podle chat profilu (výchozí) nebo [podle připojení](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>Podle chat profilu (výchozí) nebo [podle připojení](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1227,6 +1251,10 @@
<target>Změnit</target> <target>Změnit</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Změnit přístupovou frázi databáze?</target> <target>Změnit přístupovou frázi databáze?</target>
@@ -1273,9 +1301,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1345,6 +1381,14 @@
<source>Chat theme</source> <source>Chat theme</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Chaty</target> <target>Chaty</target>
@@ -1448,8 +1492,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2027,6 +2071,10 @@ This is your own one-time link!</source>
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Smazat chat profil</target> <target>Smazat chat profil</target>
@@ -2037,6 +2085,10 @@ This is your own one-time link!</source>
<target>Smazat chat profil?</target> <target>Smazat chat profil?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Smazat připojení</target> <target>Smazat připojení</target>
@@ -2285,8 +2337,12 @@ This is your own one-time link!</source>
<target>Přímé zprávy</target> <target>Přímé zprávy</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Přímé zprávy mezi členy jsou v této skupině zakázány.</target> <target>Přímé zprávy mezi členy jsou v této skupině zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2324,8 +2380,8 @@ This is your own one-time link!</source>
<target>Mizící zprávy jsou v tomto chatu zakázány.</target> <target>Mizící zprávy jsou v tomto chatu zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Mizící zprávy jsou v této skupině zakázány.</target> <target>Mizící zprávy jsou v této skupině zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3120,8 +3176,8 @@ This is your own one-time link!</source>
<target>Soubory a média</target> <target>Soubory a média</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Soubory a média jsou zakázány v této skupině.</target> <target>Soubory a média jsou zakázány v této skupině.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3365,40 +3421,6 @@ Error: %2$@</source>
<target>Odkazy na skupiny</target> <target>Odkazy na skupiny</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Členové skupin mohou přidávat reakce na zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Členové skupiny mohou posílat přímé zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Členové skupiny mohou posílat mizící zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Členové skupiny mohou posílat soubory a média.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Členové skupiny mohou posílat hlasové zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Skupinová zpráva:</target> <target>Skupinová zpráva:</target>
@@ -3776,6 +3798,10 @@ More improvements are coming soon!</source>
<target>Pozvat členy</target> <target>Pozvat členy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Pozvat do skupiny</target> <target>Pozvat do skupiny</target>
@@ -3791,8 +3817,8 @@ More improvements are coming soon!</source>
<target>Nevratné mazání zpráv je v tomto chatu zakázáno.</target> <target>Nevratné mazání zpráv je v tomto chatu zakázáno.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Nevratné mazání zpráv je v této skupině zakázáno.</target> <target>Nevratné mazání zpráv je v této skupině zakázáno.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3924,6 +3950,14 @@ This is your link for group %@!</source>
<target>Opustit</target> <target>Opustit</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Opustit skupinu</target> <target>Opustit skupinu</target>
@@ -4048,6 +4082,10 @@ This is your link for group %@!</source>
<source>Member inactive</source> <source>Member inactive</source>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Role člena se změní na "%@". Všichni členové skupiny budou upozorněni.</target> <target>Role člena se změní na "%@". Všichni členové skupiny budou upozorněni.</target>
@@ -4058,11 +4096,49 @@ This is your link for group %@!</source>
<target>Role člena se změní na "%@". Člen obdrží novou pozvánku.</target> <target>Role člena se změní na "%@". Člen obdrží novou pozvánku.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Člen bude odstraněn ze skupiny - toto nelze vzít zpět!</target> <target>Člen bude odstraněn ze skupiny - toto nelze vzít zpět!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Členové skupin mohou přidávat reakce na zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Členové skupiny mohou posílat přímé zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Členové skupiny mohou posílat mizící zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Členové skupiny mohou posílat soubory a média.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Členové skupiny mohou posílat hlasové zprávy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4108,8 +4184,8 @@ This is your link for group %@!</source>
<target>Reakce na zprávy jsou v tomto chatu zakázány.</target> <target>Reakce na zprávy jsou v tomto chatu zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Reakce na zprávy jsou v této skupině zakázány.</target> <target>Reakce na zprávy jsou v této skupině zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4581,6 +4657,10 @@ Vyžaduje povolení sítě VPN.</target>
<target>Onion hostitelé nebudou použiti.</target> <target>Onion hostitelé nebudou použiti.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Pouze klientská zařízení ukládají uživatelské profily, kontakty, skupiny a zprávy odeslané s **2vrstvým šifrováním typu end-to-end**.</target> <target>Pouze klientská zařízení ukládají uživatelské profily, kontakty, skupiny a zprávy odeslané s **2vrstvým šifrováním typu end-to-end**.</target>
@@ -4943,6 +5023,10 @@ Error: %@</source>
<target>Ochrana osobních údajů a zabezpečení</target> <target>Ochrana osobních údajů a zabezpečení</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Nové vymezení soukromí</target> <target>Nové vymezení soukromí</target>
@@ -5086,10 +5170,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Nabízená oznámení</target> <target>Nabízená oznámení</target>
@@ -5482,14 +5562,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Safer groups</source> <source>Safer groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Uložit</target> <target>Uložit</target>
@@ -5504,7 +5576,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Uložit a upozornit kontakt</target> <target>Uložit a upozornit kontakt</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5538,7 +5610,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Uložit předvolby?</target> <target>Uložit předvolby?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6106,6 +6178,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Adresa</target> <target>SimpleX Adresa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <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> <target>Zabezpečení SimpleX chatu bylo auditováno společností Trail of Bits.</target>
@@ -6164,8 +6240,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>Odkazy na SimpleX</target> <target>Odkazy na SimpleX</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
@@ -6558,6 +6634,14 @@ Může se to stát kvůli nějaké chybě, nebo pokud je spojení kompromitován
<target>Profil je sdílen pouze s vašimi kontakty.</target> <target>Profil je sdílen pouze s vašimi kontakty.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7162,8 +7246,8 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Hlasové zprávy jsou v tomto chatu zakázány.</target> <target>Hlasové zprávy jsou v tomto chatu zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Hlasové zprávy jsou v této skupině zakázány.</target> <target>Hlasové zprávy jsou v této skupině zakázány.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7338,6 +7422,10 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Již jste připojeni k %@.</target> <target>Již jste připojeni k %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7586,6 +7674,10 @@ Repeat connection request?</source>
<target>Stále budete přijímat volání a upozornění od umlčených profilů pokud budou aktivní.</target> <target>Stále budete přijímat volání a upozornění od umlčených profilů pokud budou aktivní.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Přestanete dostávat zprávy z této skupiny. Historie chatu bude zachována.</target> <target>Přestanete dostávat zprávy z této skupiny. Historie chatu bude zachována.</target>
@@ -7765,6 +7857,10 @@ Repeat connection request?</source>
<target>přijatý hovor</target> <target>přijatý hovor</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>správce</target> <target>správce</target>
@@ -7944,7 +8040,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>připojení…</target> <target>připojení…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8419,6 +8515,10 @@ Repeat connection request?</source>
<target>odstranil vás</target> <target>odstranil vás</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
File diff suppressed because it is too large Load Diff
@@ -1124,8 +1124,8 @@ Available in v5.1</source>
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1140,8 +1140,8 @@ Available in v5.1</source>
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1576,16 +1576,16 @@ Available in v5.1</source>
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1817,8 +1817,8 @@ Available in v5.1</source>
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -3333,8 +3333,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -577,6 +577,11 @@
<target>About SimpleX Chat</target> <target>About SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<target>Accent</target> <target>Accent</target>
@@ -635,6 +640,11 @@
<target>Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts.</target> <target>Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<target>Add friends</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Add profile</target> <target>Add profile</target>
@@ -650,6 +660,11 @@
<target>Add servers by scanning QR codes.</target> <target>Add servers by scanning QR codes.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<target>Add team members</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Add to another device</target> <target>Add to another device</target>
@@ -660,6 +675,11 @@
<target>Add welcome message</target> <target>Add welcome message</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>Add your team members to the conversations.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<target>Added media &amp; file servers</target> <target>Added media &amp; file servers</target>
@@ -740,9 +760,9 @@
<target>All data is erased when it is entered.</target> <target>All data is erased when it is entered.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target>All data is private to your device.</target> <target>All data is kept private on your device.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1230,6 +1250,16 @@
<target>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<target>Business address</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<target>Business 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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1321,6 +1351,11 @@
<target>Change</target> <target>Change</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<target>Change chat profiles</target>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Change database passphrase?</target> <target>Change database passphrase?</target>
@@ -1367,10 +1402,20 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<target>Change user profiles</target> <target>Chat</target>
<note>authentication reason</note> <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 already exists</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 already exists!</target>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1447,6 +1492,16 @@
<target>Chat theme</target> <target>Chat theme</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>Chat will be deleted for all members - this cannot be undone!</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>Chat will be deleted for you - this cannot be undone!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Chats</target> <target>Chats</target>
@@ -1562,9 +1617,9 @@
<target>Conditions are accepted for the operator(s): **%@**.</target> <target>Conditions are accepted for the operator(s): **%@**.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<target>Conditions are already accepted for following operator(s): **%@**.</target> <target>Conditions are already accepted for these operator(s): **%@**.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2201,6 +2256,11 @@ This is your own one-time link!</target>
<target>Delete and notify contact</target> <target>Delete and notify contact</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<target>Delete chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Delete chat profile</target> <target>Delete chat profile</target>
@@ -2211,6 +2271,11 @@ This is your own one-time link!</target>
<target>Delete chat profile?</target> <target>Delete chat profile?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<target>Delete chat?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Delete connection</target> <target>Delete connection</target>
@@ -2476,9 +2541,14 @@ This is your own one-time link!</target>
<target>Direct messages</target> <target>Direct messages</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<target>Direct messages between members are prohibited in this group.</target> <target>Direct messages between members are prohibited in this chat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Direct messages between members are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable (keep overrides)" xml:space="preserve"> <trans-unit id="Disable (keep overrides)" xml:space="preserve">
@@ -2516,9 +2586,9 @@ This is your own one-time link!</target>
<target>Disappearing messages are prohibited in this chat.</target> <target>Disappearing messages are prohibited in this chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Disappearing messages are prohibited in this group.</target> <target>Disappearing messages are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappears at" xml:space="preserve"> <trans-unit id="Disappears at" xml:space="preserve">
@@ -3374,9 +3444,9 @@ This is your own one-time link!</target>
<target>Files and media</target> <target>Files and media</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Files and media are prohibited in this group.</target> <target>Files and media are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media not allowed" xml:space="preserve"> <trans-unit id="Files and media not allowed" xml:space="preserve">
@@ -3648,41 +3718,6 @@ Error: %2$@</target>
<target>Group links</target> <target>Group links</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Group members can add message reactions.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Group members can irreversibly delete sent messages. (24 hours)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>Group members can send SimpleX links.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Group members can send direct messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Group members can send disappearing messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Group members can send files and media.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Group members can send voice messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Group message:</target> <target>Group message:</target>
@@ -4082,6 +4117,11 @@ More improvements are coming soon!</target>
<target>Invite members</target> <target>Invite members</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<target>Invite to chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Invite to group</target> <target>Invite to group</target>
@@ -4097,9 +4137,9 @@ More improvements are coming soon!</target>
<target>Irreversible message deletion is prohibited in this chat.</target> <target>Irreversible message deletion is prohibited in this chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Irreversible message deletion is prohibited in this group.</target> <target>Irreversible message deletion is prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -4240,6 +4280,16 @@ This is your link for group %@!</target>
<target>Leave</target> <target>Leave</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<target>Leave chat</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<target>Leave chat?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Leave group</target> <target>Leave group</target>
@@ -4370,6 +4420,11 @@ This is your link for group %@!</target>
<target>Member inactive</target> <target>Member inactive</target>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>Member role will be changed to "%@". All chat members will be notified.</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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Member role will be changed to "%@". All group members will be notified.</target> <target>Member role will be changed to "%@". All group members will be notified.</target>
@@ -4380,11 +4435,51 @@ This is your link for group %@!</target>
<target>Member role will be changed to "%@". The member will receive a new invitation.</target> <target>Member role will be changed to "%@". The member will receive a new invitation.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>Member will be removed from chat - this cannot be undone!</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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Member will be removed from group - this cannot be undone!</target> <target>Member will be removed from group - this cannot be undone!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Members can add message reactions.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Members can irreversibly delete sent messages. (24 hours)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Members can send SimpleX links.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Members can send direct messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Members can send disappearing messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Members can send files and media.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Members can send voice messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<target>Menus</target> <target>Menus</target>
@@ -4435,9 +4530,9 @@ This is your link for group %@!</target>
<target>Message reactions are prohibited in this chat.</target> <target>Message reactions are prohibited in this chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Message reactions are prohibited in this group.</target> <target>Message reactions are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reception" xml:space="preserve"> <trans-unit id="Message reception" xml:space="preserve">
@@ -4958,6 +5053,11 @@ Requires compatible VPN.</target>
<target>Onion hosts will not be used.</target> <target>Onion hosts will not be used.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<target>Only chat owners can change preferences.</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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Only client devices store user profiles, contacts, groups, and messages.</target> <target>Only client devices store user profiles, contacts, groups, and messages.</target>
@@ -5354,6 +5454,11 @@ Error: %@</target>
<target>Privacy &amp; security</target> <target>Privacy &amp; security</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<target>Privacy for your customers.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Privacy redefined</target> <target>Privacy redefined</target>
@@ -5511,11 +5616,6 @@ Enable in *Network &amp; servers* settings.</target>
<target>Proxy requires password</target> <target>Proxy requires password</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<target>Push Notifications</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Push notifications</target> <target>Push notifications</target>
@@ -5942,16 +6042,6 @@ Enable in *Network &amp; servers* settings.</target>
<target>Safer groups</target> <target>Safer groups</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<target>Same conditions will apply to operator **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<target>Same conditions will apply to operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Save</target> <target>Save</target>
@@ -5966,7 +6056,7 @@ Enable in *Network &amp; servers* settings.</target>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Save and notify contact</target> <target>Save and notify contact</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -6001,7 +6091,7 @@ Enable in *Network &amp; servers* settings.</target>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Save preferences?</target> <target>Save preferences?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6624,6 +6714,11 @@ Enable in *Network &amp; servers* settings.</target>
<target>SimpleX Address</target> <target>SimpleX Address</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat security was audited by Trail of Bits.</target> <target>SimpleX Chat security was audited by Trail of Bits.</target>
@@ -6684,9 +6779,9 @@ Enable in *Network &amp; servers* settings.</target>
<target>SimpleX links</target> <target>SimpleX links</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>SimpleX links are prohibited in this group.</target> <target>SimpleX links are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
@@ -7113,6 +7208,16 @@ It can happen because of some bug or when the connection is compromised.</target
<target>The profile is only shared with your contacts.</target> <target>The profile is only shared with your contacts.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>The same conditions will apply to operator **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<target>The same conditions will apply to operator(s): **%@**.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<target>The second preset operator in the app!</target> <target>The second preset operator in the app!</target>
@@ -7782,9 +7887,9 @@ To connect, please ask your contact to create another connection link and check
<target>Voice messages are prohibited in this chat.</target> <target>Voice messages are prohibited in this chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Voice messages are prohibited in this group.</target> <target>Voice messages are prohibited.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
@@ -7977,6 +8082,11 @@ To connect, please ask your contact to create another connection link and check
<target>You are already connected to %@.</target> <target>You are already connected to %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<target>You are already connected with %@.</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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>You are already connecting to %@.</target> <target>You are already connecting to %@.</target>
@@ -8251,6 +8361,11 @@ Repeat connection request?</target>
<target>You will still receive calls and notifications from muted profiles when they are active.</target> <target>You will still receive calls and notifications from muted profiles when they are active.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>You will stop receiving messages from this chat. Chat history will be preserved.</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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>You will stop receiving messages from this group. Chat history will be preserved.</target> <target>You will stop receiving messages from this group. Chat history will be preserved.</target>
@@ -8436,6 +8551,11 @@ Repeat connection request?</target>
<target>accepted call</target> <target>accepted call</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>admin</target> <target>admin</target>
@@ -8624,7 +8744,7 @@ Repeat connection request?</target>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>connecting…</target> <target>connecting…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -9118,6 +9238,11 @@ Repeat connection request?</target>
<target>removed you</target> <target>removed you</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>saved</target> <target>saved</target>
File diff suppressed because it is too large Load Diff
@@ -543,6 +543,10 @@
<target>Tietoja SimpleX Chatistä</target> <target>Tietoja SimpleX Chatistä</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -595,6 +599,10 @@
<target>Lisää osoite profiiliisi, jotta kontaktisi voivat jakaa sen muiden kanssa. Profiilipäivitys lähetetään kontakteillesi.</target> <target>Lisää osoite profiiliisi, jotta kontaktisi voivat jakaa sen muiden kanssa. Profiilipäivitys lähetetään kontakteillesi.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Lisää profiili</target> <target>Lisää profiili</target>
@@ -610,6 +618,10 @@
<target>Lisää palvelimia skannaamalla QR-koodeja.</target> <target>Lisää palvelimia skannaamalla QR-koodeja.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Lisää toiseen laitteeseen</target> <target>Lisää toiseen laitteeseen</target>
@@ -620,6 +632,10 @@
<target>Lisää tervetuloviesti</target> <target>Lisää tervetuloviesti</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -691,8 +707,8 @@
<target>Kaikki tiedot poistetaan, kun se syötetään.</target> <target>Kaikki tiedot poistetaan, kun se syötetään.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1138,6 +1154,14 @@
<source>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source> <source>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Chat-profiilin mukaan (oletus) tai [yhteyden mukaan](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>Chat-profiilin mukaan (oletus) tai [yhteyden mukaan](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1220,6 +1244,10 @@
<target>Muuta</target> <target>Muuta</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Muutetaanko tietokannan tunnuslause?</target> <target>Muutetaanko tietokannan tunnuslause?</target>
@@ -1266,9 +1294,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1338,6 +1374,14 @@
<source>Chat theme</source> <source>Chat theme</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Keskustelut</target> <target>Keskustelut</target>
@@ -1441,8 +1485,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2020,6 +2064,10 @@ This is your own one-time link!</source>
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Poista keskusteluprofiili</target> <target>Poista keskusteluprofiili</target>
@@ -2030,6 +2078,10 @@ This is your own one-time link!</source>
<target>Poista keskusteluprofiili?</target> <target>Poista keskusteluprofiili?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Poista yhteys</target> <target>Poista yhteys</target>
@@ -2278,8 +2330,12 @@ This is your own one-time link!</source>
<target>Yksityisviestit</target> <target>Yksityisviestit</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Yksityisviestit jäsenten välillä ovat kiellettyjä tässä ryhmässä.</target> <target>Yksityisviestit jäsenten välillä ovat kiellettyjä tässä ryhmässä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2317,8 +2373,8 @@ This is your own one-time link!</source>
<target>Katoavat viestit ovat kiellettyjä tässä keskustelussa.</target> <target>Katoavat viestit ovat kiellettyjä tässä keskustelussa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Katoavat viestit ovat kiellettyjä tässä ryhmässä.</target> <target>Katoavat viestit ovat kiellettyjä tässä ryhmässä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3110,8 +3166,8 @@ This is your own one-time link!</source>
<target>Tiedostot ja media</target> <target>Tiedostot ja media</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Tiedostot ja media ovat tässä ryhmässä kiellettyjä.</target> <target>Tiedostot ja media ovat tässä ryhmässä kiellettyjä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3355,40 +3411,6 @@ Error: %2$@</source>
<target>Ryhmälinkit</target> <target>Ryhmälinkit</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Ryhmän jäsenet voivat lisätä viestireaktioita.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Ryhmän jäsenet voivat lähettää suoraviestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Ryhmän jäsenet voivat lähettää katoavia viestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Ryhmän jäsenet voivat lähettää ääniviestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Ryhmäviesti:</target> <target>Ryhmäviesti:</target>
@@ -3766,6 +3788,10 @@ More improvements are coming soon!</source>
<target>Kutsu jäseniä</target> <target>Kutsu jäseniä</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Kutsu ryhmään</target> <target>Kutsu ryhmään</target>
@@ -3781,8 +3807,8 @@ More improvements are coming soon!</source>
<target>Viestien peruuttamaton poisto on kielletty tässä keskustelussa.</target> <target>Viestien peruuttamaton poisto on kielletty tässä keskustelussa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Viestien peruuttamaton poisto on kielletty tässä ryhmässä.</target> <target>Viestien peruuttamaton poisto on kielletty tässä ryhmässä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3914,6 +3940,14 @@ This is your link for group %@!</source>
<target>Poistu</target> <target>Poistu</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Poistu ryhmästä</target> <target>Poistu ryhmästä</target>
@@ -4038,6 +4072,10 @@ This is your link for group %@!</source>
<source>Member inactive</source> <source>Member inactive</source>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Jäsenen rooli muuttuu muotoon "%@". Kaikille ryhmän jäsenille ilmoitetaan asiasta.</target> <target>Jäsenen rooli muuttuu muotoon "%@". Kaikille ryhmän jäsenille ilmoitetaan asiasta.</target>
@@ -4048,11 +4086,49 @@ This is your link for group %@!</source>
<target>Jäsenen rooli muutetaan muotoon "%@". Jäsen saa uuden kutsun.</target> <target>Jäsenen rooli muutetaan muotoon "%@". Jäsen saa uuden kutsun.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Jäsen poistetaan ryhmästä - tätä ei voi perua!</target> <target>Jäsen poistetaan ryhmästä - tätä ei voi perua!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Ryhmän jäsenet voivat lisätä viestireaktioita.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Ryhmän jäsenet voivat lähettää suoraviestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Ryhmän jäsenet voivat lähettää katoavia viestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Ryhmän jäsenet voivat lähettää ääniviestejä.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4098,8 +4174,8 @@ This is your link for group %@!</source>
<target>Viestireaktiot ovat kiellettyjä tässä keskustelussa.</target> <target>Viestireaktiot ovat kiellettyjä tässä keskustelussa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Viestireaktiot ovat kiellettyjä tässä ryhmässä.</target> <target>Viestireaktiot ovat kiellettyjä tässä ryhmässä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4570,6 +4646,10 @@ Edellyttää VPN:n sallimista.</target>
<target>Onion-isäntiä ei käytetä.</target> <target>Onion-isäntiä ei käytetä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Vain asiakaslaitteet tallentavat käyttäjäprofiileja, yhteystietoja, ryhmiä ja viestejä, jotka on lähetetty **kaksinkertaisella päästä päähän -salauksella**.</target> <target>Vain asiakaslaitteet tallentavat käyttäjäprofiileja, yhteystietoja, ryhmiä ja viestejä, jotka on lähetetty **kaksinkertaisella päästä päähän -salauksella**.</target>
@@ -4931,6 +5011,10 @@ Error: %@</source>
<target>Yksityisyys ja turvallisuus</target> <target>Yksityisyys ja turvallisuus</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Yksityisyys uudelleen määritettynä</target> <target>Yksityisyys uudelleen määritettynä</target>
@@ -5074,10 +5158,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Push-ilmoitukset</target> <target>Push-ilmoitukset</target>
@@ -5470,14 +5550,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Safer groups</source> <source>Safer groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Tallenna</target> <target>Tallenna</target>
@@ -5492,7 +5564,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Tallenna ja ilmoita kontaktille</target> <target>Tallenna ja ilmoita kontaktille</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5526,7 +5598,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Tallenna asetukset?</target> <target>Tallenna asetukset?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6093,6 +6165,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX-osoite</target> <target>SimpleX-osoite</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Trail of Bits on tarkastanut SimpleX Chatin tietoturvan.</target> <target>Trail of Bits on tarkastanut SimpleX Chatin tietoturvan.</target>
@@ -6151,8 +6227,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX-linkit</target> <target>SimpleX-linkit</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
@@ -6544,6 +6620,14 @@ Tämä voi johtua jostain virheestä tai siitä, että yhteys on vaarantunut.</t
<target>Profiili jaetaan vain kontaktiesi kanssa.</target> <target>Profiili jaetaan vain kontaktiesi kanssa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7147,8 +7231,8 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Ääniviestit ovat kiellettyjä tässä keskustelussa.</target> <target>Ääniviestit ovat kiellettyjä tässä keskustelussa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Ääniviestit ovat kiellettyjä tässä ryhmässä.</target> <target>Ääniviestit ovat kiellettyjä tässä ryhmässä.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7323,6 +7407,10 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Olet jo muodostanut yhteyden %@:n kanssa.</target> <target>Olet jo muodostanut yhteyden %@:n kanssa.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7571,6 +7659,10 @@ Repeat connection request?</source>
<target>Saat edelleen puheluita ja ilmoituksia mykistetyiltä profiileilta, kun ne ovat aktiivisia.</target> <target>Saat edelleen puheluita ja ilmoituksia mykistetyiltä profiileilta, kun ne ovat aktiivisia.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Et enää saa viestejä tästä ryhmästä. Keskusteluhistoria säilytetään.</target> <target>Et enää saa viestejä tästä ryhmästä. Keskusteluhistoria säilytetään.</target>
@@ -7750,6 +7842,10 @@ Repeat connection request?</source>
<target>hyväksytty puhelu</target> <target>hyväksytty puhelu</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>ylläpitäjä</target> <target>ylläpitäjä</target>
@@ -7928,7 +8024,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>yhdistää…</target> <target>yhdistää…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8404,6 +8500,10 @@ Repeat connection request?</source>
<target>poisti sinut</target> <target>poisti sinut</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -572,6 +572,10 @@
<target>À propos de SimpleX Chat</target> <target>À propos de SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<target>Principale</target> <target>Principale</target>
@@ -628,6 +632,10 @@
<target>Ajoutez une adresse à votre profil, afin que vos contacts puissent la partager avec d'autres personnes. La mise à jour du profil sera envoyée à vos contacts.</target> <target>Ajoutez une adresse à votre profil, afin que vos contacts puissent la partager avec d'autres personnes. La mise à jour du profil sera envoyée à vos contacts.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Ajouter un profil</target> <target>Ajouter un profil</target>
@@ -643,6 +651,10 @@
<target>Ajoutez des serveurs en scannant des codes QR.</target> <target>Ajoutez des serveurs en scannant des codes QR.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Ajouter à un autre appareil</target> <target>Ajouter à un autre appareil</target>
@@ -653,6 +665,10 @@
<target>Ajouter un message d'accueil</target> <target>Ajouter un message d'accueil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -729,8 +745,8 @@
<target>Toutes les données sont effacées lorsqu'il est saisi.</target> <target>Toutes les données sont effacées lorsqu'il est saisi.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target>Toutes les données restent confinées dans votre appareil.</target> <target>Toutes les données restent confinées dans votre appareil.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1218,6 +1234,14 @@
<target>Bulgare, finnois, thaïlandais et ukrainien - grâce aux utilisateurs et à [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat) !</target> <target>Bulgare, finnois, thaïlandais et ukrainien - grâce aux utilisateurs et à [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat) !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Par profil de chat (par défaut) ou [par connexion](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>Par profil de chat (par défaut) ou [par connexion](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1309,6 +1333,10 @@
<target>Changer</target> <target>Changer</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Changer la phrase secrète de la base de données ?</target> <target>Changer la phrase secrète de la base de données ?</target>
@@ -1355,9 +1383,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1434,6 +1470,14 @@
<target>Thème de chat</target> <target>Thème de chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Discussions</target> <target>Discussions</target>
@@ -1545,8 +1589,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2174,6 +2218,10 @@ Il s'agit de votre propre lien unique !</target>
<target>Supprimer et en informer le contact</target> <target>Supprimer et en informer le contact</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Supprimer le profil de chat</target> <target>Supprimer le profil de chat</target>
@@ -2184,6 +2232,10 @@ Il s'agit de votre propre lien unique !</target>
<target>Supprimer le profil du chat ?</target> <target>Supprimer le profil du chat ?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Supprimer la connexion</target> <target>Supprimer la connexion</target>
@@ -2448,8 +2500,12 @@ Il s'agit de votre propre lien unique !</target>
<target>Messages directs</target> <target>Messages directs</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Les messages directs entre membres sont interdits dans ce groupe.</target> <target>Les messages directs entre membres sont interdits dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2488,8 +2544,8 @@ Il s'agit de votre propre lien unique !</target>
<target>Les messages éphémères sont interdits dans cette discussion.</target> <target>Les messages éphémères sont interdits dans cette discussion.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Les messages éphémères sont interdits dans ce groupe.</target> <target>Les messages éphémères sont interdits dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3338,8 +3394,8 @@ Il s'agit de votre propre lien unique !</target>
<target>Fichiers et médias</target> <target>Fichiers et médias</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Les fichiers et les médias sont interdits dans ce groupe.</target> <target>Les fichiers et les médias sont interdits dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3608,41 +3664,6 @@ Erreur: %2$@</target>
<target>Liens de groupe</target> <target>Liens de groupe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Les membres du groupe peuvent ajouter des réactions aux messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>Les membres du groupe peuvent envoyer des liens SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Les membres du groupe peuvent envoyer des messages directs.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Les membres du groupes peuvent envoyer des messages éphémères.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Les membres du groupe peuvent envoyer des fichiers et des médias.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Les membres du groupe peuvent envoyer des messages vocaux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Message du groupe:</target> <target>Message du groupe:</target>
@@ -4040,6 +4061,10 @@ D'autres améliorations sont à venir!</target>
<target>Inviter des membres</target> <target>Inviter des membres</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Inviter au groupe</target> <target>Inviter au groupe</target>
@@ -4055,8 +4080,8 @@ D'autres améliorations sont à venir!</target>
<target>La suppression irréversible de message est interdite dans ce chat.</target> <target>La suppression irréversible de message est interdite dans ce chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>La suppression irréversible de messages est interdite dans ce groupe.</target> <target>La suppression irréversible de messages est interdite dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4198,6 +4223,14 @@ Voici votre lien pour le groupe %@ !</target>
<target>Quitter</target> <target>Quitter</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Quitter le groupe</target> <target>Quitter le groupe</target>
@@ -4328,6 +4361,10 @@ Voici votre lien pour le groupe %@ !</target>
<target>Membre inactif</target> <target>Membre inactif</target>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Le rôle du membre sera changé pour "%@". Tous les membres du groupe en seront informés.</target> <target>Le rôle du membre sera changé pour "%@". Tous les membres du groupe en seront informés.</target>
@@ -4338,11 +4375,50 @@ Voici votre lien pour le groupe %@ !</target>
<target>Le rôle du membre sera changé pour "%@". Ce membre recevra une nouvelle invitation.</target> <target>Le rôle du membre sera changé pour "%@". Ce membre recevra une nouvelle invitation.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Ce membre sera retiré du groupe - impossible de revenir en arrière!</target> <target>Ce membre sera retiré du groupe - impossible de revenir en arrière!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Les membres du groupe peuvent ajouter des réactions aux messages.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Les membres du groupe peuvent envoyer des liens SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Les membres du groupe peuvent envoyer des messages directs.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Les membres du groupes peuvent envoyer des messages éphémères.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Les membres du groupe peuvent envoyer des fichiers et des médias.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Les membres du groupe peuvent envoyer des messages vocaux.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<target>Menus</target> <target>Menus</target>
@@ -4393,8 +4469,8 @@ Voici votre lien pour le groupe %@ !</target>
<target>Les réactions aux messages sont interdites dans ce chat.</target> <target>Les réactions aux messages sont interdites dans ce chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Les réactions aux messages sont interdites dans ce groupe.</target> <target>Les réactions aux messages sont interdites dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4904,6 +4980,10 @@ Nécessite l'activation d'un VPN.</target>
<target>Les hôtes .onion ne seront pas utilisés.</target> <target>Les hôtes .onion ne seront pas utilisés.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Seuls les appareils clients stockent les profils des utilisateurs, les contacts, les groupes et les messages envoyés avec un **chiffrement de bout en bout à deux couches**.</target> <target>Seuls les appareils clients stockent les profils des utilisateurs, les contacts, les groupes et les messages envoyés avec un **chiffrement de bout en bout à deux couches**.</target>
@@ -5293,6 +5373,10 @@ Erreur: %@</target>
<target>Vie privée et sécurité</target> <target>Vie privée et sécurité</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>La vie privée redéfinie</target> <target>La vie privée redéfinie</target>
@@ -5450,10 +5534,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Le proxy est protégé par un mot de passe</target> <target>Le proxy est protégé par un mot de passe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Notifications push</target> <target>Notifications push</target>
@@ -5878,14 +5958,6 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Groupes plus sûrs</target> <target>Groupes plus sûrs</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Enregistrer</target> <target>Enregistrer</target>
@@ -5900,7 +5972,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Enregistrer et en informer le contact</target> <target>Enregistrer et en informer le contact</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5935,7 +6007,7 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Enregistrer les préférences?</target> <target>Enregistrer les préférences?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6551,6 +6623,10 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Adresse SimpleX</target> <target>Adresse SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <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> <target>La sécurité de SimpleX Chat a été auditée par Trail of Bits.</target>
@@ -6609,8 +6685,8 @@ Activez-le dans les paramètres *Réseau et serveurs*.</target>
<target>Liens SimpleX</target> <target>Liens SimpleX</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>Les liens SimpleX sont interdits dans ce groupe.</target> <target>Les liens SimpleX sont interdits dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7033,6 +7109,14 @@ Cela peut se produire en raison d'un bug ou lorsque la connexion est compromise.
<target>Le profil n'est partagé qu'avec vos contacts.</target> <target>Le profil n'est partagé qu'avec vos contacts.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7688,8 +7772,8 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Les messages vocaux sont interdits dans ce chat.</target> <target>Les messages vocaux sont interdits dans ce chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Les messages vocaux sont interdits dans ce groupe.</target> <target>Les messages vocaux sont interdits dans ce groupe.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7882,6 +7966,10 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Vous êtes déjà connecté·e à %@ via ce lien.</target> <target>Vous êtes déjà connecté·e à %@ via ce lien.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Vous êtes déjà en train de vous connecter à %@.</target> <target>Vous êtes déjà en train de vous connecter à %@.</target>
@@ -8153,6 +8241,10 @@ Répéter la demande de connexion ?</target>
<target>Vous continuerez à recevoir des appels et des notifications des profils mis en sourdine lorsqu'ils sont actifs.</target> <target>Vous continuerez à recevoir des appels et des notifications des profils mis en sourdine lorsqu'ils sont actifs.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Vous ne recevrez plus de messages de ce groupe. L'historique du chat sera conservé.</target> <target>Vous ne recevrez plus de messages de ce groupe. L'historique du chat sera conservé.</target>
@@ -8337,6 +8429,10 @@ Répéter la demande de connexion ?</target>
<target>appel accepté</target> <target>appel accepté</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>admin</target> <target>admin</target>
@@ -8525,7 +8621,7 @@ Répéter la demande de connexion ?</target>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>connexion…</target> <target>connexion…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -9018,6 +9114,10 @@ Répéter la demande de connexion ?</target>
<target>vous a retiré</target> <target>vous a retiré</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>enregistré</target> <target>enregistré</target>
@@ -1386,8 +1386,8 @@ Available in v5.1</source>
<target state="translated">הודעות ישירות</target> <target state="translated">הודעות ישירות</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve" approved="no">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<target state="translated">הודעות ישירות בין חברי קבוצה אסורות בקבוצה זו.</target> <target state="translated">הודעות ישירות בין חברי קבוצה אסורות בקבוצה זו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1406,8 +1406,8 @@ Available in v5.1</source>
<target state="translated">הודעות נעלמות אסורות בצ׳אט זה.</target> <target state="translated">הודעות נעלמות אסורות בצ׳אט זה.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve" approved="no">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target state="translated">הודעות נעלמות אסורות בקבוצה זו.</target> <target state="translated">הודעות נעלמות אסורות בקבוצה זו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1951,18 +1951,18 @@ Available in v5.1</source>
<target state="translated">חברי הקבוצה יכולים למחוק באופן בלתי הפיך הודעות שנשלחו.</target> <target state="translated">חברי הקבוצה יכולים למחוק באופן בלתי הפיך הודעות שנשלחו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send direct messages." xml:space="preserve" approved="no">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<target state="translated">חברי הקבוצה יכולים לשלוח הודעות ישירות.</target> <target state="translated">חברי הקבוצה יכולים לשלוח הודעות ישירות.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send disappearing messages." xml:space="preserve" approved="no">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<target state="translated">חברי הקבוצה יכולים לשלוח הודעות נעלמות.</target> <target state="translated">חברי הקבוצה יכולים לשלוח הודעות נעלמות.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send voice messages." xml:space="preserve" approved="no">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<target state="translated">חברי הקבוצה יכולים לשלוח הודעות קוליות.</target> <target state="translated">חברי הקבוצה יכולים לשלוח הודעות קוליות.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2252,8 +2252,8 @@ Available in v5.1</source>
<target state="translated">מחיקה בלתי הפיכה של הודעות אסורה בצ׳אט זה.</target> <target state="translated">מחיקה בלתי הפיכה של הודעות אסורה בצ׳אט זה.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve" approved="no">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target state="translated">מחיקה בלתי הפיכה של הודעות אסורה בקבוצה זו.</target> <target state="translated">מחיקה בלתי הפיכה של הודעות אסורה בקבוצה זו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3859,8 +3859,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -4958,8 +4958,8 @@ SimpleX servers cannot see your profile.</source>
<target state="translated">נמחק</target> <target state="translated">נמחק</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Files and media are prohibited." xml:space="preserve" approved="no">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target state="translated">קבצים ומדיה אסורים בקבוצה זו.</target> <target state="translated">קבצים ומדיה אסורים בקבוצה זו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -5018,13 +5018,13 @@ SimpleX servers cannot see your profile.</source>
<target state="translated">הזמן חברים</target> <target state="translated">הזמן חברים</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve" approved="no"> <trans-unit id="Members can add message reactions." xml:space="preserve" approved="no">
<source>Group members can add message reactions.</source> <source>Members can add message reactions.</source>
<target state="translated">חברי הקבוצה יכולים להוסיף תגובות אמוג׳י להודעות.</target> <target state="translated">חברי הקבוצה יכולים להוסיף תגובות אמוג׳י להודעות.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve" approved="no"> <trans-unit id="Members can send files and media." xml:space="preserve" approved="no">
<source>Group members can send files and media.</source> <source>Members can send files and media.</source>
<target state="translated">חברי הקבוצה יכולים לשלוח קבצים ומדיה.</target> <target state="translated">חברי הקבוצה יכולים לשלוח קבצים ומדיה.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -5222,8 +5222,8 @@ SimpleX servers cannot see your profile.</source>
<target state="translated">תגובות אמוג׳י להודעות אסורות בצ׳אט זה.</target> <target state="translated">תגובות אמוג׳י להודעות אסורות בצ׳אט זה.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Message reactions are prohibited." xml:space="preserve" approved="no">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target state="translated">תגובות אמוג׳י להודעות אסורות בקבוצה זו.</target> <target state="translated">תגובות אמוג׳י להודעות אסורות בקבוצה זו.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1034,8 +1034,8 @@
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1050,8 +1050,8 @@
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1414,16 +1414,16 @@
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1611,8 +1611,8 @@
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -2842,8 +2842,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -560,6 +560,10 @@
<target>SimpleX Chat について</target> <target>SimpleX Chat について</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -612,6 +616,10 @@
<target>プロフィールにアドレスを追加し、連絡先があなたのアドレスを他の人と共有できるようにします。プロフィールの更新は連絡先に送信されます。</target> <target>プロフィールにアドレスを追加し、連絡先があなたのアドレスを他の人と共有できるようにします。プロフィールの更新は連絡先に送信されます。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>プロフィールを追加</target> <target>プロフィールを追加</target>
@@ -627,6 +635,10 @@
<target>QRコードでサーバを追加する。</target> <target>QRコードでサーバを追加する。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>別の端末に追加</target> <target>別の端末に追加</target>
@@ -637,6 +649,10 @@
<target>ウェルカムメッセージを追加</target> <target>ウェルカムメッセージを追加</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -708,8 +724,8 @@
<target>入力するとすべてのデータが消去されます。</target> <target>入力するとすべてのデータが消去されます。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1162,6 +1178,14 @@
<target>ブルガリア語、フィンランド語、タイ語、ウクライナ語 - ユーザーと [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)に感謝します!</target> <target>ブルガリア語、フィンランド語、タイ語、ウクライナ語 - ユーザーと [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)に感謝します!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>チャット プロファイル経由 (デフォルト) または [接続経由](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>チャット プロファイル経由 (デフォルト) または [接続経由](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1244,6 +1268,10 @@
<target>変更</target> <target>変更</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>データベースのパスフレーズを更新しますか?</target> <target>データベースのパスフレーズを更新しますか?</target>
@@ -1290,9 +1318,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1360,6 +1396,15 @@
</trans-unit> </trans-unit>
<trans-unit id="Chat theme" xml:space="preserve"> <trans-unit id="Chat theme" xml:space="preserve">
<source>Chat theme</source> <source>Chat theme</source>
<target>チャットテーマ</target>
<note>No comment provided by engineer.</note>
</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>
<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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
@@ -1401,10 +1446,12 @@
</trans-unit> </trans-unit>
<trans-unit id="Chunks deleted" xml:space="preserve"> <trans-unit id="Chunks deleted" xml:space="preserve">
<source>Chunks deleted</source> <source>Chunks deleted</source>
<target>チャンクが削除されました</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chunks downloaded" xml:space="preserve"> <trans-unit id="Chunks downloaded" xml:space="preserve">
<source>Chunks downloaded</source> <source>Chunks downloaded</source>
<target>チャンクがダウンロードされました</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chunks uploaded" xml:space="preserve"> <trans-unit id="Chunks uploaded" xml:space="preserve">
@@ -1428,6 +1475,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Clear private notes?" xml:space="preserve"> <trans-unit id="Clear private notes?" xml:space="preserve">
<source>Clear private notes?</source> <source>Clear private notes?</source>
<target>プライベートノートを消しますか?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Clear verification" xml:space="preserve"> <trans-unit id="Clear verification" xml:space="preserve">
@@ -1441,6 +1489,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Color mode" xml:space="preserve"> <trans-unit id="Color mode" xml:space="preserve">
<source>Color mode</source> <source>Color mode</source>
<target>色設定</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Compare file" xml:space="preserve"> <trans-unit id="Compare file" xml:space="preserve">
@@ -1455,6 +1504,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Completed" xml:space="preserve"> <trans-unit id="Completed" xml:space="preserve">
<source>Completed</source> <source>Completed</source>
<target>完了</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions accepted on: %@." xml:space="preserve"> <trans-unit id="Conditions accepted on: %@." xml:space="preserve">
@@ -1465,8 +1515,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -1559,10 +1609,12 @@
</trans-unit> </trans-unit>
<trans-unit id="Connect to desktop" xml:space="preserve"> <trans-unit id="Connect to desktop" xml:space="preserve">
<source>Connect to desktop</source> <source>Connect to desktop</source>
<target>デスクトップに接続</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to your friends faster." xml:space="preserve"> <trans-unit id="Connect to your friends faster." xml:space="preserve">
<source>Connect to your friends faster.</source> <source>Connect to your friends faster.</source>
<target>友達ともっと速くつながりましょう。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connect to yourself?" xml:space="preserve"> <trans-unit id="Connect to yourself?" xml:space="preserve">
@@ -1599,22 +1651,27 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Connected" xml:space="preserve"> <trans-unit id="Connected" xml:space="preserve">
<source>Connected</source> <source>Connected</source>
<target>接続中</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected desktop" xml:space="preserve"> <trans-unit id="Connected desktop" xml:space="preserve">
<source>Connected desktop</source> <source>Connected desktop</source>
<target>デスクトップに接続済</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected servers" xml:space="preserve"> <trans-unit id="Connected servers" xml:space="preserve">
<source>Connected servers</source> <source>Connected servers</source>
<target>接続中のサーバ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connected to desktop" xml:space="preserve"> <trans-unit id="Connected to desktop" xml:space="preserve">
<source>Connected to desktop</source> <source>Connected to desktop</source>
<target>デスクトップに接続済</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting" xml:space="preserve"> <trans-unit id="Connecting" xml:space="preserve">
<source>Connecting</source> <source>Connecting</source>
<target>接続待ち</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting server…" xml:space="preserve"> <trans-unit id="Connecting server…" xml:space="preserve">
@@ -1629,10 +1686,12 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to contact, please wait or check later!" xml:space="preserve"> <trans-unit id="Connecting to contact, please wait or check later!" xml:space="preserve">
<source>Connecting to contact, please wait or check later!</source> <source>Connecting to contact, please wait or check later!</source>
<target>連絡先に接続中です。しばらくお待ちいただくか、後で確認してください!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connecting to desktop" xml:space="preserve"> <trans-unit id="Connecting to desktop" xml:space="preserve">
<source>Connecting to desktop</source> <source>Connecting to desktop</source>
<target>デスクトップに接続中</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection" xml:space="preserve"> <trans-unit id="Connection" xml:space="preserve">
@@ -1642,6 +1701,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Connection and servers status." xml:space="preserve"> <trans-unit id="Connection and servers status." xml:space="preserve">
<source>Connection and servers status.</source> <source>Connection and servers status.</source>
<target>接続とサーバーのステータス</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection error" xml:space="preserve"> <trans-unit id="Connection error" xml:space="preserve">
@@ -1669,6 +1729,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Connection terminated" xml:space="preserve"> <trans-unit id="Connection terminated" xml:space="preserve">
<source>Connection terminated</source> <source>Connection terminated</source>
<target>接続停止</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Connection timeout" xml:space="preserve"> <trans-unit id="Connection timeout" xml:space="preserve">
@@ -1882,6 +1943,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Customize theme" xml:space="preserve"> <trans-unit id="Customize theme" xml:space="preserve">
<source>Customize theme</source> <source>Customize theme</source>
<target>カスタムテーマ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Dark" xml:space="preserve"> <trans-unit id="Dark" xml:space="preserve">
@@ -1891,6 +1953,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Dark mode colors" xml:space="preserve"> <trans-unit id="Dark mode colors" xml:space="preserve">
<source>Dark mode colors</source> <source>Dark mode colors</source>
<target>ダークモードカラー</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Database ID" xml:space="preserve"> <trans-unit id="Database ID" xml:space="preserve">
@@ -1993,6 +2056,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Debug delivery" xml:space="preserve"> <trans-unit id="Debug delivery" xml:space="preserve">
<source>Debug delivery</source> <source>Debug delivery</source>
<target>配信のデバッグ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Decentralized" xml:space="preserve"> <trans-unit id="Decentralized" xml:space="preserve">
@@ -2044,6 +2108,10 @@ This is your own one-time link!</source>
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>チャットのプロフィールを削除する</target> <target>チャットのプロフィールを削除する</target>
@@ -2054,6 +2122,10 @@ This is your own one-time link!</source>
<target>チャットのプロフィールを削除しますか?</target> <target>チャットのプロフィールを削除しますか?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>接続を削除する</target> <target>接続を削除する</target>
@@ -2241,6 +2313,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Desktop devices" xml:space="preserve"> <trans-unit id="Desktop devices" xml:space="preserve">
<source>Desktop devices</source> <source>Desktop devices</source>
<target>デスクトップ機器</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Destination server address of %@ is incompatible with forwarding server %@ settings." xml:space="preserve"> <trans-unit id="Destination server address of %@ is incompatible with forwarding server %@ settings." xml:space="preserve">
@@ -2270,6 +2343,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Developer options" xml:space="preserve"> <trans-unit id="Developer options" xml:space="preserve">
<source>Developer options</source> <source>Developer options</source>
<target>開発者向けの設定</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Developer tools" xml:space="preserve"> <trans-unit id="Developer tools" xml:space="preserve">
@@ -2302,8 +2376,12 @@ This is your own one-time link!</source>
<target>ダイレクトメッセージ</target> <target>ダイレクトメッセージ</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>このグループではメンバー間のダイレクトメッセージが使用禁止です。</target> <target>このグループではメンバー間のダイレクトメッセージが使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2341,8 +2419,8 @@ This is your own one-time link!</source>
<target>このチャットでは消えるメッセージが使用禁止です。</target> <target>このチャットでは消えるメッセージが使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>このグループでは消えるメッセージが使用禁止です。</target> <target>このグループでは消えるメッセージが使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3135,8 +3213,8 @@ This is your own one-time link!</source>
<target>ファイルとメディア</target> <target>ファイルとメディア</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>このグループでは、ファイルとメディアは禁止されています。</target> <target>このグループでは、ファイルとメディアは禁止されています。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3380,40 +3458,6 @@ Error: %2$@</source>
<target>グループのリンク</target> <target>グループのリンク</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>グループメンバーはメッセージへのリアクションを追加できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>グループのメンバーがメッセージを完全削除することができます。(24時間)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>グループのメンバーがダイレクトメッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>グループのメンバーが消えるメッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>グループメンバーはファイルやメディアを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>グループのメンバーが音声メッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>グループメッセージ:</target> <target>グループメッセージ:</target>
@@ -3791,6 +3835,10 @@ More improvements are coming soon!</source>
<target>メンバーを招待する</target> <target>メンバーを招待する</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>グループに招待する</target> <target>グループに招待する</target>
@@ -3806,8 +3854,8 @@ More improvements are coming soon!</source>
<target>このチャットではメッセージの完全削除が使用禁止です。</target> <target>このチャットではメッセージの完全削除が使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>このグループではメッセージの完全削除が使用禁止です。</target> <target>このグループではメッセージの完全削除が使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3939,6 +3987,14 @@ This is your link for group %@!</source>
<target>脱退</target> <target>脱退</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>グループを脱退</target> <target>グループを脱退</target>
@@ -4063,6 +4119,10 @@ This is your link for group %@!</source>
<source>Member inactive</source> <source>Member inactive</source>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>メンバーの役割が "%@" に変更されます。 グループメンバー全員に通知されます。</target> <target>メンバーの役割が "%@" に変更されます。 グループメンバー全員に通知されます。</target>
@@ -4073,11 +4133,49 @@ This is your link for group %@!</source>
<target>メンバーの役割が "%@" に変更されます。 メンバーは新たな招待を受け取ります。</target> <target>メンバーの役割が "%@" に変更されます。 メンバーは新たな招待を受け取ります。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>メンバーをグループから除名する (※元に戻せません※)!</target> <target>メンバーをグループから除名する (※元に戻せません※)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>グループメンバーはメッセージへのリアクションを追加できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>グループのメンバーがメッセージを完全削除することができます。(24時間)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>グループのメンバーがダイレクトメッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>グループのメンバーが消えるメッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>グループメンバーはファイルやメディアを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>グループのメンバーが音声メッセージを送信できます。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4122,8 +4220,8 @@ This is your link for group %@!</source>
<target>このチャットではメッセージへのリアクションは禁止されています。</target> <target>このチャットではメッセージへのリアクションは禁止されています。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>このグループではメッセージへのリアクションは禁止されています。</target> <target>このグループではメッセージへのリアクションは禁止されています。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4597,6 +4695,10 @@ VPN を有効にする必要があります。</target>
<target>オニオンのホストが使われません。</target> <target>オニオンのホストが使われません。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>**2 レイヤーのエンドツーエンド暗号化**を使用して送信されたユーザー プロファイル、連絡先、グループ、メッセージを保存できるのはクライアント デバイスのみです。</target> <target>**2 レイヤーのエンドツーエンド暗号化**を使用して送信されたユーザー プロファイル、連絡先、グループ、メッセージを保存できるのはクライアント デバイスのみです。</target>
@@ -4959,6 +5061,10 @@ Error: %@</source>
<target>プライバシーとセキュリティ</target> <target>プライバシーとセキュリティ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>プライバシーの基準を新境地に</target> <target>プライバシーの基準を新境地に</target>
@@ -5102,10 +5208,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>プッシュ通知</target> <target>プッシュ通知</target>
@@ -5497,14 +5599,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Safer groups</source> <source>Safer groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>保存</target> <target>保存</target>
@@ -5519,7 +5613,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>保存して、連絡先にに知らせる</target> <target>保存して、連絡先にに知らせる</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5553,7 +5647,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>この設定でよろしいですか?</target> <target>この設定でよろしいですか?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6113,6 +6207,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleXアドレス</target> <target>SimpleXアドレス</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat のセキュリティは Trail of Bits によって監査されました。</target> <target>SimpleX Chat のセキュリティは Trail of Bits によって監査されました。</target>
@@ -6171,8 +6269,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleXリンク</target> <target>SimpleXリンク</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
@@ -6565,6 +6663,14 @@ It can happen because of some bug or when the connection is compromised.</source
<target>プロフィールは連絡先にしか共有されません。</target> <target>プロフィールは連絡先にしか共有されません。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7167,8 +7273,8 @@ To connect, please ask your contact to create another connection link and check
<target>このチャットでは音声メッセージが使用禁止です。</target> <target>このチャットでは音声メッセージが使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>このグループでは音声メッセージが使用禁止です。</target> <target>このグループでは音声メッセージが使用禁止です。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7343,6 +7449,10 @@ To connect, please ask your contact to create another connection link and check
<target>すでに %@ に接続されています。</target> <target>すでに %@ に接続されています。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7591,6 +7701,10 @@ Repeat connection request?</source>
<target>ミュートされたプロフィールがアクティブな場合でも、そのプロフィールからの通話や通知は引き続き受信します。</target> <target>ミュートされたプロフィールがアクティブな場合でも、そのプロフィールからの通話や通知は引き続き受信します。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>このグループからのメッセージが届かなくなります。チャットの履歴が残ります。</target> <target>このグループからのメッセージが届かなくなります。チャットの履歴が残ります。</target>
@@ -7770,6 +7884,10 @@ Repeat connection request?</source>
<target>受けた通話</target> <target>受けた通話</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>管理者</target> <target>管理者</target>
@@ -7948,7 +8066,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>接続待ち…</target> <target>接続待ち…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8424,6 +8542,10 @@ Repeat connection request?</source>
<target>あなたを除名しました</target> <target>あなたを除名しました</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -1009,8 +1009,8 @@
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1025,8 +1025,8 @@
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1417,16 +1417,16 @@
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1638,8 +1638,8 @@
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -2964,8 +2964,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -1029,8 +1029,8 @@
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1045,8 +1045,8 @@
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1413,16 +1413,16 @@
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1610,8 +1610,8 @@
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -2869,8 +2869,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
File diff suppressed because it is too large Load Diff
@@ -572,6 +572,10 @@
<target>O SimpleX Chat</target> <target>O SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<target>Akcent</target> <target>Akcent</target>
@@ -628,6 +632,10 @@
<target>Dodaj adres do swojego profilu, aby Twoje kontakty mogły go udostępnić innym osobom. Aktualizacja profilu zostanie wysłana do Twoich kontaktów.</target> <target>Dodaj adres do swojego profilu, aby Twoje kontakty mogły go udostępnić innym osobom. Aktualizacja profilu zostanie wysłana do Twoich kontaktów.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Dodaj profil</target> <target>Dodaj profil</target>
@@ -643,6 +651,10 @@
<target>Dodaj serwery, skanując kody QR.</target> <target>Dodaj serwery, skanując kody QR.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Dodaj do innego urządzenia</target> <target>Dodaj do innego urządzenia</target>
@@ -653,6 +665,10 @@
<target>Dodaj wiadomość powitalną</target> <target>Dodaj wiadomość powitalną</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -729,8 +745,8 @@
<target>Wszystkie dane są usuwane po jego wprowadzeniu.</target> <target>Wszystkie dane są usuwane po jego wprowadzeniu.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target>Wszystkie dane są prywatne na Twoim urządzeniu.</target> <target>Wszystkie dane są prywatne na Twoim urządzeniu.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1213,6 +1229,14 @@
<target>Bułgarski, fiński, tajski i ukraiński dzięki użytkownikom i [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>Bułgarski, fiński, tajski i ukraiński dzięki użytkownikom i [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Według profilu czatu (domyślnie) lub [według połączenia](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>Według profilu czatu (domyślnie) lub [według połączenia](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1304,6 +1328,10 @@
<target>Zmień</target> <target>Zmień</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Zmienić hasło bazy danych?</target> <target>Zmienić hasło bazy danych?</target>
@@ -1350,9 +1378,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1429,6 +1465,14 @@
<target>Motyw czatu</target> <target>Motyw czatu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Czaty</target> <target>Czaty</target>
@@ -1540,8 +1584,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2168,6 +2212,10 @@ To jest twój jednorazowy link!</target>
<target>Usuń i powiadom kontakt</target> <target>Usuń i powiadom kontakt</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Usuń profil czatu</target> <target>Usuń profil czatu</target>
@@ -2178,6 +2226,10 @@ To jest twój jednorazowy link!</target>
<target>Usunąć profil czatu?</target> <target>Usunąć profil czatu?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Usuń połączenie</target> <target>Usuń połączenie</target>
@@ -2441,8 +2493,12 @@ To jest twój jednorazowy link!</target>
<target>Bezpośrednie wiadomości</target> <target>Bezpośrednie wiadomości</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Bezpośrednie wiadomości między członkami są zabronione w tej grupie.</target> <target>Bezpośrednie wiadomości między członkami są zabronione w tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2481,8 +2537,8 @@ To jest twój jednorazowy link!</target>
<target>Znikające wiadomości są zabronione na tym czacie.</target> <target>Znikające wiadomości są zabronione na tym czacie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Znikające wiadomości są zabronione w tej grupie.</target> <target>Znikające wiadomości są zabronione w tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3331,8 +3387,8 @@ To jest twój jednorazowy link!</target>
<target>Pliki i media</target> <target>Pliki i media</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Pliki i media są zabronione w tej grupie.</target> <target>Pliki i media są zabronione w tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3600,41 +3656,6 @@ Błąd: %2$@</target>
<target>Linki grupowe</target> <target>Linki grupowe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Członkowie grupy mogą dodawać reakcje wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>Członkowie grupy mogą wysyłać linki SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Członkowie grupy mogą wysyłać bezpośrednie wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Członkowie grupy mogą wysyłać znikające wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Członkowie grupy mogą wysyłać pliki i media.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Członkowie grupy mogą wysyłać wiadomości głosowe.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Wiadomość grupowa:</target> <target>Wiadomość grupowa:</target>
@@ -4030,6 +4051,10 @@ More improvements are coming soon!</source>
<target>Zaproś członków</target> <target>Zaproś członków</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Zaproś do grupy</target> <target>Zaproś do grupy</target>
@@ -4045,8 +4070,8 @@ More improvements are coming soon!</source>
<target>Nieodwracalne usuwanie wiadomości jest na tym czacie zabronione.</target> <target>Nieodwracalne usuwanie wiadomości jest na tym czacie zabronione.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Nieodwracalne usuwanie wiadomości jest w tej grupie zabronione.</target> <target>Nieodwracalne usuwanie wiadomości jest w tej grupie zabronione.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4188,6 +4213,14 @@ To jest twój link do grupy %@!</target>
<target>Opuść</target> <target>Opuść</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Opuść grupę</target> <target>Opuść grupę</target>
@@ -4318,6 +4351,10 @@ To jest twój link do grupy %@!</target>
<target>Członek nieaktywny</target> <target>Członek nieaktywny</target>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Rola członka grupy zostanie zmieniona na "%@". Wszyscy członkowie grupy zostaną powiadomieni.</target> <target>Rola członka grupy zostanie zmieniona na "%@". Wszyscy członkowie grupy zostaną powiadomieni.</target>
@@ -4328,11 +4365,50 @@ To jest twój link do grupy %@!</target>
<target>Rola członka zostanie zmieniona na "%@". Członek otrzyma nowe zaproszenie.</target> <target>Rola członka zostanie zmieniona na "%@". Członek otrzyma nowe zaproszenie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Członek zostanie usunięty z grupy - nie można tego cofnąć!</target> <target>Członek zostanie usunięty z grupy - nie można tego cofnąć!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Członkowie grupy mogą dodawać reakcje wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Członkowie grupy mogą wysyłać linki SimpleX.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Członkowie grupy mogą wysyłać bezpośrednie wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Członkowie grupy mogą wysyłać znikające wiadomości.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Członkowie grupy mogą wysyłać pliki i media.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Członkowie grupy mogą wysyłać wiadomości głosowe.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<target>Menu</target> <target>Menu</target>
@@ -4383,8 +4459,8 @@ To jest twój link do grupy %@!</target>
<target>Reakcje wiadomości są zabronione na tym czacie.</target> <target>Reakcje wiadomości są zabronione na tym czacie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Reakcje wiadomości są zabronione w tej grupie.</target> <target>Reakcje wiadomości są zabronione w tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4894,6 +4970,10 @@ Wymaga włączenia VPN.</target>
<target>Hosty onion nie będą używane.</target> <target>Hosty onion nie będą używane.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Tylko urządzenia klienckie przechowują profile użytkowników, kontakty, grupy i wiadomości wysyłane za pomocą **2-warstwowego szyfrowania end-to-end**.</target> <target>Tylko urządzenia klienckie przechowują profile użytkowników, kontakty, grupy i wiadomości wysyłane za pomocą **2-warstwowego szyfrowania end-to-end**.</target>
@@ -5283,6 +5363,10 @@ Błąd: %@</target>
<target>Prywatność i bezpieczeństwo</target> <target>Prywatność i bezpieczeństwo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Redefinicja prywatności</target> <target>Redefinicja prywatności</target>
@@ -5440,10 +5524,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Proxy wymaga hasła</target> <target>Proxy wymaga hasła</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Powiadomienia push</target> <target>Powiadomienia push</target>
@@ -5868,14 +5948,6 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Bezpieczniejsze grupy</target> <target>Bezpieczniejsze grupy</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Zapisz</target> <target>Zapisz</target>
@@ -5890,7 +5962,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Zapisz i powiadom kontakt</target> <target>Zapisz i powiadom kontakt</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5925,7 +5997,7 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Zapisać preferencje?</target> <target>Zapisać preferencje?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6541,6 +6613,10 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Adres SimpleX</target> <target>Adres SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits.</target> <target>Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits.</target>
@@ -6599,8 +6675,8 @@ Włącz w ustawianiach *Sieć i serwery* .</target>
<target>Linki SimpleX</target> <target>Linki SimpleX</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>Linki SimpleX są zablokowane na tej grupie.</target> <target>Linki SimpleX są zablokowane na tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7020,6 +7096,14 @@ Może się to zdarzyć z powodu jakiegoś błędu lub gdy połączenie jest skom
<target>Profil jest udostępniany tylko Twoim kontaktom.</target> <target>Profil jest udostępniany tylko Twoim kontaktom.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7675,8 +7759,8 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Wiadomości głosowe są zabronione na tym czacie.</target> <target>Wiadomości głosowe są zabronione na tym czacie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Wiadomości głosowe są zabronione w tej grupie.</target> <target>Wiadomości głosowe są zabronione w tej grupie.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7869,6 +7953,10 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Jesteś już połączony z %@.</target> <target>Jesteś już połączony z %@.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Już się łączysz z %@.</target> <target>Już się łączysz z %@.</target>
@@ -8140,6 +8228,10 @@ Powtórzyć prośbę połączenia?</target>
<target>Nadal będziesz otrzymywać połączenia i powiadomienia z wyciszonych profili, gdy są one aktywne.</target> <target>Nadal będziesz otrzymywać połączenia i powiadomienia z wyciszonych profili, gdy są one aktywne.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Przestaniesz otrzymywać wiadomości od tej grupy. Historia czatu zostanie zachowana.</target> <target>Przestaniesz otrzymywać wiadomości od tej grupy. Historia czatu zostanie zachowana.</target>
@@ -8324,6 +8416,10 @@ Powtórzyć prośbę połączenia?</target>
<target>zaakceptowane połączenie</target> <target>zaakceptowane połączenie</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>administrator</target> <target>administrator</target>
@@ -8512,7 +8608,7 @@ Powtórzyć prośbę połączenia?</target>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>łączenie…</target> <target>łączenie…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -9005,6 +9101,10 @@ Powtórzyć prośbę połączenia?</target>
<target>usunął cię</target> <target>usunął cię</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>zapisane</target> <target>zapisane</target>
@@ -1204,8 +1204,8 @@
<target state="translated">Mensagens diretas</target> <target state="translated">Mensagens diretas</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve" approved="no">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<target state="translated">Mensagens diretas entre membros são proibidas neste grupo.</target> <target state="translated">Mensagens diretas entre membros são proibidas neste grupo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1224,8 +1224,8 @@
<target state="translated">Mensagens temporárias são proibidas nesse chat.</target> <target state="translated">Mensagens temporárias são proibidas nesse chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve" approved="no">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target state="translated">Mensagens que temporárias são proibidas neste grupo.</target> <target state="translated">Mensagens que temporárias são proibidas neste grupo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1638,18 +1638,18 @@
<target state="translated">Os membros do grupo podem excluir mensagens enviadas de forma irreversível.</target> <target state="translated">Os membros do grupo podem excluir mensagens enviadas de forma irreversível.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send direct messages." xml:space="preserve" approved="no">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<target state="translated">Os membros do grupo podem enviar DMs.</target> <target state="translated">Os membros do grupo podem enviar DMs.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send disappearing messages." xml:space="preserve" approved="no">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<target state="translated">Os membros do grupo podem enviar mensagens que desaparecem.</target> <target state="translated">Os membros do grupo podem enviar mensagens que desaparecem.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send voice messages." xml:space="preserve" approved="no">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<target state="translated">Os membros do grupo podem enviar mensagens de voz.</target> <target state="translated">Os membros do grupo podem enviar mensagens de voz.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1873,8 +1873,8 @@
<target state="translated">A exclusão irreversível de mensagens é proibida neste chat.</target> <target state="translated">A exclusão irreversível de mensagens é proibida neste chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve" approved="no">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target state="translated">A exclusão irreversível de mensagens é proibida neste grupo.</target> <target state="translated">A exclusão irreversível de mensagens é proibida neste grupo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3269,8 +3269,8 @@ Para se conectar, peça ao seu contato para criar outro link de conexão e verif
<target state="translated">Mensagens de voz são proibidas neste chat.</target> <target state="translated">Mensagens de voz são proibidas neste chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Voice messages are prohibited." xml:space="preserve" approved="no">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target state="translated">Mensagens de voz são proibidas neste grupo.</target> <target state="translated">Mensagens de voz são proibidas neste grupo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -5425,8 +5425,8 @@ Isso pode acontecer por causa de algum bug ou quando a conexão está comprometi
<source>Advanced settings</source> <source>Advanced settings</source>
<target state="translated">Configurações avançadas</target> <target state="translated">Configurações avançadas</target>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve" approved="no"> <trans-unit id="All data is kept private on your device." xml:space="preserve" approved="no">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target state="translated">Toda informação é privada em seu dispositivo.</target> <target state="translated">Toda informação é privada em seu dispositivo.</target>
</trans-unit> </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"> <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">
@@ -1227,8 +1227,8 @@ Available in v5.1</source>
<source>Direct messages</source> <source>Direct messages</source>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disable SimpleX Lock" xml:space="preserve"> <trans-unit id="Disable SimpleX Lock" xml:space="preserve">
@@ -1243,8 +1243,8 @@ Available in v5.1</source>
<source>Disappearing messages are prohibited in this chat.</source> <source>Disappearing messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disconnect" xml:space="preserve"> <trans-unit id="Disconnect" xml:space="preserve">
@@ -1679,16 +1679,16 @@ Available in v5.1</source>
<source>Group members can irreversibly delete sent messages.</source> <source>Group members can irreversibly delete sent messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve"> <trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve"> <trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve"> <trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
@@ -1920,8 +1920,8 @@ Available in v5.1</source>
<source>Irreversible message deletion is prohibited in this chat.</source> <source>Irreversible message deletion is prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve"> <trans-unit id="It allows having many anonymous connections without any shared data between them in a single chat profile." xml:space="preserve">
@@ -3436,8 +3436,8 @@ To connect, please ask your contact to create another connection link and check
<source>Voice messages are prohibited in this chat.</source> <source>Voice messages are prohibited in this chat.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
File diff suppressed because it is too large Load Diff
@@ -536,6 +536,10 @@
<target>เกี่ยวกับ SimpleX Chat</target> <target>เกี่ยวกับ SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -587,6 +591,10 @@
<target>เพิ่มที่อยู่ลงในโปรไฟล์ของคุณ เพื่อให้ผู้ติดต่อของคุณสามารถแชร์กับผู้อื่นได้ การอัปเดตโปรไฟล์จะถูกส่งไปยังผู้ติดต่อของคุณ</target> <target>เพิ่มที่อยู่ลงในโปรไฟล์ของคุณ เพื่อให้ผู้ติดต่อของคุณสามารถแชร์กับผู้อื่นได้ การอัปเดตโปรไฟล์จะถูกส่งไปยังผู้ติดต่อของคุณ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>เพิ่มโปรไฟล์</target> <target>เพิ่มโปรไฟล์</target>
@@ -602,6 +610,10 @@
<target>เพิ่มเซิร์ฟเวอร์โดยการสแกนรหัสคิวอาร์โค้ด</target> <target>เพิ่มเซิร์ฟเวอร์โดยการสแกนรหัสคิวอาร์โค้ด</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>เพิ่มเข้าไปในอุปกรณ์อื่น</target> <target>เพิ่มเข้าไปในอุปกรณ์อื่น</target>
@@ -612,6 +624,10 @@
<target>เพิ่มข้อความต้อนรับ</target> <target>เพิ่มข้อความต้อนรับ</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -683,8 +699,8 @@
<target>ข้อมูลทั้งหมดจะถูกลบเมื่อถูกป้อน</target> <target>ข้อมูลทั้งหมดจะถูกลบเมื่อถูกป้อน</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All group members will remain connected." xml:space="preserve"> <trans-unit id="All group members will remain connected." xml:space="preserve">
@@ -1130,6 +1146,14 @@
<source>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source> <source>Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>ตามโปรไฟล์แชท (ค่าเริ่มต้น) หรือ [โดยการเชื่อมต่อ](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (เบต้า)</target> <target>ตามโปรไฟล์แชท (ค่าเริ่มต้น) หรือ [โดยการเชื่อมต่อ](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (เบต้า)</target>
@@ -1212,6 +1236,10 @@
<target>เปลี่ยน</target> <target>เปลี่ยน</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>เปลี่ยนรหัสผ่านฐานข้อมูล?</target> <target>เปลี่ยนรหัสผ่านฐานข้อมูล?</target>
@@ -1258,9 +1286,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1330,6 +1366,14 @@
<source>Chat theme</source> <source>Chat theme</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>แชท</target> <target>แชท</target>
@@ -1433,8 +1477,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2009,6 +2053,10 @@ This is your own one-time link!</source>
<source>Delete and notify contact</source> <source>Delete and notify contact</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>ลบโปรไฟล์แชท</target> <target>ลบโปรไฟล์แชท</target>
@@ -2019,6 +2067,10 @@ This is your own one-time link!</source>
<target>ลบโปรไฟล์แชทไหม?</target> <target>ลบโปรไฟล์แชทไหม?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>ลบการเชื่อมต่อ</target> <target>ลบการเชื่อมต่อ</target>
@@ -2266,8 +2318,12 @@ This is your own one-time link!</source>
<target>ข้อความโดยตรง</target> <target>ข้อความโดยตรง</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>ข้อความโดยตรงระหว่างสมาชิกเป็นสิ่งต้องห้ามในกลุ่มนี้</target> <target>ข้อความโดยตรงระหว่างสมาชิกเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2305,8 +2361,8 @@ This is your own one-time link!</source>
<target>ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในแชทนี้</target> <target>ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในแชทนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในกลุ่มนี้</target> <target>ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3095,8 +3151,8 @@ This is your own one-time link!</source>
<target>ไฟล์และสื่อ</target> <target>ไฟล์และสื่อ</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้</target> <target>ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3340,40 +3396,6 @@ Error: %2$@</source>
<target>ลิงค์กลุ่ม</target> <target>ลิงค์กลุ่ม</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความเสียง</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>ข้อความกลุ่ม:</target> <target>ข้อความกลุ่ม:</target>
@@ -3749,6 +3771,10 @@ More improvements are coming soon!</source>
<target>เชิญสมาชิก</target> <target>เชิญสมาชิก</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>เชิญเข้าร่วมกลุ่ม</target> <target>เชิญเข้าร่วมกลุ่ม</target>
@@ -3764,8 +3790,8 @@ More improvements are coming soon!</source>
<target>ไม่สามารถลบข้อความแบบแก้ไขไม่ได้ในแชทนี้</target> <target>ไม่สามารถลบข้อความแบบแก้ไขไม่ได้ในแชทนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>การลบข้อความแบบแก้ไขไม่ได้เป็นสิ่งที่ห้ามในกลุ่มนี้</target> <target>การลบข้อความแบบแก้ไขไม่ได้เป็นสิ่งที่ห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3897,6 +3923,14 @@ This is your link for group %@!</source>
<target>ออกจาก</target> <target>ออกจาก</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>ออกจากกลุ่ม</target> <target>ออกจากกลุ่ม</target>
@@ -4021,6 +4055,10 @@ This is your link for group %@!</source>
<source>Member inactive</source> <source>Member inactive</source>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกกลุ่มทั้งหมดจะได้รับแจ้ง</target> <target>บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกกลุ่มทั้งหมดจะได้รับแจ้ง</target>
@@ -4031,11 +4069,49 @@ This is your link for group %@!</source>
<target>บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกจะได้รับคำเชิญใหม่</target> <target>บทบาทของสมาชิกจะถูกเปลี่ยนเป็น "%@" สมาชิกจะได้รับคำเชิญใหม่</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!</target> <target>สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>สมาชิกกลุ่มสามารถส่งข้อความเสียง</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4081,8 +4157,8 @@ This is your link for group %@!</source>
<target>ห้ามแสดงปฏิกิริยาบนข้อความในแชทนี้</target> <target>ห้ามแสดงปฏิกิริยาบนข้อความในแชทนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้</target> <target>ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4549,6 +4625,10 @@ Requires compatible VPN.</source>
<target>โฮสต์หัวหอมจะไม่ถูกใช้</target> <target>โฮสต์หัวหอมจะไม่ถูกใช้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>เฉพาะอุปกรณ์ไคลเอนต์เท่านั้นที่จัดเก็บโปรไฟล์ผู้ใช้ ผู้ติดต่อ กลุ่ม และข้อความที่ส่งด้วย **การเข้ารหัส encrypt แบบ 2 ชั้น**</target> <target>เฉพาะอุปกรณ์ไคลเอนต์เท่านั้นที่จัดเก็บโปรไฟล์ผู้ใช้ ผู้ติดต่อ กลุ่ม และข้อความที่ส่งด้วย **การเข้ารหัส encrypt แบบ 2 ชั้น**</target>
@@ -4910,6 +4990,10 @@ Error: %@</source>
<target>ความเป็นส่วนตัวและความปลอดภัย</target> <target>ความเป็นส่วนตัวและความปลอดภัย</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>นิยามความเป็นส่วนตัวใหม่</target> <target>นิยามความเป็นส่วนตัวใหม่</target>
@@ -5053,10 +5137,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>การแจ้งเตือนแบบทันที</target> <target>การแจ้งเตือนแบบทันที</target>
@@ -5447,14 +5527,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Safer groups</source> <source>Safer groups</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>บันทึก</target> <target>บันทึก</target>
@@ -5469,7 +5541,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>บันทึกและแจ้งผู้ติดต่อ</target> <target>บันทึกและแจ้งผู้ติดต่อ</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5503,7 +5575,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>บันทึกการตั้งค่า?</target> <target>บันทึกการตั้งค่า?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6067,6 +6139,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>ที่อยู่ SimpleX</target> <target>ที่อยู่ SimpleX</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>ความปลอดภัยของ SimpleX Chat ได้รับการตรวจสอบโดย Trail of Bits</target> <target>ความปลอดภัยของ SimpleX Chat ได้รับการตรวจสอบโดย Trail of Bits</target>
@@ -6125,8 +6201,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>ลิงก์ SimpleX</target> <target>ลิงก์ SimpleX</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
@@ -6518,6 +6594,14 @@ It can happen because of some bug or when the connection is compromised.</source
<target>โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</target> <target>โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7117,8 +7201,8 @@ To connect, please ask your contact to create another connection link and check
<target>ห้ามส่งข้อความเสียงในแชทนี้</target> <target>ห้ามส่งข้อความเสียงในแชทนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้</target> <target>ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7293,6 +7377,10 @@ To connect, please ask your contact to create another connection link and check
<target>คุณได้เชื่อมต่อกับ %@ แล้ว</target> <target>คุณได้เชื่อมต่อกับ %@ แล้ว</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7540,6 +7628,10 @@ Repeat connection request?</source>
<target>คุณจะยังได้รับสายเรียกเข้าและการแจ้งเตือนจากโปรไฟล์ที่ปิดเสียงเมื่อโปรไฟล์ของเขามีการใช้งาน</target> <target>คุณจะยังได้รับสายเรียกเข้าและการแจ้งเตือนจากโปรไฟล์ที่ปิดเสียงเมื่อโปรไฟล์ของเขามีการใช้งาน</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>คุณจะหยุดได้รับข้อความจากกลุ่มนี้ ประวัติการแชทจะถูกรักษาไว้</target> <target>คุณจะหยุดได้รับข้อความจากกลุ่มนี้ ประวัติการแชทจะถูกรักษาไว้</target>
@@ -7718,6 +7810,10 @@ Repeat connection request?</source>
<target>รับสายแล้ว</target> <target>รับสายแล้ว</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>ผู้ดูแลระบบ</target> <target>ผู้ดูแลระบบ</target>
@@ -7896,7 +7992,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>กำลังเชื่อมต่อ…</target> <target>กำลังเชื่อมต่อ…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8370,6 +8466,10 @@ Repeat connection request?</source>
<target>ลบคุณออกแล้ว</target> <target>ลบคุณออกแล้ว</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -572,6 +572,10 @@
<target>SimpleX Chat hakkında</target> <target>SimpleX Chat hakkında</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<target>Ana renk</target> <target>Ana renk</target>
@@ -628,6 +632,10 @@
<target>Kişilerinizin başkalarıyla paylaşabilmesi için profilinize adres ekleyin. Profil güncellemesi kişilerinize gönderilecek.</target> <target>Kişilerinizin başkalarıyla paylaşabilmesi için profilinize adres ekleyin. Profil güncellemesi kişilerinize gönderilecek.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>Profil ekle</target> <target>Profil ekle</target>
@@ -643,6 +651,10 @@
<target>Karekod taratarak sunucuları ekleyin.</target> <target>Karekod taratarak sunucuları ekleyin.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>Başka bir cihaza ekle</target> <target>Başka bir cihaza ekle</target>
@@ -653,6 +665,10 @@
<target>Karşılama mesajı ekleyin</target> <target>Karşılama mesajı ekleyin</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -729,8 +745,8 @@
<target>Kullanıldığında bütün veriler silinir.</target> <target>Kullanıldığında bütün veriler silinir.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target>Tüm veriler cihazınıza özeldir.</target> <target>Tüm veriler cihazınıza özeldir.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1218,6 +1234,14 @@
<target>Bulgarca, Fince, Tayca ve Ukraynaca - kullanıcılara ve [Weblate] e teşekkürler! (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>Bulgarca, Fince, Tayca ve Ukraynaca - kullanıcılara ve [Weblate] e teşekkürler! (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>Sohbet profiline göre (varsayılan) veya [bağlantıya göre](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target> <target>Sohbet profiline göre (varsayılan) veya [bağlantıya göre](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</target>
@@ -1309,6 +1333,10 @@
<target>Değiştir</target> <target>Değiştir</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>Veritabanı parolasını değiştir?</target> <target>Veritabanı parolasını değiştir?</target>
@@ -1355,9 +1383,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1434,6 +1470,14 @@
<target>Sohbet teması</target> <target>Sohbet teması</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>Sohbetler</target> <target>Sohbetler</target>
@@ -1545,8 +1589,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2174,6 +2218,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Sil ve kişiye bildir</target> <target>Sil ve kişiye bildir</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>Sohbet profilini sil</target> <target>Sohbet profilini sil</target>
@@ -2184,6 +2232,10 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Sohbet profili silinsin mi?</target> <target>Sohbet profili silinsin mi?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>Bağlantıyı sil</target> <target>Bağlantıyı sil</target>
@@ -2448,8 +2500,12 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Doğrudan mesajlar</target> <target>Doğrudan mesajlar</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>Bu grupta üyeler arasında direkt mesajlaşma yasaktır.</target> <target>Bu grupta üyeler arasında direkt mesajlaşma yasaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2488,8 +2544,8 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Kaybolan mesajlar bu sohbette yasaklanmış.</target> <target>Kaybolan mesajlar bu sohbette yasaklanmış.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>Kaybolan mesajlar bu grupta yasaklanmış.</target> <target>Kaybolan mesajlar bu grupta yasaklanmış.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3338,8 +3394,8 @@ Bu senin kendi tek kullanımlık bağlantın!</target>
<target>Dosyalar ve medya</target> <target>Dosyalar ve medya</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>Dosyalar ve medya bu grupta yasaklandı.</target> <target>Dosyalar ve medya bu grupta yasaklandı.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3608,41 +3664,6 @@ Hata: %2$@</target>
<target>Grup bağlantıları</target> <target>Grup bağlantıları</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>Grup üyeleri mesaj tepkileri ekleyebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>Grup üyeleri SimpleX bağlantıları gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>Grup üyeleri doğrudan mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>Grup üyeleri kaybolan mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>Grup üyeleri dosyalar ve medya gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>Grup üyeleri sesli mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>Grup mesajı:</target> <target>Grup mesajı:</target>
@@ -4040,6 +4061,10 @@ Daha fazla iyileştirme yakında geliyor!</target>
<target>Üyeleri davet et</target> <target>Üyeleri davet et</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>Gruba davet et</target> <target>Gruba davet et</target>
@@ -4055,8 +4080,8 @@ Daha fazla iyileştirme yakında geliyor!</target>
<target>Bu sohbette geri döndürülemez mesaj silme yasaktır.</target> <target>Bu sohbette geri döndürülemez mesaj silme yasaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>Bu grupta geri döndürülemez mesaj silme yasaktır.</target> <target>Bu grupta geri döndürülemez mesaj silme yasaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4198,6 +4223,14 @@ Bu senin grup için bağlantın %@!</target>
<target>Ayrıl</target> <target>Ayrıl</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>Gruptan ayrıl</target> <target>Gruptan ayrıl</target>
@@ -4328,6 +4361,10 @@ Bu senin grup için bağlantın %@!</target>
<target>Üye inaktif</target> <target>Üye inaktif</target>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>Üye rolü "%@" olarak değiştirilecektir. Ve tüm grup üyeleri bilgilendirilecektir.</target> <target>Üye rolü "%@" olarak değiştirilecektir. Ve tüm grup üyeleri bilgilendirilecektir.</target>
@@ -4338,11 +4375,50 @@ Bu senin grup için bağlantın %@!</target>
<target>Üye rolü "%@" olarak değiştirilecektir. Ve üye yeni bir davetiye alacaktır.</target> <target>Üye rolü "%@" olarak değiştirilecektir. Ve üye yeni bir davetiye alacaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>Üye gruptan çıkarılacaktır - bu geri alınamaz!</target> <target>Üye gruptan çıkarılacaktır - bu geri alınamaz!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>Grup üyeleri mesaj tepkileri ekleyebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>Grup üyeleri SimpleX bağlantıları gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>Grup üyeleri doğrudan mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>Grup üyeleri kaybolan mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>Grup üyeleri dosyalar ve medya gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>Grup üyeleri sesli mesajlar gönderebilir.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<target>Menüler</target> <target>Menüler</target>
@@ -4393,8 +4469,8 @@ Bu senin grup için bağlantın %@!</target>
<target>Mesaj tepkileri bu sohbette yasaklandı.</target> <target>Mesaj tepkileri bu sohbette yasaklandı.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>Mesaj tepkileri bu grupta yasaklandı.</target> <target>Mesaj tepkileri bu grupta yasaklandı.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4904,6 +4980,10 @@ VPN'nin etkinleştirilmesi gerekir.</target>
<target>Onion ana bilgisayarları kullanılmayacaktır.</target> <target>Onion ana bilgisayarları kullanılmayacaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>Yalnızca istemci cihazlar kullanıcı profillerini, kişileri, grupları ve **2 katmanlı uçtan uca şifreleme** ile gönderilen mesajları depolar.</target> <target>Yalnızca istemci cihazlar kullanıcı profillerini, kişileri, grupları ve **2 katmanlı uçtan uca şifreleme** ile gönderilen mesajları depolar.</target>
@@ -5293,6 +5373,10 @@ Hata: %@</target>
<target>Gizlilik &amp; güvenlik</target> <target>Gizlilik &amp; güvenlik</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>Gizlilik yeniden tanımlandı</target> <target>Gizlilik yeniden tanımlandı</target>
@@ -5450,10 +5534,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Proxy şifre gerektirir</target> <target>Proxy şifre gerektirir</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>Anında bildirimler</target> <target>Anında bildirimler</target>
@@ -5878,14 +5958,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>Daha güvenli gruplar</target> <target>Daha güvenli gruplar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>Kaydet</target> <target>Kaydet</target>
@@ -5900,7 +5972,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>Kaydet ve kişilere bildir</target> <target>Kaydet ve kişilere bildir</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5935,7 +6007,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>Tercihler kaydedilsin mi?</target> <target>Tercihler kaydedilsin mi?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6551,6 +6623,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX Adresi</target> <target>SimpleX Adresi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <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> <target>SimpleX Chat güvenliği Trails of Bits tarafından denetlenmiştir.</target>
@@ -6609,8 +6685,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX bağlantıları</target> <target>SimpleX bağlantıları</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>SimpleX bağlantıları bu grupta yasaklandı.</target> <target>SimpleX bağlantıları bu grupta yasaklandı.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7033,6 +7109,14 @@ Bazı hatalar nedeniyle veya bağlantı tehlikeye girdiğinde meydana gelebilir.
<target>Profil sadece kişilerinle paylaşılacak.</target> <target>Profil sadece kişilerinle paylaşılacak.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7688,8 +7772,8 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
<target>Bu sohbette sesli mesajlar yasaktır.</target> <target>Bu sohbette sesli mesajlar yasaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>Bu grupta sesli mesajlar yasaktır.</target> <target>Bu grupta sesli mesajlar yasaktır.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7882,6 +7966,10 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
<target>Zaten %@'a bağlısınız.</target> <target>Zaten %@'a bağlısınız.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>Zaten %@'a bağlanıyorsunuz.</target> <target>Zaten %@'a bağlanıyorsunuz.</target>
@@ -8153,6 +8241,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>Aktif olduklarında sessize alınmış profillerden arama ve bildirim almaya devam edersiniz.</target> <target>Aktif olduklarında sessize alınmış profillerden arama ve bildirim almaya devam edersiniz.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>Bu gruptan artık mesaj almayacaksınız. Sohbet geçmişi korunacaktır.</target> <target>Bu gruptan artık mesaj almayacaksınız. Sohbet geçmişi korunacaktır.</target>
@@ -8337,6 +8429,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>kabul edilen arama</target> <target>kabul edilen arama</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>yönetici</target> <target>yönetici</target>
@@ -8525,7 +8621,7 @@ Bağlantı isteği tekrarlansın mı?</target>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>bağlanılıyor…</target> <target>bağlanılıyor…</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -9018,6 +9114,10 @@ Bağlantı isteği tekrarlansın mı?</target>
<target>sen kaldırıldın</target> <target>sen kaldırıldın</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>kaydedildi</target> <target>kaydedildi</target>
File diff suppressed because it is too large Load Diff
@@ -566,6 +566,10 @@
<target>关于SimpleX Chat</target> <target>关于SimpleX Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <trans-unit id="Accent" xml:space="preserve">
<source>Accent</source> <source>Accent</source>
<target>强调</target> <target>强调</target>
@@ -622,6 +626,10 @@
<target>将地址添加到您的个人资料,以便您的联系人可以与其他人共享。个人资料更新将发送给您的联系人。</target> <target>将地址添加到您的个人资料,以便您的联系人可以与其他人共享。个人资料更新将发送给您的联系人。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add friends" xml:space="preserve">
<source>Add friends</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add profile" xml:space="preserve"> <trans-unit id="Add profile" xml:space="preserve">
<source>Add profile</source> <source>Add profile</source>
<target>添加个人资料</target> <target>添加个人资料</target>
@@ -637,6 +645,10 @@
<target>扫描二维码来添加服务器。</target> <target>扫描二维码来添加服务器。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add team members" xml:space="preserve">
<source>Add team members</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Add to another device" xml:space="preserve"> <trans-unit id="Add to another device" xml:space="preserve">
<source>Add to another device</source> <source>Add to another device</source>
<target>添加另一设备</target> <target>添加另一设备</target>
@@ -647,6 +659,10 @@
<target>添加欢迎信息</target> <target>添加欢迎信息</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Add your team members to the conversations." xml:space="preserve">
<source>Add your team members to the conversations.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Added media &amp; file servers" xml:space="preserve"> <trans-unit id="Added media &amp; file servers" xml:space="preserve">
<source>Added media &amp; file servers</source> <source>Added media &amp; file servers</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -723,8 +739,8 @@
<target>所有数据在输入后将被删除。</target> <target>所有数据在输入后将被删除。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="All data is private to your device." xml:space="preserve"> <trans-unit id="All data is kept private on your device." xml:space="preserve">
<source>All data is private to your device.</source> <source>All data is kept private on your device.</source>
<target>所有数据都是您设备的私有数据.</target> <target>所有数据都是您设备的私有数据.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1205,6 +1221,14 @@
<target>保加利亚语、芬兰语、泰语和乌克兰语——感谢用户和[Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target> <target>保加利亚语、芬兰语、泰语和乌克兰语——感谢用户和[Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Business address" xml:space="preserve">
<source>Business address</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Business chats" xml:space="preserve">
<source>Business chats</source>
<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"> <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">
<source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source> <source>By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA).</source>
<target>通过聊天资料(默认)或者[通过连接](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)。</target> <target>通过聊天资料(默认)或者[通过连接](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)。</target>
@@ -1296,6 +1320,10 @@
<target>更改</target> <target>更改</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change chat profiles" xml:space="preserve">
<source>Change chat profiles</source>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target>更改数据库密码?</target> <target>更改数据库密码?</target>
@@ -1342,9 +1370,17 @@
<note>authentication reason <note>authentication reason
set passcode view</note> set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Change user profiles" xml:space="preserve"> <trans-unit id="Chat" xml:space="preserve">
<source>Change user profiles</source> <source>Chat</source>
<note>authentication reason</note> <note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists" xml:space="preserve">
<source>Chat already exists</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat already exists!" xml:space="preserve">
<source>Chat already exists!</source>
<note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat colors" xml:space="preserve"> <trans-unit id="Chat colors" xml:space="preserve">
<source>Chat colors</source> <source>Chat colors</source>
@@ -1420,6 +1456,14 @@
<target>聊天主题</target> <target>聊天主题</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chats" xml:space="preserve"> <trans-unit id="Chats" xml:space="preserve">
<source>Chats</source> <source>Chats</source>
<target>聊天</target> <target>聊天</target>
@@ -1531,8 +1575,8 @@
<source>Conditions are accepted for the operator(s): **%@**.</source> <source>Conditions are accepted for the operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions are already accepted for following operator(s): **%@**." xml:space="preserve"> <trans-unit id="Conditions are already accepted for these operator(s): **%@**." xml:space="preserve">
<source>Conditions are already accepted for following operator(s): **%@**.</source> <source>Conditions are already accepted for these operator(s): **%@**.</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Conditions of use" xml:space="preserve"> <trans-unit id="Conditions of use" xml:space="preserve">
@@ -2158,6 +2202,10 @@ This is your own one-time link!</source>
<target>删除并通知联系人</target> <target>删除并通知联系人</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat" xml:space="preserve">
<source>Delete chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete chat profile" xml:space="preserve"> <trans-unit id="Delete chat profile" xml:space="preserve">
<source>Delete chat profile</source> <source>Delete chat profile</source>
<target>删除聊天资料</target> <target>删除聊天资料</target>
@@ -2168,6 +2216,10 @@ This is your own one-time link!</source>
<target>删除聊天资料?</target> <target>删除聊天资料?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete chat?" xml:space="preserve">
<source>Delete chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
<source>Delete connection</source> <source>Delete connection</source>
<target>删除连接</target> <target>删除连接</target>
@@ -2431,8 +2483,12 @@ This is your own one-time link!</source>
<target>私信</target> <target>私信</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve"> <trans-unit id="Direct messages between members are prohibited in this chat." xml:space="preserve">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited in this chat.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Direct messages between members are prohibited." xml:space="preserve">
<source>Direct messages between members are prohibited.</source>
<target>此群中禁止成员之间私信。</target> <target>此群中禁止成员之间私信。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -2471,8 +2527,8 @@ This is your own one-time link!</source>
<target>此聊天中禁止显示限时消息。</target> <target>此聊天中禁止显示限时消息。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target>该组禁止限时消息。</target> <target>该组禁止限时消息。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3313,8 +3369,8 @@ This is your own one-time link!</source>
<target>文件和媒体</target> <target>文件和媒体</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Files and media are prohibited in this group." xml:space="preserve"> <trans-unit id="Files and media are prohibited." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited.</source>
<target>此群组中禁止文件和媒体。</target> <target>此群组中禁止文件和媒体。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3578,41 +3634,6 @@ Error: %2$@</source>
<target>群组链接</target> <target>群组链接</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve">
<source>Group members can add message reactions.</source>
<target>群组成员可以添加信息回应。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>群组成员可以不可撤回地删除已发送的消息</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source>
<target>群成员可发送 SimpleX 链接。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve">
<source>Group members can send direct messages.</source>
<target>群组成员可以私信。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve">
<source>Group members can send disappearing messages.</source>
<target>群组成员可以发送限时消息。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send files and media." xml:space="preserve">
<source>Group members can send files and media.</source>
<target>群组成员可以发送文件和媒体。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve">
<source>Group members can send voice messages.</source>
<target>群组成员可以发送语音消息。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Group message:" xml:space="preserve"> <trans-unit id="Group message:" xml:space="preserve">
<source>Group message:</source> <source>Group message:</source>
<target>群组消息:</target> <target>群组消息:</target>
@@ -4007,6 +4028,10 @@ More improvements are coming soon!</source>
<target>邀请成员</target> <target>邀请成员</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invite to chat" xml:space="preserve">
<source>Invite to chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Invite to group" xml:space="preserve"> <trans-unit id="Invite to group" xml:space="preserve">
<source>Invite to group</source> <source>Invite to group</source>
<target>邀请加入群组</target> <target>邀请加入群组</target>
@@ -4022,8 +4047,8 @@ More improvements are coming soon!</source>
<target>此聊天中禁止不可撤回消息移除。</target> <target>此聊天中禁止不可撤回消息移除。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target>此群组中禁止不可撤回消息移除。</target> <target>此群组中禁止不可撤回消息移除。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4165,6 +4190,14 @@ This is your link for group %@!</source>
<target>离开</target> <target>离开</target>
<note>swipe action</note> <note>swipe action</note>
</trans-unit> </trans-unit>
<trans-unit id="Leave chat" xml:space="preserve">
<source>Leave chat</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave chat?" xml:space="preserve">
<source>Leave chat?</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Leave group" xml:space="preserve"> <trans-unit id="Leave group" xml:space="preserve">
<source>Leave group</source> <source>Leave group</source>
<target>离开群组</target> <target>离开群组</target>
@@ -4295,6 +4328,10 @@ This is your link for group %@!</source>
<target>成员不活跃</target> <target>成员不活跃</target>
<note>item status text</note> <note>item status text</note>
</trans-unit> </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>
<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"> <trans-unit id="Member role will be changed to &quot;%@&quot;. All group members will be notified." xml:space="preserve">
<source>Member role will be changed to "%@". All group members will be notified.</source> <source>Member role will be changed to "%@". All group members will be notified.</source>
<target>成员角色将更改为 "%@"。所有群成员将收到通知。</target> <target>成员角色将更改为 "%@"。所有群成员将收到通知。</target>
@@ -4305,11 +4342,50 @@ This is your link for group %@!</source>
<target>成员角色将更改为 "%@"。该成员将收到一份新的邀请。</target> <target>成员角色将更改为 "%@"。该成员将收到一份新的邀请。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="Member will be removed from group - this cannot be undone!" xml:space="preserve">
<source>Member will be removed from group - this cannot be undone!</source> <source>Member will be removed from group - this cannot be undone!</source>
<target>成员将被移出群组——此操作无法撤消!</target> <target>成员将被移出群组——此操作无法撤消!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Members can add message reactions." xml:space="preserve">
<source>Members can add message reactions.</source>
<target>群组成员可以添加信息回应。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Members can irreversibly delete sent messages. (24 hours)</source>
<target>群组成员可以不可撤回地删除已发送的消息</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send SimpleX links." xml:space="preserve">
<source>Members can send SimpleX links.</source>
<target>群成员可发送 SimpleX 链接。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send direct messages." xml:space="preserve">
<source>Members can send direct messages.</source>
<target>群组成员可以私信。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send disappearing messages." xml:space="preserve">
<source>Members can send disappearing messages.</source>
<target>群组成员可以发送限时消息。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send files and media." xml:space="preserve">
<source>Members can send files and media.</source>
<target>群组成员可以发送文件和媒体。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Members can send voice messages." xml:space="preserve">
<source>Members can send voice messages.</source>
<target>群组成员可以发送语音消息。</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Menus" xml:space="preserve"> <trans-unit id="Menus" xml:space="preserve">
<source>Menus</source> <source>Menus</source>
<target>菜单</target> <target>菜单</target>
@@ -4360,8 +4436,8 @@ This is your link for group %@!</source>
<target>该聊天禁用了消息回应。</target> <target>该聊天禁用了消息回应。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve"> <trans-unit id="Message reactions are prohibited." xml:space="preserve">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target>该群组禁用了消息回应。</target> <target>该群组禁用了消息回应。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -4864,6 +4940,10 @@ Requires compatible VPN.</source>
<target>将不会使用 Onion 主机。</target> <target>将不会使用 Onion 主机。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only chat owners can change preferences." xml:space="preserve">
<source>Only chat owners can change preferences.</source>
<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"> <trans-unit id="Only client devices store user profiles, contacts, groups, and messages." xml:space="preserve">
<source>Only client devices store user profiles, contacts, groups, and messages.</source> <source>Only client devices store user profiles, contacts, groups, and messages.</source>
<target>只有客户端设备存储用户资料、联系人、群组和**双层端到端加密**发送的消息。</target> <target>只有客户端设备存储用户资料、联系人、群组和**双层端到端加密**发送的消息。</target>
@@ -5249,6 +5329,10 @@ Error: %@</source>
<target>隐私和安全</target> <target>隐私和安全</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Privacy for your customers." xml:space="preserve">
<source>Privacy for your customers.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Privacy redefined" xml:space="preserve"> <trans-unit id="Privacy redefined" xml:space="preserve">
<source>Privacy redefined</source> <source>Privacy redefined</source>
<target>重新定义隐私</target> <target>重新定义隐私</target>
@@ -5405,10 +5489,6 @@ Enable in *Network &amp; servers* settings.</source>
<source>Proxy requires password</source> <source>Proxy requires password</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Push Notifications" xml:space="preserve">
<source>Push Notifications</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Push notifications" xml:space="preserve"> <trans-unit id="Push notifications" xml:space="preserve">
<source>Push notifications</source> <source>Push notifications</source>
<target>推送通知</target> <target>推送通知</target>
@@ -5831,14 +5911,6 @@ Enable in *Network &amp; servers* settings.</source>
<target>更安全的群组</target> <target>更安全的群组</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Same conditions will apply to operator **%@**." xml:space="preserve">
<source>Same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>Same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Save" xml:space="preserve"> <trans-unit id="Save" xml:space="preserve">
<source>Save</source> <source>Save</source>
<target>保存</target> <target>保存</target>
@@ -5853,7 +5925,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save and notify contact" xml:space="preserve"> <trans-unit id="Save and notify contact" xml:space="preserve">
<source>Save and notify contact</source> <source>Save and notify contact</source>
<target>保存并通知联系人</target> <target>保存并通知联系人</target>
<note>No comment provided by engineer.</note> <note>alert button</note>
</trans-unit> </trans-unit>
<trans-unit id="Save and notify group members" xml:space="preserve"> <trans-unit id="Save and notify group members" xml:space="preserve">
<source>Save and notify group members</source> <source>Save and notify group members</source>
@@ -5888,7 +5960,7 @@ Enable in *Network &amp; servers* settings.</source>
<trans-unit id="Save preferences?" xml:space="preserve"> <trans-unit id="Save preferences?" xml:space="preserve">
<source>Save preferences?</source> <source>Save preferences?</source>
<target>保存偏好设置?</target> <target>保存偏好设置?</target>
<note>No comment provided by engineer.</note> <note>alert title</note>
</trans-unit> </trans-unit>
<trans-unit id="Save profile password" xml:space="preserve"> <trans-unit id="Save profile password" xml:space="preserve">
<source>Save profile password</source> <source>Save profile password</source>
@@ -6498,6 +6570,10 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX 地址</target> <target>SimpleX 地址</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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"> <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> <source>SimpleX Chat security was audited by Trail of Bits.</source>
<target>SimpleX Chat 的安全性 由 Trail of Bits 审核。</target> <target>SimpleX Chat 的安全性 由 Trail of Bits 审核。</target>
@@ -6556,8 +6632,8 @@ Enable in *Network &amp; servers* settings.</source>
<target>SimpleX 链接</target> <target>SimpleX 链接</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited.</source>
<target>此群禁止 SimpleX 链接。</target> <target>此群禁止 SimpleX 链接。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -6975,6 +7051,14 @@ It can happen because of some bug or when the connection is compromised.</source
<target>该资料仅与您的联系人共享。</target> <target>该资料仅与您的联系人共享。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The same conditions will apply to operator **%@**." xml:space="preserve">
<source>The same conditions will apply to operator **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The same conditions will apply to operator(s): **%@**." xml:space="preserve">
<source>The same conditions will apply to operator(s): **%@**.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="The second preset operator in the app!" xml:space="preserve"> <trans-unit id="The second preset operator in the app!" xml:space="preserve">
<source>The second preset operator in the app!</source> <source>The second preset operator in the app!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -7625,8 +7709,8 @@ To connect, please ask your contact to create another connection link and check
<target>语音信息在此聊天中被禁止。</target> <target>语音信息在此聊天中被禁止。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve"> <trans-unit id="Voice messages are prohibited." xml:space="preserve">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target>语音信息在该群组中被禁用。</target> <target>语音信息在该群组中被禁用。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -7819,6 +7903,10 @@ To connect, please ask your contact to create another connection link and check
<target>您已经连接到 %@。</target> <target>您已经连接到 %@。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You are already connected with %@." xml:space="preserve">
<source>You are already connected with %@.</source>
<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">
<source>You are already connecting to %@.</source> <source>You are already connecting to %@.</source>
<target>您已连接到 %@。</target> <target>您已连接到 %@。</target>
@@ -8090,6 +8178,10 @@ Repeat connection request?</source>
<target>当静音配置文件处于活动状态时,您仍会收到来自静音配置文件的电话和通知。</target> <target>当静音配置文件处于活动状态时,您仍会收到来自静音配置文件的电话和通知。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </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>
<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"> <trans-unit id="You will stop receiving messages from this group. Chat history will be preserved." xml:space="preserve">
<source>You will stop receiving messages from this group. Chat history will be preserved.</source> <source>You will stop receiving messages from this group. Chat history will be preserved.</source>
<target>您将停止接收来自该群组的消息。聊天记录将被保留。</target> <target>您将停止接收来自该群组的消息。聊天记录将被保留。</target>
@@ -8270,6 +8362,10 @@ Repeat connection request?</source>
<target>已接受通话</target> <target>已接受通话</target>
<note>call status</note> <note>call status</note>
</trans-unit> </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"> <trans-unit id="admin" xml:space="preserve">
<source>admin</source> <source>admin</source>
<target>管理员</target> <target>管理员</target>
@@ -8458,7 +8554,7 @@ Repeat connection request?</source>
<trans-unit id="connecting…" xml:space="preserve"> <trans-unit id="connecting…" xml:space="preserve">
<source>connecting…</source> <source>connecting…</source>
<target>连接中……</target> <target>连接中……</target>
<note>chat list item title</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="connection established" xml:space="preserve"> <trans-unit id="connection established" xml:space="preserve">
<source>connection established</source> <source>connection established</source>
@@ -8951,6 +9047,10 @@ Repeat connection request?</source>
<target>已将您移除</target> <target>已将您移除</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </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"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>已保存</target> <target>已保存</target>
@@ -1173,8 +1173,8 @@
<target state="translated">私訊</target> <target state="translated">私訊</target>
<note>chat feature</note> <note>chat feature</note>
</trans-unit> </trans-unit>
<trans-unit id="Direct messages between members are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Direct messages between members are prohibited." xml:space="preserve" approved="no">
<source>Direct messages between members are prohibited in this group.</source> <source>Direct messages between members are prohibited.</source>
<target state="translated">私訊群組內的成員於這個群組內是禁用的。</target> <target state="translated">私訊群組內的成員於這個群組內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1193,8 +1193,8 @@
<target state="translated">自動銷毀訊息已被禁止於此聊天室。</target> <target state="translated">自動銷毀訊息已被禁止於此聊天室。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Disappearing messages are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Disappearing messages are prohibited." xml:space="preserve" approved="no">
<source>Disappearing messages are prohibited in this group.</source> <source>Disappearing messages are prohibited.</source>
<target state="translated">自動銷毀訊息於這個群組內是禁用的。</target> <target state="translated">自動銷毀訊息於這個群組內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1618,18 +1618,18 @@
<target state="translated">群組內的成員可以不可逆地刪除訊息。</target> <target state="translated">群組內的成員可以不可逆地刪除訊息。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send direct messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send direct messages." xml:space="preserve" approved="no">
<source>Group members can send direct messages.</source> <source>Members can send direct messages.</source>
<target state="translated">群組內的成員可以私訊群組內的成員。</target> <target state="translated">群組內的成員可以私訊群組內的成員。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send disappearing messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send disappearing messages." xml:space="preserve" approved="no">
<source>Group members can send disappearing messages.</source> <source>Members can send disappearing messages.</source>
<target state="translated">群組內的成員可以傳送自動銷毀的訊息。</target> <target state="translated">群組內的成員可以傳送自動銷毀的訊息。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send voice messages." xml:space="preserve" approved="no"> <trans-unit id="Members can send voice messages." xml:space="preserve" approved="no">
<source>Group members can send voice messages.</source> <source>Members can send voice messages.</source>
<target state="translated">群組內的成員可以傳送語音訊息。</target> <target state="translated">群組內的成員可以傳送語音訊息。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1864,8 +1864,8 @@
<target state="translated">不可逆地刪除訊息於這個聊天室內是禁用的。</target> <target state="translated">不可逆地刪除訊息於這個聊天室內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Irreversible message deletion is prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Irreversible message deletion is prohibited." xml:space="preserve" approved="no">
<source>Irreversible message deletion is prohibited in this group.</source> <source>Irreversible message deletion is prohibited.</source>
<target state="translated">不可逆地刪除訊息於這個群組內是禁用的。</target> <target state="translated">不可逆地刪除訊息於這個群組內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -3316,8 +3316,8 @@ To connect, please ask your contact to create another connection link and check
<target state="translated">語音訊息於這個聊天窒是禁用的。</target> <target state="translated">語音訊息於這個聊天窒是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Voice messages are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Voice messages are prohibited." xml:space="preserve" approved="no">
<source>Voice messages are prohibited in this group.</source> <source>Voice messages are prohibited.</source>
<target state="translated">語音訊息於這個群組內是禁用的。</target> <target state="translated">語音訊息於這個群組內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -5513,8 +5513,8 @@ It can happen because of some bug or when the connection is compromised.</source
<target state="translated">啟用自毀密碼</target> <target state="translated">啟用自毀密碼</target>
<note>set passcode view</note> <note>set passcode view</note>
</trans-unit> </trans-unit>
<trans-unit id="Group members can add message reactions." xml:space="preserve" approved="no"> <trans-unit id="Members can add message reactions." xml:space="preserve" approved="no">
<source>Group members can add message reactions.</source> <source>Members can add message reactions.</source>
<target state="translated">群組內的成員可以新增訊息互動。</target> <target state="translated">群組內的成員可以新增訊息互動。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -5689,8 +5689,8 @@ It can happen because of some bug or when the connection is compromised.</source
<target state="translated">已移除在</target> <target state="translated">已移除在</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message reactions are prohibited in this group." xml:space="preserve" approved="no"> <trans-unit id="Message reactions are prohibited." xml:space="preserve" approved="no">
<source>Message reactions are prohibited in this group.</source> <source>Message reactions are prohibited.</source>
<target state="translated">訊息互動於這個群組內是禁用的。</target> <target state="translated">訊息互動於這個群組內是禁用的。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d neue Ereignisse";
SimpleX
/* notification body */
"From: %@" = "Von: %@";
/* notification */
"New events" = "Neue Ereignisse";
/* notification */
"New messages" = "Neue Nachrichten";
/* notification body */
"New messages in %d chats" = "Neue Nachrichten in %d Chats";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d evento(s) nuevo(s)";
SimpleX
/* notification body */
"From: %@" = "De: %@";
/* notification */
"New events" = "Eventos nuevos";
/* notification */
"New messages" = "Mensajes nuevos";
/* notification body */
"New messages in %d chats" = "Mensajes nuevos en %d chat(s)";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d új esemény";
SimpleX
/* notification body */
"From: %@" = "Tőle: %@";
/* notification */
"New events" = "Új események";
/* notification */
"New messages" = "Új üzenetek";
/* notification body */
"New messages in %d chats" = "Új üzenetek %d csevegésben";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d nuovi eventi";
SimpleX
/* notification body */
"From: %@" = "Da: %@";
/* notification */
"New events" = "Nuovi eventi";
/* notification */
"New messages" = "Nuovi messaggi";
/* notification body */
"New messages in %d chats" = "Nuovi messaggi in %d chat";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d nieuwe gebeurtenissen";
SimpleX
/* notification body */
"From: %@" = "Van: %@";
/* notification */
"New events" = "Nieuwe gebeurtenissen";
/* notification */
"New messages" = "Nieuwe berichten";
/* notification body */
"New messages in %d chats" = "Nieuwe berichten in %d chats";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d новых сообщений";
SimpleX
/* notification body */
"From: %@" = "От: %@";
/* notification */
"New events" = "Новые события";
/* notification */
"New messages" = "Новые сообщения";
/* notification body */
"New messages in %d chats" = "Новые сообщения в %d разговоре(ах)";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
@@ -1,7 +1,15 @@
/* /* notification body */
Localizable.strings "%d new events" = "%d нових подій";
SimpleX
/* notification body */
"From: %@" = "Від: %@";
/* notification */
"New events" = "Нові події";
/* notification */
"New messages" = "Нові повідомлення";
/* notification body */
"New messages in %d chats" = "Нові повідомлення в чатах %d";
Created by EP on 30/07/2024.
Copyright © 2024 SimpleX Chat. All rights reserved.
*/
+30 -30
View File
@@ -148,11 +148,6 @@
6419EC562AB8BC8B004A607A /* ContextInvitingContactMemberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC552AB8BC8B004A607A /* ContextInvitingContactMemberView.swift */; }; 6419EC562AB8BC8B004A607A /* ContextInvitingContactMemberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC552AB8BC8B004A607A /* ContextInvitingContactMemberView.swift */; };
6419EC582AB97507004A607A /* CIMemberCreatedContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */; }; 6419EC582AB97507004A607A /* CIMemberCreatedContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */; };
642BA82D2CE50495005E9412 /* NewServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 642BA82C2CE50495005E9412 /* NewServerView.swift */; }; 642BA82D2CE50495005E9412 /* NewServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 642BA82C2CE50495005E9412 /* NewServerView.swift */; };
642BA8332CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642BA82E2CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a */; };
642BA8342CEB3D4B005E9412 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642BA82F2CEB3D4B005E9412 /* libffi.a */; };
642BA8352CEB3D4B005E9412 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642BA8302CEB3D4B005E9412 /* libgmp.a */; };
642BA8362CEB3D4B005E9412 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642BA8312CEB3D4B005E9412 /* libgmpxx.a */; };
642BA8372CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 642BA8322CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a */; };
6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */; }; 6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */; };
643B3B4E2CCFD6400083A2CF /* OperatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643B3B4D2CCFD6400083A2CF /* OperatorView.swift */; }; 643B3B4E2CCFD6400083A2CF /* OperatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643B3B4D2CCFD6400083A2CF /* OperatorView.swift */; };
6440CA00288857A10062C672 /* CIEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6440C9FF288857A10062C672 /* CIEventView.swift */; }; 6440CA00288857A10062C672 /* CIEventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6440C9FF288857A10062C672 /* CIEventView.swift */; };
@@ -171,6 +166,11 @@
647F090E288EA27B00644C40 /* GroupMemberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */; }; 647F090E288EA27B00644C40 /* GroupMemberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 647F090D288EA27B00644C40 /* GroupMemberInfoView.swift */; };
648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; }; 648010AB281ADD15009009B9 /* CIFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648010AA281ADD15009009B9 /* CIFileView.swift */; };
648679AB2BC96A74006456E7 /* ChatItemForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648679AA2BC96A74006456E7 /* ChatItemForwardingView.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.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.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 */; }; 649BCDA0280460FD00C3A862 /* ComposeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCD9F280460FD00C3A862 /* ComposeImageView.swift */; };
649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; }; 649BCDA22805D6EF00C3A862 /* CIImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649BCDA12805D6EF00C3A862 /* CIImageView.swift */; };
64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; }; 64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; };
@@ -496,11 +496,6 @@
6419EC552AB8BC8B004A607A /* ContextInvitingContactMemberView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextInvitingContactMemberView.swift; sourceTree = "<group>"; }; 6419EC552AB8BC8B004A607A /* ContextInvitingContactMemberView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextInvitingContactMemberView.swift; sourceTree = "<group>"; };
6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIMemberCreatedContactView.swift; sourceTree = "<group>"; }; 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIMemberCreatedContactView.swift; sourceTree = "<group>"; };
642BA82C2CE50495005E9412 /* NewServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewServerView.swift; sourceTree = "<group>"; }; 642BA82C2CE50495005E9412 /* NewServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewServerView.swift; sourceTree = "<group>"; };
642BA82E2CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a"; sourceTree = "<group>"; };
642BA82F2CEB3D4B005E9412 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
642BA8302CEB3D4B005E9412 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
642BA8312CEB3D4B005E9412 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
642BA8322CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a"; sourceTree = "<group>"; };
6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreferencesView.swift; sourceTree = "<group>"; }; 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreferencesView.swift; sourceTree = "<group>"; };
643B3B4D2CCFD6400083A2CF /* OperatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OperatorView.swift; sourceTree = "<group>"; }; 643B3B4D2CCFD6400083A2CF /* OperatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OperatorView.swift; sourceTree = "<group>"; };
6440C9FF288857A10062C672 /* CIEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIEventView.swift; sourceTree = "<group>"; }; 6440C9FF288857A10062C672 /* CIEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIEventView.swift; sourceTree = "<group>"; };
@@ -520,6 +515,11 @@
648010AA281ADD15009009B9 /* CIFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIFileView.swift; sourceTree = "<group>"; }; 648010AA281ADD15009009B9 /* CIFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIFileView.swift; sourceTree = "<group>"; };
648679AA2BC96A74006456E7 /* ChatItemForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemForwardingView.swift; sourceTree = "<group>"; }; 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>"; }; 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.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.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>"; }; 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>"; }; 649BCDA12805D6EF00C3A862 /* CIImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIImageView.swift; sourceTree = "<group>"; };
64AA1C6827EE10C800AC7277 /* ContextItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextItemView.swift; sourceTree = "<group>"; }; 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextItemView.swift; sourceTree = "<group>"; };
@@ -667,14 +667,14 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
649B28DF2CFE07CF00536B68 /* libgmpxx.a in Frameworks */,
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
649B28E12CFE07CF00536B68 /* libgmp.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
649B28E02CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a in Frameworks */,
CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */,
642BA8342CEB3D4B005E9412 /* libffi.a in Frameworks */, 649B28DE2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a in Frameworks */,
642BA8352CEB3D4B005E9412 /* libgmp.a in Frameworks */, 649B28DD2CFE07CF00536B68 /* libffi.a in Frameworks */,
642BA8372CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a in Frameworks */,
642BA8332CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a in Frameworks */,
642BA8362CEB3D4B005E9412 /* libgmpxx.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -751,11 +751,11 @@
5C764E5C279C70B7000C6508 /* Libraries */ = { 5C764E5C279C70B7000C6508 /* Libraries */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
642BA82F2CEB3D4B005E9412 /* libffi.a */, 649B28D82CFE07CF00536B68 /* libffi.a */,
642BA8302CEB3D4B005E9412 /* libgmp.a */, 649B28DC2CFE07CF00536B68 /* libgmp.a */,
642BA8312CEB3D4B005E9412 /* libgmpxx.a */, 649B28DA2CFE07CF00536B68 /* libgmpxx.a */,
642BA8322CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B-ghc9.6.3.a */, 649B28D92CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E-ghc9.6.3.a */,
642BA82E2CEB3D4B005E9412 /* libHSsimplex-chat-6.2.0.3-ELfYrsBTXJJ5vBEIgQ1y2B.a */, 649B28DB2CFE07CF00536B68 /* libHSsimplex-chat-6.2.0.7-3p784Fmu4gOAiEiFcsHj1E.a */,
); );
path = Libraries; path = Libraries;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -1931,7 +1931,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@@ -1980,7 +1980,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@@ -2021,7 +2021,7 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2041,7 +2041,7 @@
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2066,7 +2066,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GCC_OPTIMIZATION_LEVEL = s; GCC_OPTIMIZATION_LEVEL = s;
@@ -2103,7 +2103,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_CODE_COVERAGE = NO; ENABLE_CODE_COVERAGE = NO;
@@ -2140,7 +2140,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2191,7 +2191,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2242,7 +2242,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17; GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -2276,7 +2276,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 249; CURRENT_PROJECT_VERSION = 254;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17; GCC_C_LANGUAGE_STANDARD = gnu17;
+27 -56
View File
@@ -598,7 +598,6 @@ public enum ChatResponse: Decodable, Error {
case sentInvitation(user: UserRef, connection: PendingContactConnection) case sentInvitation(user: UserRef, connection: PendingContactConnection)
case sentInvitationToContact(user: UserRef, contact: Contact, customUserProfile: Profile?) case sentInvitationToContact(user: UserRef, contact: Contact, customUserProfile: Profile?)
case contactAlreadyExists(user: UserRef, contact: Contact) case contactAlreadyExists(user: UserRef, contact: Contact)
case contactRequestAlreadyAccepted(user: UserRef, contact: Contact)
case contactDeleted(user: UserRef, contact: Contact) case contactDeleted(user: UserRef, contact: Contact)
case contactDeletedByContact(user: UserRef, contact: Contact) case contactDeletedByContact(user: UserRef, contact: Contact)
case chatCleared(user: UserRef, chatInfo: ChatInfo) case chatCleared(user: UserRef, chatInfo: ChatInfo)
@@ -640,6 +639,7 @@ public enum ChatResponse: Decodable, Error {
case sentGroupInvitation(user: UserRef, groupInfo: GroupInfo, contact: Contact, member: GroupMember) case sentGroupInvitation(user: UserRef, groupInfo: GroupInfo, contact: Contact, member: GroupMember)
case userAcceptedGroupSent(user: UserRef, groupInfo: GroupInfo, hostContact: Contact?) case userAcceptedGroupSent(user: UserRef, groupInfo: GroupInfo, hostContact: Contact?)
case groupLinkConnecting(user: UserRef, groupInfo: GroupInfo, hostMember: GroupMember) case groupLinkConnecting(user: UserRef, groupInfo: GroupInfo, hostMember: GroupMember)
case businessLinkConnecting(user: UserRef, groupInfo: GroupInfo, hostMember: GroupMember, fromContact: Contact)
case userDeletedMember(user: UserRef, groupInfo: GroupInfo, member: GroupMember) case userDeletedMember(user: UserRef, groupInfo: GroupInfo, member: GroupMember)
case leftMemberUser(user: UserRef, groupInfo: GroupInfo) case leftMemberUser(user: UserRef, groupInfo: GroupInfo)
case groupMembers(user: UserRef, group: Group) case groupMembers(user: UserRef, group: Group)
@@ -775,7 +775,6 @@ public enum ChatResponse: Decodable, Error {
case .sentInvitation: return "sentInvitation" case .sentInvitation: return "sentInvitation"
case .sentInvitationToContact: return "sentInvitationToContact" case .sentInvitationToContact: return "sentInvitationToContact"
case .contactAlreadyExists: return "contactAlreadyExists" case .contactAlreadyExists: return "contactAlreadyExists"
case .contactRequestAlreadyAccepted: return "contactRequestAlreadyAccepted"
case .contactDeleted: return "contactDeleted" case .contactDeleted: return "contactDeleted"
case .contactDeletedByContact: return "contactDeletedByContact" case .contactDeletedByContact: return "contactDeletedByContact"
case .chatCleared: return "chatCleared" case .chatCleared: return "chatCleared"
@@ -816,6 +815,7 @@ public enum ChatResponse: Decodable, Error {
case .sentGroupInvitation: return "sentGroupInvitation" case .sentGroupInvitation: return "sentGroupInvitation"
case .userAcceptedGroupSent: return "userAcceptedGroupSent" case .userAcceptedGroupSent: return "userAcceptedGroupSent"
case .groupLinkConnecting: return "groupLinkConnecting" case .groupLinkConnecting: return "groupLinkConnecting"
case .businessLinkConnecting: return "businessLinkConnecting"
case .userDeletedMember: return "userDeletedMember" case .userDeletedMember: return "userDeletedMember"
case .leftMemberUser: return "leftMemberUser" case .leftMemberUser: return "leftMemberUser"
case .groupMembers: return "groupMembers" case .groupMembers: return "groupMembers"
@@ -950,7 +950,6 @@ public enum ChatResponse: Decodable, Error {
case let .sentInvitation(u, connection): return withUser(u, String(describing: connection)) case let .sentInvitation(u, connection): return withUser(u, String(describing: connection))
case let .sentInvitationToContact(u, contact, _): return withUser(u, String(describing: contact)) case let .sentInvitationToContact(u, contact, _): return withUser(u, String(describing: contact))
case let .contactAlreadyExists(u, contact): return withUser(u, String(describing: contact)) case let .contactAlreadyExists(u, contact): return withUser(u, String(describing: contact))
case let .contactRequestAlreadyAccepted(u, contact): return withUser(u, String(describing: contact))
case let .contactDeleted(u, contact): return withUser(u, String(describing: contact)) case let .contactDeleted(u, contact): return withUser(u, String(describing: contact))
case let .contactDeletedByContact(u, contact): return withUser(u, String(describing: contact)) case let .contactDeletedByContact(u, contact): return withUser(u, String(describing: contact))
case let .chatCleared(u, chatInfo): return withUser(u, String(describing: chatInfo)) case let .chatCleared(u, chatInfo): return withUser(u, String(describing: chatInfo))
@@ -998,6 +997,7 @@ public enum ChatResponse: Decodable, Error {
case let .sentGroupInvitation(u, groupInfo, contact, member): return withUser(u, "groupInfo: \(groupInfo)\ncontact: \(contact)\nmember: \(member)") case let .sentGroupInvitation(u, groupInfo, contact, member): return withUser(u, "groupInfo: \(groupInfo)\ncontact: \(contact)\nmember: \(member)")
case let .userAcceptedGroupSent(u, groupInfo, hostContact): return withUser(u, "groupInfo: \(groupInfo)\nhostContact: \(String(describing: hostContact))") case let .userAcceptedGroupSent(u, groupInfo, hostContact): return withUser(u, "groupInfo: \(groupInfo)\nhostContact: \(String(describing: hostContact))")
case let .groupLinkConnecting(u, groupInfo, hostMember): return withUser(u, "groupInfo: \(groupInfo)\nhostMember: \(String(describing: hostMember))") case let .groupLinkConnecting(u, groupInfo, hostMember): return withUser(u, "groupInfo: \(groupInfo)\nhostMember: \(String(describing: hostMember))")
case let .businessLinkConnecting(u, groupInfo, hostMember, fromContact): return withUser(u, "groupInfo: \(groupInfo)\nhostMember: \(String(describing: hostMember))\nfromContact: \(String(describing: fromContact))")
case let .userDeletedMember(u, groupInfo, member): return withUser(u, "groupInfo: \(groupInfo)\nmember: \(member)") case let .userDeletedMember(u, groupInfo, member): return withUser(u, "groupInfo: \(groupInfo)\nmember: \(member)")
case let .leftMemberUser(u, groupInfo): return withUser(u, String(describing: groupInfo)) case let .leftMemberUser(u, groupInfo): return withUser(u, String(describing: groupInfo))
case let .groupMembers(u, group): return withUser(u, String(describing: group)) case let .groupMembers(u, group): return withUser(u, String(describing: group))
@@ -1212,13 +1212,12 @@ public enum ServerProtocol: String, Decodable {
public enum OperatorTag: String, Codable { public enum OperatorTag: String, Codable {
case simplex = "simplex" case simplex = "simplex"
case flux = "flux" case flux = "flux"
case xyz = "xyz"
case demo = "demo"
} }
public struct ServerOperatorInfo: Decodable { public struct ServerOperatorInfo {
public var description: [String] 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 logo: String
public var largeLogo: String public var largeLogo: String
public var logoDarkMode: String public var logoDarkMode: String
@@ -1228,10 +1227,10 @@ public struct ServerOperatorInfo: Decodable {
public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [ public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
.simplex: ServerOperatorInfo( .simplex: ServerOperatorInfo(
description: [ 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." "SimpleX Chat Ltd develops the communication software for SimpleX network."
], ],
website: "https://simplex.chat", website: URL(string: "https://simplex.chat")!,
logo: "decentralized", logo: "decentralized",
largeLogo: "logo", largeLogo: "logo",
logoDarkMode: "decentralized-light", logoDarkMode: "decentralized-light",
@@ -1239,31 +1238,17 @@ public let operatorsInfo: Dictionary<OperatorTag, ServerOperatorInfo> = [
), ),
.flux: ServerOperatorInfo( .flux: ServerOperatorInfo(
description: [ description: [
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.", "Flux is the largest decentralized cloud, based on a global network of user-operated 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 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", logo: "flux_logo_symbol",
largeLogo: "flux_logo", largeLogo: "flux_logo",
logoDarkMode: "flux_logo_symbol", logoDarkMode: "flux_logo_symbol",
largeLogoDarkMode: "flux_logo-light" 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 { public struct UsageConditions: Decodable {
@@ -1358,7 +1343,7 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
public static let dummyOperatorInfo = ServerOperatorInfo( public static let dummyOperatorInfo = ServerOperatorInfo(
description: ["Default"], description: ["Default"],
website: "Default", website: URL(string: "https://simplex.chat")!,
logo: "decentralized", logo: "decentralized",
largeLogo: "logo", largeLogo: "logo",
logoDarkMode: "decentralized-light", logoDarkMode: "decentralized-light",
@@ -1384,30 +1369,6 @@ public struct ServerOperator: Identifiable, Equatable, Codable {
smpRoles: ServerRoles(storage: true, proxy: true), smpRoles: ServerRoles(storage: true, proxy: true),
xftpRoles: 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 { public struct ServerRoles: Equatable, Codable {
@@ -2103,17 +2064,24 @@ public struct UserContactLink: Decodable, Hashable {
} }
public struct AutoAccept: Codable, Hashable { public struct AutoAccept: Codable, Hashable {
public var businessAddress: Bool
public var acceptIncognito: Bool public var acceptIncognito: Bool
public var autoReply: MsgContent? public var autoReply: MsgContent?
public init(acceptIncognito: Bool, autoReply: MsgContent? = nil) { public init(businessAddress: Bool, acceptIncognito: Bool, autoReply: MsgContent? = nil) {
self.businessAddress = businessAddress
self.acceptIncognito = acceptIncognito self.acceptIncognito = acceptIncognito
self.autoReply = autoReply self.autoReply = autoReply
} }
static func cmdString(_ autoAccept: AutoAccept?) -> String { static func cmdString(_ autoAccept: AutoAccept?) -> String {
guard let autoAccept = autoAccept else { return "off" } guard let autoAccept = autoAccept else { return "off" }
let s = "on" + (autoAccept.acceptIncognito ? " incognito=on" : "") var s = "on"
if autoAccept.acceptIncognito {
s += " incognito=on"
} else if autoAccept.businessAddress {
s += " business"
}
guard let msg = autoAccept.autoReply else { return s } guard let msg = autoAccept.autoReply else { return s }
return s + " " + msg.cmdString return s + " " + msg.cmdString
} }
@@ -2648,6 +2616,7 @@ public struct AppSettings: Codable, Equatable {
public var uiCurrentThemeIds: [String: String]? = nil public var uiCurrentThemeIds: [String: String]? = nil
public var uiThemes: [ThemeOverrides]? = nil public var uiThemes: [ThemeOverrides]? = nil
public var oneHandUI: Bool? = nil public var oneHandUI: Bool? = nil
public var chatBottomBar: Bool? = nil
public func prepareForExport() -> AppSettings { public func prepareForExport() -> AppSettings {
var empty = AppSettings() var empty = AppSettings()
@@ -2682,6 +2651,7 @@ public struct AppSettings: Codable, Equatable {
if uiCurrentThemeIds != def.uiCurrentThemeIds { empty.uiCurrentThemeIds = uiCurrentThemeIds } if uiCurrentThemeIds != def.uiCurrentThemeIds { empty.uiCurrentThemeIds = uiCurrentThemeIds }
if uiThemes != def.uiThemes { empty.uiThemes = uiThemes } if uiThemes != def.uiThemes { empty.uiThemes = uiThemes }
if oneHandUI != def.oneHandUI { empty.oneHandUI = oneHandUI } if oneHandUI != def.oneHandUI { empty.oneHandUI = oneHandUI }
if chatBottomBar != def.chatBottomBar { empty.chatBottomBar = chatBottomBar }
return empty return empty
} }
@@ -2716,7 +2686,8 @@ public struct AppSettings: Codable, Equatable {
uiDarkColorScheme: DefaultTheme.SIMPLEX.themeName, uiDarkColorScheme: DefaultTheme.SIMPLEX.themeName,
uiCurrentThemeIds: nil as [String: String]?, uiCurrentThemeIds: nil as [String: String]?,
uiThemes: nil as [ThemeOverrides]?, uiThemes: nil as [ThemeOverrides]?,
oneHandUI: false oneHandUI: true,
chatBottomBar: true
) )
} }
} }
+3 -1
View File
@@ -57,6 +57,7 @@ public let GROUP_DEFAULT_CONFIRM_DB_UPGRADES = "confirmDBUpgrades"
public let GROUP_DEFAULT_CALL_KIT_ENABLED = "callKitEnabled" public let GROUP_DEFAULT_CALL_KIT_ENABLED = "callKitEnabled"
public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled" // no longer used public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled" // no longer used
public let GROUP_DEFAULT_ONE_HAND_UI = "oneHandUI" public let GROUP_DEFAULT_ONE_HAND_UI = "oneHandUI"
public let GROUP_DEFAULT_CHAT_BOTTOM_BAR = "chatBottomBar"
public let APP_GROUP_NAME = "group.chat.simplex.app" public let APP_GROUP_NAME = "group.chat.simplex.app"
@@ -94,7 +95,8 @@ public func registerGroupDefaults() {
GROUP_DEFAULT_CONFIRM_DB_UPGRADES: false, GROUP_DEFAULT_CONFIRM_DB_UPGRADES: false,
GROUP_DEFAULT_CALL_KIT_ENABLED: true, GROUP_DEFAULT_CALL_KIT_ENABLED: true,
GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED: false, GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED: false,
GROUP_DEFAULT_ONE_HAND_UI: true GROUP_DEFAULT_ONE_HAND_UI: true,
GROUP_DEFAULT_CHAT_BOTTOM_BAR: true
]) ])
} }
+31 -17
View File
@@ -821,38 +821,38 @@ public enum GroupFeature: String, Decodable, Feature, Hashable {
switch self { switch self {
case .timedMessages: case .timedMessages:
switch enabled { switch enabled {
case .on: return "Group members can send disappearing messages." case .on: return "Members can send disappearing messages."
case .off: return "Disappearing messages are prohibited in this group." case .off: return "Disappearing messages are prohibited."
} }
case .directMessages: case .directMessages:
switch enabled { switch enabled {
case .on: return "Group members can send direct messages." case .on: return "Members can send direct messages."
case .off: return "Direct messages between members are prohibited in this group." case .off: return "Direct messages between members are prohibited."
} }
case .fullDelete: case .fullDelete:
switch enabled { switch enabled {
case .on: return "Group members can irreversibly delete sent messages. (24 hours)" case .on: return "Members can irreversibly delete sent messages. (24 hours)"
case .off: return "Irreversible message deletion is prohibited in this group." case .off: return "Irreversible message deletion is prohibited."
} }
case .reactions: case .reactions:
switch enabled { switch enabled {
case .on: return "Group members can add message reactions." case .on: return "Members can add message reactions."
case .off: return "Message reactions are prohibited in this group." case .off: return "Message reactions are prohibited."
} }
case .voice: case .voice:
switch enabled { switch enabled {
case .on: return "Group members can send voice messages." case .on: return "Members can send voice messages."
case .off: return "Voice messages are prohibited in this group." case .off: return "Voice messages are prohibited."
} }
case .files: case .files:
switch enabled { switch enabled {
case .on: return "Group members can send files and media." case .on: return "Members can send files and media."
case .off: return "Files and media are prohibited in this group." case .off: return "Files and media are prohibited."
} }
case .simplexLinks: case .simplexLinks:
switch enabled { switch enabled {
case .on: return "Group members can send SimpleX links." case .on: return "Members can send SimpleX links."
case .off: return "SimpleX links are prohibited in this group." case .off: return "SimpleX links are prohibited."
} }
case .history: case .history:
switch enabled { switch enabled {
@@ -1782,9 +1782,11 @@ public struct PendingContactConnection: Decodable, NamedChat, Hashable {
public var displayName: String { public var displayName: String {
get { get {
if let initiated = pccConnStatus.initiated { 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("invited to connect", comment: "chat list item title")
: NSLocalizedString("connecting…", comment: "chat list item title") : NSLocalizedString("accepted invitation", comment: "chat list item title")
} else { } else {
// this should not be in the list // this should not be in the list
return NSLocalizedString("connection established", comment: "chat list item title (it should not be shown") return NSLocalizedString("connection established", comment: "chat list item title (it should not be shown")
@@ -1890,6 +1892,7 @@ public struct GroupInfo: Identifiable, Decodable, NamedChat, Hashable {
public var groupId: Int64 public var groupId: Int64
var localDisplayName: GroupName var localDisplayName: GroupName
public var groupProfile: GroupProfile public var groupProfile: GroupProfile
public var businessChat: BusinessChatInfo?
public var fullGroupPreferences: FullGroupPreferences public var fullGroupPreferences: FullGroupPreferences
public var membership: GroupMember public var membership: GroupMember
public var hostConnCustomUserProfileId: Int64? public var hostConnCustomUserProfileId: Int64?
@@ -1908,7 +1911,7 @@ public struct GroupInfo: Identifiable, Decodable, NamedChat, Hashable {
public var image: String? { get { groupProfile.image } } public var image: String? { get { groupProfile.image } }
public var localAlias: String { "" } public var localAlias: String { "" }
public var canEdit: Bool { public var isOwner: Bool {
return membership.memberRole == .owner && membership.memberCurrent return membership.memberRole == .owner && membership.memberCurrent
} }
@@ -1960,6 +1963,17 @@ public struct GroupProfile: Codable, NamedChat, Hashable {
) )
} }
public struct BusinessChatInfo: Decodable, Hashable {
public var chatType: BusinessChatType
public var businessId: String
public var customerId: String
}
public enum BusinessChatType: String, Codable, Hashable {
case business
case customer
}
public struct GroupMember: Identifiable, Decodable, Hashable { public struct GroupMember: Identifiable, Decodable, Hashable {
public var groupMemberId: Int64 public var groupMemberId: Int64
public var groupId: Int64 public var groupId: Int64
+6 -1
View File
@@ -93,7 +93,12 @@ private func canForwardToChat(_ cInfo: ChatInfo) -> Bool {
public func chatIconName(_ cInfo: ChatInfo) -> String { public func chatIconName(_ cInfo: ChatInfo) -> String {
switch cInfo { switch cInfo {
case .direct: "person.crop.circle.fill" case .direct: "person.crop.circle.fill"
case .group: "person.2.circle.fill" case let .group(groupInfo):
switch groupInfo.businessChat?.chatType {
case .none: "person.2.circle.fill"
case .business: "briefcase.circle.fill"
case .customer: "person.crop.circle.fill"
}
case .local: "folder.circle.fill" case .local: "folder.circle.fill"
case .contactRequest: "person.crop.circle.fill" case .contactRequest: "person.crop.circle.fill"
default: "circle.fill" default: "circle.fill"
+31 -31
View File
@@ -918,7 +918,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "Свързване с настолно устройство"; "Connecting to desktop" = "Свързване с настолно устройство";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "свързване…"; "connecting…" = "свързване…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1299,7 +1299,7 @@
"Direct messages" = "Лични съобщения"; "Direct messages" = "Лични съобщения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Личните съобщения между членовете са забранени в тази група."; "Direct messages between members are prohibited." = "Личните съобщения между членовете са забранени в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Деактивиране (запазване на промените)"; "Disable (keep overrides)" = "Деактивиране (запазване на промените)";
@@ -1323,7 +1323,7 @@
"Disappearing messages are prohibited in this chat." = "Изчезващите съобщения са забранени в този чат."; "Disappearing messages are prohibited in this chat." = "Изчезващите съобщения са забранени в този чат.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Изчезващите съобщения са забранени в тази група."; "Disappearing messages are prohibited." = "Изчезващите съобщения са забранени в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Изчезва в"; "Disappears at" = "Изчезва в";
@@ -1786,7 +1786,7 @@
"Files and media" = "Файлове и медия"; "Files and media" = "Файлове и медия";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Файловете и медията са забранени в тази група."; "Files and media are prohibited." = "Файловете и медията са забранени в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "Файлове и медия не са разрешени"; "Files and media not allowed" = "Файлове и медия не са разрешени";
@@ -1905,27 +1905,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Групови линкове"; "Group links" = "Групови линкове";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
/* notification */ /* notification */
"Group message:" = "Групово съобщение:"; "Group message:" = "Групово съобщение:";
@@ -2203,7 +2182,7 @@
"Irreversible message deletion is prohibited in this chat." = "Необратимото изтриване на съобщения е забранено в този чат."; "Irreversible message deletion is prohibited in this chat." = "Необратимото изтриване на съобщения е забранено в този чат.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Необратимото изтриване на съобщения е забранено в тази група."; "Irreversible message deletion is prohibited." = "Необратимото изтриване на съобщения е забранено в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Позволява да имате много анонимни връзки без споделени данни между тях в един чат профил ."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Позволява да имате много анонимни връзки без споделени данни между тях в един чат профил .";
@@ -2376,6 +2355,27 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Членът ще бъде премахнат от групата - това не може да бъде отменено!"; "Member will be removed from group - this cannot be undone!" = "Членът ще бъде премахнат от групата - това не може да бъде отменено!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Членовете на групата могат да добавят реакции към съобщенията.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Членовете на групата могат необратимо да изтриват изпратените съобщения. (24 часа)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Членовете на групата могат да изпращат лични съобщения.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Членовете на групата могат да изпращат изчезващи съобщения.";
/* No comment provided by engineer. */
"Members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
/* item status text */ /* item status text */
"Message delivery error" = "Грешка при доставката на съобщението"; "Message delivery error" = "Грешка при доставката на съобщението";
@@ -2392,7 +2392,7 @@
"Message reactions are prohibited in this chat." = "Реакциите на съобщения са забранени в този чат."; "Message reactions are prohibited in this chat." = "Реакциите на съобщения са забранени в този чат.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Реакциите на съобщения са забранени в тази група."; "Message reactions are prohibited." = "Реакциите на съобщения са забранени в тази група.";
/* notification */ /* notification */
"message received" = "получено съобщение"; "message received" = "получено съобщение";
@@ -3139,7 +3139,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Запази (и уведоми контактите)"; "Save (and notify contacts)" = "Запази (и уведоми контактите)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "Запази и уведоми контакта"; "Save and notify contact" = "Запази и уведоми контакта";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3157,7 +3157,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Запази паролата в Keychain"; "Save passphrase in Keychain" = "Запази паролата в Keychain";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "Запази настройките?"; "Save preferences?" = "Запази настройките?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3450,7 +3450,7 @@
"SimpleX links" = "SimpleX линкове"; "SimpleX links" = "SimpleX линкове";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "SimpleX линкове са забранени в тази група."; "SimpleX links are prohibited." = "SimpleX линкове са забранени в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX линковете не са разрешени"; "SimpleX links not allowed" = "SimpleX линковете не са разрешени";
@@ -3987,7 +3987,7 @@
"Voice messages are prohibited in this chat." = "Гласовите съобщения са забранени в този чат."; "Voice messages are prohibited in this chat." = "Гласовите съобщения са забранени в този чат.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Гласовите съобщения са забранени в тази група."; "Voice messages are prohibited." = "Гласовите съобщения са забранени в тази група.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "Гласовите съобщения не са разрешени"; "Voice messages not allowed" = "Гласовите съобщения не са разрешени";
+27 -27
View File
@@ -729,7 +729,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Připojování k serveru... (chyba: %@)"; "Connecting server… (error: %@)" = "Připojování k serveru... (chyba: %@)";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "připojení…"; "connecting…" = "připojení…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1059,7 +1059,7 @@
"Direct messages" = "Přímé zprávy"; "Direct messages" = "Přímé zprávy";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Přímé zprávy mezi členy jsou v této skupině zakázány."; "Direct messages between members are prohibited." = "Přímé zprávy mezi členy jsou v této skupině zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Vypnout (zachovat přepsání)"; "Disable (keep overrides)" = "Vypnout (zachovat přepsání)";
@@ -1083,7 +1083,7 @@
"Disappearing messages are prohibited in this chat." = "Mizící zprávy jsou v tomto chatu zakázány."; "Disappearing messages are prohibited in this chat." = "Mizící zprávy jsou v tomto chatu zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Mizící zprávy jsou v této skupině zakázány."; "Disappearing messages are prohibited." = "Mizící zprávy jsou v této skupině zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Zmizí v"; "Disappears at" = "Zmizí v";
@@ -1461,7 +1461,7 @@
"Files and media" = "Soubory a média"; "Files and media" = "Soubory a média";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Soubory a média jsou zakázány v této skupině."; "Files and media are prohibited." = "Soubory a média jsou zakázány v této skupině.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Soubory a média jsou zakázány!"; "Files and media prohibited!" = "Soubory a média jsou zakázány!";
@@ -1544,24 +1544,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Odkazy na skupiny"; "Group links" = "Odkazy na skupiny";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
/* notification */ /* notification */
"Group message:" = "Skupinová zpráva:"; "Group message:" = "Skupinová zpráva:";
@@ -1794,7 +1776,7 @@
"Irreversible message deletion is prohibited in this chat." = "Nevratné mazání zpráv je v tomto chatu zakázáno."; "Irreversible message deletion is prohibited in this chat." = "Nevratné mazání zpráv je v tomto chatu zakázáno.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Nevratné mazání zpráv je v této skupině zakázáno."; "Irreversible message deletion is prohibited." = "Nevratné mazání zpráv je v této skupině zakázáno.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Umožňuje mít v jednom profilu chatu mnoho anonymních spojení bez jakýchkoli sdílených údajů mezi nimi."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Umožňuje mít v jednom profilu chatu mnoho anonymních spojení bez jakýchkoli sdílených údajů mezi nimi.";
@@ -1934,6 +1916,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Člen bude odstraněn ze skupiny - toto nelze vzít zpět!"; "Member will be removed from group - this cannot be undone!" = "Člen bude odstraněn ze skupiny - toto nelze vzít zpět!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Členové skupin mohou přidávat reakce na zprávy.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Členové skupiny mohou nevratně mazat odeslané zprávy. (24 hodin)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Členové skupiny mohou posílat přímé zprávy.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Členové skupiny mohou posílat mizící zprávy.";
/* No comment provided by engineer. */
"Members can send files and media." = "Členové skupiny mohou posílat soubory a média.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Členové skupiny mohou posílat hlasové zprávy.";
/* item status text */ /* item status text */
"Message delivery error" = "Chyba doručení zprávy"; "Message delivery error" = "Chyba doručení zprávy";
@@ -1950,7 +1950,7 @@
"Message reactions are prohibited in this chat." = "Reakce na zprávy jsou v tomto chatu zakázány."; "Message reactions are prohibited in this chat." = "Reakce na zprávy jsou v tomto chatu zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Reakce na zprávy jsou v této skupině zakázány."; "Message reactions are prohibited." = "Reakce na zprávy jsou v této skupině zakázány.";
/* notification */ /* notification */
"message received" = "zpráva přijata"; "message received" = "zpráva přijata";
@@ -2538,7 +2538,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Uložit (a informovat kontakty)"; "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"; "Save and notify contact" = "Uložit a upozornit kontakt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -2556,7 +2556,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Uložit přístupovou frázi do Klíčenky"; "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?"; "Save preferences?" = "Uložit předvolby?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3206,7 +3206,7 @@
"Voice messages are prohibited in this chat." = "Hlasové zprávy jsou v tomto chatu zakázány."; "Voice messages are prohibited in this chat." = "Hlasové zprávy jsou v tomto chatu zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Hlasové zprávy jsou v této skupině zakázány."; "Voice messages are prohibited." = "Hlasové zprávy jsou v této skupině zakázány.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Hlasové zprávy jsou zakázány!"; "Voice messages prohibited!" = "Hlasové zprávy jsou zakázány!";
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+27 -27
View File
@@ -711,7 +711,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "Yhteyden muodostaminen palvelimeen... (virhe: %@)"; "Connecting server… (error: %@)" = "Yhteyden muodostaminen palvelimeen... (virhe: %@)";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "yhdistää…"; "connecting…" = "yhdistää…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1041,7 +1041,7 @@
"Direct messages" = "Yksityisviestit"; "Direct messages" = "Yksityisviestit";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Yksityisviestit jäsenten välillä ovat kiellettyjä tässä ryhmässä."; "Direct messages between members are prohibited." = "Yksityisviestit jäsenten välillä ovat kiellettyjä tässä ryhmässä.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Poista käytöstä (pidä ohitukset)"; "Disable (keep overrides)" = "Poista käytöstä (pidä ohitukset)";
@@ -1065,7 +1065,7 @@
"Disappearing messages are prohibited in this chat." = "Katoavat viestit ovat kiellettyjä tässä keskustelussa."; "Disappearing messages are prohibited in this chat." = "Katoavat viestit ovat kiellettyjä tässä keskustelussa.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Katoavat viestit ovat kiellettyjä tässä ryhmässä."; "Disappearing messages are prohibited." = "Katoavat viestit ovat kiellettyjä tässä ryhmässä.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Katoaa klo"; "Disappears at" = "Katoaa klo";
@@ -1437,7 +1437,7 @@
"Files and media" = "Tiedostot ja media"; "Files and media" = "Tiedostot ja media";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Tiedostot ja media ovat tässä ryhmässä kiellettyjä."; "Files and media are prohibited." = "Tiedostot ja media ovat tässä ryhmässä kiellettyjä.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Tiedostot ja media kielletty!"; "Files and media prohibited!" = "Tiedostot ja media kielletty!";
@@ -1520,24 +1520,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Ryhmälinkit"; "Group links" = "Ryhmälinkit";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
/* notification */ /* notification */
"Group message:" = "Ryhmäviesti:"; "Group message:" = "Ryhmäviesti:";
@@ -1770,7 +1752,7 @@
"Irreversible message deletion is prohibited in this chat." = "Viestien peruuttamaton poisto on kielletty tässä keskustelussa."; "Irreversible message deletion is prohibited in this chat." = "Viestien peruuttamaton poisto on kielletty tässä keskustelussa.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Viestien peruuttamaton poisto on kielletty tässä ryhmässä."; "Irreversible message deletion is prohibited." = "Viestien peruuttamaton poisto on kielletty tässä ryhmässä.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Se mahdollistaa useiden nimettömien yhteyksien muodostamisen yhdessä keskusteluprofiilissa ilman, että niiden välillä on jaettuja tietoja."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Se mahdollistaa useiden nimettömien yhteyksien muodostamisen yhdessä keskusteluprofiilissa ilman, että niiden välillä on jaettuja tietoja.";
@@ -1910,6 +1892,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Jäsen poistetaan ryhmästä - tätä ei voi perua!"; "Member will be removed from group - this cannot be undone!" = "Jäsen poistetaan ryhmästä - tätä ei voi perua!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Ryhmän jäsenet voivat lisätä viestireaktioita.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Ryhmän jäsenet voivat poistaa lähetetyt viestit peruuttamattomasti. (24 tuntia)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Ryhmän jäsenet voivat lähettää suoraviestejä.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Ryhmän jäsenet voivat lähettää katoavia viestejä.";
/* No comment provided by engineer. */
"Members can send files and media." = "Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Ryhmän jäsenet voivat lähettää ääniviestejä.";
/* item status text */ /* item status text */
"Message delivery error" = "Viestin toimitusvirhe"; "Message delivery error" = "Viestin toimitusvirhe";
@@ -1926,7 +1926,7 @@
"Message reactions are prohibited in this chat." = "Viestireaktiot ovat kiellettyjä tässä keskustelussa."; "Message reactions are prohibited in this chat." = "Viestireaktiot ovat kiellettyjä tässä keskustelussa.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Viestireaktiot ovat kiellettyjä tässä ryhmässä."; "Message reactions are prohibited." = "Viestireaktiot ovat kiellettyjä tässä ryhmässä.";
/* notification */ /* notification */
"message received" = "viesti vastaanotettu"; "message received" = "viesti vastaanotettu";
@@ -2508,7 +2508,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Tallenna (ja ilmoita kontakteille)"; "Save (and notify contacts)" = "Tallenna (ja ilmoita kontakteille)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "Tallenna ja ilmoita kontaktille"; "Save and notify contact" = "Tallenna ja ilmoita kontaktille";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -2526,7 +2526,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Tallenna tunnuslause Avainnippuun"; "Save passphrase in Keychain" = "Tallenna tunnuslause Avainnippuun";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "Tallenna asetukset?"; "Save preferences?" = "Tallenna asetukset?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3164,7 +3164,7 @@
"Voice messages are prohibited in this chat." = "Ääniviestit ovat kiellettyjä tässä keskustelussa."; "Voice messages are prohibited in this chat." = "Ääniviestit ovat kiellettyjä tässä keskustelussa.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Ääniviestit ovat kiellettyjä tässä ryhmässä."; "Voice messages are prohibited." = "Ääniviestit ovat kiellettyjä tässä ryhmässä.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Ääniviestit kielletty!"; "Voice messages prohibited!" = "Ääniviestit kielletty!";
+32 -32
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."; "All data is erased when it is entered." = "Toutes les données sont effacées lorsqu'il est saisi.";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Tous les membres du groupe resteront connectés."; "All group members will remain connected." = "Tous les membres du groupe resteront connectés.";
@@ -1101,7 +1101,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "Connexion au bureau"; "Connecting to desktop" = "Connexion au bureau";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "connexion…"; "connecting…" = "connexion…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1572,7 +1572,7 @@
"Direct messages" = "Messages directs"; "Direct messages" = "Messages directs";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Les messages directs entre membres sont interdits dans ce groupe."; "Direct messages between members are prohibited." = "Les messages directs entre membres sont interdits dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Désactiver (conserver les remplacements)"; "Disable (keep overrides)" = "Désactiver (conserver les remplacements)";
@@ -1599,7 +1599,7 @@
"Disappearing messages are prohibited in this chat." = "Les messages éphémères sont interdits dans cette discussion."; "Disappearing messages are prohibited in this chat." = "Les messages éphémères sont interdits dans cette discussion.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Les messages éphémères sont interdits dans ce groupe."; "Disappearing messages are prohibited." = "Les messages éphémères sont interdits dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Disparaîtra le"; "Disappears at" = "Disparaîtra le";
@@ -2146,7 +2146,7 @@
"Files and media" = "Fichiers et médias"; "Files and media" = "Fichiers et médias";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Les fichiers et les médias sont interdits dans ce groupe."; "Files and media are prohibited." = "Les fichiers et les médias sont interdits dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "Fichiers et médias non autorisés"; "Files and media not allowed" = "Fichiers et médias non autorisés";
@@ -2301,27 +2301,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Liens de groupe"; "Group links" = "Liens de groupe";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
/* notification */ /* notification */
"Group message:" = "Message du groupe:"; "Group message:" = "Message du groupe:";
@@ -2617,7 +2596,7 @@
"Irreversible message deletion is prohibited in this chat." = "La suppression irréversible de message est interdite dans ce chat."; "Irreversible message deletion is prohibited in this chat." = "La suppression irréversible de message est interdite dans ce chat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "La suppression irréversible de messages est interdite dans ce groupe."; "Irreversible message deletion is prohibited." = "La suppression irréversible de messages est interdite dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Cela permet d'avoir plusieurs connections anonymes sans aucune données partagées entre elles sur un même profil."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Cela permet d'avoir plusieurs connections anonymes sans aucune données partagées entre elles sur un même profil.";
@@ -2805,6 +2784,27 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Ce membre sera retiré du groupe - impossible de revenir en arrière!"; "Member will be removed from group - this cannot be undone!" = "Ce membre sera retiré du groupe - impossible de revenir en arrière!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Les membres du groupe peuvent ajouter des réactions aux messages.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Les membres du groupe peuvent supprimer de manière irréversible les messages envoyés. (24 heures)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Les membres du groupe peuvent envoyer des messages directs.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Les membres du groupes peuvent envoyer des messages éphémères.";
/* No comment provided by engineer. */
"Members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias.";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "Les membres du groupe peuvent envoyer des liens SimpleX.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Menus" = "Menus"; "Menus" = "Menus";
@@ -2839,7 +2839,7 @@
"Message reactions are prohibited in this chat." = "Les réactions aux messages sont interdites dans ce chat."; "Message reactions are prohibited in this chat." = "Les réactions aux messages sont interdites dans ce chat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Les réactions aux messages sont interdites dans ce groupe."; "Message reactions are prohibited." = "Les réactions aux messages sont interdites dans ce groupe.";
/* notification */ /* notification */
"message received" = "message reçu"; "message received" = "message reçu";
@@ -3763,7 +3763,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Enregistrer (et en informer les contacts)"; "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"; "Save and notify contact" = "Enregistrer et en informer le contact";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3784,7 +3784,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Enregistrer la phrase secrète dans la Keychain"; "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?"; "Save preferences?" = "Enregistrer les préférences?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -4191,7 +4191,7 @@
"SimpleX links" = "Liens SimpleX"; "SimpleX links" = "Liens SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Les liens SimpleX sont interdits dans ce groupe."; "SimpleX links are prohibited." = "Les liens SimpleX sont interdits dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "Les liens SimpleX ne sont pas autorisés"; "SimpleX links not allowed" = "Les liens SimpleX ne sont pas autorisés";
@@ -4872,7 +4872,7 @@
"Voice messages are prohibited in this chat." = "Les messages vocaux sont interdits dans ce chat."; "Voice messages are prohibited in this chat." = "Les messages vocaux sont interdits dans ce chat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Les messages vocaux sont interdits dans ce groupe."; "Voice messages are prohibited." = "Les messages vocaux sont interdits dans ce groupe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "Les messages vocaux ne sont pas autorisés"; "Voice messages not allowed" = "Les messages vocaux ne sont pas autorisés";
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+93 -27
View File
@@ -684,6 +684,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat profile" = "ユーザープロフィール"; "Chat profile" = "ユーザープロフィール";
/* No comment provided by engineer. */
"Chat theme" = "チャットテーマ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chats" = "チャット"; "Chats" = "チャット";
@@ -699,6 +702,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Choose from library" = "ライブラリから選択"; "Choose from library" = "ライブラリから選択";
/* No comment provided by engineer. */
"Chunks deleted" = "チャンクが削除されました";
/* No comment provided by engineer. */
"Chunks downloaded" = "チャンクがダウンロードされました";
/* swipe action */ /* swipe action */
"Clear" = "消す"; "Clear" = "消す";
@@ -708,9 +717,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Clear conversation?" = "ダイアログのクリアしますか?"; "Clear conversation?" = "ダイアログのクリアしますか?";
/* No comment provided by engineer. */
"Clear private notes?" = "プライベートノートを消しますか?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Clear verification" = "検証を消す"; "Clear verification" = "検証を消す";
/* No comment provided by engineer. */
"Color mode" = "色設定";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"colored" = "色付き"; "colored" = "色付き";
@@ -723,6 +738,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"complete" = "完了"; "complete" = "完了";
/* No comment provided by engineer. */
"Completed" = "完了";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Configure ICE servers" = "ICEサーバを設定"; "Configure ICE servers" = "ICEサーバを設定";
@@ -747,9 +765,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect incognito" = "シークレットモードで接続"; "Connect incognito" = "シークレットモードで接続";
/* No comment provided by engineer. */
"Connect to desktop" = "デスクトップに接続";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connect to SimpleX Chat developers." = "SimpleX Chat 開発者に接続します。"; "connect to SimpleX Chat developers." = "SimpleX Chat 開発者に接続します。";
/* No comment provided by engineer. */
"Connect to your friends faster." = "友達ともっと速くつながりましょう。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connect via link" = "リンク経由で接続"; "Connect via link" = "リンク経由で接続";
@@ -759,9 +783,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connected" = "接続中"; "connected" = "接続中";
/* No comment provided by engineer. */
"Connected" = "接続中";
/* No comment provided by engineer. */
"Connected desktop" = "デスクトップに接続済";
/* No comment provided by engineer. */
"Connected servers" = "接続中のサーバ";
/* No comment provided by engineer. */
"Connected to desktop" = "デスクトップに接続済";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting" = "接続待ち"; "connecting" = "接続待ち";
/* No comment provided by engineer. */
"Connecting" = "接続待ち";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"connecting (accepted)" = "接続待ち (承諾済み)"; "connecting (accepted)" = "接続待ち (承諾済み)";
@@ -783,12 +822,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "サーバーに接続中… (エラー: %@)"; "Connecting server… (error: %@)" = "サーバーに接続中… (エラー: %@)";
/* chat list item title */ /* No comment provided by engineer. */
"Connecting to contact, please wait or check later!" = "連絡先に接続中です。しばらくお待ちいただくか、後で確認してください!";
/* No comment provided by engineer. */
"Connecting to desktop" = "デスクトップに接続中";
/* No comment provided by engineer. */
"connecting…" = "接続待ち…"; "connecting…" = "接続待ち…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection" = "接続"; "Connection" = "接続";
/* No comment provided by engineer. */
"Connection and servers status." = "接続とサーバーのステータス";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection error" = "接続エラー"; "Connection error" = "接続エラー";
@@ -801,6 +849,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "接続リクエストを送信しました!"; "Connection request sent!" = "接続リクエストを送信しました!";
/* No comment provided by engineer. */
"Connection terminated" = "接続停止";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection timeout" = "接続タイムアウト"; "Connection timeout" = "接続タイムアウト";
@@ -891,9 +942,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Custom time" = "カスタム時間"; "Custom time" = "カスタム時間";
/* No comment provided by engineer. */
"Customize theme" = "カスタムテーマ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Dark" = "ダークモード"; "Dark" = "ダークモード";
/* No comment provided by engineer. */
"Dark mode colors" = "ダークモードカラー";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Database downgrade" = "データーベースのダウングレード"; "Database downgrade" = "データーベースのダウングレード";
@@ -954,6 +1011,9 @@
/* time unit */ /* time unit */
"days" = "日"; "days" = "日";
/* No comment provided by engineer. */
"Debug delivery" = "配信のデバッグ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Decentralized" = "分散型"; "Decentralized" = "分散型";
@@ -1085,9 +1145,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Description" = "説明"; "Description" = "説明";
/* No comment provided by engineer. */
"Desktop devices" = "デスクトップ機器";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Develop" = "開発"; "Develop" = "開発";
/* No comment provided by engineer. */
"Developer options" = "開発者向けの設定";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Developer tools" = "開発ツール"; "Developer tools" = "開発ツール";
@@ -1113,7 +1179,7 @@
"Direct messages" = "ダイレクトメッセージ"; "Direct messages" = "ダイレクトメッセージ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "このグループではメンバー間のダイレクトメッセージが使用禁止です。"; "Direct messages between members are prohibited." = "このグループではメンバー間のダイレクトメッセージが使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "無効にする(設定の優先を維持)"; "Disable (keep overrides)" = "無効にする(設定の優先を維持)";
@@ -1137,7 +1203,7 @@
"Disappearing messages are prohibited in this chat." = "このチャットでは消えるメッセージが使用禁止です。"; "Disappearing messages are prohibited in this chat." = "このチャットでは消えるメッセージが使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "このグループでは消えるメッセージが使用禁止です。"; "Disappearing messages are prohibited." = "このグループでは消えるメッセージが使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "に消えます"; "Disappears at" = "に消えます";
@@ -1512,7 +1578,7 @@
"Files and media" = "ファイルとメディア"; "Files and media" = "ファイルとメディア";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "このグループでは、ファイルとメディアは禁止されています。"; "Files and media are prohibited." = "このグループでは、ファイルとメディアは禁止されています。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "ファイルとメディアは禁止されています!"; "Files and media prohibited!" = "ファイルとメディアは禁止されています!";
@@ -1595,24 +1661,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "グループのリンク"; "Group links" = "グループのリンク";
/* No comment provided by engineer. */
"Group members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
/* No comment provided by engineer. */
"Group members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
/* No comment provided by engineer. */
"Group members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
/* notification */ /* notification */
"Group message:" = "グループメッセージ:"; "Group message:" = "グループメッセージ:";
@@ -1845,7 +1893,7 @@
"Irreversible message deletion is prohibited in this chat." = "このチャットではメッセージの完全削除が使用禁止です。"; "Irreversible message deletion is prohibited in this chat." = "このチャットではメッセージの完全削除が使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "このグループではメッセージの完全削除が使用禁止です。"; "Irreversible message deletion is prohibited." = "このグループではメッセージの完全削除が使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "これにより単一のチャット プロファイル内で、データを共有せずに多数の匿名の接続をすることができます。"; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "これにより単一のチャット プロファイル内で、データを共有せずに多数の匿名の接続をすることができます。";
@@ -1985,6 +2033,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "メンバーをグループから除名する (※元に戻せません※)!"; "Member will be removed from group - this cannot be undone!" = "メンバーをグループから除名する (※元に戻せません※)!";
/* No comment provided by engineer. */
"Members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
/* No comment provided by engineer. */
"Members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "グループのメンバーが消えるメッセージを送信できます。";
/* No comment provided by engineer. */
"Members can send files and media." = "グループメンバーはファイルやメディアを送信できます。";
/* No comment provided by engineer. */
"Members can send voice messages." = "グループのメンバーが音声メッセージを送信できます。";
/* item status text */ /* item status text */
"Message delivery error" = "メッセージ送信エラー"; "Message delivery error" = "メッセージ送信エラー";
@@ -1998,7 +2064,7 @@
"Message reactions are prohibited in this chat." = "このチャットではメッセージへのリアクションは禁止されています。"; "Message reactions are prohibited in this chat." = "このチャットではメッセージへのリアクションは禁止されています。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "このグループではメッセージへのリアクションは禁止されています。"; "Message reactions are prohibited." = "このグループではメッセージへのリアクションは禁止されています。";
/* notification */ /* notification */
"message received" = "メッセージを受信"; "message received" = "メッセージを受信";
@@ -2589,7 +2655,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "保存(連絡先に通知)"; "Save (and notify contacts)" = "保存(連絡先に通知)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "保存して、連絡先にに知らせる"; "Save and notify contact" = "保存して、連絡先にに知らせる";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -2607,7 +2673,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "パスフレーズをキーチェーンに保存"; "Save passphrase in Keychain" = "パスフレーズをキーチェーンに保存";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "この設定でよろしいですか?"; "Save preferences?" = "この設定でよろしいですか?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3224,7 +3290,7 @@
"Voice messages are prohibited in this chat." = "このチャットでは音声メッセージが使用禁止です。"; "Voice messages are prohibited in this chat." = "このチャットでは音声メッセージが使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "このグループでは音声メッセージが使用禁止です。"; "Voice messages are prohibited." = "このグループでは音声メッセージが使用禁止です。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "音声メッセージは使用禁止です!"; "Voice messages prohibited!" = "音声メッセージは使用禁止です!";
File diff suppressed because it is too large Load Diff
+32 -32
View File
@@ -431,7 +431,7 @@
"All data is erased when it is entered." = "Wszystkie dane są usuwane po jego wprowadzeniu."; "All data is erased when it is entered." = "Wszystkie dane są usuwane po jego wprowadzeniu.";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Wszyscy członkowie grupy pozostaną połączeni."; "All group members will remain connected." = "Wszyscy członkowie grupy pozostaną połączeni.";
@@ -1086,7 +1086,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "Łączenie z komputerem"; "Connecting to desktop" = "Łączenie z komputerem";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "łączenie…"; "connecting…" = "łączenie…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1551,7 +1551,7 @@
"Direct messages" = "Bezpośrednie wiadomości"; "Direct messages" = "Bezpośrednie wiadomości";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Bezpośrednie wiadomości między członkami są zabronione w tej grupie."; "Direct messages between members are prohibited." = "Bezpośrednie wiadomości między członkami są zabronione w tej grupie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Wyłącz (zachowaj nadpisania)"; "Disable (keep overrides)" = "Wyłącz (zachowaj nadpisania)";
@@ -1578,7 +1578,7 @@
"Disappearing messages are prohibited in this chat." = "Znikające wiadomości są zabronione na tym czacie."; "Disappearing messages are prohibited in this chat." = "Znikające wiadomości są zabronione na tym czacie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Znikające wiadomości są zabronione w tej grupie."; "Disappearing messages are prohibited." = "Znikające wiadomości są zabronione w tej grupie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Znika o"; "Disappears at" = "Znika o";
@@ -2125,7 +2125,7 @@
"Files and media" = "Pliki i media"; "Files and media" = "Pliki i media";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Pliki i media są zabronione w tej grupie."; "Files and media are prohibited." = "Pliki i media są zabronione w tej grupie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "Pliki i multimedia nie są dozwolone"; "Files and media not allowed" = "Pliki i multimedia nie są dozwolone";
@@ -2277,27 +2277,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Linki grupowe"; "Group links" = "Linki grupowe";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
/* notification */ /* notification */
"Group message:" = "Wiadomość grupowa:"; "Group message:" = "Wiadomość grupowa:";
@@ -2590,7 +2569,7 @@
"Irreversible message deletion is prohibited in this chat." = "Nieodwracalne usuwanie wiadomości jest na tym czacie zabronione."; "Irreversible message deletion is prohibited in this chat." = "Nieodwracalne usuwanie wiadomości jest na tym czacie zabronione.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Nieodwracalne usuwanie wiadomości jest w tej grupie zabronione."; "Irreversible message deletion is prohibited." = "Nieodwracalne usuwanie wiadomości jest w tej grupie zabronione.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "To pozwala na posiadanie wielu anonimowych połączeń bez żadnych wspólnych danych między nimi w pojedynczym profilu czatu."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "To pozwala na posiadanie wielu anonimowych połączeń bez żadnych wspólnych danych między nimi w pojedynczym profilu czatu.";
@@ -2778,6 +2757,27 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Członek zostanie usunięty z grupy - nie można tego cofnąć!"; "Member will be removed from group - this cannot be undone!" = "Członek zostanie usunięty z grupy - nie można tego cofnąć!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Członkowie grupy mogą dodawać reakcje wiadomości.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Członkowie grupy mogą nieodwracalnie usuwać wysłane wiadomości. (24 godziny)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Członkowie grupy mogą wysyłać bezpośrednie wiadomości.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Członkowie grupy mogą wysyłać znikające wiadomości.";
/* No comment provided by engineer. */
"Members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media.";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "Członkowie grupy mogą wysyłać linki SimpleX.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Menus" = "Menu"; "Menus" = "Menu";
@@ -2812,7 +2812,7 @@
"Message reactions are prohibited in this chat." = "Reakcje wiadomości są zabronione na tym czacie."; "Message reactions are prohibited in this chat." = "Reakcje wiadomości są zabronione na tym czacie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Reakcje wiadomości są zabronione w tej grupie."; "Message reactions are prohibited." = "Reakcje wiadomości są zabronione w tej grupie.";
/* notification */ /* notification */
"message received" = "wiadomość otrzymana"; "message received" = "wiadomość otrzymana";
@@ -3736,7 +3736,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Zapisz (i powiadom kontakty)"; "Save (and notify contacts)" = "Zapisz (i powiadom kontakty)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "Zapisz i powiadom kontakt"; "Save and notify contact" = "Zapisz i powiadom kontakt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3757,7 +3757,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Zapisz hasło w pęku kluczy"; "Save passphrase in Keychain" = "Zapisz hasło w pęku kluczy";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "Zapisać preferencje?"; "Save preferences?" = "Zapisać preferencje?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -4164,7 +4164,7 @@
"SimpleX links" = "Linki SimpleX"; "SimpleX links" = "Linki SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Linki SimpleX są zablokowane na tej grupie."; "SimpleX links are prohibited." = "Linki SimpleX są zablokowane na tej grupie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "Linki SimpleX są niedozwolone"; "SimpleX links not allowed" = "Linki SimpleX są niedozwolone";
@@ -4836,7 +4836,7 @@
"Voice messages are prohibited in this chat." = "Wiadomości głosowe są zabronione na tym czacie."; "Voice messages are prohibited in this chat." = "Wiadomości głosowe są zabronione na tym czacie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Wiadomości głosowe są zabronione w tej grupie."; "Voice messages are prohibited." = "Wiadomości głosowe są zabronione w tej grupie.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "Wiadomości głosowe są niedozwolone"; "Voice messages not allowed" = "Wiadomości głosowe są niedozwolone";
+402 -33
View File
@@ -82,6 +82,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**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, но сервер не получает сами сообщения, их размер или от кого они."; "**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." = "**Сканировать / Вставить ссылку**: чтобы соединиться через полученную ссылку.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain."; "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: для работы мгновенных уведомлений пароль должен быть сохранен в Keychain.";
@@ -142,6 +145,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ is verified" = "%@ подтверждён"; "%@ is verified" = "%@ подтверждён";
/* No comment provided by engineer. */
"%@ server" = "%@ сервер";
/* No comment provided by engineer. */
"%@ servers" = "%@ серверы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ uploaded" = "%@ загружено"; "%@ uploaded" = "%@ загружено";
@@ -295,6 +304,12 @@
/* time interval */ /* time interval */
"1 week" = "1 неделю"; "1 week" = "1 неделю";
/* No comment provided by engineer. */
"1-time link" = "Одноразовая ссылка";
/* No comment provided by engineer. */
"1-time link can be used *with one contact only* - share in person or via any messenger." = "Одноразовая ссылка может быть использована *только с одним контактом* - поделитесь при встрече или через любой мессенджер.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"5 minutes" = "5 минут"; "5 minutes" = "5 минут";
@@ -328,6 +343,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Abort changing address?" = "Прекратить изменение адреса?"; "Abort changing address?" = "Прекратить изменение адреса?";
/* No comment provided by engineer. */
"About operators" = "Об операторах";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"About SimpleX Chat" = "Информация о SimpleX Chat"; "About SimpleX Chat" = "Информация о SimpleX Chat";
@@ -342,6 +360,9 @@
swipe action */ swipe action */
"Accept" = "Принять"; "Accept" = "Принять";
/* No comment provided by engineer. */
"Accept conditions" = "Принять условия";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Accept connection request?" = "Принять запрос?"; "Accept connection request?" = "Принять запрос?";
@@ -355,6 +376,12 @@
/* call status */ /* call status */
"accepted call" = "принятый звонок"; "accepted call" = "принятый звонок";
/* No comment provided by engineer. */
"Accepted conditions" = "Принятые условия";
/* chat list item title */
"accepted invitation" = "принятое приглашение";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Acknowledged" = "Подтверждено"; "Acknowledged" = "Подтверждено";
@@ -367,6 +394,9 @@
/* No comment provided by engineer. */ /* 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." = "Добавьте адрес в свой профиль, чтобы Ваши контакты могли поделиться им. Профиль будет отправлен Вашим контактам."; "Add address to your profile, so that your contacts can share it with other people. Profile update will be sent to your contacts." = "Добавьте адрес в свой профиль, чтобы Ваши контакты могли поделиться им. Профиль будет отправлен Вашим контактам.";
/* No comment provided by engineer. */
"Add friends" = "Добавить друзей";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Add profile" = "Добавить профиль"; "Add profile" = "Добавить профиль";
@@ -376,12 +406,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Add servers by scanning QR codes." = "Добавить серверы через QR код."; "Add servers by scanning QR codes." = "Добавить серверы через QR код.";
/* No comment provided by engineer. */
"Add team members" = "Добавить сотрудников";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Add to another device" = "Добавить на другое устройство"; "Add to another device" = "Добавить на другое устройство";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Add welcome message" = "Добавить приветственное сообщение"; "Add welcome message" = "Добавить приветственное сообщение";
/* No comment provided by engineer. */
"Add your team members to the conversations." = "Добавьте сотрудников в разговор.";
/* No comment provided by engineer. */
"Added media & file servers" = "Дополнительные серверы файлов и медиа";
/* No comment provided by engineer. */
"Added message servers" = "Дополнительные серверы сообщений";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Additional accent" = "Дополнительный акцент"; "Additional accent" = "Дополнительный акцент";
@@ -397,6 +439,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Address change will be aborted. Old receiving address will be used." = "Изменение адреса будет прекращено. Будет использоваться старый адрес."; "Address change will be aborted. Old receiving address will be used." = "Изменение адреса будет прекращено. Будет использоваться старый адрес.";
/* No comment provided by engineer. */
"Address or 1-time link?" = "Адрес или одноразовая ссылка?";
/* No comment provided by engineer. */
"Address settings" = "Настройки адреса";
/* member role */ /* member role */
"admin" = "админ"; "admin" = "админ";
@@ -431,7 +479,7 @@
"All data is erased when it is entered." = "Все данные удаляются при его вводе."; "All data is erased when it is entered." = "Все данные удаляются при его вводе.";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе."; "All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе.";
@@ -760,6 +808,12 @@
/* No comment provided by engineer. */ /* 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)!" = "Болгарский, финский, тайский и украинский - благодаря пользователям и [Weblate] (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!"; "Bulgarian, Finnish, Thai and Ukrainian - thanks to the users and [Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Болгарский, финский, тайский и украинский - благодаря пользователям и [Weblate] (https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!";
/* No comment provided by engineer. */
"Business address" = "Бизнес адрес";
/* No comment provided by engineer. */
"Business chats" = "Бизнес разговоры";
/* No comment provided by engineer. */ /* 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)." = "По профилю чата или [по соединению](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА)."; "By chat profile (default) or [by connection](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (BETA)." = "По профилю чата или [по соединению](https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation) (БЕТА).";
@@ -830,6 +884,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Поменять"; "Change" = "Поменять";
/* authentication reason */
"Change chat profiles" = "Поменять профили";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change database passphrase?" = "Поменять пароль базы данных?"; "Change database passphrase?" = "Поменять пароль базы данных?";
@@ -873,6 +930,15 @@
/* chat item text */ /* chat item text */
"changing address…" = "смена адреса…"; "changing address…" = "смена адреса…";
/* No comment provided by engineer. */
"Chat" = "Разговор";
/* No comment provided by engineer. */
"Chat already exists" = "Разговор уже существует";
/* No comment provided by engineer. */
"Chat already exists!" = "Разговор уже существует!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat colors" = "Цвета чата"; "Chat colors" = "Цвета чата";
@@ -918,9 +984,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat theme" = "Тема чата"; "Chat theme" = "Тема чата";
/* No comment provided by engineer. */
"Chat will be deleted for all members - this cannot be undone!" = "Разговор будет удален для всех участников - это действие нельзя отменить!";
/* No comment provided by engineer. */
"Chat will be deleted for you - this cannot be undone!" = "Разговор будет удален для Вас - это действие нельзя отменить!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chats" = "Чаты"; "Chats" = "Чаты";
/* No comment provided by engineer. */
"Check messages every 20 min." = "Проверять сообщения каждые 20 минут.";
/* No comment provided by engineer. */
"Check messages when allowed." = "Проверять сообщения по возможности.";
/* alert title */ /* alert title */
"Check server address and try again." = "Проверьте адрес сервера и попробуйте снова."; "Check server address and try again." = "Проверьте адрес сервера и попробуйте снова.";
@@ -981,6 +1059,33 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Completed" = "Готово"; "Completed" = "Готово";
/* No comment provided by engineer. */
"Conditions accepted on: %@." = "Условия приняты: %@.";
/* No comment provided by engineer. */
"Conditions are accepted for the operator(s): **%@**." = "Условия приняты для оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions are already accepted for these operator(s): **%@**." = "Условия уже приняты для следующих оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions of use" = "Условия использования";
/* No comment provided by engineer. */
"Conditions will be accepted for enabled operators after 30 days." = "Условия будут приняты для включенных операторов через 30 дней.";
/* No comment provided by engineer. */
"Conditions will be accepted for operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions will be accepted for the operator(s): **%@**." = "Условия будут приняты для оператора(ов): **%@**.";
/* No comment provided by engineer. */
"Conditions will be accepted on: %@." = "Условия будут приняты: %@.";
/* No comment provided by engineer. */
"Conditions will be automatically accepted for enabled operators on: %@." = "Условия будут автоматически приняты для включенных операторов: %@.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Configure ICE servers" = "Настройка ICE серверов"; "Configure ICE servers" = "Настройка ICE серверов";
@@ -1104,7 +1209,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "Подключение к компьютеру"; "Connecting to desktop" = "Подключение к компьютеру";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "соединяется…"; "connecting…" = "соединяется…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1128,6 +1233,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection request sent!" = "Запрос на соединение отправлен!"; "Connection request sent!" = "Запрос на соединение отправлен!";
/* No comment provided by engineer. */
"Connection security" = "Безопасность соединения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connection terminated" = "Подключение прервано"; "Connection terminated" = "Подключение прервано";
@@ -1209,6 +1317,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create" = "Создать"; "Create" = "Создать";
/* No comment provided by engineer. */
"Create 1-time link" = "Создать одноразовую ссылку";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Create a group using a random profile." = "Создайте группу, используя случайный профиль."; "Create a group using a random profile." = "Создайте группу, используя случайный профиль.";
@@ -1260,6 +1371,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"creator" = "создатель"; "creator" = "создатель";
/* No comment provided by engineer. */
"Current conditions text couldn't be loaded, you can review conditions via this link:" = "Текст условий использования не может быть показан, вы можете посмотреть их через ссылку:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Current Passcode" = "Текущий Код"; "Current Passcode" = "Текущий Код";
@@ -1397,12 +1511,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete and notify contact" = "Удалить и уведомить контакт"; "Delete and notify contact" = "Удалить и уведомить контакт";
/* No comment provided by engineer. */
"Delete chat" = "Удалить разговор";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete chat profile" = "Удалить профиль чата"; "Delete chat profile" = "Удалить профиль чата";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete chat profile?" = "Удалить профиль?"; "Delete chat profile?" = "Удалить профиль?";
/* No comment provided by engineer. */
"Delete chat?" = "Удалить разговор?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete connection" = "Удалить соединение"; "Delete connection" = "Удалить соединение";
@@ -1508,6 +1628,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Deletion errors" = "Ошибки удаления"; "Deletion errors" = "Ошибки удаления";
/* No comment provided by engineer. */
"Delivered even when Apple drops them." = "Доставляются даже тогда, когда Apple их теряет.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delivery" = "Доставка"; "Delivery" = "Доставка";
@@ -1575,7 +1698,10 @@
"Direct messages" = "Прямые сообщения"; "Direct messages" = "Прямые сообщения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Прямые сообщения между членами группы запрещены."; "Direct messages between members are prohibited in this chat." = "Прямые сообщения между членами запрещены в этом разговоре.";
/* No comment provided by engineer. */
"Direct messages between members are prohibited." = "Прямые сообщения между членами группы запрещены.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Выключить (кроме исключений)"; "Disable (keep overrides)" = "Выключить (кроме исключений)";
@@ -1602,7 +1728,7 @@
"Disappearing messages are prohibited in this chat." = "Исчезающие сообщения запрещены в этом чате."; "Disappearing messages are prohibited in this chat." = "Исчезающие сообщения запрещены в этом чате.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Исчезающие сообщения запрещены в этой группе."; "Disappearing messages are prohibited." = "Исчезающие сообщения запрещены в этой группе.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "Исчезает"; "Disappears at" = "Исчезает";
@@ -1695,6 +1821,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"e2e encrypted" = "e2e зашифровано"; "e2e encrypted" = "e2e зашифровано";
/* No comment provided by engineer. */
"E2E encrypted notifications." = "E2E зашифрованные нотификации.";
/* chat item action */ /* chat item action */
"Edit" = "Редактировать"; "Edit" = "Редактировать";
@@ -1713,6 +1842,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enable camera access" = "Включить доступ к камере"; "Enable camera access" = "Включить доступ к камере";
/* No comment provided by engineer. */
"Enable Flux" = "Включить Flux";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enable for all" = "Включить для всех"; "Enable for all" = "Включить для всех";
@@ -1872,12 +2004,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error aborting address change" = "Ошибка при прекращении изменения адреса"; "Error aborting address change" = "Ошибка при прекращении изменения адреса";
/* alert title */
"Error accepting conditions" = "Ошибка приема условий";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error accepting contact request" = "Ошибка при принятии запроса на соединение"; "Error accepting contact request" = "Ошибка при принятии запроса на соединение";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Ошибка при добавлении членов группы"; "Error adding member(s)" = "Ошибка при добавлении членов группы";
/* alert title */
"Error adding server" = "Ошибка добавления сервера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Ошибка при изменении адреса"; "Error changing address" = "Ошибка при изменении адреса";
@@ -1962,6 +2100,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error joining group" = "Ошибка при вступлении в группу"; "Error joining group" = "Ошибка при вступлении в группу";
/* alert title */
"Error loading servers" = "Ошибка загрузки серверов";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error migrating settings" = "Ошибка миграции настроек"; "Error migrating settings" = "Ошибка миграции настроек";
@@ -1995,6 +2136,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error saving passphrase to keychain" = "Ошибка сохранения пароля в Keychain"; "Error saving passphrase to keychain" = "Ошибка сохранения пароля в Keychain";
/* alert title */
"Error saving servers" = "Ошибка сохранения серверов";
/* when migrating */ /* when migrating */
"Error saving settings" = "Ошибка сохранения настроек"; "Error saving settings" = "Ошибка сохранения настроек";
@@ -2037,6 +2181,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error updating message" = "Ошибка при обновлении сообщения"; "Error updating message" = "Ошибка при обновлении сообщения";
/* alert title */
"Error updating server" = "Ошибка сохранения сервера";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error updating settings" = "Ошибка при сохранении настроек сети"; "Error updating settings" = "Ошибка при сохранении настроек сети";
@@ -2064,6 +2211,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Errors" = "Ошибки"; "Errors" = "Ошибки";
/* servers error */
"Errors in servers configuration." = "Ошибки в настройках серверов.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Even when disabled in the conversation." = "Даже когда они выключены в разговоре."; "Even when disabled in the conversation." = "Даже когда они выключены в разговоре.";
@@ -2149,7 +2299,7 @@
"Files and media" = "Файлы и медиа"; "Files and media" = "Файлы и медиа";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Файлы и медиа запрещены в этой группе."; "Files and media are prohibited." = "Файлы и медиа запрещены в этой группе.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "Файлы и медиа не разрешены"; "Files and media not allowed" = "Файлы и медиа не разрешены";
@@ -2190,9 +2340,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Fix not supported by group member" = "Починка не поддерживается членом группы"; "Fix not supported by group member" = "Починка не поддерживается членом группы";
/* No comment provided by engineer. */
"for better metadata privacy." = "для лучшей конфиденциальности метаданных.";
/* servers error */
"For chat profile %@:" = "Для профиля чата %@:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Для консоли"; "For console" = "Для консоли";
/* 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." = "Например, если Ваш контакт получает сообщения через сервер SimpleX Chat, Ваше приложение доставит их через сервер Flux.";
/* No comment provided by engineer. */
"For private routing" = "Для доставки сообщений";
/* No comment provided by engineer. */
"For social media" = "Для социальных сетей";
/* chat item action */ /* chat item action */
"Forward" = "Переслать"; "Forward" = "Переслать";
@@ -2304,27 +2469,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Ссылки групп"; "Group links" = "Ссылки групп";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Члены группы могут слать файлы и медиа.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
/* notification */ /* notification */
"Group message:" = "Групповое сообщение:"; "Group message:" = "Групповое сообщение:";
@@ -2385,6 +2529,12 @@
/* time unit */ /* time unit */
"hours" = "часов"; "hours" = "часов";
/* No comment provided by engineer. */
"How it affects privacy" = "Как это влияет на конфиденциальность";
/* No comment provided by engineer. */
"How it helps privacy" = "Как это улучшает конфиденциальность";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"How SimpleX works" = "Как SimpleX работает"; "How SimpleX works" = "Как SimpleX работает";
@@ -2589,6 +2739,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invite members" = "Пригласить членов группы"; "Invite members" = "Пригласить членов группы";
/* No comment provided by engineer. */
"Invite to chat" = "Пригласить в разговор";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invite to group" = "Пригласить в группу"; "Invite to group" = "Пригласить в группу";
@@ -2620,7 +2773,7 @@
"Irreversible message deletion is prohibited in this chat." = "Необратимое удаление сообщений запрещено в этом чате."; "Irreversible message deletion is prohibited in this chat." = "Необратимое удаление сообщений запрещено в этом чате.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Необратимое удаление сообщений запрещено в этой группе."; "Irreversible message deletion is prohibited." = "Необратимое удаление сообщений запрещено в этой группе.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Это позволяет иметь много анонимных соединений без общих данных между ними в одном профиле пользователя."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Это позволяет иметь много анонимных соединений без общих данных между ними в одном профиле пользователя.";
@@ -2703,6 +2856,12 @@
/* swipe action */ /* swipe action */
"Leave" = "Выйти"; "Leave" = "Выйти";
/* No comment provided by engineer. */
"Leave chat" = "Покинуть разговор";
/* No comment provided by engineer. */
"Leave chat?" = "Покинуть разговор?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Leave group" = "Выйти из группы"; "Leave group" = "Выйти из группы";
@@ -2799,15 +2958,42 @@
/* item status text */ /* item status text */
"Member inactive" = "Член неактивен"; "Member inactive" = "Член неактивен";
/* No comment provided by engineer. */
"Member role will be changed to \"%@\". All chat members will be notified." = "Роль участника будет изменена на \"%@\". Все участники разговора получат уведомление.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member role will be changed to \"%@\". All group members will be notified." = "Роль члена группы будет изменена на \"%@\". Все члены группы получат сообщение."; "Member role will be changed to \"%@\". All group members will be notified." = "Роль члена группы будет изменена на \"%@\". Все члены группы получат сообщение.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member role will be changed to \"%@\". The member will receive a new invitation." = "Роль члена группы будет изменена на \"%@\". Будет отправлено новое приглашение."; "Member role will be changed to \"%@\". The member will receive a new invitation." = "Роль члена группы будет изменена на \"%@\". Будет отправлено новое приглашение.";
/* No comment provided by engineer. */
"Member will be removed from chat - this cannot be undone!" = "Член будет удален из разговора - это действие нельзя отменить!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Член группы будет удален - это действие нельзя отменить!"; "Member will be removed from group - this cannot be undone!" = "Член группы будет удален - это действие нельзя отменить!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Члены группы могут добавлять реакции на сообщения.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Члены группы могут необратимо удалять отправленные сообщения. (24 часа)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Члены группы могут посылать прямые сообщения.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Члены группы могут посылать исчезающие сообщения.";
/* No comment provided by engineer. */
"Members can send files and media." = "Члены группы могут слать файлы и медиа.";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Menus" = "Меню"; "Menus" = "Меню";
@@ -2842,7 +3028,7 @@
"Message reactions are prohibited in this chat." = "Реакции на сообщения в этом чате запрещены."; "Message reactions are prohibited in this chat." = "Реакции на сообщения в этом чате запрещены.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Реакции на сообщения запрещены в этой группе."; "Message reactions are prohibited." = "Реакции на сообщения запрещены в этой группе.";
/* notification */ /* notification */
"message received" = "получено сообщение"; "message received" = "получено сообщение";
@@ -2961,6 +3147,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More reliable network connection." = "Более надежное соединение с сетью."; "More reliable network connection." = "Более надежное соединение с сетью.";
/* No comment provided by engineer. */
"More reliable notifications" = "Более надежные уведомления";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Скорее всего, соединение удалено."; "Most likely this connection is deleted." = "Скорее всего, соединение удалено.";
@@ -2985,12 +3174,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network connection" = "Интернет-соединение"; "Network connection" = "Интернет-соединение";
/* No comment provided by engineer. */
"Network decentralization" = "Децентрализация сети";
/* snd error text */ /* snd error text */
"Network issues - message expired after many attempts to send it." = "Ошибка сети - сообщение не было отправлено после многократных попыток."; "Network issues - message expired after many attempts to send it." = "Ошибка сети - сообщение не было отправлено после многократных попыток.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network management" = "Статус сети"; "Network management" = "Статус сети";
/* No comment provided by engineer. */
"Network operator" = "Оператор сети";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Настройки сети"; "Network settings" = "Настройки сети";
@@ -3018,6 +3213,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"New display name" = "Новое имя"; "New display name" = "Новое имя";
/* notification */
"New events" = "Новые события";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"New in %@" = "Новое в %@"; "New in %@" = "Новое в %@";
@@ -3039,6 +3237,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"New passphrase…" = "Новый пароль…"; "New passphrase…" = "Новый пароль…";
/* No comment provided by engineer. */
"New server" = "Новый сервер";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"New SOCKS credentials will be used every time you start the app." = "Новые учетные данные SOCKS будут использоваться при каждом запуске приложения."; "New SOCKS credentials will be used every time you start the app." = "Новые учетные данные SOCKS будут использоваться при каждом запуске приложения.";
@@ -3084,6 +3285,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No info, try to reload" = "Нет информации, попробуйте перезагрузить"; "No info, try to reload" = "Нет информации, попробуйте перезагрузить";
/* servers error */
"No media & file servers." = "Нет серверов файлов и медиа.";
/* servers error */
"No message servers." = "Нет серверов сообщений.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No network connection" = "Нет интернет-соединения"; "No network connection" = "Нет интернет-соединения";
@@ -3102,6 +3309,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No received or sent files" = "Нет полученных или отправленных файлов"; "No received or sent files" = "Нет полученных или отправленных файлов";
/* servers error */
"No servers for private message routing." = "Нет серверов для доставки сообщений.";
/* servers error */
"No servers to receive files." = "Нет серверов для приема файлов.";
/* servers error */
"No servers to receive messages." = "Нет серверов для приема сообщений.";
/* servers error */
"No servers to send files." = "Нет серверов для отправки файлов.";
/* copied message info in history */ /* copied message info in history */
"no text" = "нет текста"; "no text" = "нет текста";
@@ -3123,6 +3342,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Notifications are disabled!" = "Уведомления выключены"; "Notifications are disabled!" = "Уведомления выключены";
/* No comment provided by engineer. */
"Notifications privacy" = "Конфиденциальность уведомлений";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Now admins can:\n- delete members' messages.\n- disable members (\"observer\" role)" = "Теперь админы могут:\n- удалять сообщения членов.\n- приостанавливать членов (роль \"наблюдатель\")"; "Now admins can:\n- delete members' messages.\n- disable members (\"observer\" role)" = "Теперь админы могут:\n- удалять сообщения членов.\n- приостанавливать членов (роль \"наблюдатель\")";
@@ -3167,6 +3389,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Onion hosts will not be used." = "Onion хосты не используются."; "Onion hosts will not be used." = "Onion хосты не используются.";
/* No comment provided by engineer. */
"Only chat owners can change preferences." = "Только владельцы разговора могут поменять предпочтения.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only client devices store user profiles, contacts, groups, and messages." = "Только пользовательские устройства хранят контакты, группы и сообщения."; "Only client devices store user profiles, contacts, groups, and messages." = "Только пользовательские устройства хранят контакты, группы и сообщения.";
@@ -3215,12 +3440,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open" = "Открыть"; "Open" = "Открыть";
/* No comment provided by engineer. */
"Open changes" = "Открыть изменения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open chat" = "Открыть чат"; "Open chat" = "Открыть чат";
/* authentication reason */ /* authentication reason */
"Open chat console" = "Открыть консоль"; "Open chat console" = "Открыть консоль";
/* No comment provided by engineer. */
"Open conditions" = "Открыть условия";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open group" = "Открыть группу"; "Open group" = "Открыть группу";
@@ -3233,6 +3464,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Opening app…" = "Приложение отрывается…"; "Opening app…" = "Приложение отрывается…";
/* No comment provided by engineer. */
"Operator" = "Оператор";
/* alert title */
"Operator server" = "Сервер оператора";
/* No comment provided by engineer. */
"Or import archive file" = "Или импортировать файл архива";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or paste archive link" = "Или вставьте ссылку архива"; "Or paste archive link" = "Или вставьте ссылку архива";
@@ -3245,6 +3485,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Или покажите этот код"; "Or show this code" = "Или покажите этот код";
/* No comment provided by engineer. */
"Or to share privately" = "Или поделиться конфиденциально";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"other" = "другое"; "other" = "другое";
@@ -3386,6 +3629,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preset server address" = "Адрес сервера по умолчанию"; "Preset server address" = "Адрес сервера по умолчанию";
/* No comment provided by engineer. */
"Preset servers" = "Серверы по умолчанию";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preview" = "Просмотр"; "Preview" = "Просмотр";
@@ -3395,6 +3641,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Privacy & security" = "Конфиденциальность"; "Privacy & security" = "Конфиденциальность";
/* No comment provided by engineer. */
"Privacy for your customers." = "Конфиденциальность для ваших покупателей.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Privacy redefined" = "Более конфиденциальный"; "Privacy redefined" = "Более конфиденциальный";
@@ -3471,7 +3720,7 @@
"Protect your chat profiles with a password!" = "Защитите Ваши профили чата паролем!"; "Protect your chat profiles with a password!" = "Защитите Ваши профили чата паролем!";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"Protocol timeout" = "Таймаут протокола"; "Protocol timeout" = "Таймаут протокола";
@@ -3687,6 +3936,9 @@
/* chat item action */ /* chat item action */
"Reply" = "Ответить"; "Reply" = "Ответить";
/* chat list item title */
"requested to connect" = "запрошено соединение";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Required" = "Обязательно"; "Required" = "Обязательно";
@@ -3738,6 +3990,12 @@
/* chat item action */ /* chat item action */
"Reveal" = "Показать"; "Reveal" = "Показать";
/* No comment provided by engineer. */
"Review conditions" = "Посмотреть условия";
/* No comment provided by engineer. */
"Review later" = "Посмотреть позже";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Revoke" = "Отозвать"; "Revoke" = "Отозвать";
@@ -3766,7 +4024,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Сохранить (и уведомить контакты)"; "Save (and notify contacts)" = "Сохранить (и уведомить контакты)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "Сохранить и уведомить контакт"; "Save and notify contact" = "Сохранить и уведомить контакт";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3787,7 +4045,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Сохранить пароль в Keychain"; "Save passphrase in Keychain" = "Сохранить пароль в Keychain";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "Сохранить предпочтения?"; "Save preferences?" = "Сохранить предпочтения?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -4024,6 +4282,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Server" = "Сервер"; "Server" = "Сервер";
/* alert message */
"Server added to operator %@." = "Сервер добавлен к оператору %@.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Server address" = "Адрес сервера"; "Server address" = "Адрес сервера";
@@ -4033,6 +4294,15 @@
/* srv error text. */ /* srv error text. */
"Server address is incompatible with network settings." = "Адрес сервера несовместим с настройками сети."; "Server address is incompatible with network settings." = "Адрес сервера несовместим с настройками сети.";
/* alert title */
"Server operator changed." = "Оператор серверов изменен.";
/* No comment provided by engineer. */
"Server operators" = "Операторы серверов";
/* alert title */
"Server protocol changed." = "Протокол сервера изменен.";
/* queue info */ /* queue info */
"server queue info: %@\n\nlast received msg: %@" = "информация сервера об очереди: %1$@\n\nпоследнее полученное сообщение: %2$@"; "server queue info: %@\n\nlast received msg: %@" = "информация сервера об очереди: %1$@\n\nпоследнее полученное сообщение: %2$@";
@@ -4118,9 +4388,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Share 1-time link" = "Поделиться одноразовой ссылкой"; "Share 1-time link" = "Поделиться одноразовой ссылкой";
/* No comment provided by engineer. */
"Share 1-time link with a friend" = "Поделитесь одноразовой ссылкой с другом";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Share address" = "Поделиться адресом"; "Share address" = "Поделиться адресом";
/* No comment provided by engineer. */
"Share address publicly" = "Поделитесь адресом";
/* alert title */ /* alert title */
"Share address with contacts?" = "Поделиться адресом с контактами?"; "Share address with contacts?" = "Поделиться адресом с контактами?";
@@ -4133,6 +4409,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Share profile" = "Поделиться профилем"; "Share profile" = "Поделиться профилем";
/* No comment provided by engineer. */
"Share SimpleX address on social media." = "Поделитесь SimpleX адресом в социальных сетях.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Share this 1-time invite link" = "Поделиться одноразовой ссылкой-приглашением"; "Share this 1-time invite link" = "Поделиться одноразовой ссылкой-приглашением";
@@ -4178,6 +4457,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Address" = "Адрес SimpleX"; "SimpleX Address" = "Адрес SimpleX";
/* No comment provided by engineer. */
"SimpleX address and 1-time links are safe to share via any messenger." = "Адрес SimpleX и одноразовые ссылки безопасно отправлять через любой мессенджер.";
/* 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. */ /* No comment provided by engineer. */
"SimpleX Chat security was audited by Trail of Bits." = "Безопасность SimpleX Chat была проверена Trail of Bits."; "SimpleX Chat security was audited by Trail of Bits." = "Безопасность SimpleX Chat была проверена Trail of Bits.";
@@ -4194,7 +4482,7 @@
"SimpleX links" = "SimpleX ссылки"; "SimpleX links" = "SimpleX ссылки";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Ссылки SimpleX запрещены в этой группе."; "SimpleX links are prohibited." = "Ссылки SimpleX запрещены в этой группе.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "Ссылки SimpleX не разрешены"; "SimpleX links not allowed" = "Ссылки SimpleX не разрешены";
@@ -4253,6 +4541,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Some non-fatal errors occurred during import:" = "Во время импорта произошли некоторые ошибки:"; "Some non-fatal errors occurred during import:" = "Во время импорта произошли некоторые ошибки:";
/* alert message */
"Some servers failed the test:\n%@" = "Серверы не прошли тест:\n%@";
/* notification title */ /* notification title */
"Somebody" = "Контакт"; "Somebody" = "Контакт";
@@ -4355,6 +4646,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap button " = "Нажмите кнопку "; "Tap button " = "Нажмите кнопку ";
/* No comment provided by engineer. */
"Tap Create SimpleX address in the menu to create it later." = "Нажмите Создать адрес SimpleX в меню, чтобы создать его позже.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Tap to activate profile." = "Нажмите, чтобы сделать профиль активным."; "Tap to activate profile." = "Нажмите, чтобы сделать профиль активным.";
@@ -4415,6 +4709,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The app can notify you when you receive messages or contact requests - please open settings to enable." = "Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках."; "The app can notify you when you receive messages or contact requests - please open settings to enable." = "Приложение может посылать Вам уведомления о сообщениях и запросах на соединение - уведомления можно включить в Настройках.";
/* No comment provided by engineer. */
"The app protects your privacy by using different operators in each conversation." = "Приложение улучшает конфиденциальность используя разных операторов в каждом разговоре.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The app will ask to confirm downloads from unknown file servers (except .onion)." = "Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов)."; "The app will ask to confirm downloads from unknown file servers (except .onion)." = "Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов).";
@@ -4424,6 +4721,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The code you scanned is not a SimpleX link QR code." = "Этот QR код не является SimpleX-ccылкой."; "The code you scanned is not a SimpleX link QR code." = "Этот QR код не является SimpleX-ccылкой.";
/* No comment provided by engineer. */
"The connection reached the limit of undelivered messages, your contact may be offline." = "Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The connection you accepted will be cancelled!" = "Подтвержденное соединение будет отменено!"; "The connection you accepted will be cancelled!" = "Подтвержденное соединение будет отменено!";
@@ -4463,6 +4763,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The profile is only shared with your contacts." = "Профиль отправляется только Вашим контактам."; "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!" = "Второй оператор серверов в приложении!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The second tick we missed! ✅" = "Вторая галочка - знать, что доставлено! ✅"; "The second tick we missed! ✅" = "Вторая галочка - знать, что доставлено! ✅";
@@ -4472,6 +4781,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The servers for new connections of your current chat profile **%@**." = "Серверы для новых соединений Вашего текущего профиля чата **%@**."; "The servers for new connections of your current chat profile **%@**." = "Серверы для новых соединений Вашего текущего профиля чата **%@**.";
/* No comment provided by engineer. */
"The servers for new files of your current chat profile **%@**." = "Серверы для новых файлов Вашего текущего профиля **%@**.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The text you pasted is not a SimpleX link." = "Вставленный текст не является SimpleX-ссылкой."; "The text you pasted is not a SimpleX link." = "Вставленный текст не является SimpleX-ссылкой.";
@@ -4481,6 +4793,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Themes" = "Темы"; "Themes" = "Темы";
/* No comment provided by engineer. */
"These conditions will also apply for: **%@**." = "Эти условия также будут применены к: **%@**.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"These settings are for your current profile **%@**." = "Установки для Вашего активного профиля **%@**."; "These settings are for your current profile **%@**." = "Установки для Вашего активного профиля **%@**.";
@@ -4544,6 +4859,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To make a new connection" = "Чтобы соединиться"; "To make a new connection" = "Чтобы соединиться";
/* No comment provided by engineer. */
"To protect against your link being replaced, you can compare contact security codes." = "Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To protect timezone, image/voice files use UTC." = "Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC."; "To protect timezone, image/voice files use UTC." = "Чтобы защитить Ваш часовой пояс, файлы картинок и голосовых сообщений используют UTC.";
@@ -4556,6 +4874,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To protect your privacy, SimpleX uses separate IDs for each of your contacts." = "Чтобы защитить Вашу конфиденциальность, SimpleX использует разные идентификаторы для каждого Вашeго контакта."; "To protect your privacy, SimpleX uses separate IDs for each of your contacts." = "Чтобы защитить Вашу конфиденциальность, SimpleX использует разные идентификаторы для каждого Вашeго контакта.";
/* No comment provided by engineer. */
"To receive" = "Для получения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To record speech please grant permission to use Microphone." = "Для записи речи, пожалуйста, дайте разрешение на использование микрофона."; "To record speech please grant permission to use Microphone." = "Для записи речи, пожалуйста, дайте разрешение на использование микрофона.";
@@ -4568,9 +4889,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Чтобы показать Ваш скрытый профиль, введите его пароль в поле поиска на странице **Ваши профили чата**."; "To reveal your hidden profile, enter a full password into a search field in **Your chat profiles** page." = "Чтобы показать Ваш скрытый профиль, введите его пароль в поле поиска на странице **Ваши профили чата**.";
/* No comment provided by engineer. */
"To send" = "Для оправки";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To support instant push notifications the chat database has to be migrated." = "Для поддержки мгновенный доставки уведомлений данные чата должны быть перемещены."; "To support instant push notifications the chat database has to be migrated." = "Для поддержки мгновенный доставки уведомлений данные чата должны быть перемещены.";
/* No comment provided by engineer. */
"To use the servers of **%@**, accept conditions of use." = "Чтобы использовать серверы оператора **%@**, примите условия использования.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Чтобы подтвердить end-to-end шифрование с Вашим контактом сравните (или сканируйте) код безопасности на Ваших устройствах."; "To verify end-to-end encryption with your contact compare (or scan) the code on your devices." = "Чтобы подтвердить end-to-end шифрование с Вашим контактом сравните (или сканируйте) код безопасности на Ваших устройствах.";
@@ -4628,6 +4955,9 @@
/* rcv group event chat item */ /* rcv group event chat item */
"unblocked %@" = "%@ разблокирован"; "unblocked %@" = "%@ разблокирован";
/* No comment provided by engineer. */
"Undelivered messages" = "Недоставленные сообщения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Unexpected migration state" = "Неожиданная ошибка при перемещении данных чата"; "Unexpected migration state" = "Неожиданная ошибка при перемещении данных чата";
@@ -4745,12 +5075,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use .onion hosts" = "Использовать .onion хосты"; "Use .onion hosts" = "Использовать .onion хосты";
/* No comment provided by engineer. */
"Use %@" = "Использовать %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use chat" = "Использовать чат"; "Use chat" = "Использовать чат";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use current profile" = "Использовать активный профиль"; "Use current profile" = "Использовать активный профиль";
/* No comment provided by engineer. */
"Use for files" = "Использовать для файлов";
/* No comment provided by engineer. */
"Use for messages" = "Использовать для сообщений";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Использовать для новых соединений"; "Use for new connections" = "Использовать для новых соединений";
@@ -4775,6 +5114,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use server" = "Использовать сервер"; "Use server" = "Использовать сервер";
/* No comment provided by engineer. */
"Use servers" = "Использовать серверы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use SimpleX Chat servers?" = "Использовать серверы предосталенные SimpleX Chat?"; "Use SimpleX Chat servers?" = "Использовать серверы предосталенные SimpleX Chat?";
@@ -4859,9 +5201,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Videos and files up to 1gb" = "Видео и файлы до 1гб"; "Videos and files up to 1gb" = "Видео и файлы до 1гб";
/* No comment provided by engineer. */
"View conditions" = "Посмотреть условия";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"View security code" = "Показать код безопасности"; "View security code" = "Показать код безопасности";
/* No comment provided by engineer. */
"View updated conditions" = "Посмотреть измененные условия";
/* chat feature */ /* chat feature */
"Visible history" = "Доступ к истории"; "Visible history" = "Доступ к истории";
@@ -4875,7 +5223,7 @@
"Voice messages are prohibited in this chat." = "Голосовые сообщения запрещены в этом чате."; "Voice messages are prohibited in this chat." = "Голосовые сообщения запрещены в этом чате.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Голосовые сообщения запрещены в этой группе."; "Voice messages are prohibited." = "Голосовые сообщения запрещены в этой группе.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "Голосовые сообщения не разрешены"; "Voice messages not allowed" = "Голосовые сообщения не разрешены";
@@ -4943,6 +5291,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"when IP hidden" = "когда IP защищен"; "when IP hidden" = "когда IP защищен";
/* No comment provided by engineer. */
"When more than one operator is enabled, none of them has metadata to learn who communicates with whom." = "Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.";
@@ -5006,6 +5357,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connected to %@." = "Вы уже соединены с контактом %@."; "You are already connected to %@." = "Вы уже соединены с контактом %@.";
/* No comment provided by engineer. */
"You are already connected with %@." = "Вы уже соединены с %@.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You are already connecting to %@." = "Вы уже соединяетесь с %@."; "You are already connecting to %@." = "Вы уже соединяетесь с %@.";
@@ -5051,6 +5405,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса."; "You can change it in Appearance settings." = "Вы можете изменить это в настройках Интерфейса.";
/* No comment provided by engineer. */
"You can configure operators in Network & servers settings." = "Вы можете настроить операторов в настройках Сети и серверов.";
/* No comment provided by engineer. */
"You can configure servers via settings." = "Вы можете настроить серверы позже.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can create it later" = "Вы можете создать его позже"; "You can create it later" = "Вы можете создать его позже";
@@ -5075,6 +5435,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can send messages to %@ from Archived contacts." = "Вы можете отправлять сообщения %@ из Архивированных контактов."; "You can send messages to %@ from Archived contacts." = "Вы можете отправлять сообщения %@ из Архивированных контактов.";
/* No comment provided by engineer. */
"You can set connection name, to remember who the link was shared with." = "Вы можете установить имя соединения, чтобы запомнить кому Вы отправили ссылку.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can set lock screen notification preview via settings." = "Вы можете установить просмотр уведомлений на экране блокировки в настройках."; "You can set lock screen notification preview via settings." = "Вы можете установить просмотр уведомлений на экране блокировки в настройках.";
@@ -5195,6 +5558,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные."; "You will still receive calls and notifications from muted profiles when they are active." = "Вы все равно получите звонки и уведомления в профилях без звука, когда они активные.";
/* No comment provided by engineer. */
"You will stop receiving messages from this chat. Chat history will be preserved." = "Вы прекратите получать сообщения в этом разговоре. История будет сохранена.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will stop receiving messages from this group. Chat history will be preserved." = "Вы перестанете получать сообщения от этой группы. История чата будет сохранена."; "You will stop receiving messages from this group. Chat history will be preserved." = "Вы перестанете получать сообщения от этой группы. История чата будет сохранена.";
@@ -5276,6 +5642,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your server address" = "Адрес Вашего сервера"; "Your server address" = "Адрес Вашего сервера";
/* No comment provided by engineer. */
"Your servers" = "Ваши серверы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your settings" = "Настройки"; "Your settings" = "Настройки";
+27 -27
View File
@@ -681,7 +681,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting server… (error: %@)" = "กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)"; "Connecting server… (error: %@)" = "กำลังเชื่อมต่อกับเซิร์ฟเวอร์... (ข้อผิดพลาด: %@)";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "กำลังเชื่อมต่อ…"; "connecting…" = "กำลังเชื่อมต่อ…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1005,7 +1005,7 @@
"Direct messages" = "ข้อความโดยตรง"; "Direct messages" = "ข้อความโดยตรง";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "ข้อความโดยตรงระหว่างสมาชิกเป็นสิ่งต้องห้ามในกลุ่มนี้"; "Direct messages between members are prohibited." = "ข้อความโดยตรงระหว่างสมาชิกเป็นสิ่งต้องห้ามในกลุ่มนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "ปิดใช้งาน (เก็บการแทนที่)"; "Disable (keep overrides)" = "ปิดใช้งาน (เก็บการแทนที่)";
@@ -1026,7 +1026,7 @@
"Disappearing messages are prohibited in this chat." = "ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในแชทนี้"; "Disappearing messages are prohibited in this chat." = "ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในแชทนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในกลุ่มนี้"; "Disappearing messages are prohibited." = "ข้อความที่จะหายไปหลังเวลาที่กําหนด (disappearing message) เป็นสิ่งต้องห้ามในกลุ่มนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "หายไปที่"; "Disappears at" = "หายไปที่";
@@ -1386,7 +1386,7 @@
"Files and media" = "ไฟล์และสื่อ"; "Files and media" = "ไฟล์และสื่อ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้"; "Files and media are prohibited." = "ไฟล์และสื่อเป็นสิ่งต้องห้ามในกลุ่มนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "ไฟล์และสื่อต้องห้าม!"; "Files and media prohibited!" = "ไฟล์และสื่อต้องห้าม!";
@@ -1469,24 +1469,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "ลิงค์กลุ่ม"; "Group links" = "ลิงค์กลุ่ม";
/* No comment provided by engineer. */
"Group members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
/* No comment provided by engineer. */
"Group members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
/* No comment provided by engineer. */
"Group members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
/* No comment provided by engineer. */
"Group members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
/* notification */ /* notification */
"Group message:" = "ข้อความกลุ่ม:"; "Group message:" = "ข้อความกลุ่ม:";
@@ -1713,7 +1695,7 @@
"Irreversible message deletion is prohibited in this chat." = "ไม่สามารถลบข้อความแบบแก้ไขไม่ได้ในแชทนี้"; "Irreversible message deletion is prohibited in this chat." = "ไม่สามารถลบข้อความแบบแก้ไขไม่ได้ในแชทนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "การลบข้อความแบบแก้ไขไม่ได้เป็นสิ่งที่ห้ามในกลุ่มนี้"; "Irreversible message deletion is prohibited." = "การลบข้อความแบบแก้ไขไม่ได้เป็นสิ่งที่ห้ามในกลุ่มนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "อนุญาตให้มีการเชื่อมต่อที่ไม่ระบุตัวตนจำนวนมากโดยไม่มีข้อมูลที่ใช้ร่วมกันระหว่างกันในโปรไฟล์การแชทเดียว"; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "อนุญาตให้มีการเชื่อมต่อที่ไม่ระบุตัวตนจำนวนมากโดยไม่มีข้อมูลที่ใช้ร่วมกันระหว่างกันในโปรไฟล์การแชทเดียว";
@@ -1853,6 +1835,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!"; "Member will be removed from group - this cannot be undone!" = "สมาชิกจะถูกลบออกจากกลุ่ม - ไม่สามารถยกเลิกได้!";
/* No comment provided by engineer. */
"Members can add message reactions." = "สมาชิกกลุ่มสามารถเพิ่มการแสดงปฏิกิริยาต่อข้อความได้";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "สมาชิกกลุ่มสามารถลบข้อความที่ส่งแล้วอย่างถาวร";
/* No comment provided by engineer. */
"Members can send direct messages." = "สมาชิกกลุ่มสามารถส่งข้อความโดยตรงได้";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "สมาชิกกลุ่มสามารถส่งข้อความที่จะหายไปหลังจากเวลาที่กำหนดหลังการอ่าน (disappearing messages) ได้";
/* No comment provided by engineer. */
"Members can send files and media." = "สมาชิกกลุ่มสามารถส่งไฟล์และสื่อ";
/* No comment provided by engineer. */
"Members can send voice messages." = "สมาชิกกลุ่มสามารถส่งข้อความเสียง";
/* item status text */ /* item status text */
"Message delivery error" = "ข้อผิดพลาดในการส่งข้อความ"; "Message delivery error" = "ข้อผิดพลาดในการส่งข้อความ";
@@ -1869,7 +1869,7 @@
"Message reactions are prohibited in this chat." = "ห้ามแสดงปฏิกิริยาบนข้อความในแชทนี้"; "Message reactions are prohibited in this chat." = "ห้ามแสดงปฏิกิริยาบนข้อความในแชทนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้"; "Message reactions are prohibited." = "ปฏิกิริยาบนข้อความเป็นสิ่งต้องห้ามในกลุ่มนี้";
/* notification */ /* notification */
"message received" = "ข้อความที่ได้รับ"; "message received" = "ข้อความที่ได้รับ";
@@ -2439,7 +2439,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "บันทึก (และแจ้งผู้ติดต่อ)"; "Save (and notify contacts)" = "บันทึก (และแจ้งผู้ติดต่อ)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "บันทึกและแจ้งผู้ติดต่อ"; "Save and notify contact" = "บันทึกและแจ้งผู้ติดต่อ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -2457,7 +2457,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "บันทึกข้อความรหัสผ่านใน Keychain"; "Save passphrase in Keychain" = "บันทึกข้อความรหัสผ่านใน Keychain";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "บันทึกการตั้งค่า?"; "Save preferences?" = "บันทึกการตั้งค่า?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3071,7 +3071,7 @@
"Voice messages are prohibited in this chat." = "ห้ามส่งข้อความเสียงในแชทนี้"; "Voice messages are prohibited in this chat." = "ห้ามส่งข้อความเสียงในแชทนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้"; "Voice messages are prohibited." = "ข้อความเสียงเป็นสิ่งต้องห้ามในกลุ่มนี้";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "ห้ามข้อความเสียง!"; "Voice messages prohibited!" = "ห้ามข้อความเสียง!";
+32 -32
View File
@@ -431,7 +431,7 @@
"All data is erased when it is entered." = "Kullanıldığında bütün veriler silinir."; "All data is erased when it is entered." = "Kullanıldığında bütün veriler silinir.";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Tüm grup üyeleri bağlı kalacaktır."; "All group members will remain connected." = "Tüm grup üyeleri bağlı kalacaktır.";
@@ -1101,7 +1101,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "Bilgisayara bağlanıyor"; "Connecting to desktop" = "Bilgisayara bağlanıyor";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "bağlanılıyor…"; "connecting…" = "bağlanılıyor…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1572,7 +1572,7 @@
"Direct messages" = "Doğrudan mesajlar"; "Direct messages" = "Doğrudan mesajlar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "Bu grupta üyeler arasında direkt mesajlaşma yasaktır."; "Direct messages between members are prohibited." = "Bu grupta üyeler arasında direkt mesajlaşma yasaktır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "Devre dışı bırak (geçersiz kılmaları koru)"; "Disable (keep overrides)" = "Devre dışı bırak (geçersiz kılmaları koru)";
@@ -1599,7 +1599,7 @@
"Disappearing messages are prohibited in this chat." = "Kaybolan mesajlar bu sohbette yasaklanmış."; "Disappearing messages are prohibited in this chat." = "Kaybolan mesajlar bu sohbette yasaklanmış.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "Kaybolan mesajlar bu grupta yasaklanmış."; "Disappearing messages are prohibited." = "Kaybolan mesajlar bu grupta yasaklanmış.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "da kaybolur"; "Disappears at" = "da kaybolur";
@@ -2146,7 +2146,7 @@
"Files and media" = "Dosyalar ve medya"; "Files and media" = "Dosyalar ve medya";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Dosyalar ve medya bu grupta yasaklandı."; "Files and media are prohibited." = "Dosyalar ve medya bu grupta yasaklandı.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "Dosyalar ve medyaya izin verilmiyor"; "Files and media not allowed" = "Dosyalar ve medyaya izin verilmiyor";
@@ -2301,27 +2301,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "Grup bağlantıları"; "Group links" = "Grup bağlantıları";
/* No comment provided by engineer. */
"Group members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
/* No comment provided by engineer. */
"Group members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
/* No comment provided by engineer. */
"Group members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
/* No comment provided by engineer. */
"Group members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
/* notification */ /* notification */
"Group message:" = "Grup mesajı:"; "Group message:" = "Grup mesajı:";
@@ -2617,7 +2596,7 @@
"Irreversible message deletion is prohibited in this chat." = "Bu sohbette geri döndürülemez mesaj silme yasaktır."; "Irreversible message deletion is prohibited in this chat." = "Bu sohbette geri döndürülemez mesaj silme yasaktır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "Bu grupta geri döndürülemez mesaj silme yasaktır."; "Irreversible message deletion is prohibited." = "Bu grupta geri döndürülemez mesaj silme yasaktır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "Tek bir sohbet profilinde aralarında herhangi bir veri paylaşımı olmadan birçok anonim bağlantıya sahip olmaya izin verir."; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "Tek bir sohbet profilinde aralarında herhangi bir veri paylaşımı olmadan birçok anonim bağlantıya sahip olmaya izin verir.";
@@ -2805,6 +2784,27 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "Üye gruptan çıkarılacaktır - bu geri alınamaz!"; "Member will be removed from group - this cannot be undone!" = "Üye gruptan çıkarılacaktır - bu geri alınamaz!";
/* No comment provided by engineer. */
"Members can add message reactions." = "Grup üyeleri mesaj tepkileri ekleyebilir.";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "Grup üyeleri, gönderilen mesajları kalıcı olarak silebilir. (24 saat içinde)";
/* No comment provided by engineer. */
"Members can send direct messages." = "Grup üyeleri doğrudan mesajlar gönderebilir.";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "Grup üyeleri kaybolan mesajlar gönderebilir.";
/* No comment provided by engineer. */
"Members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir.";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "Grup üyeleri SimpleX bağlantıları gönderebilir.";
/* No comment provided by engineer. */
"Members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Menus" = "Menüler"; "Menus" = "Menüler";
@@ -2839,7 +2839,7 @@
"Message reactions are prohibited in this chat." = "Mesaj tepkileri bu sohbette yasaklandı."; "Message reactions are prohibited in this chat." = "Mesaj tepkileri bu sohbette yasaklandı.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "Mesaj tepkileri bu grupta yasaklandı."; "Message reactions are prohibited." = "Mesaj tepkileri bu grupta yasaklandı.";
/* notification */ /* notification */
"message received" = "mesaj alındı"; "message received" = "mesaj alındı";
@@ -3763,7 +3763,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "Kaydet (ve kişilere bildir)"; "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"; "Save and notify contact" = "Kaydet ve kişilere bildir";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3784,7 +3784,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "Parolayı Anahtar Zincirinde kaydet"; "Save passphrase in Keychain" = "Parolayı Anahtar Zincirinde kaydet";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "Tercihler kaydedilsin mi?"; "Save preferences?" = "Tercihler kaydedilsin mi?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -4191,7 +4191,7 @@
"SimpleX links" = "SimpleX bağlantıları"; "SimpleX links" = "SimpleX bağlantıları";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "SimpleX bağlantıları bu grupta yasaklandı."; "SimpleX links are prohibited." = "SimpleX bağlantıları bu grupta yasaklandı.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX bağlantılarına izin verilmiyor"; "SimpleX links not allowed" = "SimpleX bağlantılarına izin verilmiyor";
@@ -4872,7 +4872,7 @@
"Voice messages are prohibited in this chat." = "Bu sohbette sesli mesajlar yasaktır."; "Voice messages are prohibited in this chat." = "Bu sohbette sesli mesajlar yasaktır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Bu grupta sesli mesajlar yasaktır."; "Voice messages are prohibited." = "Bu grupta sesli mesajlar yasaktır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "Sesli mesajlara izin verilmiyor"; "Voice messages not allowed" = "Sesli mesajlara izin verilmiyor";
File diff suppressed because it is too large Load Diff
+32 -32
View File
@@ -413,7 +413,7 @@
"All data is erased when it is entered." = "所有数据在输入后将被删除。"; "All data is erased when it is entered." = "所有数据在输入后将被删除。";
/* No comment provided by engineer. */ /* 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. */ /* No comment provided by engineer. */
"All group members will remain connected." = "所有群组成员将保持连接。"; "All group members will remain connected." = "所有群组成员将保持连接。";
@@ -1059,7 +1059,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Connecting to desktop" = "正连接到桌面"; "Connecting to desktop" = "正连接到桌面";
/* chat list item title */ /* No comment provided by engineer. */
"connecting…" = "连接中……"; "connecting…" = "连接中……";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -1521,7 +1521,7 @@
"Direct messages" = "私信"; "Direct messages" = "私信";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Direct messages between members are prohibited in this group." = "此群中禁止成员之间私信。"; "Direct messages between members are prohibited." = "此群中禁止成员之间私信。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disable (keep overrides)" = "禁用(保留覆盖)"; "Disable (keep overrides)" = "禁用(保留覆盖)";
@@ -1548,7 +1548,7 @@
"Disappearing messages are prohibited in this chat." = "此聊天中禁止显示限时消息。"; "Disappearing messages are prohibited in this chat." = "此聊天中禁止显示限时消息。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappearing messages are prohibited in this group." = "该组禁止限时消息。"; "Disappearing messages are prohibited." = "该组禁止限时消息。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Disappears at" = "消失于"; "Disappears at" = "消失于";
@@ -2074,7 +2074,7 @@
"Files and media" = "文件和媒体"; "Files and media" = "文件和媒体";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "此群组中禁止文件和媒体。"; "Files and media are prohibited." = "此群组中禁止文件和媒体。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media not allowed" = "不允许文件和媒体"; "Files and media not allowed" = "不允许文件和媒体";
@@ -2214,27 +2214,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group links" = "群组链接"; "Group links" = "群组链接";
/* No comment provided by engineer. */
"Group members can add message reactions." = "群组成员可以添加信息回应。";
/* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
/* No comment provided by engineer. */
"Group members can send direct messages." = "群组成员可以私信。";
/* No comment provided by engineer. */
"Group members can send disappearing messages." = "群组成员可以发送限时消息。";
/* No comment provided by engineer. */
"Group members can send files and media." = "群组成员可以发送文件和媒体。";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
/* No comment provided by engineer. */
"Group members can send voice messages." = "群组成员可以发送语音消息。";
/* notification */ /* notification */
"Group message:" = "群组消息:"; "Group message:" = "群组消息:";
@@ -2524,7 +2503,7 @@
"Irreversible message deletion is prohibited in this chat." = "此聊天中禁止不可撤回消息移除。"; "Irreversible message deletion is prohibited in this chat." = "此聊天中禁止不可撤回消息移除。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Irreversible message deletion is prohibited in this group." = "此群组中禁止不可撤回消息移除。"; "Irreversible message deletion is prohibited." = "此群组中禁止不可撤回消息移除。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It allows having many anonymous connections without any shared data between them in a single chat profile." = "它允许在一个聊天资料中有多个匿名连接,而它们之间没有任何共享数据。"; "It allows having many anonymous connections without any shared data between them in a single chat profile." = "它允许在一个聊天资料中有多个匿名连接,而它们之间没有任何共享数据。";
@@ -2712,6 +2691,27 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Member will be removed from group - this cannot be undone!" = "成员将被移出群组——此操作无法撤消!"; "Member will be removed from group - this cannot be undone!" = "成员将被移出群组——此操作无法撤消!";
/* No comment provided by engineer. */
"Members can add message reactions." = "群组成员可以添加信息回应。";
/* No comment provided by engineer. */
"Members can irreversibly delete sent messages. (24 hours)" = "群组成员可以不可撤回地删除已发送的消息";
/* No comment provided by engineer. */
"Members can send direct messages." = "群组成员可以私信。";
/* No comment provided by engineer. */
"Members can send disappearing messages." = "群组成员可以发送限时消息。";
/* No comment provided by engineer. */
"Members can send files and media." = "群组成员可以发送文件和媒体。";
/* No comment provided by engineer. */
"Members can send SimpleX links." = "群成员可发送 SimpleX 链接。";
/* No comment provided by engineer. */
"Members can send voice messages." = "群组成员可以发送语音消息。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Menus" = "菜单"; "Menus" = "菜单";
@@ -2746,7 +2746,7 @@
"Message reactions are prohibited in this chat." = "该聊天禁用了消息回应。"; "Message reactions are prohibited in this chat." = "该聊天禁用了消息回应。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message reactions are prohibited in this group." = "该群组禁用了消息回应。"; "Message reactions are prohibited." = "该群组禁用了消息回应。";
/* notification */ /* notification */
"message received" = "消息已收到"; "message received" = "消息已收到";
@@ -3634,7 +3634,7 @@
/* alert button */ /* alert button */
"Save (and notify contacts)" = "保存(并通知联系人)"; "Save (and notify contacts)" = "保存(并通知联系人)";
/* No comment provided by engineer. */ /* alert button */
"Save and notify contact" = "保存并通知联系人"; "Save and notify contact" = "保存并通知联系人";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -3655,7 +3655,7 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save passphrase in Keychain" = "在钥匙串中保存密码"; "Save passphrase in Keychain" = "在钥匙串中保存密码";
/* No comment provided by engineer. */ /* alert title */
"Save preferences?" = "保存偏好设置?"; "Save preferences?" = "保存偏好设置?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
@@ -4044,7 +4044,7 @@
"SimpleX links" = "SimpleX 链接"; "SimpleX links" = "SimpleX 链接";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "此群禁止 SimpleX 链接。"; "SimpleX links are prohibited." = "此群禁止 SimpleX 链接。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX links not allowed" = "不允许SimpleX 链接"; "SimpleX links not allowed" = "不允许SimpleX 链接";
@@ -4692,7 +4692,7 @@
"Voice messages are prohibited in this chat." = "语音信息在此聊天中被禁止。"; "Voice messages are prohibited in this chat." = "语音信息在此聊天中被禁止。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "语音信息在该群组中被禁用。"; "Voice messages are prohibited." = "语音信息在该群组中被禁用。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages not allowed" = "不允许语音消息"; "Voice messages not allowed" = "不允许语音消息";
@@ -115,7 +115,6 @@
android:launchMode="singleInstance" android:launchMode="singleInstance"
android:supportsPictureInPicture="true" android:supportsPictureInPicture="true"
android:autoRemoveFromRecents="true" android:autoRemoveFromRecents="true"
android:screenOrientation="portrait"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"/> android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"/>
<provider <provider
@@ -332,6 +332,8 @@ class SimplexApp: Application(), LifecycleEventObserver {
NetworkObserver.shared.restartNetworkObserver() NetworkObserver.shared.restartNetworkObserver()
} }
override fun androidIsXiaomiDevice(): Boolean = setOf("xiaomi", "redmi", "poco").contains(Build.BRAND.lowercase())
@SuppressLint("SourceLockedOrientationActivity") @SuppressLint("SourceLockedOrientationActivity")
@Composable @Composable
override fun androidLockPortraitOrientation() { override fun androidLockPortraitOrientation() {
@@ -358,6 +360,8 @@ class SimplexApp: Application(), LifecycleEventObserver {
return true return true
} }
override fun androidCreateActiveCallState(): Closeable = ActiveCallState()
override val androidApiLevel: Int get() = Build.VERSION.SDK_INT override val androidApiLevel: Int get() = Build.VERSION.SDK_INT
} }
} }
@@ -10,6 +10,8 @@ import android.os.*
import android.os.SystemClock import android.os.SystemClock
import android.provider.Settings import android.provider.Settings
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CornerSize
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.* import androidx.compose.material.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@@ -462,7 +464,8 @@ class SimplexService: Service() {
}, },
confirmButton = { confirmButton = {
TextButton(onClick = AlertManager.shared::hideAlert) { Text(stringResource(MR.strings.ok)) } TextButton(onClick = AlertManager.shared::hideAlert) { Text(stringResource(MR.strings.ok)) }
} },
shape = RoundedCornerShape(corner = CornerSize(25.dp))
) )
} }
@@ -497,6 +500,12 @@ class SimplexService: Service() {
Modifier.padding(bottom = 8.dp) Modifier.padding(bottom = 8.dp)
) )
Text(annotatedStringResource(MR.strings.turn_off_battery_optimization)) Text(annotatedStringResource(MR.strings.turn_off_battery_optimization))
if (platform.androidIsXiaomiDevice() && (mode == NotificationsMode.PERIODIC || mode == NotificationsMode.SERVICE)) {
Text(annotatedStringResource(MR.strings.xiaomi_ignore_battery_optimization),
Modifier.padding(top = 8.dp)
)
}
} }
}, },
dismissButton = { dismissButton = {
@@ -504,7 +513,8 @@ class SimplexService: Service() {
}, },
confirmButton = { confirmButton = {
TextButton(onClick = ignoreOptimization) { Text(stringResource(MR.strings.turn_off_battery_optimization_button)) } TextButton(onClick = ignoreOptimization) { Text(stringResource(MR.strings.turn_off_battery_optimization_button)) }
} },
shape = RoundedCornerShape(corner = CornerSize(25.dp))
) )
} }
@@ -546,7 +556,8 @@ class SimplexService: Service() {
}, },
confirmButton = { confirmButton = {
TextButton(onClick = unrestrict) { Text(stringResource(MR.strings.turn_off_system_restriction_button)) } TextButton(onClick = unrestrict) { Text(stringResource(MR.strings.turn_off_system_restriction_button)) }
} },
shape = RoundedCornerShape(corner = CornerSize(25.dp))
) )
} }
@@ -573,7 +584,8 @@ class SimplexService: Service() {
}, },
confirmButton = { confirmButton = {
TextButton(onClick = unrestrict) { Text(stringResource(MR.strings.turn_off_system_restriction_button)) } TextButton(onClick = unrestrict) { Text(stringResource(MR.strings.turn_off_system_restriction_button)) }
} },
shape = RoundedCornerShape(corner = CornerSize(25.dp))
) )
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
DisposableEffect(Unit) { DisposableEffect(Unit) {
@@ -617,13 +629,14 @@ class SimplexService: Service() {
}, },
confirmButton = { confirmButton = {
TextButton(onClick = AlertManager.shared::hideAlert) { Text(stringResource(MR.strings.ok)) } TextButton(onClick = AlertManager.shared::hideAlert) { Text(stringResource(MR.strings.ok)) }
} },
shape = RoundedCornerShape(corner = CornerSize(25.dp))
) )
} }
fun isBackgroundAllowed(): Boolean = isIgnoringBatteryOptimizations() && !isBackgroundRestricted() fun isBackgroundAllowed(): Boolean = isIgnoringBatteryOptimizations() && !isBackgroundRestricted()
fun isIgnoringBatteryOptimizations(): Boolean { private fun isIgnoringBatteryOptimizations(): Boolean {
val powerManager = androidAppContext.getSystemService(Application.POWER_SERVICE) as PowerManager val powerManager = androidAppContext.getSystemService(Application.POWER_SERVICE) as PowerManager
return powerManager.isIgnoringBatteryOptimizations(androidAppContext.packageName) return powerManager.isIgnoringBatteryOptimizations(androidAppContext.packageName)
} }
@@ -29,6 +29,7 @@ actual fun LazyColumnWithScrollBar(
flingBehavior: FlingBehavior, flingBehavior: FlingBehavior,
userScrollEnabled: Boolean, userScrollEnabled: Boolean,
additionalBarOffset: State<Dp>?, additionalBarOffset: State<Dp>?,
chatBottomBar: State<Boolean>,
fillMaxSize: Boolean, fillMaxSize: Boolean,
content: LazyListScope.() -> Unit content: LazyListScope.() -> Unit
) { ) {
@@ -91,6 +92,7 @@ actual fun LazyColumnWithScrollBarNoAppBar(
flingBehavior: FlingBehavior, flingBehavior: FlingBehavior,
userScrollEnabled: Boolean, userScrollEnabled: Boolean,
additionalBarOffset: State<Dp>?, additionalBarOffset: State<Dp>?,
chatBottomBar: State<Boolean>,
content: LazyListScope.() -> Unit content: LazyListScope.() -> Unit
) { ) {
val state = state ?: rememberLazyListState() val state = state ?: rememberLazyListState()
@@ -71,8 +71,12 @@ class PostSCallAudioDeviceManager: CallAudioDeviceManagerInterface {
} }
override fun stop() { override fun stop() {
am.unregisterAudioDeviceCallback(audioCallback) try {
am.removeOnCommunicationDeviceChangedListener(listener) am.unregisterAudioDeviceCallback(audioCallback)
am.removeOnCommunicationDeviceChangedListener(listener)
} catch (e: Exception) {
Log.e(TAG, e.stackTraceToString())
}
} }
override fun selectLastExternalDeviceOrDefault(speaker: Boolean, keepAnyExternal: Boolean) { override fun selectLastExternalDeviceOrDefault(speaker: Boolean, keepAnyExternal: Boolean) {
@@ -6,12 +6,12 @@ import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.* import android.content.*
import android.content.pm.ActivityInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.media.* import android.media.*
import android.os.Build import android.os.Build
import android.os.PowerManager import android.os.PowerManager
import android.os.PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK import android.os.PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK
import android.os.PowerManager.WakeLock
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.webkit.* import android.webkit.*
@@ -23,7 +23,6 @@ import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.* import androidx.compose.material.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.snapshots.SnapshotStateList import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier 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.platform.*
import chat.simplex.common.ui.theme.* import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.helpers.* import chat.simplex.common.views.helpers.*
import chat.simplex.common.views.onboarding.OnboardingStage
import chat.simplex.res.MR import chat.simplex.res.MR
import com.google.accompanist.permissions.* import com.google.accompanist.permissions.*
import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.StringResource
@@ -58,6 +56,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.filterNotNull
import kotlinx.datetime.Clock import kotlinx.datetime.Clock
import kotlinx.serialization.encodeToString 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 // Should be destroy()'ed and set as null when call is ended. Otherwise, it will be a leak
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
@@ -72,49 +71,62 @@ fun activeCallDestroyWebView() = withApi {
Log.d(TAG, "CallView: webview was destroyed") Log.d(TAG, "CallView: webview was destroyed")
} }
@SuppressLint("SourceLockedOrientationActivity") class ActiveCallState: Closeable {
@Composable val proximityLock: WakeLock? = screenOffWakeLock()
actual fun ActiveCallView() { var wasConnected = false
val call = remember { chatModel.activeCall }.value val callAudioDeviceManager = CallAudioDeviceManagerInterface.new()
val scope = rememberCoroutineScope() private var closed = false
val proximityLock = remember {
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) 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") pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, androidAppContext.packageName + ":proximityLock")
} else { } else {
null 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) { LaunchedEffect(call) {
if (call?.callState == CallState.Connected && !wasConnected.value) { if (call?.callState == CallState.Connected && callState != null && !callState.wasConnected) {
CallSoundsPlayer.vibrate(2) CallSoundsPlayer.vibrate(2)
wasConnected.value = true callState.wasConnected = true
} }
} }
val callAudioDeviceManager = remember { CallAudioDeviceManagerInterface.new() } LaunchedEffect(callState, chatModel.activeCallViewIsCollapsed.value) {
DisposableEffect(Unit) { callState ?: return@LaunchedEffect
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) {
if (chatModel.activeCallViewIsCollapsed.value) { if (chatModel.activeCallViewIsCollapsed.value) {
if (proximityLock?.isHeld == true) proximityLock.release() if (callState.proximityLock?.isHeld == true) callState.proximityLock.release()
} else { } else {
delay(1000) delay(1000)
if (proximityLock?.isHeld == false) proximityLock.acquire() if (callState.proximityLock?.isHeld == false) callState.proximityLock.acquire()
} }
} }
Box(Modifier.fillMaxSize()) { Box(Modifier.fillMaxSize()) {
@@ -122,6 +134,7 @@ actual fun ActiveCallView() {
Log.d(TAG, "received from WebRTCView: $apiMsg") Log.d(TAG, "received from WebRTCView: $apiMsg")
val call = chatModel.activeCall.value val call = chatModel.activeCall.value
if (call != null) { if (call != null) {
val callState = call.androidCallState as ActiveCallState
Log.d(TAG, "has active call $call") Log.d(TAG, "has active call $call")
val callRh = call.remoteHostId val callRh = call.remoteHostId
when (val r = apiMsg.resp) { when (val r = apiMsg.resp) {
@@ -131,9 +144,9 @@ actual fun ActiveCallView() {
updateActiveCall(call) { it.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities) } updateActiveCall(call) { it.copy(callState = CallState.InvitationSent, localCapabilities = r.capabilities) }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
// Starting is delayed to make Android <= 11 working good with Bluetooth // Starting is delayed to make Android <= 11 working good with Bluetooth
callAudioDeviceManager.start() callState.callAudioDeviceManager.start()
} else { } else {
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true) callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
} }
CallSoundsPlayer.startConnectingCallSound(scope) CallSoundsPlayer.startConnectingCallSound(scope)
activeCallWaitDeliveryReceipt(scope) activeCallWaitDeliveryReceipt(scope)
@@ -143,9 +156,9 @@ actual fun ActiveCallView() {
updateActiveCall(call) { it.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities) } updateActiveCall(call) { it.copy(callState = CallState.OfferSent, localCapabilities = r.capabilities) }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
// Starting is delayed to make Android <= 11 working good with Bluetooth // Starting is delayed to make Android <= 11 working good with Bluetooth
callAudioDeviceManager.start() callState.callAudioDeviceManager.start()
} else { } else {
callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true) callState.callAudioDeviceManager.selectLastExternalDeviceOrDefault(call.hasVideo, true)
} }
} }
is WCallResponse.Answer -> withBGApi { is WCallResponse.Answer -> withBGApi {
@@ -228,14 +241,14 @@ actual fun ActiveCallView() {
!chatModel.activeCallViewIsCollapsed.value -> true !chatModel.activeCallViewIsCollapsed.value -> true
else -> false else -> false
} }
if (call != null && showOverlay) { if (call != null && showOverlay && callState != null) {
ActiveCallOverlay(call, chatModel, callAudioDeviceManager) ActiveCallOverlay(call, chatModel, callState.callAudioDeviceManager)
} }
} }
KeyChangeEffect(call?.localMediaSources?.hasVideo) { KeyChangeEffect(callState, call?.localMediaSources?.hasVideo) {
if (call != null && call.hasVideo && callAudioDeviceManager.currentDevice.value?.type == AudioDeviceInfo.TYPE_BUILTIN_EARPIECE) { 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 // 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 val context = LocalContext.current
@@ -243,16 +256,12 @@ actual fun ActiveCallView() {
val activity = context as? Activity ?: return@DisposableEffect onDispose {} val activity = context as? Activity ?: return@DisposableEffect onDispose {}
val prevVolumeControlStream = activity.volumeControlStream val prevVolumeControlStream = activity.volumeControlStream
activity.volumeControlStream = AudioManager.STREAM_VOICE_CALL 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 chatModel.activeCallViewIsVisible.value = true
// After the first call, End command gets added to the list which prevents making another calls // After the first call, End command gets added to the list which prevents making another calls
chatModel.callCommand.removeAll { it is WCallCommand.End } chatModel.callCommand.removeAll { it is WCallCommand.End }
keepScreenOn(true) keepScreenOn(true)
onDispose { onDispose {
activity.volumeControlStream = prevVolumeControlStream activity.volumeControlStream = prevVolumeControlStream
// Unlock orientation
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
chatModel.activeCallViewIsVisible.value = false chatModel.activeCallViewIsVisible.value = false
chatModel.callCommand.clear() chatModel.callCommand.clear()
keepScreenOn(false) keepScreenOn(false)
@@ -264,8 +273,8 @@ actual fun ActiveCallView() {
private fun ActiveCallOverlay(call: Call, chatModel: ChatModel, callAudioDeviceManager: CallAudioDeviceManagerInterface) { private fun ActiveCallOverlay(call: Call, chatModel: ChatModel, callAudioDeviceManager: CallAudioDeviceManagerInterface) {
ActiveCallOverlayLayout( ActiveCallOverlayLayout(
call = call, call = call,
devices = remember { callAudioDeviceManager.devices }.value, devices = remember(callAudioDeviceManager) { callAudioDeviceManager.devices }.value,
currentDevice = remember { callAudioDeviceManager.currentDevice }, currentDevice = remember(callAudioDeviceManager) { callAudioDeviceManager.currentDevice },
dismiss = { withBGApi { chatModel.callManager.endCall(call) } }, dismiss = { withBGApi { chatModel.callManager.endCall(call) } },
toggleAudio = { chatModel.callCommand.add(WCallCommand.Media(CallMediaSource.Mic, enable = !call.localMediaSources.mic)) }, toggleAudio = { chatModel.callCommand.add(WCallCommand.Media(CallMediaSource.Mic, enable = !call.localMediaSources.mic)) },
selectDevice = { callAudioDeviceManager.selectDevice(it.id) }, selectDevice = { callAudioDeviceManager.selectDevice(it.id) },
@@ -832,7 +841,8 @@ fun PreviewActiveCallOverlayVideo() {
connectionInfo = ConnectionInfo( connectionInfo = ConnectionInfo(
RTCIceCandidate(RTCIceCandidateType.Host, "tcp"), RTCIceCandidate(RTCIceCandidateType.Host, "tcp"),
RTCIceCandidate(RTCIceCandidateType.Host, "tcp") RTCIceCandidate(RTCIceCandidateType.Host, "tcp")
) ),
androidCallState = {}
), ),
devices = emptyList(), devices = emptyList(),
currentDevice = remember { mutableStateOf(null) }, currentDevice = remember { mutableStateOf(null) },
@@ -841,7 +851,7 @@ fun PreviewActiveCallOverlayVideo() {
selectDevice = {}, selectDevice = {},
toggleVideo = {}, toggleVideo = {},
toggleSound = {}, toggleSound = {},
flipCamera = {} flipCamera = {},
) )
} }
} }
@@ -862,7 +872,8 @@ fun PreviewActiveCallOverlayAudio() {
connectionInfo = ConnectionInfo( connectionInfo = ConnectionInfo(
RTCIceCandidate(RTCIceCandidateType.Host, "udp"), RTCIceCandidate(RTCIceCandidateType.Host, "udp"),
RTCIceCandidate(RTCIceCandidateType.Host, "udp") RTCIceCandidate(RTCIceCandidateType.Host, "udp")
) ),
androidCallState = {}
), ),
devices = emptyList(), devices = emptyList(),
currentDevice = remember { mutableStateOf(null) }, currentDevice = remember { mutableStateOf(null) },
@@ -33,6 +33,7 @@ import com.google.accompanist.permissions.rememberPermissionState
import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ListenableFuture
import dev.icerock.moko.resources.compose.painterResource import dev.icerock.moko.resources.compose.painterResource
import dev.icerock.moko.resources.compose.stringResource import dev.icerock.moko.resources.compose.stringResource
import kotlinx.coroutines.delay
import java.util.concurrent.* import java.util.concurrent.*
// Adapted from learntodroid - https://gist.github.com/learntodroid/8f839be0b29d0378f843af70607bd7f5 // Adapted from learntodroid - https://gist.github.com/learntodroid/8f839be0b29d0378f843af70607bd7f5
@@ -41,13 +42,13 @@ import java.util.concurrent.*
actual fun QRCodeScanner( actual fun QRCodeScanner(
showQRCodeScanner: MutableState<Boolean>, showQRCodeScanner: MutableState<Boolean>,
padding: PaddingValues, padding: PaddingValues,
onBarcode: (String) -> Unit onBarcode: suspend (String) -> Boolean
) { ) {
val context = LocalContext.current val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current val lifecycleOwner = LocalLifecycleOwner.current
var preview by remember { mutableStateOf<Preview?>(null) } val preview = remember { mutableStateOf<Preview?>(null) }
var lastAnalyzedTimeStamp = 0L val contactLink = remember { mutableStateOf("") }
var contactLink = "" val checkingLink = remember { mutableStateOf(false) }
val cameraProviderFuture by produceState<ListenableFuture<ProcessCameraProvider>?>(initialValue = null) { val cameraProviderFuture by produceState<ListenableFuture<ProcessCameraProvider>?>(initialValue = null) {
value = ProcessCameraProvider.getInstance(context) value = ProcessCameraProvider.getInstance(context)
@@ -86,28 +87,33 @@ actual fun QRCodeScanner(
.build() .build()
val cameraExecutor: ExecutorService = Executors.newSingleThreadExecutor() val cameraExecutor: ExecutorService = Executors.newSingleThreadExecutor()
cameraProviderFuture?.addListener({ cameraProviderFuture?.addListener({
preview = Preview.Builder().build().also { preview.value = Preview.Builder().build().also {
it.setSurfaceProvider(previewView.surfaceProvider) it.setSurfaceProvider(previewView.surfaceProvider)
} }
val detector: QrCodeDetector<GrayU8> = FactoryFiducial.qrcode(null, GrayU8::class.java) val detector: QrCodeDetector<GrayU8> = FactoryFiducial.qrcode(null, GrayU8::class.java)
fun getQR(imageProxy: ImageProxy) { suspend fun getQR(imageProxy: ImageProxy) {
val currentTimeStamp = System.currentTimeMillis() if (checkingLink.value) return
if (currentTimeStamp - lastAnalyzedTimeStamp >= TimeUnit.SECONDS.toMillis(1)) { checkingLink.value = true
detector.process(imageProxyToGrayU8(imageProxy))
val found = detector.detections detector.process(imageProxyToGrayU8(imageProxy))
val qr = found.firstOrNull() val found = detector.detections
if (qr != null) { val qr = found.firstOrNull()
if (qr.message != contactLink) { if (qr != null) {
// Make sure link is new and not a repeat if (qr.message != contactLink.value) {
contactLink = qr.message // Make sure link is new and not a repeat if that link was handled successfully
onBarcode(contactLink) if (onBarcode(qr.message)) {
contactLink.value = qr.message
} }
// just some delay to not spam endlessly with alert in case the user scan something wrong, and it fails fast
// (for example, scan user's address while verifying contact code - it prevents alert spam)
delay(1000)
} }
} }
checkingLink.value = false
imageProxy.close() imageProxy.close()
} }
val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> getQR(proxy) } val imageAnalyzer = ImageAnalysis.Analyzer { proxy -> withApi { getQR(proxy) } }
val imageAnalysis: ImageAnalysis = ImageAnalysis.Builder() val imageAnalysis: ImageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.setImageQueueDepth(1) .setImageQueueDepth(1)
@@ -115,7 +121,7 @@ actual fun QRCodeScanner(
.also { it.setAnalyzer(cameraExecutor, imageAnalyzer) } .also { it.setAnalyzer(cameraExecutor, imageAnalyzer) }
try { try {
cameraProviderFuture?.get()?.unbindAll() cameraProviderFuture?.get()?.unbindAll()
cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis) cameraProviderFuture?.get()?.bindToLifecycle(lifecycleOwner, cameraSelector, preview.value, imageAnalysis)
} catch (e: Exception) { } catch (e: Exception) {
Log.d(TAG, "CameraPreview: ${e.localizedMessage}") Log.d(TAG, "CameraPreview: ${e.localizedMessage}")
} }
@@ -106,7 +106,12 @@ fun AppearanceScope.AppearanceLayout(
} }
// } // }
SettingsPreferenceItem(icon = null, stringResource(MR.strings.one_hand_ui), ChatModel.controller.appPrefs.oneHandUI) SettingsPreferenceItem(icon = null, stringResource(MR.strings.one_hand_ui), ChatModel.controller.appPrefs.oneHandUI) { enabled ->
if (enabled) appPrefs.chatBottomBar.set(true)
}
if (remember { appPrefs.oneHandUI.state }.value) {
SettingsPreferenceItem(icon = null, stringResource(MR.strings.chat_bottom_bar), ChatModel.controller.appPrefs.chatBottomBar)
}
} }
SectionDividerSpaced() SectionDividerSpaced()
@@ -0,0 +1,19 @@
package chat.simplex.common.views.usersettings.networkAndServers
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
actual fun ConditionsBox(modifier: Modifier, scrollState: ScrollState, content: @Composable() (BoxScope.() -> Unit)){
Box(
modifier = modifier
.verticalScroll(scrollState)
.padding(8.dp)
) {
content()
}
}
@@ -54,11 +54,10 @@ add_library( # Sets the name of the library.
simplex-api.c) simplex-api.c)
add_library( simplex SHARED IMPORTED ) add_library( simplex SHARED IMPORTED )
FILE(GLOB SIMPLEXLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/libsimplex.${OS_LIB_EXT})
if(WIN32) if(WIN32)
FILE(GLOB SIMPLEXLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/lib*simplex*.${OS_LIB_EXT})
set_target_properties( simplex PROPERTIES IMPORTED_IMPLIB ${SIMPLEXLIB}) set_target_properties( simplex PROPERTIES IMPORTED_IMPLIB ${SIMPLEXLIB})
else() else()
FILE(GLOB SIMPLEXLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/lib*simplex-chat*.${OS_LIB_EXT})
set_target_properties( simplex PROPERTIES IMPORTED_LOCATION ${SIMPLEXLIB}) set_target_properties( simplex PROPERTIES IMPORTED_LOCATION ${SIMPLEXLIB})
endif() endif()
@@ -1467,6 +1467,7 @@ data class GroupInfo (
val groupId: Long, val groupId: Long,
override val localDisplayName: String, override val localDisplayName: String,
val groupProfile: GroupProfile, val groupProfile: GroupProfile,
val businessChat: BusinessChatInfo? = null,
val fullGroupPreferences: FullGroupPreferences, val fullGroupPreferences: FullGroupPreferences,
val membership: GroupMember, val membership: GroupMember,
val hostConnCustomUserProfileId: Long? = null, val hostConnCustomUserProfileId: Long? = null,
@@ -1497,7 +1498,7 @@ data class GroupInfo (
override val image get() = groupProfile.image override val image get() = groupProfile.image
override val localAlias get() = "" override val localAlias get() = ""
val canEdit: Boolean val isOwner: Boolean
get() = membership.memberRole == GroupMemberRole.Owner && membership.memberCurrent get() = membership.memberRole == GroupMemberRole.Owner && membership.memberCurrent
val canDelete: Boolean val canDelete: Boolean
@@ -1543,6 +1544,19 @@ data class GroupProfile (
} }
} }
@Serializable
data class BusinessChatInfo (
val chatType: BusinessChatType,
val businessId: String,
val customerId: String,
)
@Serializable
enum class BusinessChatType {
@SerialName("business") Business,
@SerialName("customer") Customer,
}
@Serializable @Serializable
data class GroupMember ( data class GroupMember (
val groupMemberId: Long, val groupMemberId: Long,
@@ -1881,8 +1895,9 @@ class PendingContactConnection(
generalGetString(MR.strings.display_name_connection_established) generalGetString(MR.strings.display_name_connection_established)
} else { } else {
generalGetString( generalGetString(
if (initiated && !viaContactUri) MR.strings.display_name_invited_to_connect if (viaContactUri) MR.strings.display_name_requested_to_connect
else MR.strings.display_name_connecting else if (initiated) MR.strings.display_name_invited_to_connect
else MR.strings.display_name_accepted_invitation
) )
} }
} }
@@ -23,6 +23,7 @@ import chat.simplex.common.platform.*
import chat.simplex.common.ui.theme.* import chat.simplex.common.ui.theme.*
import chat.simplex.common.views.call.* import chat.simplex.common.views.call.*
import chat.simplex.common.views.chat.item.showQuotedItemDoesNotExistAlert import chat.simplex.common.views.chat.item.showQuotedItemDoesNotExistAlert
import chat.simplex.common.views.chatlist.openGroupChat
import chat.simplex.common.views.migration.MigrationFileLinkData import chat.simplex.common.views.migration.MigrationFileLinkData
import chat.simplex.common.views.onboarding.OnboardingStage import chat.simplex.common.views.onboarding.OnboardingStage
import chat.simplex.common.views.usersettings.* import chat.simplex.common.views.usersettings.*
@@ -257,6 +258,7 @@ class AppPreferences {
val iosCallKitCallsInRecents = mkBoolPreference(SHARED_PREFS_IOS_CALL_KIT_CALLS_IN_RECENTS, false) val iosCallKitCallsInRecents = mkBoolPreference(SHARED_PREFS_IOS_CALL_KIT_CALLS_IN_RECENTS, false)
val oneHandUI = mkBoolPreference(SHARED_PREFS_ONE_HAND_UI, true) val oneHandUI = mkBoolPreference(SHARED_PREFS_ONE_HAND_UI, true)
val chatBottomBar = mkBoolPreference(SHARED_PREFS_CHAT_BOTTOM_BAR, true)
val hintPreferences: List<Pair<SharedPreference<Boolean>, Boolean>> = listOf( val hintPreferences: List<Pair<SharedPreference<Boolean>, Boolean>> = listOf(
laNoticeShown to false, laNoticeShown to false,
@@ -431,6 +433,7 @@ class AppPreferences {
private const val SHARED_PREFS_SHOULD_IMPORT_APP_SETTINGS = "ShouldImportAppSettings" private const val SHARED_PREFS_SHOULD_IMPORT_APP_SETTINGS = "ShouldImportAppSettings"
private const val SHARED_PREFS_CONFIRM_DB_UPGRADES = "ConfirmDBUpgrades" private const val SHARED_PREFS_CONFIRM_DB_UPGRADES = "ConfirmDBUpgrades"
private const val SHARED_PREFS_ONE_HAND_UI = "OneHandUI" private const val SHARED_PREFS_ONE_HAND_UI = "OneHandUI"
private const val SHARED_PREFS_CHAT_BOTTOM_BAR = "ChatBottomBar"
private const val SHARED_PREFS_SELF_DESTRUCT = "LocalAuthenticationSelfDestruct" private const val SHARED_PREFS_SELF_DESTRUCT = "LocalAuthenticationSelfDestruct"
private const val SHARED_PREFS_SELF_DESTRUCT_DISPLAY_NAME = "LocalAuthenticationSelfDestructDisplayName" private const val SHARED_PREFS_SELF_DESTRUCT_DISPLAY_NAME = "LocalAuthenticationSelfDestructDisplayName"
private const val SHARED_PREFS_PQ_EXPERIMENTAL_ENABLED = "PQExperimentalEnabled" // no longer used private const val SHARED_PREFS_PQ_EXPERIMENTAL_ENABLED = "PQExperimentalEnabled" // no longer used
@@ -438,7 +441,6 @@ class AppPreferences {
private const val SHARED_PREFS_CURRENT_THEME_IDs = "CurrentThemeIds" private const val SHARED_PREFS_CURRENT_THEME_IDs = "CurrentThemeIds"
private const val SHARED_PREFS_SYSTEM_DARK_THEME = "SystemDarkTheme" private const val SHARED_PREFS_SYSTEM_DARK_THEME = "SystemDarkTheme"
private const val SHARED_PREFS_THEMES_OLD = "Themes" private const val SHARED_PREFS_THEMES_OLD = "Themes"
private const val SHARED_PREFS_THEME_OVERRIDES = "ThemeOverrides"
private const val SHARED_PREFS_PROFILE_IMAGE_CORNER_RADIUS = "ProfileImageCornerRadius" private const val SHARED_PREFS_PROFILE_IMAGE_CORNER_RADIUS = "ProfileImageCornerRadius"
private const val SHARED_PREFS_CHAT_ITEM_ROUNDNESS = "ChatItemRoundness" private const val SHARED_PREFS_CHAT_ITEM_ROUNDNESS = "ChatItemRoundness"
private const val SHARED_PREFS_CHAT_ITEM_TAIL = "ChatItemTail" private const val SHARED_PREFS_CHAT_ITEM_TAIL = "ChatItemTail"
@@ -894,8 +896,27 @@ object ChatController {
private suspend fun processSendMessageCmd(rh: Long?, cmd: CC): List<AChatItem>? { private suspend fun processSendMessageCmd(rh: Long?, cmd: CC): List<AChatItem>? {
val r = sendCmd(rh, cmd) val r = sendCmd(rh, cmd)
return when (r) { return when {
is CR.NewChatItems -> r.chatItems r is CR.NewChatItems -> r.chatItems
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorStore && r.chatError.storeError is StoreError.LargeMsg && cmd is CC.ApiSendMessages -> {
val mc = cmd.composedMessages.last().msgContent
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.maximum_message_size_title),
if (mc is MsgContent.MCImage || mc is MsgContent.MCVideo || mc is MsgContent.MCLink) {
generalGetString(MR.strings.maximum_message_size_reached_non_text)
} else {
generalGetString(MR.strings.maximum_message_size_reached_text)
}
)
null
}
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorStore && r.chatError.storeError is StoreError.LargeMsg && cmd is CC.ApiForwardChatItems -> {
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.maximum_message_size_title),
generalGetString(MR.strings.maximum_message_size_reached_forwarding)
)
null
}
else -> { else -> {
if (!(networkErrorAlert(r))) { if (!(networkErrorAlert(r))) {
apiErrorAlert("processSendMessageCmd", generalGetString(MR.strings.error_sending_message), r) apiErrorAlert("processSendMessageCmd", generalGetString(MR.strings.error_sending_message), r)
@@ -943,7 +964,21 @@ object ChatController {
suspend fun apiUpdateChatItem(rh: Long?, type: ChatType, id: Long, itemId: Long, mc: MsgContent, live: Boolean = false): AChatItem? { suspend fun apiUpdateChatItem(rh: Long?, type: ChatType, id: Long, itemId: Long, mc: MsgContent, live: Boolean = false): AChatItem? {
val r = sendCmd(rh, CC.ApiUpdateChatItem(type, id, itemId, mc, live)) val r = sendCmd(rh, CC.ApiUpdateChatItem(type, id, itemId, mc, live))
if (r is CR.ChatItemUpdated) return r.chatItem when {
r is CR.ChatItemUpdated -> return r.chatItem
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorStore && r.chatError.storeError is StoreError.LargeMsg -> {
AlertManager.shared.showAlertMsg(
generalGetString(MR.strings.maximum_message_size_title),
if (mc is MsgContent.MCImage || mc is MsgContent.MCVideo || mc is MsgContent.MCLink) {
generalGetString(MR.strings.maximum_message_size_reached_non_text)
} else {
generalGetString(MR.strings.maximum_message_size_reached_text)
}
)
return null
}
}
Log.e(TAG, "apiUpdateChatItem bad response: ${r.responseType} ${r.details}") Log.e(TAG, "apiUpdateChatItem bad response: ${r.responseType} ${r.details}")
return null return null
} }
@@ -2401,9 +2436,7 @@ object ChatController {
) { ) {
receiveFile(rhId, r.user, file.fileId, auto = true) receiveFile(rhId, r.user, file.fileId, auto = true)
} }
if (cItem.showNotification && (allowedToShowNotification() || chatModel.chatId.value != cInfo.id || chatModel.remoteHostId() != rhId)) { ntfManager.notifyMessageReceived(rhId, r.user, cInfo, cItem)
ntfManager.notifyMessageReceived(r.user, cInfo, cItem)
}
} }
} }
is CR.ChatItemsStatusesUpdated -> is CR.ChatItemsStatusesUpdated ->
@@ -2417,7 +2450,7 @@ object ChatController {
} }
} }
is CR.ChatItemUpdated -> is CR.ChatItemUpdated ->
chatItemSimpleUpdate(rhId, r.user, r.chatItem) chatItemUpdateNotify(rhId, r.user, r.chatItem)
is CR.ChatItemReaction -> { is CR.ChatItemReaction -> {
if (active(r.user)) { if (active(r.user)) {
withChats { withChats {
@@ -2493,6 +2526,19 @@ object ChatController {
} }
} }
} }
is CR.BusinessLinkConnecting -> {
if (!active(r.user)) return
withChats {
updateGroup(rhId, r.groupInfo)
}
if (chatModel.chatId.value == r.fromContact.id) {
openGroupChat(rhId, r.groupInfo.groupId)
}
withChats {
removeChat(rhId, r.fromContact.id)
}
}
is CR.JoinedGroupMemberConnecting -> is CR.JoinedGroupMemberConnecting ->
if (active(r.user)) { if (active(r.user)) {
withChats { withChats {
@@ -2902,9 +2948,17 @@ object ChatController {
} }
private suspend fun chatItemSimpleUpdate(rh: Long?, user: UserLike, aChatItem: AChatItem) { private suspend fun chatItemSimpleUpdate(rh: Long?, user: UserLike, aChatItem: AChatItem) {
if (activeUser(rh, user)) {
val cInfo = aChatItem.chatInfo
val cItem = aChatItem.chatItem
withChats { upsertChatItem(rh, cInfo, cItem) }
}
}
private suspend fun chatItemUpdateNotify(rh: Long?, user: UserLike, aChatItem: AChatItem) {
val cInfo = aChatItem.chatInfo val cInfo = aChatItem.chatInfo
val cItem = aChatItem.chatItem val cItem = aChatItem.chatItem
val notify = { ntfManager.notifyMessageReceived(user, cInfo, cItem) } val notify = { ntfManager.notifyMessageReceived(rh, user, cInfo, cItem) }
if (!activeUser(rh, user)) { if (!activeUser(rh, user)) {
notify() notify()
} else if (withChats { upsertChatItem(rh, cInfo, cItem) }) { } else if (withChats { upsertChatItem(rh, cInfo, cItem) }) {
@@ -3615,14 +3669,13 @@ enum class ServerProtocol {
@Serializable @Serializable
enum class OperatorTag { enum class OperatorTag {
@SerialName("simplex") SimpleX, @SerialName("simplex") SimpleX,
@SerialName("flux") Flux, @SerialName("flux") Flux
@SerialName("xyz") XYZ,
@SerialName("demo") Demo
} }
data class ServerOperatorInfo( data class ServerOperatorInfo(
val description: List<String>, val description: List<String>,
val website: String, val website: String,
val selfhost: Pair<String, String>? = null,
val logo: ImageResource, val logo: ImageResource,
val largeLogo: ImageResource, val largeLogo: ImageResource,
val logoDarkMode: ImageResource, val logoDarkMode: ImageResource,
@@ -3642,31 +3695,17 @@ val operatorsInfo: Map<OperatorTag, ServerOperatorInfo> = mapOf(
), ),
OperatorTag.Flux to ServerOperatorInfo( OperatorTag.Flux to ServerOperatorInfo(
description = listOf( description = listOf(
"Flux is the largest decentralized cloud infrastructure, leveraging a global network of user-operated computational nodes.", "Flux is the largest decentralized cloud, based on a global network of user-operated 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 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 = "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, logo = MR.images.flux_logo_symbol,
largeLogo = MR.images.flux_logo, largeLogo = MR.images.flux_logo,
logoDarkMode = MR.images.flux_logo_symbol, logoDarkMode = MR.images.flux_logo_symbol,
largeLogoDarkMode = MR.images.flux_logo_light 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 @Serializable
@@ -3746,7 +3785,7 @@ data class ServerOperator(
companion object { companion object {
val dummyOperatorInfo = ServerOperatorInfo( val dummyOperatorInfo = ServerOperatorInfo(
description = listOf("Default"), description = listOf("Default"),
website = "Default", website = "https://simplex.chat",
logo = MR.images.decentralized, logo = MR.images.decentralized,
largeLogo = MR.images.logo, largeLogo = MR.images.logo,
logoDarkMode = MR.images.decentralized_light, logoDarkMode = MR.images.decentralized_light,
@@ -3764,30 +3803,6 @@ data class ServerOperator(
smpRoles = ServerRoles(storage = true, proxy = true), smpRoles = ServerRoles(storage = true, proxy = true),
xftpRoles = 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 val id: Long
@@ -4960,7 +4975,7 @@ enum class GroupFeature: Feature {
} }
DirectMessages -> when(enabled) { DirectMessages -> when(enabled) {
GroupFeatureEnabled.ON -> generalGetString(MR.strings.group_members_can_send_dms) GroupFeatureEnabled.ON -> generalGetString(MR.strings.group_members_can_send_dms)
GroupFeatureEnabled.OFF -> generalGetString(MR.strings.direct_messages_are_prohibited_in_chat) GroupFeatureEnabled.OFF -> generalGetString(MR.strings.direct_messages_are_prohibited)
} }
FullDelete -> when(enabled) { FullDelete -> when(enabled) {
GroupFeatureEnabled.ON -> generalGetString(MR.strings.group_members_can_delete) GroupFeatureEnabled.ON -> generalGetString(MR.strings.group_members_can_delete)
@@ -5406,7 +5421,6 @@ sealed class CR {
@Serializable @SerialName("sentInvitation") class SentInvitation(val user: UserRef, val connection: PendingContactConnection): CR() @Serializable @SerialName("sentInvitation") class SentInvitation(val user: UserRef, val connection: PendingContactConnection): CR()
@Serializable @SerialName("sentInvitationToContact") class SentInvitationToContact(val user: UserRef, val contact: Contact, val customUserProfile: Profile?): CR() @Serializable @SerialName("sentInvitationToContact") class SentInvitationToContact(val user: UserRef, val contact: Contact, val customUserProfile: Profile?): CR()
@Serializable @SerialName("contactAlreadyExists") class ContactAlreadyExists(val user: UserRef, val contact: Contact): CR() @Serializable @SerialName("contactAlreadyExists") class ContactAlreadyExists(val user: UserRef, val contact: Contact): CR()
@Serializable @SerialName("contactRequestAlreadyAccepted") class ContactRequestAlreadyAccepted(val user: UserRef, val contact: Contact): CR()
@Serializable @SerialName("contactDeleted") class ContactDeleted(val user: UserRef, val contact: Contact): CR() @Serializable @SerialName("contactDeleted") class ContactDeleted(val user: UserRef, val contact: Contact): CR()
@Serializable @SerialName("contactDeletedByContact") class ContactDeletedByContact(val user: UserRef, val contact: Contact): CR() @Serializable @SerialName("contactDeletedByContact") class ContactDeletedByContact(val user: UserRef, val contact: Contact): CR()
@Serializable @SerialName("chatCleared") class ChatCleared(val user: UserRef, val chatInfo: ChatInfo): CR() @Serializable @SerialName("chatCleared") class ChatCleared(val user: UserRef, val chatInfo: ChatInfo): CR()
@@ -5452,6 +5466,7 @@ sealed class CR {
@Serializable @SerialName("sentGroupInvitation") class SentGroupInvitation(val user: UserRef, val groupInfo: GroupInfo, val contact: Contact, val member: GroupMember): CR() @Serializable @SerialName("sentGroupInvitation") class SentGroupInvitation(val user: UserRef, val groupInfo: GroupInfo, val contact: Contact, val member: GroupMember): CR()
@Serializable @SerialName("userAcceptedGroupSent") class UserAcceptedGroupSent (val user: UserRef, val groupInfo: GroupInfo, val hostContact: Contact? = null): CR() @Serializable @SerialName("userAcceptedGroupSent") class UserAcceptedGroupSent (val user: UserRef, val groupInfo: GroupInfo, val hostContact: Contact? = null): CR()
@Serializable @SerialName("groupLinkConnecting") class GroupLinkConnecting (val user: UserRef, val groupInfo: GroupInfo, val hostMember: GroupMember): CR() @Serializable @SerialName("groupLinkConnecting") class GroupLinkConnecting (val user: UserRef, val groupInfo: GroupInfo, val hostMember: GroupMember): CR()
@Serializable @SerialName("businessLinkConnecting") class BusinessLinkConnecting (val user: UserRef, val groupInfo: GroupInfo, val hostMember: GroupMember, val fromContact: Contact): CR()
@Serializable @SerialName("userDeletedMember") class UserDeletedMember(val user: UserRef, val groupInfo: GroupInfo, val member: GroupMember): CR() @Serializable @SerialName("userDeletedMember") class UserDeletedMember(val user: UserRef, val groupInfo: GroupInfo, val member: GroupMember): CR()
@Serializable @SerialName("leftMemberUser") class LeftMemberUser(val user: UserRef, val groupInfo: GroupInfo): CR() @Serializable @SerialName("leftMemberUser") class LeftMemberUser(val user: UserRef, val groupInfo: GroupInfo): CR()
@Serializable @SerialName("groupMembers") class GroupMembers(val user: UserRef, val group: Group): CR() @Serializable @SerialName("groupMembers") class GroupMembers(val user: UserRef, val group: Group): CR()
@@ -5590,7 +5605,6 @@ sealed class CR {
is SentInvitation -> "sentInvitation" is SentInvitation -> "sentInvitation"
is SentInvitationToContact -> "sentInvitationToContact" is SentInvitationToContact -> "sentInvitationToContact"
is ContactAlreadyExists -> "contactAlreadyExists" is ContactAlreadyExists -> "contactAlreadyExists"
is ContactRequestAlreadyAccepted -> "contactRequestAlreadyAccepted"
is ContactDeleted -> "contactDeleted" is ContactDeleted -> "contactDeleted"
is ContactDeletedByContact -> "contactDeletedByContact" is ContactDeletedByContact -> "contactDeletedByContact"
is ChatCleared -> "chatCleared" is ChatCleared -> "chatCleared"
@@ -5633,6 +5647,7 @@ sealed class CR {
is SentGroupInvitation -> "sentGroupInvitation" is SentGroupInvitation -> "sentGroupInvitation"
is UserAcceptedGroupSent -> "userAcceptedGroupSent" is UserAcceptedGroupSent -> "userAcceptedGroupSent"
is GroupLinkConnecting -> "groupLinkConnecting" is GroupLinkConnecting -> "groupLinkConnecting"
is BusinessLinkConnecting -> "businessLinkConnecting"
is UserDeletedMember -> "userDeletedMember" is UserDeletedMember -> "userDeletedMember"
is LeftMemberUser -> "leftMemberUser" is LeftMemberUser -> "leftMemberUser"
is GroupMembers -> "groupMembers" is GroupMembers -> "groupMembers"
@@ -5764,7 +5779,6 @@ sealed class CR {
is SentInvitation -> withUser(user, json.encodeToString(connection)) is SentInvitation -> withUser(user, json.encodeToString(connection))
is SentInvitationToContact -> withUser(user, json.encodeToString(contact)) is SentInvitationToContact -> withUser(user, json.encodeToString(contact))
is ContactAlreadyExists -> withUser(user, json.encodeToString(contact)) is ContactAlreadyExists -> withUser(user, json.encodeToString(contact))
is ContactRequestAlreadyAccepted -> withUser(user, json.encodeToString(contact))
is ContactDeleted -> withUser(user, json.encodeToString(contact)) is ContactDeleted -> withUser(user, json.encodeToString(contact))
is ContactDeletedByContact -> withUser(user, json.encodeToString(contact)) is ContactDeletedByContact -> withUser(user, json.encodeToString(contact))
is ChatCleared -> withUser(user, json.encodeToString(chatInfo)) is ChatCleared -> withUser(user, json.encodeToString(chatInfo))
@@ -5807,6 +5821,7 @@ sealed class CR {
is SentGroupInvitation -> withUser(user, "groupInfo: $groupInfo\ncontact: $contact\nmember: $member") is SentGroupInvitation -> withUser(user, "groupInfo: $groupInfo\ncontact: $contact\nmember: $member")
is UserAcceptedGroupSent -> json.encodeToString(groupInfo) is UserAcceptedGroupSent -> json.encodeToString(groupInfo)
is GroupLinkConnecting -> withUser(user, "groupInfo: $groupInfo\nhostMember: $hostMember") is GroupLinkConnecting -> withUser(user, "groupInfo: $groupInfo\nhostMember: $hostMember")
is BusinessLinkConnecting -> withUser(user, "groupInfo: $groupInfo\nhostMember: $hostMember\nfromContact: $fromContact")
is UserDeletedMember -> withUser(user, "groupInfo: $groupInfo\nmember: $member") is UserDeletedMember -> withUser(user, "groupInfo: $groupInfo\nmember: $member")
is LeftMemberUser -> withUser(user, json.encodeToString(groupInfo)) is LeftMemberUser -> withUser(user, json.encodeToString(groupInfo))
is GroupMembers -> withUser(user, json.encodeToString(group)) is GroupMembers -> withUser(user, json.encodeToString(group))
@@ -6078,11 +6093,16 @@ class UserContactLinkRec(val connReqContact: String, val autoAccept: AutoAccept?
} }
@Serializable @Serializable
class AutoAccept(val acceptIncognito: Boolean, val autoReply: MsgContent?) { class AutoAccept(val businessAddress: Boolean, val acceptIncognito: Boolean, val autoReply: MsgContent?) {
companion object { companion object {
fun cmdString(autoAccept: AutoAccept?): String { fun cmdString(autoAccept: AutoAccept?): String {
if (autoAccept == null) return "off" if (autoAccept == null) return "off"
val s = "on" + if (autoAccept.acceptIncognito) " incognito=on" else "" var s = "on"
if (autoAccept.acceptIncognito) {
s += " incognito=on"
} else if (autoAccept.businessAddress) {
s += " business"
}
val msg = autoAccept.autoReply ?: return s val msg = autoAccept.autoReply ?: return s
return s + " " + msg.cmdString return s + " " + msg.cmdString
} }
@@ -6357,6 +6377,7 @@ sealed class StoreError {
is HostMemberIdNotFound -> "hostMemberIdNotFound" is HostMemberIdNotFound -> "hostMemberIdNotFound"
is ContactNotFoundByFileId -> "contactNotFoundByFileId" is ContactNotFoundByFileId -> "contactNotFoundByFileId"
is NoGroupSndStatus -> "noGroupSndStatus" is NoGroupSndStatus -> "noGroupSndStatus"
is LargeMsg -> "largeMsg"
} }
@Serializable @SerialName("duplicateName") object DuplicateName: StoreError() @Serializable @SerialName("duplicateName") object DuplicateName: StoreError()
@@ -6416,6 +6437,7 @@ sealed class StoreError {
@Serializable @SerialName("hostMemberIdNotFound") class HostMemberIdNotFound(val groupId: Long): StoreError() @Serializable @SerialName("hostMemberIdNotFound") class HostMemberIdNotFound(val groupId: Long): StoreError()
@Serializable @SerialName("contactNotFoundByFileId") class ContactNotFoundByFileId(val fileId: Long): StoreError() @Serializable @SerialName("contactNotFoundByFileId") class ContactNotFoundByFileId(val fileId: Long): StoreError()
@Serializable @SerialName("noGroupSndStatus") class NoGroupSndStatus(val itemId: Long, val groupMemberId: Long): StoreError() @Serializable @SerialName("noGroupSndStatus") class NoGroupSndStatus(val itemId: Long, val groupMemberId: Long): StoreError()
@Serializable @SerialName("largeMsg") object LargeMsg: StoreError()
} }
@Serializable @Serializable
@@ -6443,7 +6465,7 @@ sealed class SQLiteError {
@Serializable @Serializable
sealed class AgentErrorType { sealed class AgentErrorType {
val string: String get() = when (this) { val string: String get() = when (this) {
is CMD -> "CMD ${cmdErr.string}" is CMD -> "CMD ${cmdErr.string} $errContext"
is CONN -> "CONN ${connErr.string}" is CONN -> "CONN ${connErr.string}"
is SMP -> "SMP ${smpErr.string}" is SMP -> "SMP ${smpErr.string}"
// is NTF -> "NTF ${ntfErr.string}" // is NTF -> "NTF ${ntfErr.string}"
@@ -6456,7 +6478,7 @@ sealed class AgentErrorType {
is CRITICAL -> "CRITICAL $offerRestart $criticalErr" is CRITICAL -> "CRITICAL $offerRestart $criticalErr"
is INACTIVE -> "INACTIVE" is INACTIVE -> "INACTIVE"
} }
@Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType): AgentErrorType() @Serializable @SerialName("CMD") class CMD(val cmdErr: CommandErrorType, val errContext: String): AgentErrorType()
@Serializable @SerialName("CONN") class CONN(val connErr: ConnectionErrorType): AgentErrorType() @Serializable @SerialName("CONN") class CONN(val connErr: ConnectionErrorType): AgentErrorType()
@Serializable @SerialName("SMP") class SMP(val serverAddress: String, val smpErr: SMPErrorType): AgentErrorType() @Serializable @SerialName("SMP") class SMP(val serverAddress: String, val smpErr: SMPErrorType): AgentErrorType()
// @Serializable @SerialName("NTF") class NTF(val ntfErr: SMPErrorType): AgentErrorType() // @Serializable @SerialName("NTF") class NTF(val ntfErr: SMPErrorType): AgentErrorType()
@@ -6834,7 +6856,8 @@ data class AppSettings(
var uiDarkColorScheme: String? = null, var uiDarkColorScheme: String? = null,
var uiCurrentThemeIds: Map<String, String>? = null, var uiCurrentThemeIds: Map<String, String>? = null,
var uiThemes: List<ThemeOverrides>? = null, var uiThemes: List<ThemeOverrides>? = null,
var oneHandUI: Boolean? = null var oneHandUI: Boolean? = null,
var chatBottomBar: Boolean? = null
) { ) {
fun prepareForExport(): AppSettings { fun prepareForExport(): AppSettings {
val empty = AppSettings() val empty = AppSettings()
@@ -6869,6 +6892,7 @@ data class AppSettings(
if (uiCurrentThemeIds != def.uiCurrentThemeIds) { empty.uiCurrentThemeIds = uiCurrentThemeIds } if (uiCurrentThemeIds != def.uiCurrentThemeIds) { empty.uiCurrentThemeIds = uiCurrentThemeIds }
if (uiThemes != def.uiThemes) { empty.uiThemes = uiThemes } if (uiThemes != def.uiThemes) { empty.uiThemes = uiThemes }
if (oneHandUI != def.oneHandUI) { empty.oneHandUI = oneHandUI } if (oneHandUI != def.oneHandUI) { empty.oneHandUI = oneHandUI }
if (chatBottomBar != def.chatBottomBar) { empty.chatBottomBar = chatBottomBar }
return empty return empty
} }
@@ -6914,6 +6938,7 @@ data class AppSettings(
uiCurrentThemeIds?.let { def.currentThemeIds.set(it) } uiCurrentThemeIds?.let { def.currentThemeIds.set(it) }
uiThemes?.let { def.themeOverrides.set(it.skipDuplicates()) } uiThemes?.let { def.themeOverrides.set(it.skipDuplicates()) }
oneHandUI?.let { def.oneHandUI.set(it) } oneHandUI?.let { def.oneHandUI.set(it) }
chatBottomBar?.let { if (appPlatform.isAndroid) def.chatBottomBar.set(it) else def.chatBottomBar.set(true) }
} }
companion object { companion object {
@@ -6948,7 +6973,8 @@ data class AppSettings(
uiDarkColorScheme = DefaultTheme.SIMPLEX.themeName, uiDarkColorScheme = DefaultTheme.SIMPLEX.themeName,
uiCurrentThemeIds = null, uiCurrentThemeIds = null,
uiThemes = null, uiThemes = null,
oneHandUI = true oneHandUI = true,
chatBottomBar = true,
) )
val current: AppSettings val current: AppSettings
@@ -6984,7 +7010,8 @@ data class AppSettings(
uiDarkColorScheme = def.systemDarkTheme.get() ?: DefaultTheme.SIMPLEX.themeName, uiDarkColorScheme = def.systemDarkTheme.get() ?: DefaultTheme.SIMPLEX.themeName,
uiCurrentThemeIds = def.currentThemeIds.get(), uiCurrentThemeIds = def.currentThemeIds.get(),
uiThemes = def.themeOverrides.get(), uiThemes = def.themeOverrides.get(),
oneHandUI = def.oneHandUI.get() oneHandUI = def.oneHandUI.get(),
chatBottomBar = def.chatBottomBar.get()
) )
} }
} }
@@ -36,9 +36,17 @@ abstract class NtfManager {
) )
) )
fun notifyMessageReceived(user: UserLike, cInfo: ChatInfo, cItem: ChatItem) { fun notifyMessageReceived(rhId: Long?, user: UserLike, cInfo: ChatInfo, cItem: ChatItem) {
if (!cInfo.ntfsEnabled) return if (
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem)) cItem.showNotification &&
cInfo.ntfsEnabled &&
(
allowedToShowNotification() ||
chatModel.chatId.value != cInfo.id ||
chatModel.remoteHostId() != rhId)
) {
displayNotification(user = user, chatId = cInfo.id, displayName = cInfo.displayName, msgText = hideSecrets(cItem))
}
} }
fun acceptContactRequestAction(userId: Long?, incognito: Boolean, chatId: ChatId) { fun acceptContactRequestAction(userId: Long?, incognito: Boolean, chatId: ChatId) {
@@ -10,6 +10,7 @@ import chat.simplex.common.model.ChatId
import chat.simplex.common.model.NotificationsMode import chat.simplex.common.model.NotificationsMode
import chat.simplex.common.ui.theme.CurrentColors import chat.simplex.common.ui.theme.CurrentColors
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import java.io.Closeable
interface PlatformInterface { interface PlatformInterface {
suspend fun androidServiceStart() {} suspend fun androidServiceStart() {}
@@ -26,6 +27,8 @@ interface PlatformInterface {
fun androidPictureInPictureAllowed(): Boolean = true fun androidPictureInPictureAllowed(): Boolean = true
fun androidCallEnded() {} fun androidCallEnded() {}
fun androidRestartNetworkObserver() {} fun androidRestartNetworkObserver() {}
fun androidCreateActiveCallState(): Closeable = Closeable { }
fun androidIsXiaomiDevice(): Boolean = false
val androidApiLevel: Int? get() = null val androidApiLevel: Int? get() = null
@Composable fun androidLockPortraitOrientation() {} @Composable fun androidLockPortraitOrientation() {}
suspend fun androidAskToAllowBackgroundCalls(): Boolean = true suspend fun androidAskToAllowBackgroundCalls(): Boolean = true
@@ -23,6 +23,7 @@ expect fun LazyColumnWithScrollBar(
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(), flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
userScrollEnabled: Boolean = true, userScrollEnabled: Boolean = true,
additionalBarOffset: State<Dp>? = null, additionalBarOffset: State<Dp>? = null,
chatBottomBar: State<Boolean> = remember { mutableStateOf(true) },
// by default, this function will include .fillMaxSize() without you doing anything. If you don't need it, pass `false` here // by default, this function will include .fillMaxSize() without you doing anything. If you don't need it, pass `false` here
// maxSize (at least maxHeight) is needed for blur on appBars to work correctly // maxSize (at least maxHeight) is needed for blur on appBars to work correctly
fillMaxSize: Boolean = true, fillMaxSize: Boolean = true,
@@ -41,6 +42,7 @@ expect fun LazyColumnWithScrollBarNoAppBar(
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(), flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
userScrollEnabled: Boolean = true, userScrollEnabled: Boolean = true,
additionalBarOffset: State<Dp>? = null, additionalBarOffset: State<Dp>? = null,
chatBottomBar: State<Boolean> = remember { mutableStateOf(true) },
content: LazyListScope.() -> Unit content: LazyListScope.() -> Unit
) )
@@ -609,6 +609,7 @@ fun themedBackgroundBrush(): Brush = Brush.linearGradient(
) )
val DEFAULT_PADDING = 20.dp val DEFAULT_PADDING = 20.dp
val DEFAULT_ONBOARDING_HORIZONTAL_PADDING = 25.dp
val DEFAULT_SPACE_AFTER_ICON = 4.dp val DEFAULT_SPACE_AFTER_ICON = 4.dp
val DEFAULT_PADDING_HALF = DEFAULT_PADDING / 2 val DEFAULT_PADDING_HALF = DEFAULT_PADDING / 2
val DEFAULT_BOTTOM_PADDING = 48.dp val DEFAULT_BOTTOM_PADDING = 48.dp
@@ -156,7 +156,7 @@ fun TerminalLog(floating: Boolean, composeViewHeight: State<Dp>) {
LazyColumnWithScrollBar ( LazyColumnWithScrollBar (
reverseLayout = true, reverseLayout = true,
contentPadding = PaddingValues( contentPadding = PaddingValues(
top = topPaddingToContent(), top = topPaddingToContent(false),
bottom = composeViewHeight.value bottom = composeViewHeight.value
), ),
state = listState, state = listState,
@@ -117,7 +117,7 @@ fun CreateFirstProfile(chatModel: ChatModel, close: () -> Unit) {
ColumnWithScrollBar { ColumnWithScrollBar {
val displayName = rememberSaveable { mutableStateOf("") } val displayName = rememberSaveable { mutableStateOf("") }
val focusRequester = remember { FocusRequester() } 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)) { Box(Modifier.align(Alignment.CenterHorizontally)) {
AppBarTitle(stringResource(MR.strings.create_your_profile), bottomPadding = DEFAULT_PADDING, withPadding = false) 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)) Spacer(Modifier.fillMaxHeight().weight(1f))
Column(Modifier.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( 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, labelId = MR.strings.create_profile_button,
onboarding = null, onboarding = null,
enabled = canCreateProfile(displayName.value), enabled = canCreateProfile(displayName.value),
@@ -43,6 +43,7 @@ class CallManager(val chatModel: ChatModel) {
private fun justAcceptIncomingCall(invitation: RcvCallInvitation, userProfile: Profile) { private fun justAcceptIncomingCall(invitation: RcvCallInvitation, userProfile: Profile) {
with (chatModel) { with (chatModel) {
activeCall.value?.androidCallState?.close()
activeCall.value = Call( activeCall.value = Call(
remoteHostId = invitation.remoteHostId, remoteHostId = invitation.remoteHostId,
userProfile = userProfile, userProfile = userProfile,
@@ -51,6 +52,7 @@ class CallManager(val chatModel: ChatModel) {
callState = CallState.InvitationAccepted, callState = CallState.InvitationAccepted,
initialCallType = invitation.callType.media, initialCallType = invitation.callType.media,
sharedKey = invitation.sharedKey, sharedKey = invitation.sharedKey,
androidCallState = platform.androidCreateActiveCallState()
) )
showCallView.value = true showCallView.value = true
val useRelay = controller.appPrefs.webrtcPolicyRelay.get() 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 // Don't destroy WebView if you plan to accept next call right after this one
if (!switchingCall.value) { if (!switchingCall.value) {
showCallView.value = false showCallView.value = false
activeCall.value?.androidCallState?.close()
activeCall.value = null activeCall.value = null
activeCallViewIsCollapsed.value = false activeCallViewIsCollapsed.value = false
platform.androidCallEnded() platform.androidCallEnded()
@@ -7,6 +7,7 @@ import chat.simplex.res.MR
import kotlinx.datetime.Instant import kotlinx.datetime.Instant
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import java.io.Closeable
import java.net.URI import java.net.URI
import kotlin.collections.ArrayList 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, // 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 // 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 val encrypted: Boolean get() = localEncrypted && sharedKey != null
private val localEncrypted: Boolean get() = localCapabilities?.encryption ?: false private val localEncrypted: Boolean get() = localCapabilities?.encryption ?: false

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