Compare commits

...

158 Commits

Author SHA1 Message Date
Evgeny Poberezkin 0d62d7ddfb Merge branch 'master' into ab/diff-subs 2024-05-28 08:06:25 +01:00
Stanislav Dmitrenko b58ccedf23 android, desktop: enhancements to wallpapers (#4234)
* android, desktop: enhancements to wallpapers

* fixes

* unneeded
2024-05-28 08:02:45 +01:00
Evgeny Poberezkin a78aeb47c5 Merge branch 'master' into ab/diff-subs 2024-05-27 16:00:55 +01:00
spaced4ndy 01cadefde7 core: avoid creating duplicate introductions between group members connecting concurrently (#4235) 2024-05-27 18:42:39 +04:00
Evgeny Poberezkin c70e7223d9 core: delete connection records when connecting (JOIN) fails (#4233)
* core: delete connection records when connecting (JOIN) fails

* show errors in commands
2024-05-27 15:32:09 +01:00
Evgeny Poberezkin a1d4f52185 5.8-beta.3: ios 220, android 214, desktop 49 2024-05-25 20:57:07 +01:00
Evgeny Poberezkin 373070f388 ui: show UI for additional group preferences (SimpleX links and per-role permissions) 2024-05-25 19:54:05 +01:00
Evgeny Poberezkin a03ccd0ba6 ios: update core library 5.8.0.3 2024-05-25 18:55:15 +01:00
Evgeny Poberezkin a7982cccf9 Merge branch 'stable' 2024-05-25 17:22:25 +01:00
Evgeny Poberezkin dccd6631af 5.7.4: ios 219, android 212, desktop 48 2024-05-25 17:06:11 +01:00
Evgeny Poberezkin b0516b6440 core: 5.7.4.1 2024-05-25 11:18:49 +01:00
Stanislav Dmitrenko bf91666f07 android, desktop: wallpapers (#4109)
* android, desktop: wallpapers

* changes

* removed unused

* changes

* backgrounds moved to themes. can be exported/imported

* changes and refactoring

* scrollable

* change

* reorder

* theme per background

* changes

* don't drop customization in same cases

* changes

* changes

* fix state update

* different defaults

* fix Android

* removed migration

* temporary

* returned theme name as uppercase back

* resilient to wrong preset name

* more

* live color change without button

* fix

* Revert "temporary"

This reverts commit 705c92ee56.

* changes

* changes

* almost candy

* old picker and ability to specify hex color

* different image

* picker

* user theme override, fixes, import/export theme with image

* revert when about to merge: useful layout for theming

* custom image displaying and deletion work correctly

* performance

* moved code up

* changes

* color changes in picker when changing themes

* reset color without closing modal

* unused

* log

* currentTheme instead of MaterialTheme

* different inheritance logic

* fix and move sent/received message colors to top

* remove background

* performance

* fix wrong base

* changes

* fix

* small

* custom image selection made normally

* better color picker

* better picker

* refactor, fixes, optimizations

* working with unknown base theme + tests

* change

* delete wallpaper dir when importing archive

* function rename

* fix bug with state update

* update colors

* fix text colors

* update images

* changes

* remote desktop and theme mode dropdown

* default theme

* additional accent 2 changes

* fix default wallpaper

* removed ChatListAlwaysVisible

* renaming

* update messages

* changes

* default theme

* unused

* member icon background color

* image quality

* fix wallpaper on empty notes screen

* update colors

* change

* update colors

* fix update on android

* fix update on both platforms

* update colors, remove serializable

* fix color

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-25 09:52:16 +01:00
Evgeny Poberezkin ab47a5a27e Revert "ui: comment smp proxy ui (#4204)"
This reverts commit a0d6ae15ab.
2024-05-24 22:59:37 +01:00
Evgeny Poberezkin 23581f59ae core: 5.8.0.3 2024-05-24 21:33:45 +01:00
Evgeny Poberezkin 291df6e9d0 core: logging of chat events (#4216)
* core: update simplexmq (persist server errors)

* fix

* same config

* logging

* logging 2

* log

* log 2

* finally

* catch better

* more logs

* logs

* fix

* more logging, context from PROHIBITED

* warning

* more logs

* logs3

* logs4

* logs in simplexmq

* log locks from simplemq

* log queue size

* log sendMessagesB in simplexmq

* update simplexmq

* logs5

* logs6

* logs7

* logs8

* logs8

* logs9

* logs10

* log11

* log12

* fix test

* more logs

* logging

* clean up

* refactor

* simplify

* tags

* log level

* remove network errors from the log

* rename
2024-05-24 21:09:21 +01:00
Evgeny Poberezkin dae0b63c22 Merge branch 'stable' 2024-05-23 22:56:04 +01:00
Evgeny Poberezkin 0964982782 core: ensure that messages are sent to different members (#4221)
* core: ensure that messages are sent to different members

* update simplexmq
2024-05-23 22:50:23 +01:00
Evgeny Poberezkin 9eb6034e1a core: 5.7.4.0 (simplexmq 5.7.4.1: networking improvements) 2024-05-22 20:30:24 +01:00
Evgeny Poberezkin c59eb06b8a 5.8-beta.2: ios 218, android 210, desktop 47 2024-05-20 21:23:40 +01:00
Evgeny Poberezkin 423fc96638 core: 5.8.0.2 (simplexmq 5.8.0.2) 2024-05-20 18:38:46 +01:00
spaced4ndy ba203faad4 android: check known relays before file reception, support user approval of unknown relays (#4196) 2024-05-20 17:58:30 +04:00
spaced4ndy ec7b35adb9 ios: check known relays before file reception, support user approval of unknown relays (#4044)
* ios: check known relays before file reception, support user approval of unknown relays

* add privacyAskToApproveRelays to AppSettings

* less text

* ui improvements, fixes

* fix ntf

* shorter alert

* simplify settings

* rename

* icon

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-20 17:49:19 +04:00
spaced4ndy d2d450d1d7 core: check known relays before file reception, support user approval of unknown relays (#4043)
* core: check known relays before file reception, support user approval of unknown relays

* comment

* reset on not approved agent error

* add privacyAskToApproveRelays to AppSettings

* filter distinct servers

* update simplexmq

* remember user_approved_relays

* refactor

* rename

* update simplexmq

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-20 17:23:29 +04:00
IC Rainbow 94df5d47d1 Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-20 13:11:55 +03:00
Evgeny Poberezkin b4caefb17c 5.8-beta.1: ios 217, android 209, desktop 46 2024-05-18 08:20:38 +01:00
Evgeny Poberezkin fd791f3fb8 ios: update core library 2024-05-17 15:54:51 +01:00
Evgeny Poberezkin 0720292ebf core: 5.8.0.1 (simplexmq: 5.8.0.1, faster reconnection when switching networks) 2024-05-17 15:39:58 +01:00
spaced4ndy a0d6ae15ab ui: comment smp proxy ui (#4204) 2024-05-17 16:36:25 +04:00
Evgeny Poberezkin 3e76a2d49c blog: image 2024-05-16 19:47:24 +01:00
Evgeny Poberezkin f9cba3f8e0 Merge branch 'master' into ab/diff-subs 2024-05-16 19:11:49 +01:00
Evgeny Poberezkin ed3365bb6d website: fix links 2024-05-16 18:16:00 +01:00
Evgeny Poberezkin b2a8797ed4 blog: Redefining Privacy by Making Hard Choices (#4195)
* blog: Redefining Privacy by Making Hard Choices

* update

* update

* revert

* update

* corrections

Co-authored-by: Esra'a Al Shafei <alshafei@users.noreply.github.com>

* update

---------

Co-authored-by: Esra'a Al Shafei <alshafei@users.noreply.github.com>
2024-05-16 18:02:37 +01:00
spaced4ndy d3e522e169 ui: disable send field for disabled connection (based on authErrCounter) (#4193) 2024-05-16 17:08:31 +04:00
spaced4ndy 49e09ca449 core: contact disabled event (#4194) 2024-05-16 17:08:13 +04:00
spaced4ndy d1dde3d0c8 ui: support message forwarding with custom ttl (#4192) 2024-05-16 14:12:58 +04:00
spaced4ndy ef75eceb40 core: support message forwarding with custom ttl (#4191) 2024-05-16 14:11:55 +04:00
spaced4ndy 96ce59f330 multiplatform: SMP proxy configuration buttons (#4188)
* multiplatform: SMP proxy configuration buttons

* fix

* icons

* icon

* icon
2024-05-15 20:09:51 +01:00
Evgeny Poberezkin 3655971aec Merge branch 'master' into ab/diff-subs 2024-05-15 13:57:39 +01:00
spaced4ndy 98a67fa2e4 multiplatform: SMP proxy support (#4179)
* android: SMP proxy support

* android types

* show in meta

* reserve

* remove comment

* texts
2024-05-15 13:56:29 +01:00
spaced4ndy 4b13512950 ios: SMP proxy support (#4178)
* ios: SMP proxy support

* statuses

* group statuses

* error texts

* update

* change icon

* texts

* texts

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-15 13:09:42 +01:00
Alexander Bondarenko dea45e3228 Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-15 14:58:08 +03:00
spaced4ndy 4c0d47bbd4 core: message statuses for sending proxies (#4161)
* core: delivery path

* update simplexmq

* via proxy snd flags

* error statuses

* rework errors

* proxy expired errors

* corrections

* move backwards compatibile parser to new type

* update simplexmq

* names

* refactor, style

* simplexmq

* refactor

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-15 12:30:05 +01:00
Evgeny Poberezkin 3129602a78 Merge branch 'stable' 2024-05-15 11:44:22 +01:00
Stanislav Dmitrenko a0c257962e android, desktop: fix file menu and icon (#4185)
* android, desktop: fix file menu and icon

* simplify

* space
2024-05-15 11:43:20 +01:00
Evgeny Poberezkin 93ae1145bc core: update simplexmq (use MVar for better DB connection concurrency) (#4183)
* core: update simplexmq (use MVar for better DB connection concurrency)

* focus failing tests

* add timeouts to test

* fix tests

* more delays

* increase timeouts

* prints

* delay

* delay

* empty

* more delays

* enable all

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2024-05-15 11:16:38 +01:00
Evgeny Poberezkin d02668386f directory: debug logging (#4104) 2024-05-14 21:32:53 +01:00
M. Sarmad Qadeer bd8c8b5a8c web: fix the links of faq & some other (#4144)
* web: fix the links of faq & some other

* web: fix links

* web: update .eleventy.js to fix links

* web: fix some links and improve the logic

* web: fix links & improve the logic

* remove semicolon

* update links

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-14 19:59:51 +01:00
Alexander Bondarenko 4f2102ac6e use user and diff filters 2024-05-14 16:56:28 +03:00
IC Rainbow 17bcdaf6c4 Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-14 13:41:38 +03:00
Evgeny Poberezkin e359ec02f5 5.8-beta.0: ios 216, android 208, desktop 45 2024-05-13 23:34:14 +01:00
Evgeny Poberezkin a1948d549b ios: update core library 2024-05-13 22:24:10 +01:00
Evgeny Poberezkin 396b73b480 core: 5.8.0.0 2024-05-13 21:13:07 +01:00
Evgeny Poberezkin 331b4633fc core: platform independent encoding for delete command (#4176) 2024-05-13 20:39:13 +01:00
Evgeny Poberezkin 29db2b4e9b core: command to show duplicate message count (#4172)
* core: command to show duplicate message count

* update

* updated

* update

* update

* simplexmq
2024-05-13 19:55:57 +01:00
spaced4ndy f091384aa7 ui: apply model updates only for active user for switch and ratchet sync events (#4175) 2024-05-13 17:25:24 +01:00
IC Rainbow 1a2fad070e Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-13 15:56:29 +03:00
spaced4ndy f40ba6f04d core: api to differentiate contacts and conversations (#4111) 2024-05-13 16:51:54 +04:00
Evgeny Poberezkin 06d61ea73e core: update simplexmq 2024-05-13 08:19:40 +01:00
Evgeny Poberezkin 84d7a77a9f core: update simplexmq (better subscription management) (#4131)
* core: update simplexmq (better subscription management)

* ui: update settings

* update simplexmq

* simplexmq

* simplexmq

* test output

* delay

* disable test
2024-05-13 08:04:12 +01:00
Evgeny Poberezkin 878eea774d core: save app themes as map with any text key (#4159)
* core: save app themes as map with any text key

* remove theme preset name

* list of themes

* theme id

* theme IDs

* moar

* colors

* default to dark

* fix
2024-05-12 23:35:14 +01:00
IC Rainbow 6101be5657 update mq 2024-05-12 21:55:35 +03:00
Narasimha-sc 4575dc6e30 langs: change 1-2 days to several days on fdroid (#4170) 2024-05-12 18:19:27 +01:00
Evgeny Poberezkin a10dd81a1d Merge branch 'master' into ab/diff-subs 2024-05-12 12:07:26 +01:00
Evgeny Poberezkin 554ef4eefc 5.7.3: ios 215, android 206, desktop 44 2024-05-12 11:36:30 +01:00
Evgeny Poberezkin 289130832a Merge branch 'master' into ab/diff-subs 2024-05-11 23:59:15 +01:00
Evgeny Poberezkin 567e9981be core: 5.7.3.0 2024-05-11 23:48:39 +01:00
Evgeny Poberezkin 224cfe9e02 Merge branch 'master' into ab/diff-subs 2024-05-11 13:07:05 +01:00
Evgeny Poberezkin 1183fe427f Merge branch 'stable' 2024-05-10 20:30:42 +01:00
Alexander Bondarenko 0679d023e2 Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-10 21:01:33 +03:00
Evgeny Poberezkin c49a1f42e7 5.7.2: ios 214, android 204, desktop 43 2024-05-10 18:32:07 +01:00
Narasimha-sc 4f173215c6 docs: fix broken simplex group invite links (#4155)
* Fix non-working #simplex-devs invite

* Fix #simplex-devs link in pl

* replace SimpleX-Group-2

* replace simplex-group-2 link

* Update README.md
2024-05-10 17:43:06 +01:00
Evgeny Poberezkin 41597e563e website: translations (#4165)
* Translated using Weblate (French)

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

* Translated using Weblate (Czech)

Currently translated at 98.0% (252 of 257 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.6% (256 of 257 strings)

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

* Translated using Weblate (French)

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

* Translated using Weblate (Czech)

Currently translated at 98.0% (252 of 257 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.6% (256 of 257 strings)

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

---------

Co-authored-by: J'informatique <hello@jinformatique.net>
Co-authored-by: zenobit <zen@osowoso.xyz>
Co-authored-by: link2xt <link2xt@testrun.org>
2024-05-10 17:39:51 +01:00
Evgeny Poberezkin aa127f0cea ui: translations (#4164)
* Translated using Weblate (Japanese)

Currently translated at 100.0% (1741 of 1741 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1515 of 1515 strings)

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

* Translated using Weblate (Turkish)

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

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

* Translated using Weblate (Persian)

Currently translated at 25.3% (441 of 1741 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 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 10.1% (176 of 1741 strings)

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

* Translated using Weblate (Persian)

Currently translated at 26.8% (467 of 1741 strings)

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

* Translated using Weblate (Persian)

Currently translated at 33.6% (586 of 1741 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 6.0% (105 of 1741 strings)

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

* Translated using Weblate (Persian)

Currently translated at 36.8% (642 of 1741 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 9.1% (159 of 1741 strings)

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

* Translated using Weblate (Persian)

Currently translated at 39.0% (679 of 1741 strings)

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

* Translated using Weblate (Persian)

Currently translated at 39.0% (680 of 1741 strings)

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

* import/export localizations

---------

Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
Co-authored-by: z0rden <kaanpeker196@gmail.com>
Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: Siavash <ciavash@proton.me>
Co-authored-by: tuananh-ng <158744840+tuananh-ng@users.noreply.github.com>
Co-authored-by: Flavian <3zorro.1@gmail.com>
2024-05-10 17:38:42 +01:00
Evgeny Poberezkin f9c64ba39c ios: update core library 2024-05-10 17:22:39 +01:00
Evgeny Poberezkin 1025fa94a1 core: 5.7.2.0 (simplexmq 5.7.3.0: update protocol versions, fix file downloads) 2024-05-10 15:18:42 +01:00
Stanislav Dmitrenko a59769b91d android, desktop: fix crash in contact preferences when updating user profile (#4158) 2024-05-10 09:45:44 +01:00
spaced4ndy 76248b4878 core: on receive set file crypto args only for new files (#4152) 2024-05-09 15:40:23 +04:00
Stanislav Dmitrenko 93a7ddb128 android, desktop: fix presenting large images (#4139)
* android, desktop: fix presenting large images

* 4320 px limitation

* revert line

* onClick

* onClick
2024-05-09 10:39:49 +01:00
Evgeny Poberezkin bc5af35a3e core: wallpapers api (#4110)
* core: wallpapers api

* optional colors

* update

* api

* update

* whitespace

* typo

* test, fix

* fix color parsing

* separate UI and Theme color schemes

* update

* enable test

* multiple themes, one per color scheme

* theme overrides as a separate type

* rename

---------

Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
2024-05-08 15:36:20 +01:00
Alexander Bondarenko 6d5869e974 Merge remote-tracking branch 'origin/master' into ab/diff-subs 2024-05-08 16:42:54 +03:00
Alexander Bondarenko f0974af03a sync 2024-05-08 16:13:42 +03:00
Alexander Bondarenko da70aa30b6 debug: use client diffs in /get subs 2024-05-08 16:09:05 +03:00
Evgeny Poberezkin e38d5bd885 core: update simplexmq (upgrade client protocol versions SMP v7, NTF v2) 2024-05-08 13:40:25 +01:00
M. Sarmad Qadeer 10f41aa1c9 web: add scroll to navbar (#4100)
* web: add scroll to navbar

* web: add scroll to whole navbar instead of scrolling the opened menu
2024-05-08 09:31:02 +01:00
spaced4ndy 1b081197d4 multiplatform: add error to response (#4140) 2024-05-06 20:27:35 +04:00
M. Sarmad Qadeer 9615e525c0 web: fix list numbering for safari (#4106)
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-05-06 08:36:13 +01:00
M. Sarmad Qadeer db136116d3 web: make image of full width for mobile screen (#4101) 2024-05-06 08:31:34 +01:00
Evgeny Poberezkin 98f5e5d22b 5.7.1: ios 213, android 202, desktop 42 2024-05-05 21:01:57 +01:00
Evgeny Poberezkin 9f33e5d35e website: translations (#4136)
* 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 (Polish)

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

* 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 (Polish)

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

* 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 (Chinese (Simplified))

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 (Japanese)

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

---------

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: B.O.S.S <BxOxSxS@protonmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
2024-05-05 19:00:16 +01:00
Evgeny Poberezkin b8e8124faf ui: translations (#4135)
* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: summoner001 <summoner@vivaldi.net>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Polish)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Polish)

Currently translated at 99.9% (1740 of 1741 strings)

Translated using Weblate (Polish)

Currently translated at 99.1% (1727 of 1741 strings)

Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pl/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/pl/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (German)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (German)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: mlanp <github@lang.xyz>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/de/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Italian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Spanish)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Dutch)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: M1K4 <oomikaoo@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/nl/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Arabic)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ja/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Czech)

Currently translated at 98.1% (1709 of 1741 strings)

Co-authored-by: zenobit <zen@osowoso.xyz>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (1741 of 1741 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (1515 of 1515 strings)

Co-authored-by: elgratea <weblate@fastmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/bg/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/bg/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1741 of 1741 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (1515 of 1515 strings)

Co-authored-by: z0rden <kaanpeker196@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1741 of 1741 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1741 of 1741 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1515 of 1515 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: summoner001 <summoner@vivaldi.net>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
Translation: SimpleX Chat/SimpleX Chat Android
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Japanese)

Currently translated at 80.7% (1224 of 1515 strings)

Translated using Weblate (Japanese)

Currently translated at 80.3% (1218 of 1515 strings)

Co-authored-by: koreirozzu <trueworldfacts+asjfsajfhajfh@proton.me>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ja/
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Japanese)

Currently translated at 80.3% (1218 of 1515 strings)

Co-authored-by: a4318 <dalse.077@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ja/
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1515 of 1515 strings)

Co-authored-by: xe1st <dnzkckali@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/tr/
Translation: SimpleX Chat/SimpleX Chat iOS

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1741 of 1741 strings)

Co-authored-by: J R <jr@simplex.chat>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Persian)

Currently translated at 9.8% (171 of 1741 strings)

Translated using Weblate (Persian)

Currently translated at 9.4% (164 of 1741 strings)

Co-authored-by: Siavash <ciavash@proton.me>
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fa/
Translation: SimpleX Chat/SimpleX Chat Android

* Translated using Weblate (Persian)

Currently translated at 10.1% (176 of 1741 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (1741 of 1741 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (1515 of 1515 strings)

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

* Translated using Weblate (Persian)

Currently translated at 11.9% (208 of 1741 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 8.5% (148 of 1741 strings)

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

* import/export localizations

* tr revert

---------

Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com>
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: M1K4 <oomikaoo@gmail.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
Co-authored-by: zenobit <zen@osowoso.xyz>
Co-authored-by: elgratea <weblate@fastmail.com>
Co-authored-by: z0rden <kaanpeker196@gmail.com>
Co-authored-by: koreirozzu <trueworldfacts+asjfsajfhajfh@proton.me>
Co-authored-by: a4318 <dalse.077@gmail.com>
Co-authored-by: xe1st <dnzkckali@gmail.com>
Co-authored-by: J R <jr@simplex.chat>
Co-authored-by: Siavash <ciavash@proton.me>
Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com>
Co-authored-by: tuananh-ng <158744840+tuananh-ng@users.noreply.github.com>
2024-05-05 18:57:52 +01:00
Evgeny Poberezkin 156e41950a ios: update library 2024-05-05 18:01:14 +01:00
Evgeny Poberezkin 26c5ed4caf core: 5.7.1.0 (simplexmq 5.7.2.0: reduce "ping" traffic, remove TLS timeouts) 2024-05-05 17:43:09 +01:00
Evgeny Poberezkin d832afa7e8 docs: calls without e2e encryption (#4134) 2024-05-05 16:56:34 +01:00
Stanislav Dmitrenko 2e18b97077 android: enable Android 8 support (API 26) (#4132) 2024-05-05 16:30:17 +01:00
Evgeny Poberezkin b6e57c0fa2 core: fix connection failure because of race condition when connecting via link or joining group via invitation (#4133)
* core: fix connection failure because of race condition when connecting via link or joining group via invitation

* fix race for connection via contact address

* simplexmq
2024-05-05 13:11:30 +01:00
spaced4ndy 15a226cfd1 ui: limit length of member names in chat view (#4122) 2024-05-03 12:34:15 +01:00
Evgeny Poberezkin c4cbf751b9 Merge branch 'stable' 2024-05-02 23:28:59 +01:00
Stanislav Dmitrenko 535ff1d836 actions: add macos aarch64 build and fix openssl include path (#4107) 2024-05-02 21:41:15 +01:00
Evgeny Poberezkin fb0718adac core: forward agent errors without connections to UI (to show CRITICAL alerts) (#4120) 2024-05-02 21:40:08 +01:00
Stanislav Dmitrenko 5f501f1cb9 android, desktop: fix android video calls (#4118) 2024-05-02 16:47:52 +01:00
Evgeny Poberezkin 7cc86574fe core: update simplexmq to 5.7.1.0 2024-05-02 16:43:08 +01:00
Evgeny Poberezkin 19fc44efae rfc: commercial model for infrastructure operators (#4102) 2024-04-30 07:53:27 +01:00
spaced4ndy 37e03a838c core: forward group message before ack (fixes forwarding message that deleted connection causing error in ackMsg) (#4108) 2024-04-29 19:49:04 +04:00
spaced4ndy aeb28400e9 core: take entity lock before processing file (#4105) 2024-04-29 19:32:53 +04:00
sh d5a0c5e56a scripts/build-android: update nix and refactor (#4099) 2024-04-27 09:23:14 +01:00
Evgeny Poberezkin a28d965a65 website: fix privacy page 2024-04-26 23:24:54 +01:00
Evgeny Poberezkin 9148425eba blog: legally binding transparency, v5.7 announcement (#4097)
* blog: legally binding transparency, v5.7 announcement

* update

* update, images

* readme

* update
2024-04-26 23:06:40 +01:00
M. Sarmad Qadeer 406c35958e web: add privacy page to website (#4096)
* web: add privacy page to website

* web: fix a blog frontmatter

* web: fix privacy link from other docs

* update

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-26 23:00:49 +01:00
Evgeny Poberezkin be9ae61a32 5.7: ios 212, android 200, desktop 41 2024-04-26 20:59:21 +01:00
Stanislav Dmitrenko 9db65a1775 ios: audio device picker (#4091)
* ios: audio device picker

* removed unused

* removed logs

* correct routing

* Revert "removed unused"

This reverts commit d883d7a719.

* changes

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-26 19:59:00 +01:00
Evgeny Poberezkin 1033f55597 ios: fix sound in outgoing calls in iOS 15 2024-04-26 19:41:44 +01:00
Stanislav Dmitrenko 7f2462c936 android: black background in call (#4098) 2024-04-26 18:31:52 +01:00
Evgeny Poberezkin e675efe6f3 ios: update library 2024-04-26 17:38:57 +01:00
Evgeny Poberezkin b3f8068446 core: 5.7.0.5, increase min version of remote host/controller to 5.7.0.3 2024-04-26 15:42:13 +01:00
Evgeny Poberezkin 957eda8a78 ui: variable profile image size (#4094)
* ui: variable profile image size

* changes

* fix

* clean up

---------

Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
2024-04-25 22:09:06 +01:00
Evgeny Poberezkin 0fe949e225 5.7-beta.3: ios 210, android 199, desktop 40 2024-04-25 15:51:23 +01:00
Evgeny Poberezkin 5325b0a543 core: update simplexmq to 5.7.0.3 2024-04-25 13:40:06 +01:00
Evgeny Poberezkin f712eb0d1f ui: add link to the release post 2024-04-25 13:16:49 +01:00
spaced4ndy fc6fa5315b android: show disappearing message timer on calls and group invitations (#4090)
* android: show disappearing message timer on calls and group invitations

* fix padding
2024-04-25 12:15:52 +01:00
Evgeny Poberezkin 3eb88ab896 5.7.0.4 (simplexmq 5.7.0.3) 2024-04-25 11:15:28 +01:00
Alexander Bondarenko 20fa366231 core: use contextless decompression (#4089)
* core: use contextless decompression

* fuse concatMap/map

* nix

* update simplexmq

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-25 10:52:26 +01:00
Evgeny Poberezkin db05436e50 Merge branch 'stable' 2024-04-25 10:42:28 +01:00
Evgeny Poberezkin a1093b0671 docs: update privacy policy (#4076) 2024-04-25 10:41:27 +01:00
spaced4ndy 6a8a8f242a ui: allow to delete any items (#4082)
* ios: allow to delete any items

* android

* remove button android

* remove button ios
2024-04-25 10:20:52 +01:00
spaced4ndy 1163fe7b56 ios: show disappearing message timer on calls and group invitations (#4086) 2024-04-25 12:41:20 +04:00
spaced4ndy 063a6dbc92 core: apply disappearing messages setting to call and group invitation chat items (#4080)
* core: apply disappearing messages setting to call and group invitation chat items

* remove comment

* fix incorrectly set edited field

* sent group invitations

* refactor

* Revert "refactor"

This reverts commit 4dd3070c2d.
2024-04-25 09:37:05 +01:00
Stanislav Dmitrenko 9e2a3fe848 android, desktop: more relaxed way of showing alerts for encryption/decryption errors (#4085) 2024-04-24 21:39:59 +01:00
Stanislav Dmitrenko 2b7f3099a6 android, desktop: customizable profile images (#4087)
* android, desktop: customizable profile images

* better

* fixes

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-24 21:22:52 +01:00
Evgeny Poberezkin cfa7e0bb28 ios: customizable profile images (#4084)
* ios: customizable profile images

* update slider

* whats new
2024-04-24 21:20:26 +01:00
Evgeny Poberezkin 1967ac0880 ui: translations (#4079)
* Translated using Weblate (German)

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

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

* Translated using Weblate (German)

Currently translated at 100.0% (1512 of 1512 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (1512 of 1512 strings)

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

* update

---------

Co-authored-by: mlanp <github@lang.xyz>
2024-04-24 14:42:17 +01:00
Stanislav Dmitrenko 68966a1551 android, desktop: alert for local encryption/decryption errors (#4081)
* android, desktop: more alert in case of local encryption/decryption errors

* sending a message without a file
2024-04-24 14:39:06 +01:00
Evgeny Poberezkin 5ba7b58d7d website: translations (#4078)
* 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 (Japanese)

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

---------

Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
2024-04-24 12:45:20 +01:00
Evgeny Poberezkin 9979983742 ui: translations (#4075)
* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1507 of 1507 strings)

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

* ios: Hungarian translations

* Translated using Weblate (German)

Currently translated at 99.5% (1730 of 1738 strings)

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (1738 of 1738 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1512 of 1512 strings)

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

* Translated using Weblate (Turkish)

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

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

* import/export

---------

Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org>
Co-authored-by: Anonimas <Anonimas3@users.noreply.hosted.weblate.org>
Co-authored-by: z0rden <kaanpeker196@gmail.com>
2024-04-24 09:44:44 +01:00
Evgeny Poberezkin ab76e93df7 docs: security policy (#4068)
* docs: security policy

* update

* add to website
2024-04-23 19:30:42 +01:00
Evgeny Poberezkin f30287c4df docs: FAQ (#4013)
* Addd FAQ.md (#3814)

* faq

* typos

* add troubleshooting

* update links

---------

Co-authored-by: ungespurv <87089788+ungespurv@users.noreply.github.com>
2024-04-23 19:19:51 +01:00
Evgeny Poberezkin 2807e53d4c ui: traslations (#4070)
* Translated using Weblate (Dutch)

Currently translated at 99.9% (1728 of 1729 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.9% (1506 of 1507 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% (1729 of 1729 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% (1729 of 1729 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% (1507 of 1507 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% (1730 of 1730 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% (1507 of 1507 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% (1730 of 1730 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% (1507 of 1507 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% (1730 of 1730 strings)

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

* Translated using Weblate (Romanian)

Currently translated at 5.1% (89 of 1730 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 99.8% (1736 of 1738 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 80.8% (1218 of 1507 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1738 of 1738 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 98.5% (1713 of 1738 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (1507 of 1507 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (1738 of 1738 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Romanian)

Currently translated at 5.3% (93 of 1738 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1507 of 1507 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (1738 of 1738 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 98.8% (1718 of 1738 strings)

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

* Translated using Weblate (Romanian)

Currently translated at 5.4% (94 of 1738 strings)

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

* import/export localizations

---------

Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
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: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Flavian <3zorro.1@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: yokoba0413 <yokoba0413@gmail.com>
Co-authored-by: Anonimas <Anonimas3@users.noreply.hosted.weblate.org>
Co-authored-by: elgratea <weblate@fastmail.com>
2024-04-23 19:16:12 +01:00
Stanislav Dmitrenko 642e6d677e android, desktop: updating delivery tab in chat item info (#4074) 2024-04-23 19:14:58 +01:00
Stanislav Dmitrenko 944a0b3aad android: longer delay before showing keyboard when creating a group (#4073) 2024-04-23 19:14:35 +01:00
Stanislav Dmitrenko e5ac472da3 android, desktop: restore message TTL in database settings if confirmation is dismissed (#4072) 2024-04-23 18:51:04 +01:00
Stanislav Dmitrenko 2f79bfb075 android: current audio device will be set in init step (#4071) 2024-04-23 18:47:15 +01:00
Evgeny Poberezkin ae9e63d1be ios: export localizations 2024-04-23 09:59:16 +01:00
Evgeny Poberezkin d864603d01 website: do not build from stable 2024-04-23 00:14:02 +01:00
Evgeny Poberezkin 06ac15b282 5.7-beta.2: ios 209, android 198, desktop 39 2024-04-23 00:11:37 +01:00
Stanislav Dmitrenko 4c1dfc76d4 android: sound from speaker fix (#4067) 2024-04-22 23:26:01 +01:00
Evgeny Poberezkin bea19f76e9 5.7.0.3 (simplexmq 5.7.0.2) 2024-04-22 22:24:00 +01:00
Stanislav Dmitrenko f80ac6dc50 android: proper hiding keyboard when entering passcode (#4066) 2024-04-22 22:13:14 +01:00
spaced4ndy 2b6764fc36 android: 5.7 what's new (#4064)
* android: 5.7 what's new

* icon

* update LT language name

* Lithuanian

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-22 22:03:18 +01:00
Esra'a Al Shafei 7c74f02d01 docs: typo in simplex-chat.md (#4037)
typo fix
2024-04-22 18:26:41 +01:00
Stanislav Dmitrenko d53aa69691 android: managing audio sources in call in a better way (#4063) 2024-04-22 18:24:26 +01:00
spaced4ndy 9e3f528d44 android: remove experimental PQ toggle (#4060) 2024-04-22 17:50:52 +01:00
spaced4ndy 22fd2d7189 ios: remove experimental PQ toggle (#4051)
* ios: remove experimental PQ toggle

* remove header
2024-04-22 17:50:28 +01:00
spaced4ndy 7567791866 core: enable PQ encryption for contacts (#4049)
* wip

* migration

* remove migration

* remove flag wip

* Revert "remove migration"

This reverts commit 9e64663f9d.

* wip

* remove vrange parameterization

* tests mostly pass

* more tests pass

* enable for upgraded contacts

* remove migration

* core: test large messages (#4061)

* update simplexmq, fix tests

* test test

* another test

* enable tests

* empty

* empty
2024-04-22 17:46:48 +01:00
spaced4ndy 529ba7a0e7 ios: 5.7 what's new (#4062)
* ios: 5.7 what's new

* add about pq

* update

* update

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-04-22 17:46:14 +01:00
Evgeny Poberezkin 3b3a68da15 core: 5.7.0.2 2024-04-22 08:07:42 +01:00
Evgeny Poberezkin e0e94d78b0 core, ui: revert timeout changes (#4059)
* core, ui: revert timeout changes

* update core library
2024-04-22 07:45:20 +01:00
Evgeny Poberezkin d68369b32a android, desktop: add Lithuanian language 2024-04-21 20:37:14 +01:00
Evgeny Poberezkin d29886dbd2 ui: translations (#4056)
* Translated using Weblate (French)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 99.8% (1693 of 1696 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% (1696 of 1696 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1696 of 1696 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 95.0% (1405 of 1478 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Chinese (Simplified))

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

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Japanese)

Currently translated at 82.4% (1218 of 1478 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Turkish)

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

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

* Translated using Weblate (Portuguese)

Currently translated at 8.0% (119 of 1478 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Portuguese)

Currently translated at 10.5% (156 of 1478 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 6.3% (108 of 1696 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 10.6% (157 of 1478 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (French)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 99.8% (1693 of 1696 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% (1696 of 1696 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1696 of 1696 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 95.0% (1405 of 1478 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Chinese (Simplified))

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

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Japanese)

Currently translated at 82.4% (1218 of 1478 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Turkish)

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

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

* Translated using Weblate (Portuguese)

Currently translated at 8.0% (119 of 1478 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Portuguese)

Currently translated at 10.5% (156 of 1478 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 6.3% (108 of 1696 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 10.6% (157 of 1478 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 64.3% (1091 of 1696 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 72.1% (1223 of 1696 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 72.4% (1228 of 1696 strings)

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

* Translated using Weblate (Polish)

Currently translated at 99.9% (1695 of 1696 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 78.4% (1330 of 1696 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (1696 of 1696 strings)

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

* Translated using Weblate (Polish)

Currently translated at 99.9% (1695 of 1696 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (1478 of 1478 strings)

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

* Translated using Weblate (Vietnamese)

Currently translated at 6.6% (113 of 1696 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (1702 of 1702 strings)

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

* Translated using Weblate (Chinese (Traditional))

Currently translated at 71.2% (1213 of 1702 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1702 of 1702 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% (1478 of 1478 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 7.2% (124 of 1702 strings)

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

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

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

* Translated using Weblate (Dutch)

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

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (1703 of 1703 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 99.9% (1702 of 1703 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (1703 of 1703 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% (1703 of 1703 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% (1703 of 1703 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% (1478 of 1478 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% (1478 of 1478 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 99.8% (1712 of 1715 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% (1715 of 1715 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 99.8% (1713 of 1715 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 100.0% (1715 of 1715 strings)

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

* Translated using Weblate (Polish)

Currently translated at 99.9% (1714 of 1715 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1715 of 1715 strings)

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

* Translated using Weblate (Chinese (Simplified))

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

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (French)

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

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

* Translated using Weblate (Polish)

Currently translated at 99.9% (1714 of 1715 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1715 of 1715 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% (1478 of 1478 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 7.5% (130 of 1715 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 7.8% (135 of 1715 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 100.0% (1715 of 1715 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% (1478 of 1478 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% (1715 of 1715 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% (1478 of 1478 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% (1715 of 1715 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% (1478 of 1478 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 100.0% (1478 of 1478 strings)

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Bulgarian)

Currently translated at 99.8% (1712 of 1715 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1725 of 1725 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (1725 of 1725 strings)

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

* Translated using Weblate (Chinese (Simplified))

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

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

* Translated using Weblate (Polish)

Currently translated at 99.9% (1724 of 1725 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (1728 of 1728 strings)

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

* process localizations

* update RU translations

* revert PL changes for "passphrase"

---------

Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com>
Co-authored-by: khalidbelk <khalid.belkassmi-el-hafi@epitech.eu>
Co-authored-by: M1K4 <oomikaoo@gmail.com>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: No name <CertainBot@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
Co-authored-by: z0rden <kaanpeker196@gmail.com>
Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: Andre <andrefeliciano@duck.com>
Co-authored-by: summoner001 <summoner@vivaldi.net>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: tuananh-ng <158744840+tuananh-ng@users.noreply.github.com>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: Anonimas <qdq5ih+3ewax7y4esw98@cs.email>
Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com>
Co-authored-by: Anonimas <Anonimas3@users.noreply.hosted.weblate.org>
Co-authored-by: Arturro43 <Arturro43.kontakt@gmail.com>
Co-authored-by: Alex <github@lippiece.anonaddy.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kingpin <radoslav.najdenov@gmail.com>
2024-04-21 20:16:08 +01:00
Evgeny Poberezkin 50d3a29715 website: translations (#4057)
* Translated using Weblate (French)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (German)

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

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (German)

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

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (255 of 255 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 13.7% (35 of 255 strings)

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

---------

Co-authored-by: khalidbelk <khalid.belkassmi-el-hafi@epitech.eu>
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: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-sakatsuki@outlook.jp>
Co-authored-by: Alex <github@lippiece.anonaddy.me>
Co-authored-by: Kingpin <radoslav.najdenov@gmail.com>
2024-04-21 11:10:07 +01:00
339 changed files with 15007 additions and 4321 deletions
+32 -9
View File
@@ -65,6 +65,11 @@ jobs:
asset_name: simplex-chat-ubuntu-22_04-x86-64 asset_name: simplex-chat-ubuntu-22_04-x86-64
desktop_asset_name: simplex-desktop-ubuntu-22_04-x86_64.deb desktop_asset_name: simplex-desktop-ubuntu-22_04-x86_64.deb
- os: macos-latest - os: macos-latest
ghc: "9.6.3"
cache_path: ~/.cabal/store
asset_name: simplex-chat-macos-aarch64
desktop_asset_name: simplex-desktop-macos-aarch64.dmg
- os: macos-13
ghc: "9.6.3" ghc: "9.6.3"
cache_path: ~/.cabal/store cache_path: ~/.cabal/store
asset_name: simplex-chat-macos-x86-64 asset_name: simplex-chat-macos-x86-64
@@ -107,18 +112,36 @@ jobs:
if: matrix.os == 'macos-latest' if: matrix.os == 'macos-latest'
shell: bash shell: bash
run: | run: |
echo "ignore-project: False" >> cabal.project.local echo "ignore-project: False" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local echo "package simplexmq" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local echo "" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
echo " extra-include-dirs: /opt/homebrew/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /opt/homebrew/opt/openssl@1.1/lib" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local
- name: Unix prepare cabal.project.local for Mac
if: matrix.os == 'macos-13'
shell: bash
run: |
echo "ignore-project: False" >> cabal.project.local
echo "package simplexmq" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
echo "" >> cabal.project.local
echo "package direct-sqlcipher" >> cabal.project.local
echo " extra-include-dirs: /usr/local/opt/openssl@1.1/include" >> cabal.project.local
echo " extra-lib-dirs: /usr/local/opt/openssl@1.1/lib" >> cabal.project.local
echo " flags: +openssl" >> cabal.project.local
- name: Install AppImage dependencies - name: Install AppImage dependencies
if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04' if: startsWith(github.ref, 'refs/tags/v') && matrix.asset_name && matrix.os == 'ubuntu-20.04'
run: sudo apt install -y desktop-file-utils run: sudo apt install -y desktop-file-utils
- name: Install pkg-config for Mac - name: Install pkg-config for Mac
if: matrix.os == 'macos-latest' if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: brew install pkg-config run: brew install pkg-config
- name: Unix prepare cabal.project.local for Ubuntu - name: Unix prepare cabal.project.local for Ubuntu
@@ -190,7 +213,7 @@ jobs:
- name: Mac build desktop - name: Mac build desktop
id: mac_desktop_build id: mac_desktop_build
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest' if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
shell: bash shell: bash
env: env:
APPLE_SIMPLEX_SIGNING_KEYCHAIN: ${{ secrets.APPLE_SIMPLEX_SIGNING_KEYCHAIN }} APPLE_SIMPLEX_SIGNING_KEYCHAIN: ${{ secrets.APPLE_SIMPLEX_SIGNING_KEYCHAIN }}
@@ -241,7 +264,7 @@ jobs:
${{ steps.linux_appimage_build.outputs.appimage_hash }} ${{ steps.linux_appimage_build.outputs.appimage_hash }}
- name: Mac upload desktop package to release - name: Mac upload desktop package to release
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest' if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
uses: svenstaro/upload-release-action@v2 uses: svenstaro/upload-release-action@v2
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}
@@ -250,7 +273,7 @@ jobs:
tag: ${{ github.ref }} tag: ${{ github.ref }}
- name: Mac update desktop package hash - name: Mac update desktop package hash
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'macos-latest' if: startsWith(github.ref, 'refs/tags/v') && (matrix.os == 'macos-latest' || matrix.os == 'macos-13')
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-1
View File
@@ -4,7 +4,6 @@ on:
push: push:
branches: branches:
- master - master
- stable
paths: paths:
- website/** - website/**
- images/** - images/**
+1
View File
@@ -54,6 +54,7 @@ website/translations.json
website/src/img/images/ website/src/img/images/
website/src/images/ website/src/images/
website/src/js/lottie.min.js website/src/js/lottie.min.js
website/src/privacy.md
# Generated files # Generated files
website/package/generated* website/package/generated*
+17 -10
View File
@@ -1,16 +1,21 @@
---
layout: layouts/privacy.html
permalink: /privacy/index.html
---
# SimpleX Chat Privacy Policy and Conditions of Use # SimpleX Chat Privacy Policy and Conditions of Use
SimpleX Chat is the first communication network based on a new protocol stack that builds on the same ideas of complete openness and decentralization as email and web, with the focus on providing security and privacy of communications, and without compromising on usability. SimpleX Chat is the first communication network based on a new protocol stack that builds on the same ideas of complete openness and decentralization as email and web, with the focus on providing security and privacy of communications, and without compromising on usability.
SimpleX Chat communication protocol is the first protocol that has no user profile IDs of any kind, not even random numbers, cryptographic keys or hashes that identify the users. SimpleX Chat apps allow their users to send messages and files via relay server infrastructure. Relay server owners and providers do not have any access to your messages, thanks to double-ratchet end-to-end encryption algorithm (also known as Signal algorithm - do not confuse with Signal protocols or platform) and additional encryption layers, and they also have no access to your profile and contacts - as they do not provide any user accounts. SimpleX Chat communication protocol is the first protocol that has no user profile IDs of any kind, not even random numbers, cryptographic keys or hashes that identify the users. SimpleX Chat apps allow their users to send messages and files via relay server infrastructure. Relay server owners and providers do not have any access to your messages, thanks to double-ratchet end-to-end encryption algorithm (also known as Signal algorithm - do not confuse with Signal protocols or platform) and additional encryption layers, and they also have no access to your profile and contacts - as they do not provide any user accounts.
Double ratchet algorithm has such important properties as [forward secrecy](./docs/GLOSSARY.md#forward-secrecy), sender [repudiation](./docs/GLOSSARY.md#) and break-in recovery (also known as [post-compromise security](./docs/GLOSSARY.md#post-compromise-security)). Double ratchet algorithm has such important properties as [forward secrecy](/docs/GLOSSARY.md#forward-secrecy), sender [repudiation](/docs/GLOSSARY.md#) and break-in recovery (also known as [post-compromise security](/docs/GLOSSARY.md#post-compromise-security)).
If you believe that any part of this document is not aligned with our mission or values, please raise it with us via [email](chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion). If you believe that any part of this document is not aligned with our mission or values, please raise it with us via [email](mailto:chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
## Privacy Policy ## Privacy Policy
SimpleX Chat Ltd uses the best industry practices for security and encryption to provide client and server software for secure [end-to-end encrypted](./docs/GLOSSARY.md#end-to-end-encryption) messaging via private connections. This encryption cannot be compromised by the relays servers, even if they are modified or compromised, via [man-in-the-middle attack](./docs/GLOSSARY.md#man-in-the-middle-attack), unlike most other communication platforms, services and networks. SimpleX Chat Ltd uses the best industry practices for security and encryption to provide client and server software for secure [end-to-end encrypted](/docs/GLOSSARY.md#end-to-end-encryption) messaging via private connections. This encryption cannot be compromised by the relays servers, even if they are modified or compromised, via [man-in-the-middle attack](/docs/GLOSSARY.md#man-in-the-middle-attack), unlike most other communication platforms, services and networks.
SimpleX Chat software is built on top of SimpleX messaging and application protocols, based on a new message routing protocol allowing to establish private connections without having any kind of addresses or other identifiers assigned to its users - it does not use emails, phone numbers, usernames, identity keys or any other user profile identifiers to pass messages between the user applications. SimpleX Chat software is built on top of SimpleX messaging and application protocols, based on a new message routing protocol allowing to establish private connections without having any kind of addresses or other identifiers assigned to its users - it does not use emails, phone numbers, usernames, identity keys or any other user profile identifiers to pass messages between the user applications.
@@ -20,7 +25,7 @@ While SimpleX Chat Ltd is not a communication service provider, and provide publ
We see users and data sovereignty, and device and provider portability as critically important properties for any communication system. We see users and data sovereignty, and device and provider portability as critically important properties for any communication system.
SimpleX Chat security assessment was done in October 2022 by [Trail of Bits](https://www.trailofbits.com/about), and most fixes were released in v4.2 see [the announcement](./blog/20221108-simplex-chat-v4.2-security-audit-new-website.md). SimpleX Chat security assessment was done in October 2022 by [Trail of Bits](https://www.trailofbits.com/about), and most fixes were released in v4.2 see [the announcement](/blog/20221108-simplex-chat-v4.2-security-audit-new-website.md).
### Your information ### Your information
@@ -34,7 +39,7 @@ You can transfer the profile to another device by creating a backup of the app d
#### Messages and Files #### Messages and Files
SimpleX relay servers cannot decrypt or otherwise access the content or even the size of your messages and files you send or receive. Each message is padded to a fixed size of 16kb. Each file is sent in chunks of 64kb, 256kb, 1mb or 8mb via all or some of the configured file relay servers. Both messages and files are sent end-to-end encrypted, and the servers do not have technical means to compromise this encryption, because part of the [key exchange](./docs/GLOSSARY.md#key-exchange) happens out-of-band. SimpleX relay servers cannot decrypt or otherwise access the content or even the size of your messages and files you send or receive. Each message is padded to a fixed size of 16kb. Each file is sent in chunks of 64kb, 256kb, 1mb or 8mb via all or some of the configured file relay servers. Both messages and files are sent end-to-end encrypted, and the servers do not have technical means to compromise this encryption, because part of the [key exchange](/docs/GLOSSARY.md#key-exchange) happens out-of-band.
Your message history is stored only on your own device and the devices of your contacts. While the recipients' devices are offline, messaging relay servers temporarily store end-to-end encrypted messages you can configure which relay servers are used to receive the messages from the new contacts, and you can manually change them for the existing contacts too. Your message history is stored only on your own device and the devices of your contacts. While the recipients' devices are offline, messaging relay servers temporarily store end-to-end encrypted messages you can configure which relay servers are used to receive the messages from the new contacts, and you can manually change them for the existing contacts too.
@@ -74,7 +79,7 @@ When you choose to use instant push notifications in SimpleX iOS app, because th
Preset notification server cannot observe the actual addresses of these queues, as a separate address is used to subscribe to the notifications. It also cannot observe who sends messages to you. Apple push notifications servers can only observe how many notifications are sent to you, but not from how many contacts, or from which messaging relays, as notifications are delivered to your device end-to-end encrypted by one of the preset notification servers - these notifications only contain end-to-end encrypted metadata, not even encrypted message content, and they look completely random to Apple push notification servers. Preset notification server cannot observe the actual addresses of these queues, as a separate address is used to subscribe to the notifications. It also cannot observe who sends messages to you. Apple push notifications servers can only observe how many notifications are sent to you, but not from how many contacts, or from which messaging relays, as notifications are delivered to your device end-to-end encrypted by one of the preset notification servers - these notifications only contain end-to-end encrypted metadata, not even encrypted message content, and they look completely random to Apple push notification servers.
You can read more about the design of iOS push notifications [here](https://simplex.chat/blog/20220404-simplex-chat-instant-notifications.html#our-ios-approach-has-one-trade-off). You can read more about the design of iOS push notifications [here](./blog/20220404-simplex-chat-instant-notifications.md#our-ios-approach-has-one-trade-off).
#### Another information stored on the servers #### Another information stored on the servers
@@ -82,7 +87,7 @@ Additional technical information can be stored on our servers, including randoml
#### SimpleX Directory #### SimpleX Directory
[SimpleX Directory](./docs/DIRECTORY.md) stores: your search requests, the messages and the members profiles in the registered groups. You can connect to SimpleX Directory via [this address](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion). [SimpleX Directory](/docs/DIRECTORY.md) stores: your search requests, the messages and the members profiles in the registered groups. You can connect to SimpleX Directory via [this address](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).
#### User Support #### User Support
@@ -103,13 +108,15 @@ The cases when SimpleX Chat Ltd may share the data temporarily stored on the ser
At the time of updating this document, we have never provided or have been requested the access to the preset relay servers or any information from the servers by any third parties. If we are ever requested to provide such access or information, we will follow the due legal process to limit any information shared with the third parties to the minimally required by law. At the time of updating this document, we have never provided or have been requested the access to the preset relay servers or any information from the servers by any third parties. If we are ever requested to provide such access or information, we will follow the due legal process to limit any information shared with the third parties to the minimally required by law.
We will publish information we are legally allowed to share about such requests in the [Transparency reports](./docs/TRANSPARENCY.md).
### Updates ### Updates
We will update this Privacy Policy as needed so that it is current, accurate, and as clear as possible. Your continued use of our software applications and preset relays infrastructure confirms your acceptance of our updated Privacy Policy. We will update this Privacy Policy as needed so that it is current, accurate, and as clear as possible. Your continued use of our software applications and preset relays infrastructure confirms your acceptance of our updated Privacy Policy.
Please also read our Conditions of Use of Software and Infrastructure below. Please also read our Conditions of Use of Software and Infrastructure below.
If you have questions about our Privacy Policy please contact us via [email](chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion). If you have questions about our Privacy Policy please contact us via [email](mailto:chat@simplex.chat) or [chat](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion).
## Conditions of Use of Software and Infrastructure ## Conditions of Use of Software and Infrastructure
@@ -131,7 +138,7 @@ You accept the Conditions of Use of Software and Infrastructure ("Conditions") b
**Traffic and device costs**. You are solely responsible for the traffic and device costs that you incur while using our Applications, and any associated taxes. **Traffic and device costs**. You are solely responsible for the traffic and device costs that you incur while using our Applications, and any associated taxes.
**Legal and acceptable usage**. You agree to use our Applications only for legal and acceptable purposes. You will not use (or assist others in using) our Applications in ways that: 1) violate or infringe the rights of Software users, SimpleX Chat Ltd, or others, including privacy, publicity, intellectual property, or other proprietary rights; 2) involve sending illegal or impermissible communications, e.g. spam. While we cannot access content or identify messages or groups, in some cases the links to the illegal or impermissible communications available via our Applications can be shared publicly on social media or websites. We reserve the right to remove such links from the preset servers and disrupt the conversations that send illegal content via our servers, whether they were reported by the users or discovered by our team. **Legal usage**. You agree to use our Applications only for legal purposes. You will not use (or assist others in using) our Applications in ways that: 1) violate or infringe the rights of Software users, SimpleX Chat Ltd, or others, including privacy, publicity, intellectual property, or other proprietary rights; 2) involve sending illegal communications, e.g. spam. While we cannot access content or identify messages or groups, in some cases the links to the illegal communications available via our Applications can be shared publicly on social media or websites. We reserve the right to remove such links from the preset servers and disrupt the conversations that send illegal content via our servers, whether they were reported by the users or discovered by our team.
**Damage to SimpleX Chat Ltd**. You must not (or assist others to) access, use, modify, distribute, transfer, or exploit our Applications in unauthorized manners, or in ways that harm Software users, SimpleX Chat Ltd, our Infrastructure, or any other systems. For example, you must not 1) access our Infrastructure or systems without authorization, in any way other than by using the Software; 2) disrupt the integrity or performance of our Infrastructure; 3) collect information about our users in any manner; or 4) sell, rent, or charge for our Infrastructure. This does not prohibit you from providing your own Infrastructure to others, whether free or for a fee, as long as you do not violate these Conditions and AGPLv3 license, including the requirement to publish any modifications of the relay server software. **Damage to SimpleX Chat Ltd**. You must not (or assist others to) access, use, modify, distribute, transfer, or exploit our Applications in unauthorized manners, or in ways that harm Software users, SimpleX Chat Ltd, our Infrastructure, or any other systems. For example, you must not 1) access our Infrastructure or systems without authorization, in any way other than by using the Software; 2) disrupt the integrity or performance of our Infrastructure; 3) collect information about our users in any manner; or 4) sell, rent, or charge for our Infrastructure. This does not prohibit you from providing your own Infrastructure to others, whether free or for a fee, as long as you do not violate these Conditions and AGPLv3 license, including the requirement to publish any modifications of the relay server software.
@@ -165,4 +172,4 @@ You accept the Conditions of Use of Software and Infrastructure ("Conditions") b
**Ending these conditions**. You may end these Conditions with SimpleX Chat Ltd at any time by deleting our Applications from your devices and discontinuing use of our Infrastructure. The provisions related to Licenses, Disclaimers, Limitation of Liability, Resolving dispute, Availability, Changes to the conditions, Enforcing the conditions, and Ending these conditions will survive termination of your relationship with SimpleX Chat Ltd. **Ending these conditions**. You may end these Conditions with SimpleX Chat Ltd at any time by deleting our Applications from your devices and discontinuing use of our Infrastructure. The provisions related to Licenses, Disclaimers, Limitation of Liability, Resolving dispute, Availability, Changes to the conditions, Enforcing the conditions, and Ending these conditions will survive termination of your relationship with SimpleX Chat Ltd.
Updated February 24, 2024 Updated April 24, 2024
+6 -4
View File
@@ -74,7 +74,7 @@ Messages not following these rules will be deleted, the right to send messages m
You can join an English-speaking users group if you want to ask any questions: [#SimpleX users group](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2Fos8FftfoV8zjb2T89fUEjJtF7y64p5av%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAQqMgh0fw2lPhjn3PDIEfAKA_E0-gf8Hr8zzhYnDivRs%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22lBPiveK2mjfUH43SN77R0w%3D%3D%22%7D) You can join an English-speaking users group if you want to ask any questions: [#SimpleX users group](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2Fos8FftfoV8zjb2T89fUEjJtF7y64p5av%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAQqMgh0fw2lPhjn3PDIEfAKA_E0-gf8Hr8zzhYnDivRs%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22lBPiveK2mjfUH43SN77R0w%3D%3D%22%7D)
There is also a group [#simplex-devs](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2F6eHqy7uAbZPOcA6qBtrQgQquVlt4Ll91%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAqV_pg3FF00L98aCXp4D3bOs4Sxv_UmSd-gb0juVoQVs%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22XonlixcHBIb2ijCehbZoiw%3D%3D%22%7D) for developers who build on SimpleX platform: There is also a group [#simplex-devs](https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FvYCRjIflKNMGYlfTkuHe4B40qSlQ0439%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAHNdcqNbzXZhyMoSBjT2R0-Eb1EPaLyUg3KZjn-kmM1w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22PD20tcXjw7IpkkMCfR6HLA%3D%3D%22%7D) for developers who build on SimpleX platform:
- chat bots and automations - chat bots and automations
- integrations with other apps - integrations with other apps
@@ -234,6 +234,8 @@ You can use SimpleX with your own servers and still communicate with people usin
Recent and important updates: Recent and important updates:
[Apr 26, 2024. SimpleX network: legally binding transparency, v5.7 released with better calls and messages.](./blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.md)
[Mar 23, 2024. SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration.](./blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.md) [Mar 23, 2024. SimpleX network: real privacy and stable profits, non-profits for protocols, v5.6 released with quantum resistant e2e encryption and simple profile migration.](./blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.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) [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)
@@ -412,13 +414,13 @@ We have never provided or have been requested access to our servers or any infor
We do not log IP addresses of the users and we do not perform any traffic correlation on our servers. If transport level security is critical you must use Tor or some other similar network to access messaging servers. We will be improving the client applications to reduce the opportunities for traffic correlation. We do not log IP addresses of the users and we do not perform any traffic correlation on our servers. If transport level security is critical you must use Tor or some other similar network to access messaging servers. We will be improving the client applications to reduce the opportunities for traffic correlation.
Please read more in [Terms & privacy policy](./PRIVACY.md). Please read more in [Privacy Policy](./PRIVACY.md).
## Security contact ## Security contact
To report a security vulnerability, please send us email to chat@simplex.chat. We will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues. Please see our [Security Policy](./docs/SECURITY.md) on how to report security vulnerabilities to us. We will coordinate the fix and disclosure.
Please treat any findings of possible traffic correlation attacks allowing to correlate two different conversations to the same user, other than covered in [the threat model](https://github.com/simplex-chat/simplexmq/blob/stable/protocol/overview-tjr.md#threat-model), as security vulnerabilities, and follow this disclosure process. Please do NOT report security vulnerabilities via GitHub issues.
## License ## License
+1 -1
View File
@@ -179,7 +179,7 @@ class AudioPlayer: NSObject, AVAudioPlayerDelegate {
if playback { if playback {
if AVAudioSession.sharedInstance().category != .playback { if AVAudioSession.sharedInstance().category != .playback {
logger.log("AudioSession: playback") logger.log("AudioSession: playback")
try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: .duckOthers) try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: [.duckOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
} }
} else { } else {
if AVAudioSession.sharedInstance().category != .soloAmbient { if AVAudioSession.sharedInstance().category != .soloAmbient {
+73 -36
View File
@@ -272,18 +272,6 @@ func apiGetAppSettings(settings: AppSettings) throws -> AppSettings {
throw r throw r
} }
func apiSetPQEncryption(_ enable: Bool) throws {
let r = chatSendCmdSync(.apiSetPQEncryption(enable: enable))
if case .cmdOk = r { return }
throw r
}
func apiSetContactPQ(_ contactId: Int64, _ enable: Bool) async throws -> Contact {
let r = await chatSendCmd(.apiSetContactPQ(contactId: contactId, enable: enable))
if case let .contactPQAllowed(_, contact, _) = r { return contact }
throw r
}
func apiExportArchive(config: ArchiveConfig) async throws { func apiExportArchive(config: ArchiveConfig) async throws {
try await sendCommandOkResp(.apiExportArchive(config: config)) try await sendCommandOkResp(.apiExportArchive(config: config))
} }
@@ -353,8 +341,8 @@ func apiGetChatItemInfo(type: ChatType, id: Int64, itemId: Int64) async throws -
throw r throw r
} }
func apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64) async -> ChatItem? { func apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64, ttl: Int?) async -> ChatItem? {
let cmd: ChatCommand = .apiForwardChatItem(toChatType: toChatType, toChatId: toChatId, fromChatType: fromChatType, fromChatId: fromChatId, itemId: itemId) let cmd: ChatCommand = .apiForwardChatItem(toChatType: toChatType, toChatId: toChatId, fromChatType: fromChatType, fromChatId: fromChatId, itemId: itemId, ttl: ttl)
return await processSendMessageCmd(toChatType: toChatType, cmd: cmd) return await processSendMessageCmd(toChatType: toChatType, cmd: cmd)
} }
@@ -939,14 +927,19 @@ func standaloneFileInfo(url: String, ctrl: chat_ctrl? = nil) async -> MigrationF
} }
} }
func receiveFile(user: any UserLike, fileId: Int64, auto: Bool = false) async { func receiveFile(user: any UserLike, fileId: Int64, userApprovedRelays: Bool = false, auto: Bool = false) async {
if let chatItem = await apiReceiveFile(fileId: fileId, encrypted: privacyEncryptLocalFilesGroupDefault.get(), auto: auto) { if let chatItem = await apiReceiveFile(
fileId: fileId,
userApprovedRelays: userApprovedRelays || !privacyAskToApproveRelaysGroupDefault.get(),
encrypted: privacyEncryptLocalFilesGroupDefault.get(),
auto: auto
) {
await chatItemSimpleUpdate(user, chatItem) await chatItemSimpleUpdate(user, chatItem)
} }
} }
func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil, auto: Bool = false) async -> AChatItem? { func apiReceiveFile(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool, inline: Bool? = nil, auto: Bool = false) async -> AChatItem? {
let r = await chatSendCmd(.receiveFile(fileId: fileId, encrypted: encrypted, inline: inline)) let r = await chatSendCmd(.receiveFile(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted, inline: inline))
let am = AlertManager.shared let am = AlertManager.shared
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem } if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
if case .rcvFileAcceptedSndCancelled = r { if case .rcvFileAcceptedSndCancelled = r {
@@ -959,19 +952,50 @@ func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil, auto: B
} }
} else if let networkErrorAlert = networkErrorAlert(r) { } else if let networkErrorAlert = networkErrorAlert(r) {
logger.error("apiReceiveFile network error: \(String(describing: r))") logger.error("apiReceiveFile network error: \(String(describing: r))")
am.showAlert(networkErrorAlert) if !auto {
am.showAlert(networkErrorAlert)
}
} else { } else {
switch chatError(r) { switch chatError(r) {
case .fileCancelled: case .fileCancelled:
logger.debug("apiReceiveFile ignoring fileCancelled error") logger.debug("apiReceiveFile ignoring fileCancelled error")
case .fileAlreadyReceiving: case .fileAlreadyReceiving:
logger.debug("apiReceiveFile ignoring fileAlreadyReceiving error") logger.debug("apiReceiveFile ignoring fileAlreadyReceiving error")
case let .fileNotApproved(fileId, unknownServers):
logger.debug("apiReceiveFile fileNotApproved error")
if !auto {
let srvs = unknownServers.map { s in
if let srv = parseServerAddress(s), !srv.hostnames.isEmpty {
srv.hostnames[0]
} else {
serverHost(s)
}
}
am.showAlert(Alert(
title: Text("Unknown servers!"),
message: Text("Without Tor or VPN, your IP address will be visible to these XFTP relays: \(srvs.sorted().joined(separator: ", "))."),
primaryButton: .default(
Text("Download"),
action: {
Task {
logger.debug("apiReceiveFile fileNotApproved alert - in Task")
if let user = ChatModel.shared.currentUser {
await receiveFile(user: user, fileId: fileId, userApprovedRelays: true)
}
}
}
),
secondaryButton: .cancel()
))
}
default: default:
logger.error("apiReceiveFile error: \(String(describing: r))") logger.error("apiReceiveFile error: \(String(describing: r))")
am.showAlertMsg( if !auto {
title: "Error receiving file", am.showAlertMsg(
message: "Error: \(String(describing: r))" title: "Error receiving file",
) message: "Error: \(String(describing: r))"
)
}
} }
} }
return nil return nil
@@ -1320,7 +1344,6 @@ func initializeChat(start: Bool, confirmStart: Bool = false, dbKey: String? = ni
try apiSetTempFolder(tempFolder: getTempFilesDirectory().path) try apiSetTempFolder(tempFolder: getTempFilesDirectory().path)
try apiSetFilesFolder(filesFolder: getAppFilesDirectory().path) try apiSetFilesFolder(filesFolder: getAppFilesDirectory().path)
try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get()) try apiSetEncryptLocalFiles(privacyEncryptLocalFilesGroupDefault.get())
try apiSetPQEncryption(pqExperimentalEnabledDefault.get())
m.chatInitialized = true m.chatInitialized = true
m.currentUser = try apiGetActiveUser() m.currentUser = try apiGetActiveUser()
if m.currentUser == nil { if m.currentUser == nil {
@@ -1862,21 +1885,35 @@ func processReceivedMsg(_ res: ChatResponse) async {
} }
case .chatSuspended: case .chatSuspended:
chatSuspended() chatSuspended()
case let .contactSwitch(_, contact, switchProgress): case let .contactSwitch(user, contact, switchProgress):
await MainActor.run { if active(user) {
m.updateContactConnectionStats(contact, switchProgress.connectionStats) await MainActor.run {
m.updateContactConnectionStats(contact, switchProgress.connectionStats)
}
} }
case let .groupMemberSwitch(_, groupInfo, member, switchProgress): case let .groupMemberSwitch(user, groupInfo, member, switchProgress):
await MainActor.run { if active(user) {
m.updateGroupMemberConnectionStats(groupInfo, member, switchProgress.connectionStats) await MainActor.run {
m.updateGroupMemberConnectionStats(groupInfo, member, switchProgress.connectionStats)
}
} }
case let .contactRatchetSync(_, contact, ratchetSyncProgress): case let .contactRatchetSync(user, contact, ratchetSyncProgress):
await MainActor.run { if active(user) {
m.updateContactConnectionStats(contact, ratchetSyncProgress.connectionStats) await MainActor.run {
m.updateContactConnectionStats(contact, ratchetSyncProgress.connectionStats)
}
} }
case let .groupMemberRatchetSync(_, groupInfo, member, ratchetSyncProgress): case let .groupMemberRatchetSync(user, groupInfo, member, ratchetSyncProgress):
await MainActor.run { if active(user) {
m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats) await MainActor.run {
m.updateGroupMemberConnectionStats(groupInfo, member, ratchetSyncProgress.connectionStats)
}
}
case let .contactDisabled(user, contact):
if active(user) {
await MainActor.run {
m.updateContact(contact)
}
} }
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible):
await MainActor.run { await MainActor.run {
+42 -11
View File
@@ -110,8 +110,8 @@ struct ActiveCallView: View {
call.callState = .invitationSent call.callState = .invitationSent
call.localCapabilities = capabilities call.localCapabilities = capabilities
} }
if call.supportsVideo { if call.supportsVideo && !AVAudioSession.sharedInstance().hasExternalAudioDevice() {
try? AVAudioSession.sharedInstance().setCategory(.playback, options: .defaultToSpeaker) try? AVAudioSession.sharedInstance().setCategory(.playback, options: [.allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
} }
CallSoundsPlayer.shared.startConnectingCallSound() CallSoundsPlayer.shared.startConnectingCallSound()
activeCallWaitDeliveryReceipt() activeCallWaitDeliveryReceipt()
@@ -139,7 +139,6 @@ struct ActiveCallView: View {
await MainActor.run { await MainActor.run {
call.callState = .negotiated call.callState = .negotiated
CallSoundsPlayer.shared.stop() CallSoundsPlayer.shared.stop()
try? AVAudioSession.sharedInstance().setCategory(.soloAmbient)
} }
} }
case let .ice(iceCandidates): case let .ice(iceCandidates):
@@ -236,6 +235,7 @@ struct ActiveCallOverlay: View {
@EnvironmentObject var chatModel: ChatModel @EnvironmentObject var chatModel: ChatModel
@ObservedObject var call: Call @ObservedObject var call: Call
var client: WebRTCClient var client: WebRTCClient
@ObservedObject private var deviceManager = CallAudioDeviceManager.shared
var body: some View { var body: some View {
VStack { VStack {
@@ -251,7 +251,16 @@ struct ActiveCallOverlay: View {
HStack { HStack {
toggleAudioButton() toggleAudioButton()
Spacer() Spacer()
Color.clear.frame(width: 40, height: 40) if deviceManager.availableInputs.allSatisfy({ $0.portType == .builtInMic }) {
toggleSpeakerButton()
.frame(width: 40, height: 40)
} else if call.hasMedia {
AudioDevicePicker()
.scaleEffect(2)
.frame(maxWidth: 40, maxHeight: 40)
} else {
Color.clear.frame(width: 40, height: 40)
}
Spacer() Spacer()
endCallButton() endCallButton()
Spacer() Spacer()
@@ -277,9 +286,7 @@ struct ActiveCallOverlay: View {
.foregroundColor(.white.opacity(0.8)) .foregroundColor(.white.opacity(0.8))
} }
VStack { VStack {
ProfileImage(imageStr: call.contact.profile.image) ProfileImage(imageStr: call.contact.profile.image, size: 192)
.scaledToFit()
.frame(width: 192, height: 192)
audioCallInfoView(call) audioCallInfoView(call)
} }
.foregroundColor(.white) .foregroundColor(.white)
@@ -294,14 +301,33 @@ struct ActiveCallOverlay: View {
toggleAudioButton() toggleAudioButton()
.frame(maxWidth: .infinity, alignment: .leading) .frame(maxWidth: .infinity, alignment: .leading)
endCallButton() endCallButton()
toggleSpeakerButton() // Check if the only input is microphone. And in this case show toggle button,
.frame(maxWidth: .infinity, alignment: .trailing) // If there are more inputs, it probably means something like bluetooth headphones are available
// and in this case show iOS button for choosing different output.
// There is no way to get available outputs, only inputs
if deviceManager.availableInputs.allSatisfy({ $0.portType == .builtInMic }) {
toggleSpeakerButton()
.frame(maxWidth: .infinity, alignment: .trailing)
} else if call.hasMedia {
AudioDevicePicker()
.scaleEffect(2)
.frame(maxWidth: 50, maxHeight: 40)
.frame(maxWidth: .infinity, alignment: .trailing)
} else {
Color.clear.frame(width: 50, height: 40)
}
} }
.padding(.bottom, 60) .padding(.bottom, 60)
.padding(.horizontal, 48) .padding(.horizontal, 48)
} }
} }
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)
.onAppear {
deviceManager.start()
}
.onDisappear {
deviceManager.stop()
}
} }
private func audioCallInfoView(_ call: Call) -> some View { private func audioCallInfoView(_ call: Call) -> some View {
@@ -379,12 +405,17 @@ struct ActiveCallOverlay: View {
private func toggleSpeakerButton() -> some View { private func toggleSpeakerButton() -> some View {
controlButton(call, call.speakerEnabled ? "speaker.wave.2.fill" : "speaker.wave.1.fill") { controlButton(call, call.speakerEnabled ? "speaker.wave.2.fill" : "speaker.wave.1.fill") {
Task { Task {
client.setSpeakerEnabledAndConfigureSession(!call.speakerEnabled) let speakerEnabled = AVAudioSession.sharedInstance().currentRoute.outputs.first?.portType == .builtInSpeaker
client.setSpeakerEnabledAndConfigureSession(!speakerEnabled)
DispatchQueue.main.async { DispatchQueue.main.async {
call.speakerEnabled = !call.speakerEnabled call.speakerEnabled = !speakerEnabled
} }
} }
} }
.onAppear {
deviceManager.call = call
//call.speakerEnabled = AVAudioSession.sharedInstance().currentRoute.outputs.first?.portType == .builtInSpeaker
}
} }
private func toggleVideoButton() -> some View { private func toggleVideoButton() -> some View {
@@ -0,0 +1,25 @@
//
// MPVolumeView.swift
// SimpleX (iOS)
//
// Created by Stanislav on 24.04.2024.
// Copyright © 2024 SimpleX Chat. All rights reserved.
//
import Foundation
import SwiftUI
import UIKit
import AVKit
struct AudioDevicePicker: UIViewRepresentable {
func makeUIView(context: Context) -> some UIView {
let v = AVRoutePickerView(frame: .zero)
v.activeTintColor = .white
v.tintColor = .white
return v
}
func updateUIView(_ uiView: UIViewType, context: Context) {
}
}
@@ -0,0 +1,67 @@
//
// CallAudioDeviceManager.swift
// SimpleX (iOS)
//
// Created by Avently on 23.04.2024.
// Copyright © 2024 SimpleX Chat. All rights reserved.
//
import Foundation
import SwiftUI
import SimpleXChat
import AVKit
import WebRTC
class CallAudioDeviceManager: ObservableObject {
static let shared = CallAudioDeviceManager()
let audioSession: AVAudioSession
let nc = NotificationCenter.default
var call: Call?
var timer: Timer? = nil
// Actually, only one output
@Published var outputs: [AVAudioSessionPortDescription]
@Published var currentDevice: AVAudioSessionPortDescription? = nil
// All devices that can record audio (the ones that can play audio are not included)
@Published var availableInputs: [AVAudioSessionPortDescription] = []
init(_ audioSession: AVAudioSession? = nil) {
self.audioSession = audioSession ?? RTCAudioSession.sharedInstance().session
self.outputs = self.audioSession.currentRoute.outputs
self.availableInputs = self.audioSession.availableInputs ?? []
}
func reloadDevices() {
outputs = audioSession.currentRoute.outputs
currentDevice = audioSession.currentRoute.outputs.first
availableInputs = audioSession.availableInputs ?? []
call?.speakerEnabled = currentDevice?.portType == .builtInSpeaker
// Workaround situation:
// have bluetooth device connected, choosing speaker, disconnecting bluetooth device. In this case iOS will not post notification, so do it manually
timer?.invalidate()
if availableInputs.contains(where: { $0.portType != .builtInReceiver && $0.portType != .builtInSpeaker }) {
timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: false) { t in
self.reloadDevices()
}
}
}
@objc func audioCallback(notification: Notification) {
reloadDevices()
logger.debug("Changes in devices, current audio devices: \(String(describing: self.availableInputs.map({ $0.portType.rawValue }))), output: \(String(describing: self.currentDevice?.portType.rawValue))")
}
func start() {
nc.addObserver(self, selector: #selector(audioCallback), name: AVAudioSession.routeChangeNotification, object: nil)
}
func stop() {
nc.removeObserver(self, name: AVAudioSession.routeChangeNotification, object: nil)
timer?.invalidate()
}
}
@@ -103,7 +103,23 @@ class CallController: NSObject, CXProviderDelegate, PKPushRegistryDelegate, Obse
RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession) RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession)
RTCAudioSession.sharedInstance().isAudioEnabled = true RTCAudioSession.sharedInstance().isAudioEnabled = true
do { do {
try audioSession.setCategory(.playAndRecord, mode: .voiceChat, options: .mixWithOthers) let supportsVideo = ChatModel.shared.activeCall?.supportsVideo == true
if supportsVideo {
try audioSession.setCategory(.playAndRecord, mode: .videoChat, options: [.defaultToSpeaker, .mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
} else {
try audioSession.setCategory(.playAndRecord, mode: .voiceChat, options: [.mixWithOthers, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
}
// Without any delay sound is not playing from speaker or external device in incoming call
Task {
for i in 0 ... 3 {
try? await Task.sleep(nanoseconds: UInt64(i) * 300_000000)
if let preferred = audioSession.preferredInputDevice() {
await MainActor.run { try? audioSession.setPreferredInput(preferred) }
} else if supportsVideo {
await MainActor.run { try? audioSession.overrideOutputAudioPort(.speaker) }
}
}
}
logger.debug("audioSession category set") logger.debug("audioSession category set")
try audioSession.setActive(true) try audioSession.setActive(true)
logger.debug("audioSession activated") logger.debug("audioSession activated")
@@ -30,8 +30,7 @@ struct IncomingCallView: View {
VStack(alignment: .leading, spacing: 6) { VStack(alignment: .leading, spacing: 6) {
HStack { HStack {
if m.users.count > 1 { if m.users.count > 1 {
ProfileImage(imageStr: invitation.user.image, color: .white) ProfileImage(imageStr: invitation.user.image, size: 24, color: .white)
.frame(width: 24, height: 24)
} }
Image(systemName: invitation.callType.media == .video ? "video.fill" : "phone.fill").foregroundColor(.green) Image(systemName: invitation.callType.media == .video ? "video.fill" : "phone.fill").foregroundColor(.green)
Text(invitation.callTypeText) Text(invitation.callTypeText)
+28 -3
View File
@@ -605,9 +605,23 @@ extension WebRTCClient {
self.rtcAudioSession.unlockForConfiguration() self.rtcAudioSession.unlockForConfiguration()
} }
do { do {
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue) let hasExternalAudioDevice = self.rtcAudioSession.session.hasExternalAudioDevice()
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue) if enabled {
try self.rtcAudioSession.overrideOutputAudioPort(enabled ? .speaker : .none) try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue, with: [.defaultToSpeaker, .allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
try self.rtcAudioSession.setMode(AVAudioSession.Mode.videoChat.rawValue)
if hasExternalAudioDevice, let preferred = self.rtcAudioSession.session.preferredInputDevice() {
try self.rtcAudioSession.setPreferredInput(preferred)
} else {
try self.rtcAudioSession.overrideOutputAudioPort(.speaker)
}
} else {
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue, with: [.allowBluetooth, .allowAirPlay, .allowBluetoothA2DP])
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue)
try self.rtcAudioSession.overrideOutputAudioPort(.none)
}
if hasExternalAudioDevice {
logger.debug("WebRTCClient: configuring session with external device available, skip configuring speaker")
}
try self.rtcAudioSession.setActive(true) try self.rtcAudioSession.setActive(true)
logger.debug("WebRTCClient: configuring session with speaker enabled \(enabled) success") logger.debug("WebRTCClient: configuring session with speaker enabled \(enabled) success")
} catch let error { } catch let error {
@@ -658,6 +672,17 @@ extension WebRTCClient {
} }
} }
extension AVAudioSession {
func hasExternalAudioDevice() -> Bool {
availableInputs?.allSatisfy({ $0.portType == .builtInMic }) != true
}
func preferredInputDevice() -> AVAudioSessionPortDescription? {
// logger.debug("Preferred input device: \(String(describing: self.availableInputs?.filter({ $0.portType != .builtInMic })))")
return availableInputs?.filter({ $0.portType != .builtInMic }).last
}
}
struct CustomRTCSessionDescription: Codable { struct CustomRTCSessionDescription: Codable {
public var type: RTCSdpType? public var type: RTCSdpType?
public var sdp: String? public var sdp: String?
@@ -25,11 +25,11 @@ struct ChatInfoToolbar: View {
} }
ChatInfoImage( ChatInfoImage(
chat: chat, chat: chat,
size: imageSize,
color: colorScheme == .dark color: colorScheme == .dark
? chatImageColorDark ? chatImageColorDark
: chatImageColorLight : chatImageColorLight
) )
.frame(width: imageSize, height: imageSize)
.padding(.trailing, 4) .padding(.trailing, 4)
VStack { VStack {
let t = Text(cInfo.displayName).font(.headline) let t = Text(cInfo.displayName).font(.headline)
+3 -55
View File
@@ -49,7 +49,7 @@ func localizedInfoRow(_ title: LocalizedStringKey, _ value: LocalizedStringKey)
} }
} }
private func serverHost(_ s: String) -> String { func serverHost(_ s: String) -> String {
if let i = s.range(of: "@")?.lowerBound { if let i = s.range(of: "@")?.lowerBound {
return String(s[i...].dropFirst()) return String(s[i...].dropFirst())
} else { } else {
@@ -103,7 +103,6 @@ struct ChatInfoView: View {
@State private var sendReceipts = SendReceipts.userDefault(true) @State private var sendReceipts = SendReceipts.userDefault(true)
@State private var sendReceiptsUserDefault = true @State private var sendReceiptsUserDefault = true
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false @AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
@AppStorage(GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED, store: groupDefaults) private var pqExperimentalEnabled = false
enum ChatInfoViewAlert: Identifiable { enum ChatInfoViewAlert: Identifiable {
case clearChatAlert case clearChatAlert
@@ -111,7 +110,6 @@ struct ChatInfoView: View {
case switchAddressAlert case switchAddressAlert
case abortSwitchAddressAlert case abortSwitchAddressAlert
case syncConnectionForceAlert case syncConnectionForceAlert
case allowContactPQEncryptionAlert
case error(title: LocalizedStringKey, error: LocalizedStringKey = "") case error(title: LocalizedStringKey, error: LocalizedStringKey = "")
var id: String { var id: String {
@@ -121,7 +119,6 @@ struct ChatInfoView: View {
case .switchAddressAlert: return "switchAddressAlert" case .switchAddressAlert: return "switchAddressAlert"
case .abortSwitchAddressAlert: return "abortSwitchAddressAlert" case .abortSwitchAddressAlert: return "abortSwitchAddressAlert"
case .syncConnectionForceAlert: return "syncConnectionForceAlert" case .syncConnectionForceAlert: return "syncConnectionForceAlert"
case .allowContactPQEncryptionAlert: return "allowContactPQEncryptionAlert"
case let .error(title, _): return "error \(title)" case let .error(title, _): return "error \(title)"
} }
} }
@@ -168,19 +165,9 @@ struct ChatInfoView: View {
} }
.disabled(!contact.ready || !contact.active) .disabled(!contact.ready || !contact.active)
if pqExperimentalEnabled, if let conn = contact.activeConn {
let conn = contact.activeConn {
Section { Section {
infoRow(Text(String("E2E encryption")), conn.connPQEnabled ? "Quantum resistant" : "Standard") infoRow(Text(String("E2E encryption")), conn.connPQEnabled ? "Quantum resistant" : "Standard")
if !conn.pqEncryption {
allowPQButton()
}
} header: {
Text(String("Quantum resistant E2E encryption"))
} footer: {
if !conn.pqEncryption {
Text(String("After allowing quantum resistant encryption, it will be enabled after several messages if your contact also allows it."))
}
} }
} }
@@ -256,7 +243,6 @@ struct ChatInfoView: View {
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({ syncContactConnection(force: true) })
case .allowContactPQEncryptionAlert: return allowContactPQEncryptionAlert()
case let .error(title, error): return mkAlert(title: title, message: error) case let .error(title, error): return mkAlert(title: title, message: error)
} }
} }
@@ -285,8 +271,7 @@ struct ChatInfoView: View {
private func contactInfoHeader() -> some View { private func contactInfoHeader() -> some View {
VStack { VStack {
let cInfo = chat.chatInfo let cInfo = chat.chatInfo
ChatInfoImage(chat: chat, color: Color(uiColor: .tertiarySystemFill)) ChatInfoImage(chat: chat, size: 192, color: Color(uiColor: .tertiarySystemFill))
.frame(width: 192, height: 192)
.padding(.top, 12) .padding(.top, 12)
.padding() .padding()
if contact.verified { if contact.verified {
@@ -430,15 +415,6 @@ struct ChatInfoView: View {
} }
} }
private func allowPQButton() -> some View {
Button {
alert = .allowContactPQEncryptionAlert
} label: {
Label(String("Allow PQ encryption"), systemImage: "exclamationmark.triangle")
.foregroundColor(.orange)
}
}
private func networkStatusRow() -> some View { private func networkStatusRow() -> some View {
HStack { HStack {
Text("Network status") Text("Network status")
@@ -572,34 +548,6 @@ struct ChatInfoView: View {
} }
} }
} }
private func allowContactPQEncryption() {
Task {
do {
let ct = try await apiSetContactPQ(contact.apiId, true)
contact = ct
await MainActor.run {
chatModel.updateContact(ct)
dismiss()
}
} catch let error {
logger.error("allowContactPQEncryption apiSetContactPQ error: \(responseError(error))")
let a = getErrorAlert(error, "Error allowing contact PQ encryption")
await MainActor.run {
alert = .error(title: a.title, error: a.message)
}
}
}
}
func allowContactPQEncryptionAlert() -> Alert {
Alert(
title: Text(String("Allow quantum resistant encryption?")),
message: Text(String("This is an experimental feature, it is not recommended to enable it for important chats.")),
primaryButton: .destructive(Text(String("Allow")), action: allowContactPQEncryption),
secondaryButton: .cancel()
)
}
} }
func switchAddressAlert(_ switchAddress: @escaping () -> Void) -> Alert { func switchAddressAlert(_ switchAddress: @escaping () -> Void) -> Alert {
@@ -35,9 +35,7 @@ struct CICallItemView: View {
case .error: missedCallIcon(sent).foregroundColor(.orange) case .error: missedCallIcon(sent).foregroundColor(.orange)
} }
chatItem.timestampText CIMetaView(chat: chat, chatItem: chatItem, showStatus: false, showEdited: false)
.font(.caption)
.foregroundColor(.secondary)
.padding(.bottom, 8) .padding(.bottom, 8)
.padding(.horizontal, 12) .padding(.horizontal, 12)
} }
@@ -17,7 +17,7 @@ struct CIEventView: View {
.padding(.horizontal, 6) .padding(.horizontal, 6)
.padding(.vertical, 4) .padding(.vertical, 4)
.textSelection(.disabled) .textSelection(.disabled)
.lineLimit(3) .lineLimit(4)
} }
} }
@@ -60,6 +60,7 @@ struct CIFileView: View {
case .rcvInvitation: return true case .rcvInvitation: return true
case .rcvAccepted: return true case .rcvAccepted: return true
case .rcvTransfer: return false case .rcvTransfer: return false
case .rcvAborted: return true
case .rcvComplete: return true case .rcvComplete: return true
case .rcvCancelled: return false case .rcvCancelled: return false
case .rcvError: return false case .rcvError: return false
@@ -73,10 +74,10 @@ struct CIFileView: View {
logger.debug("CIFileView fileAction") logger.debug("CIFileView fileAction")
if let file = file { if let file = file {
switch (file.fileStatus) { switch (file.fileStatus) {
case .rcvInvitation: case .rcvInvitation, .rcvAborted:
if fileSizeValid(file) { if fileSizeValid(file) {
Task { Task {
logger.debug("CIFileView fileAction - in .rcvInvitation, in Task") logger.debug("CIFileView fileAction - in .rcvInvitation, .rcvAborted, in Task")
if let user = m.currentUser { if let user = m.currentUser {
await receiveFile(user: user, fileId: file.fileId) await receiveFile(user: user, fileId: file.fileId)
} }
@@ -148,6 +149,8 @@ struct CIFileView: View {
} else { } else {
progressView() progressView()
} }
case .rcvAborted:
fileIcon("doc.fill", color: .accentColor, innerIcon: "exclamationmark.arrow.circlepath", innerIconSize: 12)
case .rcvComplete: fileIcon("doc.fill") case .rcvComplete: fileIcon("doc.fill")
case .rcvCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10) case .rcvCancelled: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
case .rcvError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10) case .rcvError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10)
@@ -12,6 +12,7 @@ import SimpleXChat
struct CIGroupInvitationView: View { struct CIGroupInvitationView: View {
@EnvironmentObject var chatModel: ChatModel @EnvironmentObject var chatModel: ChatModel
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
@ObservedObject var chat: Chat
var chatItem: ChatItem var chatItem: ChatItem
var groupInvitation: CIGroupInvitation var groupInvitation: CIGroupInvitation
var memberRole: GroupMemberRole var memberRole: GroupMemberRole
@@ -20,6 +21,8 @@ struct CIGroupInvitationView: View {
@State private var inProgress = false @State private var inProgress = false
@State private var progressByTimeout = false @State private var progressByTimeout = false
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
var body: some View { var body: some View {
let action = !chatItem.chatDir.sent && groupInvitation.status == .pending let action = !chatItem.chatDir.sent && groupInvitation.status == .pending
let v = ZStack(alignment: .bottomTrailing) { let v = ZStack(alignment: .bottomTrailing) {
@@ -37,16 +40,22 @@ struct CIGroupInvitationView: View {
VStack(alignment: .leading, spacing: 2) { VStack(alignment: .leading, spacing: 2) {
groupInvitationText() groupInvitationText()
.overlay(DetermineWidth()) .overlay(DetermineWidth())
Text(chatIncognito ? "Tap to join incognito" : "Tap to join") (
.foregroundColor(inProgress ? .secondary : chatIncognito ? .indigo : .accentColor) Text(chatIncognito ? "Tap to join incognito" : "Tap to join")
.font(.callout) .foregroundColor(inProgress ? .secondary : chatIncognito ? .indigo : .accentColor)
.padding(.trailing, 60) .font(.callout)
.overlay(DetermineWidth()) + Text(" ")
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showStatus: false, showEdited: false, showViaProxy: showSentViaProxy)
)
.overlay(DetermineWidth())
} }
} else { } else {
groupInvitationText() (
.padding(.trailing, 60) groupInvitationText()
.overlay(DetermineWidth()) + Text(" ")
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showStatus: false, showEdited: false, showViaProxy: showSentViaProxy)
)
.overlay(DetermineWidth())
} }
} }
.padding(.bottom, 2) .padding(.bottom, 2)
@@ -56,9 +65,7 @@ struct CIGroupInvitationView: View {
} }
} }
chatItem.timestampText CIMetaView(chat: chat, chatItem: chatItem, showStatus: false, showEdited: false)
.font(.caption)
.foregroundColor(.secondary)
} }
.padding(.horizontal, 12) .padding(.horizontal, 12)
.padding(.vertical, 6) .padding(.vertical, 6)
@@ -100,9 +107,9 @@ struct CIGroupInvitationView: View {
ProfileImage( ProfileImage(
imageStr: groupInvitation.groupProfile.image, imageStr: groupInvitation.groupProfile.image,
iconName: "person.2.circle.fill", iconName: "person.2.circle.fill",
size: 44,
color: color color: color
) )
.frame(width: 44, height: 44)
.padding(.trailing, 4) .padding(.trailing, 4)
VStack(alignment: .leading) { VStack(alignment: .leading) {
let p = groupInvitation.groupProfile let p = groupInvitation.groupProfile
@@ -115,7 +122,7 @@ struct CIGroupInvitationView: View {
} }
} }
private func groupInvitationText() -> some View { private func groupInvitationText() -> Text {
Text(groupInvitationStr()) Text(groupInvitationStr())
.font(.callout) .font(.callout)
} }
@@ -137,8 +144,8 @@ struct CIGroupInvitationView: View {
struct CIGroupInvitationView_Previews: PreviewProvider { struct CIGroupInvitationView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
Group { Group {
CIGroupInvitationView(chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(groupProfile: GroupProfile(displayName: "team", fullName: "team")), memberRole: .admin) CIGroupInvitationView(chat: Chat.sampleData, chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(groupProfile: GroupProfile(displayName: "team", fullName: "team")), memberRole: .admin)
CIGroupInvitationView(chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(status: .accepted), memberRole: .admin) CIGroupInvitationView(chat: Chat.sampleData, chatItem: ChatItem.getGroupInvitationSample(), groupInvitation: CIGroupInvitation.getSample(status: .accepted), memberRole: .admin)
} }
} }
} }
@@ -17,7 +17,6 @@ struct CIImageView: View {
let maxWidth: CGFloat let maxWidth: CGFloat
@Binding var imgWidth: CGFloat? @Binding var imgWidth: CGFloat?
@State var scrollProxy: ScrollViewProxy? @State var scrollProxy: ScrollViewProxy?
@State var metaColor: Color
@State private var showFullScreenImage = false @State private var showFullScreenImage = false
var body: some View { var body: some View {
@@ -38,7 +37,7 @@ struct CIImageView: View {
.onTapGesture { .onTapGesture {
if let file = file { if let file = file {
switch file.fileStatus { switch file.fileStatus {
case .rcvInvitation: case .rcvInvitation, .rcvAborted:
Task { Task {
if let user = m.currentUser { if let user = m.currentUser {
await receiveFile(user: user, fileId: file.fileId) await receiveFile(user: user, fileId: file.fileId)
@@ -103,6 +102,7 @@ struct CIImageView: View {
case .rcvInvitation: fileIcon("arrow.down", 10, 13) case .rcvInvitation: fileIcon("arrow.down", 10, 13)
case .rcvAccepted: fileIcon("ellipsis", 14, 11) case .rcvAccepted: fileIcon("ellipsis", 14, 11)
case .rcvTransfer: progressView() case .rcvTransfer: progressView()
case .rcvAborted: fileIcon("exclamationmark.arrow.circlepath", 14, 11)
case .rcvCancelled: fileIcon("xmark", 10, 13) case .rcvCancelled: fileIcon("xmark", 10, 13)
case .rcvError: fileIcon("xmark", 10, 13) case .rcvError: fileIcon("xmark", 10, 13)
case .invalid: fileIcon("questionmark", 10, 13) case .invalid: fileIcon("questionmark", 10, 13)
@@ -116,7 +116,7 @@ struct CIImageView: View {
.resizable() .resizable()
.aspectRatio(contentMode: .fit) .aspectRatio(contentMode: .fit)
.frame(width: size, height: size) .frame(width: size, height: size)
.foregroundColor(metaColor) .foregroundColor(.white)
.padding(padding) .padding(padding)
} }
@@ -14,6 +14,10 @@ struct CIMetaView: View {
var chatItem: ChatItem var chatItem: ChatItem
var metaColor = Color.secondary var metaColor = Color.secondary
var paleMetaColor = Color(UIColor.tertiaryLabel) var paleMetaColor = Color(UIColor.tertiaryLabel)
var showStatus = true
var showEdited = true
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
var body: some View { var body: some View {
if chatItem.isDeletedContent { if chatItem.isDeletedContent {
@@ -25,24 +29,24 @@ struct CIMetaView: View {
switch meta.itemStatus { switch meta.itemStatus {
case let .sndSent(sndProgress): case let .sndSent(sndProgress):
switch sndProgress { switch sndProgress {
case .complete: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .sent) case .complete: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .sent, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
case .partial: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .sent) case .partial: ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .sent, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
} }
case let .sndRcvd(_, sndProgress): case let .sndRcvd(_, sndProgress):
switch sndProgress { switch sndProgress {
case .complete: case .complete:
ZStack { ZStack {
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd1) ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd1, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd2) ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, sent: .rcvd2, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
} }
case .partial: case .partial:
ZStack { ZStack {
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd1) ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd1, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd2) ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: paleMetaColor, sent: .rcvd2, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
} }
} }
default: default:
ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor) ciMetaText(meta, chatTTL: ttl, encrypted: encrypted, color: metaColor, showStatus: showStatus, showEdited: showEdited, showViaProxy: showSentViaProxy)
} }
} }
} }
@@ -54,9 +58,19 @@ enum SentCheckmark {
case rcvd2 case rcvd2
} }
func ciMetaText(_ meta: CIMeta, chatTTL: Int?, encrypted: Bool?, color: Color = .clear, transparent: Bool = false, sent: SentCheckmark? = nil) -> Text { func ciMetaText(
_ meta: CIMeta,
chatTTL: Int?,
encrypted: Bool?,
color: Color = .clear,
transparent: Bool = false,
sent: SentCheckmark? = nil,
showStatus: Bool = true,
showEdited: Bool = true,
showViaProxy: Bool
) -> Text {
var r = Text("") var r = Text("")
if meta.itemEdited { if showEdited, meta.itemEdited {
r = r + statusIconText("pencil", color) r = r + statusIconText("pencil", color)
} }
if meta.disappearing { if meta.disappearing {
@@ -67,19 +81,24 @@ func ciMetaText(_ meta: CIMeta, chatTTL: Int?, encrypted: Bool?, color: Color =
} }
r = r + Text(" ") r = r + Text(" ")
} }
if let (icon, statusColor) = meta.statusIcon(color) { if showViaProxy, meta.sentViaProxy == true {
let t = Text(Image(systemName: icon)).font(.caption2) r = r + statusIconText("arrow.forward", color.opacity(0.67)).font(.caption2)
let gap = Text(" ").kerning(-1.25) }
let t1 = t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67)) if showStatus {
switch sent { if let (icon, statusColor) = meta.statusIcon(color) {
case nil: r = r + t1 let t = Text(Image(systemName: icon)).font(.caption2)
case .sent: r = r + t1 + gap let gap = Text(" ").kerning(-1.25)
case .rcvd1: r = r + t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67)) + gap let t1 = t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67))
case .rcvd2: r = r + gap + t1 switch sent {
case nil: r = r + t1
case .sent: r = r + t1 + gap
case .rcvd1: r = r + t.foregroundColor(transparent ? .clear : statusColor.opacity(0.67)) + gap
case .rcvd2: r = r + gap + t1
}
r = r + Text(" ")
} else if !meta.disappearing {
r = r + statusIconText("circlebadge.fill", .clear) + Text(" ")
} }
r = r + Text(" ")
} else if !meta.disappearing {
r = r + statusIconText("circlebadge.fill", .clear) + Text(" ")
} }
if let enc = encrypted { if let enc = encrypted {
r = r + statusIconText(enc ? "lock" : "lock.open", color) + Text(" ") r = r + statusIconText(enc ? "lock" : "lock.open", color) + Text(" ")
@@ -19,6 +19,8 @@ struct CIRcvDecryptionError: View {
var chatItem: ChatItem var chatItem: ChatItem
@State private var alert: CIRcvDecryptionErrorAlert? @State private var alert: CIRcvDecryptionErrorAlert?
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
enum CIRcvDecryptionErrorAlert: Identifiable { enum CIRcvDecryptionErrorAlert: Identifiable {
case syncAllowedAlert(_ syncConnection: () -> Void) case syncAllowedAlert(_ syncConnection: () -> Void)
case syncNotSupportedContactAlert case syncNotSupportedContactAlert
@@ -119,7 +121,7 @@ struct CIRcvDecryptionError: View {
.foregroundColor(syncSupported ? .accentColor : .secondary) .foregroundColor(syncSupported ? .accentColor : .secondary)
.font(.callout) .font(.callout)
+ Text(" ") + Text(" ")
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true) + ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
) )
} }
.padding(.horizontal, 12) .padding(.horizontal, 12)
@@ -140,7 +142,7 @@ struct CIRcvDecryptionError: View {
.foregroundColor(.red) .foregroundColor(.red)
.italic() .italic()
+ Text(" ") + Text(" ")
+ ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true) + ciMetaText(chatItem.meta, chatTTL: nil, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
} }
.padding(.horizontal, 12) .padding(.horizontal, 12)
CIMetaView(chat: chat, chatItem: chatItem) CIMetaView(chat: chat, chatItem: chatItem)
@@ -69,7 +69,7 @@ struct CIVideoView: View {
.onTapGesture { .onTapGesture {
if let file = file { if let file = file {
switch file.fileStatus { switch file.fileStatus {
case .rcvInvitation: case .rcvInvitation, .rcvAborted:
receiveFileIfValidSize(file: file, receiveFile: receiveFile) receiveFileIfValidSize(file: file, receiveFile: receiveFile)
case .rcvAccepted: case .rcvAccepted:
switch file.fileProtocol { switch file.fileProtocol {
@@ -95,7 +95,7 @@ struct CIVideoView: View {
} }
durationProgress() durationProgress()
} }
if let file = file, case .rcvInvitation = file.fileStatus { if let file = file, showDownloadButton(file.fileStatus) {
Button { Button {
receiveFileIfValidSize(file: file, receiveFile: receiveFile) receiveFileIfValidSize(file: file, receiveFile: receiveFile)
} label: { } label: {
@@ -105,6 +105,14 @@ struct CIVideoView: View {
} }
} }
private func showDownloadButton(_ fileStatus: CIFileStatus) -> Bool {
switch fileStatus {
case .rcvInvitation: true
case .rcvAborted: true
default: false
}
}
private func videoViewEncrypted(_ file: CIFile, _ defaultPreview: UIImage, _ duration: Int) -> some View { private func videoViewEncrypted(_ file: CIFile, _ defaultPreview: UIImage, _ duration: Int) -> some View {
return ZStack(alignment: .topTrailing) { return ZStack(alignment: .topTrailing) {
ZStack(alignment: .center) { ZStack(alignment: .center) {
@@ -280,6 +288,7 @@ struct CIVideoView: View {
} else { } else {
progressView() progressView()
} }
case .rcvAborted: fileIcon("exclamationmark.arrow.circlepath", 14, 11)
case .rcvCancelled: fileIcon("xmark", 10, 13) case .rcvCancelled: fileIcon("xmark", 10, 13)
case .rcvError: fileIcon("xmark", 10, 13) case .rcvError: fileIcon("xmark", 10, 13)
case .invalid: fileIcon("questionmark", 10, 13) case .invalid: fileIcon("questionmark", 10, 13)
@@ -318,10 +327,10 @@ struct CIVideoView: View {
} }
// TODO encrypt: where file size is checked? // TODO encrypt: where file size is checked?
private func receiveFileIfValidSize(file: CIFile, receiveFile: @escaping (User, Int64, Bool) async -> Void) { private func receiveFileIfValidSize(file: CIFile, receiveFile: @escaping (User, Int64, Bool, Bool) async -> Void) {
Task { Task {
if let user = m.currentUser { if let user = m.currentUser {
await receiveFile(user, file.fileId, false) await receiveFile(user, file.fileId, false, false)
} }
} }
} }
@@ -139,9 +139,10 @@ struct VoiceMessagePlayer: View {
case .sndComplete: playbackButton() case .sndComplete: playbackButton()
case .sndCancelled: playbackButton() case .sndCancelled: playbackButton()
case .sndError: playbackButton() case .sndError: playbackButton()
case .rcvInvitation: downloadButton(recordingFile) case .rcvInvitation: downloadButton(recordingFile, "play.fill")
case .rcvAccepted: loadingIcon() case .rcvAccepted: loadingIcon()
case .rcvTransfer: loadingIcon() case .rcvTransfer: loadingIcon()
case .rcvAborted: downloadButton(recordingFile, "exclamationmark.arrow.circlepath")
case .rcvComplete: playbackButton() case .rcvComplete: playbackButton()
case .rcvCancelled: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel)) case .rcvCancelled: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
case .rcvError: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel)) case .rcvError: playPauseIcon("play.fill", Color(uiColor: .tertiaryLabel))
@@ -217,7 +218,7 @@ struct VoiceMessagePlayer: View {
} }
} }
private func downloadButton(_ recordingFile: CIFile) -> some View { private func downloadButton(_ recordingFile: CIFile, _ icon: String) -> some View {
Button { Button {
Task { Task {
if let user = chatModel.currentUser { if let user = chatModel.currentUser {
@@ -225,7 +226,7 @@ struct VoiceMessagePlayer: View {
} }
} }
} label: { } label: {
playPauseIcon("play.fill") playPauseIcon(icon)
} }
} }
@@ -87,12 +87,17 @@ struct FramedItemView: View {
.cornerRadius(18) .cornerRadius(18)
.onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 } .onPreferenceChange(DetermineWidth.Key.self) { msgWidth = $0 }
switch chatItem.meta.itemStatus { if let (title, text) = chatItem.meta.itemStatus.statusInfo {
case .sndErrorAuth: v.onTapGesture {
v.onTapGesture { msgDeliveryError("Most likely this contact has deleted the connection with you.") } AlertManager.shared.showAlert(
case let .sndError(agentError): Alert(
v.onTapGesture { msgDeliveryError("Unexpected error: \(agentError)") } title: Text(title),
default: v message: Text(text)
)
)
}
} else {
v
} }
} }
@@ -110,7 +115,7 @@ struct FramedItemView: View {
} else { } else {
switch (chatItem.content.msgContent) { switch (chatItem.content.msgContent) {
case let .image(text, image): case let .image(text, image):
CIImageView(chatItem: chatItem, image: image, maxWidth: maxWidth, imgWidth: $imgWidth, scrollProxy: scrollProxy, metaColor: metaColor) CIImageView(chatItem: chatItem, image: image, maxWidth: maxWidth, imgWidth: $imgWidth, scrollProxy: scrollProxy)
.overlay(DetermineWidth()) .overlay(DetermineWidth())
if text == "" && !chatItem.meta.isLive { if text == "" && !chatItem.meta.isLive {
Color.clear Color.clear
@@ -157,13 +162,6 @@ struct FramedItemView: View {
} }
} }
} }
private func msgDeliveryError(_ err: LocalizedStringKey) {
AlertManager.shared.showAlertMsg(
title: "Message delivery error",
message: err
)
}
@ViewBuilder func framedItemHeader(icon: String? = nil, caption: Text, pad: Bool = false) -> some View { @ViewBuilder func framedItemHeader(icon: String? = nil, caption: Text, pad: Bool = false) -> some View {
let v = HStack(spacing: 6) { let v = HStack(spacing: 6) {
@@ -248,7 +246,10 @@ struct FramedItemView: View {
Group { Group {
if let sender = qi.getSender(membership()) { if let sender = qi.getSender(membership()) {
VStack(alignment: .leading, spacing: 2) { VStack(alignment: .leading, spacing: 2) {
Text(sender).font(.caption).foregroundColor(.secondary) Text(sender)
.font(.caption)
.foregroundColor(.secondary)
.lineLimit(1)
ciQuotedMsgTextView(qi, lines: 2) ciQuotedMsgTextView(qi, lines: 2)
} }
} else { } else {
@@ -35,6 +35,8 @@ struct MsgContentView: View {
@State private var typingIdx = 0 @State private var typingIdx = 0
@State private var timer: Timer? @State private var timer: Timer?
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = false
var body: some View { var body: some View {
if meta?.isLive == true { if meta?.isLive == true {
msgContentView() msgContentView()
@@ -81,7 +83,7 @@ struct MsgContentView: View {
} }
private func reserveSpaceForMeta(_ mt: CIMeta) -> Text { private func reserveSpaceForMeta(_ mt: CIMeta) -> Text {
(rightToLeft ? Text("\n") : Text(" ")) + ciMetaText(mt, chatTTL: chat.chatInfo.timedMessagesTTL, encrypted: nil, transparent: true) (rightToLeft ? Text("\n") : Text(" ")) + ciMetaText(mt, chatTTL: chat.chatInfo.timedMessagesTTL, encrypted: nil, transparent: true, showViaProxy: showSentViaProxy)
} }
} }
@@ -123,8 +123,7 @@ struct ChatItemForwardingView: View {
} }
} label: { } label: {
HStack { HStack {
ChatInfoImage(chat: chat) ChatInfoImage(chat: chat, size: 30)
.frame(width: 30, height: 30)
.padding(.trailing, 2) .padding(.trailing, 2)
Text(chat.chatInfo.chatViewName) Text(chat.chatInfo.chatViewName)
.foregroundColor(.primary) .foregroundColor(.primary)
@@ -334,8 +334,7 @@ struct ChatItemInfoView: View {
@ViewBuilder private func forwardedFromSender(_ forwardedFromItem: AChatItem) -> some View { @ViewBuilder private func forwardedFromSender(_ forwardedFromItem: AChatItem) -> some View {
HStack { HStack {
ChatInfoImage(chat: Chat(chatInfo: forwardedFromItem.chatInfo)) ChatInfoImage(chat: Chat(chatInfo: forwardedFromItem.chatInfo), size: 48)
.frame(width: 48, height: 48)
.padding(.trailing, 6) .padding(.trailing, 6)
if forwardedFromItem.chatItem.chatDir.sent { if forwardedFromItem.chatItem.chatDir.sent {
@@ -384,7 +383,7 @@ struct ChatItemInfoView: View {
let mss = membersStatuses(memberDeliveryStatuses) let mss = membersStatuses(memberDeliveryStatuses)
if !mss.isEmpty { if !mss.isEmpty {
ForEach(mss, id: \.0.groupMemberId) { memberStatus in ForEach(mss, id: \.0.groupMemberId) { memberStatus in
memberDeliveryStatusView(memberStatus.0, memberStatus.1) memberDeliveryStatusView(memberStatus.0, memberStatus.1, memberStatus.2)
} }
} else { } else {
Text("No delivery information") Text("No delivery information")
@@ -393,24 +392,27 @@ struct ChatItemInfoView: View {
} }
} }
private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, CIStatus)] { private func membersStatuses(_ memberDeliveryStatuses: [MemberDeliveryStatus]) -> [(GroupMember, CIStatus, Bool?)] {
memberDeliveryStatuses.compactMap({ mds in memberDeliveryStatuses.compactMap({ mds in
if let mem = chatModel.getGroupMember(mds.groupMemberId) { if let mem = chatModel.getGroupMember(mds.groupMemberId) {
return (mem.wrapped, mds.memberDeliveryStatus) return (mem.wrapped, mds.memberDeliveryStatus, mds.sentViaProxy)
} else { } else {
return nil return nil
} }
}) })
} }
private func memberDeliveryStatusView(_ member: GroupMember, _ status: CIStatus) -> some View { private func memberDeliveryStatusView(_ member: GroupMember, _ status: CIStatus, _ sentViaProxy: Bool?) -> some View {
HStack{ HStack{
ProfileImage(imageStr: member.image) ProfileImage(imageStr: member.image, size: 30)
.frame(width: 30, height: 30)
.padding(.trailing, 2) .padding(.trailing, 2)
Text(member.chatViewName) Text(member.chatViewName)
.lineLimit(1) .lineLimit(1)
Spacer() Spacer()
if sentViaProxy == true {
Image(systemName: "arrow.forward")
.foregroundColor(.secondary).opacity(0.67)
}
let v = Group { let v = Group {
if let (icon, statusColor) = status.statusIcon(Color.secondary) { if let (icon, statusColor) = status.statusIcon(Color.secondary) {
switch status { switch status {
@@ -127,7 +127,7 @@ struct ChatItemContentView<Content: View>: View {
} }
private func groupInvitationItemView(_ groupInvitation: CIGroupInvitation, _ memberRole: GroupMemberRole) -> some View { private func groupInvitationItemView(_ groupInvitation: CIGroupInvitation, _ memberRole: GroupMemberRole) -> some View {
CIGroupInvitationView(chatItem: chatItem, groupInvitation: groupInvitation, memberRole: memberRole, chatIncognito: chat.chatInfo.incognito) CIGroupInvitationView(chat: chat, chatItem: chatItem, groupInvitation: groupInvitation, memberRole: memberRole, chatIncognito: chat.chatInfo.incognito)
} }
private func eventItemView() -> some View { private func eventItemView() -> some View {
+6 -3
View File
@@ -593,12 +593,12 @@ struct ChatView: View {
Text(memberNames(member, prevMember, memCount)) Text(memberNames(member, prevMember, memCount))
.font(.caption) .font(.caption)
.foregroundStyle(.secondary) .foregroundStyle(.secondary)
.lineLimit(2)
.padding(.leading, memberImageSize + 14) .padding(.leading, memberImageSize + 14)
.padding(.top, 7) .padding(.top, 7)
} }
HStack(alignment: .top, spacing: 8) { HStack(alignment: .top, spacing: 8) {
ProfileImage(imageStr: member.memberProfile.image) ProfileImage(imageStr: member.memberProfile.image, size: memberImageSize)
.frame(width: memberImageSize, height: memberImageSize)
.onTapGesture { .onTapGesture {
if chatView.membersLoaded { if chatView.membersLoaded {
selectedMember = m.getGroupMember(member.groupMemberId) selectedMember = m.getGroupMember(member.groupMemberId)
@@ -828,6 +828,9 @@ struct ChatView: View {
menu.append(deleteUIAction(ci)) menu.append(deleteUIAction(ci))
} else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) { } else if ci.mergeCategory != nil && ((range?.count ?? 0) > 1 || revealed) {
menu.append(revealed ? shrinkUIAction() : expandUIAction()) menu.append(revealed ? shrinkUIAction() : expandUIAction())
menu.append(deleteUIAction(ci))
} else if ci.showLocalDelete {
menu.append(deleteUIAction(ci))
} }
return menu return menu
} }
@@ -1040,7 +1043,7 @@ struct ChatView: View {
image: UIImage(systemName: "trash"), image: UIImage(systemName: "trash"),
attributes: [.destructive] attributes: [.destructive]
) { _ in ) { _ in
if !revealed && ci.meta.itemDeleted != nil, if !revealed,
let currIndex = m.getChatItemIndex(ci), let currIndex = m.getChatItemIndex(ci),
let ciCategory = ci.mergeCategory { let ciCategory = ci.mergeCategory {
let (prevHidden, _) = m.getPrevShownChatItem(currIndex, ciCategory) let (prevHidden, _) = m.getPrevShownChatItem(currIndex, ciCategory)
@@ -712,9 +712,9 @@ struct ComposeView: View {
if chat.chatInfo.contact?.nextSendGrpInv ?? false { if chat.chatInfo.contact?.nextSendGrpInv ?? false {
await sendMemberContactInvitation() await sendMemberContactInvitation()
} else if case let .forwardingItem(ci, fromChatInfo) = composeState.contextItem { } else if case let .forwardingItem(ci, fromChatInfo) = composeState.contextItem {
sent = await forwardItem(ci, fromChatInfo) sent = await forwardItem(ci, fromChatInfo, ttl)
if !composeState.message.isEmpty { if !composeState.message.isEmpty {
sent = await send(checkLinkPreview(), quoted: sent?.id, live: false, ttl: nil) sent = await send(checkLinkPreview(), quoted: sent?.id, live: false, ttl: ttl)
} }
} else if case let .editingItem(ci) = composeState.contextItem { } else if case let .editingItem(ci) = composeState.contextItem {
sent = await updateMessage(ci, live: live) sent = await updateMessage(ci, live: live)
@@ -890,13 +890,14 @@ struct ComposeView: View {
return nil return nil
} }
func forwardItem(_ forwardedItem: ChatItem, _ fromChatInfo: ChatInfo) async -> ChatItem? { func forwardItem(_ forwardedItem: ChatItem, _ fromChatInfo: ChatInfo, _ ttl: Int?) async -> ChatItem? {
if let chatItem = await apiForwardChatItem( if let chatItem = await apiForwardChatItem(
toChatType: chat.chatInfo.chatType, toChatType: chat.chatInfo.chatType,
toChatId: chat.chatInfo.apiId, toChatId: chat.chatInfo.apiId,
fromChatType: fromChatInfo.chatType, fromChatType: fromChatInfo.chatType,
fromChatId: fromChatInfo.apiId, fromChatId: fromChatInfo.apiId,
itemId: forwardedItem.id itemId: forwardedItem.id,
ttl: ttl
) { ) {
await MainActor.run { await MainActor.run {
chatModel.addChatItem(chat.chatInfo, chatItem) chatModel.addChatItem(chat.chatInfo, chatItem)
@@ -224,8 +224,7 @@ struct SendMessageView: View {
@ViewBuilder private func sendButtonContextMenuItems() -> some View { @ViewBuilder private func sendButtonContextMenuItems() -> some View {
if composeState.liveMessage == nil, if composeState.liveMessage == nil,
!composeState.editing, !composeState.editing {
!composeState.forwarding {
if case .noContextItem = composeState.contextItem, if case .noContextItem = composeState.contextItem,
!composeState.voicePreview, !composeState.voicePreview,
let send = sendLiveMessage, let send = sendLiveMessage,
@@ -194,8 +194,7 @@ struct AddGroupMembersViewCommon: View {
} }
} label: { } label: {
HStack{ HStack{
ProfileImage(imageStr: contact.image) ProfileImage(imageStr: contact.image, size: 30)
.frame(width: 30, height: 30)
.padding(.trailing, 2) .padding(.trailing, 2)
Text(ChatInfo.direct(contact: contact).chatViewName) Text(ChatInfo.direct(contact: contact).chatViewName)
.foregroundColor(prohibitedToInviteIncognito ? .secondary : .primary) .foregroundColor(prohibitedToInviteIncognito ? .secondary : .primary)
@@ -172,8 +172,7 @@ struct GroupChatInfoView: View {
private func groupInfoHeader() -> some View { private func groupInfoHeader() -> some View {
VStack { VStack {
let cInfo = chat.chatInfo let cInfo = chat.chatInfo
ChatInfoImage(chat: chat, color: Color(uiColor: .tertiarySystemFill)) ChatInfoImage(chat: chat, size: 192, color: Color(uiColor: .tertiarySystemFill))
.frame(width: 192, height: 192)
.padding(.top, 12) .padding(.top, 12)
.padding() .padding()
Text(cInfo.displayName) Text(cInfo.displayName)
@@ -217,8 +216,7 @@ struct GroupChatInfoView: View {
var body: some View { var body: some View {
let member = groupMember.wrapped let member = groupMember.wrapped
let v = HStack{ let v = HStack{
ProfileImage(imageStr: member.image) ProfileImage(imageStr: member.image, size: 38)
.frame(width: 38, height: 38)
.padding(.trailing, 2) .padding(.trailing, 2)
// TODO server connection status // TODO server connection status
VStack(alignment: .leading) { VStack(alignment: .leading) {
@@ -305,8 +305,7 @@ struct GroupMemberInfoView: View {
private func groupMemberInfoHeader(_ mem: GroupMember) -> some View { private func groupMemberInfoHeader(_ mem: GroupMember) -> some View {
VStack { VStack {
ProfileImage(imageStr: mem.image, color: Color(uiColor: .tertiarySystemFill)) ProfileImage(imageStr: mem.image, size: 192, color: Color(uiColor: .tertiarySystemFill))
.frame(width: 192, height: 192)
.padding(.top, 12) .padding(.top, 12)
.padding() .padding()
if mem.verified { if mem.verified {
@@ -34,8 +34,7 @@ struct GroupPreferencesView: View {
featureSection(.reactions, $preferences.reactions.enable) featureSection(.reactions, $preferences.reactions.enable)
featureSection(.voice, $preferences.voice.enable, $preferences.voice.role) featureSection(.voice, $preferences.voice.enable, $preferences.voice.role)
featureSection(.files, $preferences.files.enable, $preferences.files.role) featureSection(.files, $preferences.files.enable, $preferences.files.role)
// TODO enable simplexLinks preference in 5.8 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.canEdit {
@@ -102,8 +101,6 @@ struct GroupPreferencesView: View {
} }
} }
.frame(height: 36) .frame(height: 36)
// remove in v5.8
.disabled(true)
} }
} else { } else {
settingsRow(icon, color: color) { settingsRow(icon, color: color) {
@@ -92,8 +92,7 @@ struct ChatListView: View {
ToolbarItem(placement: .navigationBarLeading) { ToolbarItem(placement: .navigationBarLeading) {
let user = chatModel.currentUser ?? User.sampleData let user = chatModel.currentUser ?? User.sampleData
ZStack(alignment: .topTrailing) { ZStack(alignment: .topTrailing) {
ProfileImage(imageStr: user.image, color: Color(uiColor: .quaternaryLabel)) ProfileImage(imageStr: user.image, size: 32, color: Color(uiColor: .quaternaryLabel))
.frame(width: 32, height: 32)
.padding(.trailing, 4) .padding(.trailing, 4)
let allRead = chatModel.users let allRead = chatModel.users
.filter { u in !u.user.activeUser && !u.user.hidden } .filter { u in !u.user.activeUser && !u.user.hidden }
@@ -23,8 +23,7 @@ struct ChatPreviewView: View {
let cItem = chat.chatItems.last let cItem = chat.chatItems.last
return HStack(spacing: 8) { return HStack(spacing: 8) {
ZStack(alignment: .bottomTrailing) { ZStack(alignment: .bottomTrailing) {
ChatInfoImage(chat: chat) ChatInfoImage(chat: chat, size: 63)
.frame(width: 63, height: 63)
chatPreviewImageOverlayIcon() chatPreviewImageOverlayIcon()
.padding([.bottom, .trailing], 1) .padding([.bottom, .trailing], 1)
} }
@@ -241,14 +240,14 @@ struct ChatPreviewView: View {
private func itemStatusMark(_ cItem: ChatItem) -> Text { private func itemStatusMark(_ cItem: ChatItem) -> Text {
switch cItem.meta.itemStatus { switch cItem.meta.itemStatus {
case .sndErrorAuth: case .sndErrorAuth, .sndError:
return Text(Image(systemName: "multiply")) return Text(Image(systemName: "multiply"))
.font(.caption) .font(.caption)
.foregroundColor(.red) + Text(" ") .foregroundColor(.red) + Text(" ")
case .sndError: case .sndWarning:
return Text(Image(systemName: "exclamationmark.triangle.fill")) return Text(Image(systemName: "exclamationmark.triangle.fill"))
.font(.caption) .font(.caption)
.foregroundColor(.yellow) + Text(" ") .foregroundColor(.orange) + Text(" ")
default: return Text("") default: return Text("")
} }
} }
@@ -16,8 +16,7 @@ struct ContactRequestView: View {
var body: some View { var body: some View {
HStack(spacing: 8) { HStack(spacing: 8) {
ChatInfoImage(chat: chat) ChatInfoImage(chat: chat, size: 63)
.frame(width: 63, height: 63)
.padding(.leading, 4) .padding(.leading, 4)
VStack(alignment: .leading, spacing: 0) { VStack(alignment: .leading, spacing: 0) {
HStack(alignment: .top) { HStack(alignment: .top) {
@@ -127,8 +127,7 @@ struct UserPicker: View {
} }
}, label: { }, label: {
HStack(spacing: 0) { HStack(spacing: 0) {
ProfileImage(imageStr: user.image, color: Color(uiColor: .tertiarySystemFill)) ProfileImage(imageStr: user.image, size: 44, color: Color(uiColor: .tertiarySystemFill))
.frame(width: 44, height: 44)
.padding(.trailing, 12) .padding(.trailing, 12)
Text(user.chatViewName) Text(user.chatViewName)
.fontWeight(user.activeUser ? .medium : .regular) .fontWeight(user.activeUser ? .medium : .regular)
@@ -12,6 +12,7 @@ import SimpleXChat
struct ChatInfoImage: View { struct ChatInfoImage: View {
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
@ObservedObject var chat: Chat @ObservedObject var chat: Chat
var size: CGFloat
var color = Color(uiColor: .tertiarySystemGroupedBackground) var color = Color(uiColor: .tertiarySystemGroupedBackground)
var body: some View { var body: some View {
@@ -28,6 +29,7 @@ struct ChatInfoImage: View {
return ProfileImage( return ProfileImage(
imageStr: chat.chatInfo.image, imageStr: chat.chatInfo.image,
iconName: iconName, iconName: iconName,
size: size,
color: iconColor color: iconColor
) )
} }
@@ -36,8 +38,9 @@ struct ChatInfoImage: View {
struct ChatInfoImage_Previews: PreviewProvider { struct ChatInfoImage_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
ChatInfoImage( ChatInfoImage(
chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []) chat: Chat(chatInfo: ChatInfo.sampleData.direct, chatItems: []),
, color: Color(red: 0.9, green: 0.9, blue: 0.9) size: 63,
color: Color(red: 0.9, green: 0.9, blue: 0.9)
) )
.previewLayout(.fixed(width: 63, height: 63)) .previewLayout(.fixed(width: 63, height: 63))
} }
@@ -9,29 +9,51 @@
import SwiftUI import SwiftUI
import SimpleXChat import SimpleXChat
let defaultProfileImageCorner = 22.5
struct ProfileImage: View { struct ProfileImage: View {
var imageStr: String? = nil var imageStr: String? = nil
var iconName: String = "person.crop.circle.fill" var iconName: String = "person.crop.circle.fill"
var size: CGFloat
var color = Color(uiColor: .tertiarySystemGroupedBackground) var color = Color(uiColor: .tertiarySystemGroupedBackground)
@AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var radius = defaultProfileImageCorner
var body: some View { var body: some View {
if let image = imageStr, if let image = imageStr,
let data = Data(base64Encoded: dropImagePrefix(image)), let data = Data(base64Encoded: dropImagePrefix(image)),
let uiImage = UIImage(data: data) { let uiImage = UIImage(data: data) {
Image(uiImage: uiImage) clipProfileImage(Image(uiImage: uiImage), size: size, radius: radius)
.resizable()
.clipShape(Circle())
} else { } else {
Image(systemName: iconName) Image(systemName: iconName)
.resizable() .resizable()
.foregroundColor(color) .foregroundColor(color)
.frame(width: size, height: size)
} }
} }
} }
private let squareToCircleRatio = 0.935
private let radiusFactor = (1 - squareToCircleRatio) / 50
@ViewBuilder func clipProfileImage(_ img: Image, size: CGFloat, radius: Double) -> some View {
let v = img.resizable()
if radius >= 50 {
v.frame(width: size, height: size).clipShape(Circle())
} else if radius <= 0 {
let sz = size * squareToCircleRatio
v.frame(width: sz, height: sz).padding((size - sz) / 2)
} else {
let sz = size * (squareToCircleRatio + radius * radiusFactor)
v.frame(width: sz, height: sz)
.clipShape(RoundedRectangle(cornerRadius: sz * radius / 100, style: .continuous))
.padding((size - sz) / 2)
}
}
struct ProfileImage_Previews: PreviewProvider { struct ProfileImage_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
ProfileImage(imageStr: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAKHGlDQ1BJQ0MgUHJvZmlsZQAASImFVgdUVNcWve9Nb7QZeu9NehtAem/Sq6gMQ28OQxWxgAQjEFFEREARNFQFg1KjiIhiIQgoYA9IEFBisCAq6OQNJNH4//r/zDpz9ttzz7n73ffWmg0A6QCDxYqD+QCIT0hmezlYywQEBsngngEYCAIy0AC6DGYSy8rDwxUg8Xf9d7wbAxC33tHgzvrP3/9nCISFJzEBgIIRTGey2MkILkawT1oyi4tnEUxjI6IQvMLFkauYqxjQQtewwuoaHy8bBNMBwJMZDHYkAERbhJdJZUYic4hhCNZOCItOQDB3vjkzioFwxLsIXhcRl5IOAImrRzs+fivCk7QRrIL0shAcwNUW+tX8yH/tFfrPXgxG5D84Pi6F+dc9ck+HHJ7g641UMSQlQATQBHEgBaQDGcACbLAVYaIRJhx5Dv+9j77aZ4OsZIFtSEc0iARRIBnpt/9qlvfqpGSQBhjImnCEcUU+NtxnujZy4fbqVEiU/wuXdQyA9S0cDqfzC+e2F4DzyLkSB79wyi0A8KoBcL2GmcJOXePQ3C8MIAJeQAOiQArIAxXuWwMMgSmwBHbAGbgDHxAINgMmojceUZUGMkEWyAX54AA4DMpAJTgJ6sAZ0ALawQVwGVwDt8AQGAUPwQSYBi/AAngHliEIwkEUiAqJQtKQIqQO6UJ0yByyg1whLygQCoEioQQoBcqE9kD5UBFUBlVB9dBPUCd0GboBDUP3oUloDnoNfYRRMBmmwZKwEqwF02Er2AX2gTfBkXAinAHnwPvhUrgaPg23wZfhW/AoPAG/gBdRAEVCCaFkURooOsoG5Y4KQkWg2KidqDxUCaoa1YTqQvWj7qAmUPOoD2gsmoqWQWugTdGOaF80E52I3okuQJeh69Bt6D70HfQkegH9GUPBSGDUMSYYJ0wAJhKThsnFlGBqMK2Yq5hRzDTmHRaLFcIqY42wjthAbAx2O7YAewzbjO3BDmOnsIs4HE4Up44zw7njGLhkXC7uKO407hJuBDeNe48n4aXxunh7fBA+AZ+NL8E34LvxI/gZ/DKBj6BIMCG4E8II2wiFhFOELsJtwjRhmchPVCaaEX2IMcQsYimxiXiV+Ij4hkQiyZGMSZ6kaNJuUinpLOk6aZL0gSxAViPbkIPJKeT95FpyD/k++Q2FQlGiWFKCKMmU/ZR6yhXKE8p7HiqPJo8TTxjPLp5ynjaeEZ6XvAReRV4r3s28GbwlvOd4b/PO8xH4lPhs+Bh8O/nK+Tr5xvkW+an8Ovzu/PH8BfwN/Df4ZwVwAkoCdgJhAjkCJwWuCExRUVR5qg2VSd1DPUW9Sp2mYWnKNCdaDC2fdoY2SFsQFBDUF/QTTBcsF7woOCGEElISchKKEyoUahEaE/ooLClsJRwuvE+4SXhEeElEXMRSJFwkT6RZZFTko6iMqJ1orOhB0XbRx2JoMTUxT7E0seNiV8XmxWnipuJM8TzxFvEHErCEmoSXxHaJkxIDEouSUpIOkizJo5JXJOelhKQspWKkiqW6peakqdLm0tHSxdKXpJ/LCMpYycTJlMr0ySzISsg6yqbIVskOyi7LKcv5ymXLNcs9lifK0+Uj5Ivle+UXFKQV3BQyFRoVHigSFOmKUYpHFPsVl5SUlfyV9iq1K80qiyg7KWcoNyo/UqGoWKgkqlSr3FXFqtJVY1WPqQ6pwWoGalFq5Wq31WF1Q/Vo9WPqw+sw64zXJayrXjeuQdaw0kjVaNSY1BTSdNXM1mzXfKmloBWkdVCrX+uztoF2nPYp7Yc6AjrOOtk6XTqvddV0mbrlunf1KHr2erv0OvRe6avrh+sf179nQDVwM9hr0GvwydDIkG3YZDhnpGAUYlRhNE6n0T3oBfTrxhhja+NdxheMP5gYmiSbtJj8YaphGmvaYDq7Xnl9+PpT66fM5MwYZlVmE+Yy5iHmJ8wnLGQtGBbVFk8t5S3DLGssZ6xUrWKsTlu9tNa2Zlu3Wi/ZmNjssOmxRdk62ObZDtoJ2Pnaldk9sZezj7RvtF9wMHDY7tDjiHF0cTzoOO4k6cR0qndacDZy3uHc50J28XYpc3nqqubKdu1yg92c3Q65PdqguCFhQ7s7cHdyP+T+2EPZI9HjZ0+sp4dnueczLx2vTK9+b6r3Fu8G73c+1j6FPg99VXxTfHv9eP2C/er9lvxt/Yv8JwK0AnYE3AoUC4wO7AjCBfkF1QQtbrTbeHjjdLBBcG7w2CblTembbmwW2xy3+eIW3i2MLedCMCH+IQ0hKwx3RjVjMdQptCJ0gWnDPMJ8EWYZVhw2F24WXhQ+E2EWURQxG2kWeShyLsoiqiRqPtomuiz6VYxjTGXMUqx7bG0sJ84/rjkeHx8S35kgkBCb0LdVamv61mGWOiuXNZFokng4cYHtwq5JgpI2JXUk05A/0oEUlZTvUiZTzVPLU9+n+aWdS+dPT0gf2Ka2bd+2mQz7jB+3o7czt/dmymZmZU7usNpRtRPaGbqzd5f8rpxd07sddtdlEbNis37J1s4uyn67x39PV45kzu6cqe8cvmvM5cll547vNd1b+T36++jvB/fp7Tu673NeWN7NfO38kvyVAmbBzR90fij9gbM/Yv9goWHh8QPYAwkHxg5aHKwr4i/KKJo65HaorVimOK/47eEth2+U6JdUHiEeSTkyUepa2nFU4eiBoytlUWWj5dblzRUSFfsqlo6FHRs5bnm8qVKyMr/y44noE/eqHKraqpWqS05iT6aefHbK71T/j/Qf62vEavJrPtUm1E7UedX11RvV1zdINBQ2wo0pjXOng08PnbE909Gk0VTVLNScfxacTTn7/KeQn8ZaXFp6z9HPNZ1XPF/RSm3Na4PatrUttEe1T3QEdgx3Onf2dpl2tf6s+XPtBdkL5RcFLxZ2E7tzujmXMi4t9rB65i9HXp7q3dL78ErAlbt9nn2DV12uXr9mf+1Kv1X/petm1y/cMLnReZN+s/2W4a22AYOB1l8MfmkdNBxsu210u2PIeKhreP1w94jFyOU7tneu3XW6e2t0w+jwmO/YvfHg8Yl7Yfdm78fdf/Ug9cHyw92PMI/yHvM9Lnki8aT6V9VfmycMJy5O2k4OPPV++nCKOfXit6TfVqZznlGelcxIz9TP6s5emLOfG3q+8fn0C9aL5fnc3/l/r3ip8vL8H5Z/DCwELEy/Yr/ivC54I/qm9q3+295Fj8Un7+LfLS/lvRd9X/eB/qH/o//HmeW0FdxK6SfVT12fXT4/4sRzOCwGm7FqBVBIwhERALyuBYASCAB1CPEPG9f8119+BvrK2fyNwVndL5jhvubRVsMQgCakeCFp04OsQ1LJEgAe5NodqT6WANbT+yf/iqQIPd21PXgaAcDJcjivtwJAQHLFgcNZ9uBwPlUgYhHf1z37f7V9g9e8ITewiP88wfWIYET6HPg21nzjV2fybQVcxfrg2/onng/F50lD/ccAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAAaNJREFUSA3FlT1LA0EQQBN/gYUYRTksJZVgEbCR/D+7QMr8ABtttBBCsLGzsLG2sxaxED/ie4d77u0dyaE5HHjczn7MzO7M7nU6/yXz+bwLhzCCjTQO+rZhDH3opuNLdRYN4RHe4RIKJ7R34Ro+4AEGSw2mE1iUwT18gpI74WvkGlccu4XNdH0jnYU7cAUacidn37qR23cOxc4aGU0nYUAn7iSWEHkz46w0ocdQu1X6B/AMQZ5o7KfBqNOfwRH8JB7FajGhnmcpKvQe3MEbvILiDm5gPXaCHnZr4vvFGMoEKudKn8YvQIOOe+YzCPop7dwJ3zRfJ7GDuso4YJGRa0yZgg4tUaNXdGrbuZWKKxzYYEJc2xp9AUUjGt8KC2jvgYadF8+10vJyDnNLXwbdiWUZi0fUK01Eoc+AZhCLZVzK4Vq6sDUdz+0dEcbbTTIOJmAyTVhx/WmvrExbv2jtPhWLKodjCtefZiEeZeVZWWSndgwj6fVf3XON8Qwq15++uoqrfYVrow6dGBpCq79ME291jaB0/Q2CPncyht/99MNO/vr9AqW/CGi8sJqbAAAAAElFTkSuQmCC") ProfileImage(imageStr: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAKHGlDQ1BJQ0MgUHJvZmlsZQAASImFVgdUVNcWve9Nb7QZeu9NehtAem/Sq6gMQ28OQxWxgAQjEFFEREARNFQFg1KjiIhiIQgoYA9IEFBisCAq6OQNJNH4//r/zDpz9ttzz7n73ffWmg0A6QCDxYqD+QCIT0hmezlYywQEBsngngEYCAIy0AC6DGYSy8rDwxUg8Xf9d7wbAxC33tHgzvrP3/9nCISFJzEBgIIRTGey2MkILkawT1oyi4tnEUxjI6IQvMLFkauYqxjQQtewwuoaHy8bBNMBwJMZDHYkAERbhJdJZUYic4hhCNZOCItOQDB3vjkzioFwxLsIXhcRl5IOAImrRzs+fivCk7QRrIL0shAcwNUW+tX8yH/tFfrPXgxG5D84Pi6F+dc9ck+HHJ7g641UMSQlQATQBHEgBaQDGcACbLAVYaIRJhx5Dv+9j77aZ4OsZIFtSEc0iARRIBnpt/9qlvfqpGSQBhjImnCEcUU+NtxnujZy4fbqVEiU/wuXdQyA9S0cDqfzC+e2F4DzyLkSB79wyi0A8KoBcL2GmcJOXePQ3C8MIAJeQAOiQArIAxXuWwMMgSmwBHbAGbgDHxAINgMmojceUZUGMkEWyAX54AA4DMpAJTgJ6sAZ0ALawQVwGVwDt8AQGAUPwQSYBi/AAngHliEIwkEUiAqJQtKQIqQO6UJ0yByyg1whLygQCoEioQQoBcqE9kD5UBFUBlVB9dBPUCd0GboBDUP3oUloDnoNfYRRMBmmwZKwEqwF02Er2AX2gTfBkXAinAHnwPvhUrgaPg23wZfhW/AoPAG/gBdRAEVCCaFkURooOsoG5Y4KQkWg2KidqDxUCaoa1YTqQvWj7qAmUPOoD2gsmoqWQWugTdGOaF80E52I3okuQJeh69Bt6D70HfQkegH9GUPBSGDUMSYYJ0wAJhKThsnFlGBqMK2Yq5hRzDTmHRaLFcIqY42wjthAbAx2O7YAewzbjO3BDmOnsIs4HE4Up44zw7njGLhkXC7uKO407hJuBDeNe48n4aXxunh7fBA+AZ+NL8E34LvxI/gZ/DKBj6BIMCG4E8II2wiFhFOELsJtwjRhmchPVCaaEX2IMcQsYimxiXiV+Ij4hkQiyZGMSZ6kaNJuUinpLOk6aZL0gSxAViPbkIPJKeT95FpyD/k++Q2FQlGiWFKCKMmU/ZR6yhXKE8p7HiqPJo8TTxjPLp5ynjaeEZ6XvAReRV4r3s28GbwlvOd4b/PO8xH4lPhs+Bh8O/nK+Tr5xvkW+an8Ovzu/PH8BfwN/Df4ZwVwAkoCdgJhAjkCJwWuCExRUVR5qg2VSd1DPUW9Sp2mYWnKNCdaDC2fdoY2SFsQFBDUF/QTTBcsF7woOCGEElISchKKEyoUahEaE/ooLClsJRwuvE+4SXhEeElEXMRSJFwkT6RZZFTko6iMqJ1orOhB0XbRx2JoMTUxT7E0seNiV8XmxWnipuJM8TzxFvEHErCEmoSXxHaJkxIDEouSUpIOkizJo5JXJOelhKQspWKkiqW6peakqdLm0tHSxdKXpJ/LCMpYycTJlMr0ySzISsg6yqbIVskOyi7LKcv5ymXLNcs9lifK0+Uj5Ivle+UXFKQV3BQyFRoVHigSFOmKUYpHFPsVl5SUlfyV9iq1K80qiyg7KWcoNyo/UqGoWKgkqlSr3FXFqtJVY1WPqQ6pwWoGalFq5Wq31WF1Q/Vo9WPqw+sw64zXJayrXjeuQdaw0kjVaNSY1BTSdNXM1mzXfKmloBWkdVCrX+uztoF2nPYp7Yc6AjrOOtk6XTqvddV0mbrlunf1KHr2erv0OvRe6avrh+sf179nQDVwM9hr0GvwydDIkG3YZDhnpGAUYlRhNE6n0T3oBfTrxhhja+NdxheMP5gYmiSbtJj8YaphGmvaYDq7Xnl9+PpT66fM5MwYZlVmE+Yy5iHmJ8wnLGQtGBbVFk8t5S3DLGssZ6xUrWKsTlu9tNa2Zlu3Wi/ZmNjssOmxRdk62ObZDtoJ2Pnaldk9sZezj7RvtF9wMHDY7tDjiHF0cTzoOO4k6cR0qndacDZy3uHc50J28XYpc3nqqubKdu1yg92c3Q65PdqguCFhQ7s7cHdyP+T+2EPZI9HjZ0+sp4dnueczLx2vTK9+b6r3Fu8G73c+1j6FPg99VXxTfHv9eP2C/er9lvxt/Yv8JwK0AnYE3AoUC4wO7AjCBfkF1QQtbrTbeHjjdLBBcG7w2CblTembbmwW2xy3+eIW3i2MLedCMCH+IQ0hKwx3RjVjMdQptCJ0gWnDPMJ8EWYZVhw2F24WXhQ+E2EWURQxG2kWeShyLsoiqiRqPtomuiz6VYxjTGXMUqx7bG0sJ84/rjkeHx8S35kgkBCb0LdVamv61mGWOiuXNZFokng4cYHtwq5JgpI2JXUk05A/0oEUlZTvUiZTzVPLU9+n+aWdS+dPT0gf2Ka2bd+2mQz7jB+3o7czt/dmymZmZU7usNpRtRPaGbqzd5f8rpxd07sddtdlEbNis37J1s4uyn67x39PV45kzu6cqe8cvmvM5cll547vNd1b+T36++jvB/fp7Tu673NeWN7NfO38kvyVAmbBzR90fij9gbM/Yv9goWHh8QPYAwkHxg5aHKwr4i/KKJo65HaorVimOK/47eEth2+U6JdUHiEeSTkyUepa2nFU4eiBoytlUWWj5dblzRUSFfsqlo6FHRs5bnm8qVKyMr/y44noE/eqHKraqpWqS05iT6aefHbK71T/j/Qf62vEavJrPtUm1E7UedX11RvV1zdINBQ2wo0pjXOng08PnbE909Gk0VTVLNScfxacTTn7/KeQn8ZaXFp6z9HPNZ1XPF/RSm3Na4PatrUttEe1T3QEdgx3Onf2dpl2tf6s+XPtBdkL5RcFLxZ2E7tzujmXMi4t9rB65i9HXp7q3dL78ErAlbt9nn2DV12uXr9mf+1Kv1X/petm1y/cMLnReZN+s/2W4a22AYOB1l8MfmkdNBxsu210u2PIeKhreP1w94jFyOU7tneu3XW6e2t0w+jwmO/YvfHg8Yl7Yfdm78fdf/Ug9cHyw92PMI/yHvM9Lnki8aT6V9VfmycMJy5O2k4OPPV++nCKOfXit6TfVqZznlGelcxIz9TP6s5emLOfG3q+8fn0C9aL5fnc3/l/r3ip8vL8H5Z/DCwELEy/Yr/ivC54I/qm9q3+295Fj8Un7+LfLS/lvRd9X/eB/qH/o//HmeW0FdxK6SfVT12fXT4/4sRzOCwGm7FqBVBIwhERALyuBYASCAB1CPEPG9f8119+BvrK2fyNwVndL5jhvubRVsMQgCakeCFp04OsQ1LJEgAe5NodqT6WANbT+yf/iqQIPd21PXgaAcDJcjivtwJAQHLFgcNZ9uBwPlUgYhHf1z37f7V9g9e8ITewiP88wfWIYET6HPg21nzjV2fybQVcxfrg2/onng/F50lD/ccAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAwf1XlwAAAaNJREFUSA3FlT1LA0EQQBN/gYUYRTksJZVgEbCR/D+7QMr8ABtttBBCsLGzsLG2sxaxED/ie4d77u0dyaE5HHjczn7MzO7M7nU6/yXz+bwLhzCCjTQO+rZhDH3opuNLdRYN4RHe4RIKJ7R34Ro+4AEGSw2mE1iUwT18gpI74WvkGlccu4XNdH0jnYU7cAUacidn37qR23cOxc4aGU0nYUAn7iSWEHkz46w0ocdQu1X6B/AMQZ5o7KfBqNOfwRH8JB7FajGhnmcpKvQe3MEbvILiDm5gPXaCHnZr4vvFGMoEKudKn8YvQIOOe+YzCPop7dwJ3zRfJ7GDuso4YJGRa0yZgg4tUaNXdGrbuZWKKxzYYEJc2xp9AUUjGt8KC2jvgYadF8+10vJyDnNLXwbdiWUZi0fUK01Eoc+AZhCLZVzK4Vq6sDUdz+0dEcbbTTIOJmAyTVhx/WmvrExbv2jtPhWLKodjCtefZiEeZeVZWWSndgwj6fVf3XON8Qwq15++uoqrfYVrow6dGBpCq79ME291jaB0/Q2CPncyht/99MNO/vr9AqW/CGi8sJqbAAAAAElFTkSuQmCC", size: 63)
.previewLayout(.fixed(width: 63, height: 63)) .previewLayout(.fixed(width: 63, height: 63))
.background(.black) .background(.black)
} }
@@ -70,9 +70,7 @@ struct AddGroupView: View {
ZStack(alignment: .center) { ZStack(alignment: .center) {
ZStack(alignment: .topTrailing) { ZStack(alignment: .topTrailing) {
ProfileImage(imageStr: profile.image, color: Color(uiColor: .secondarySystemGroupedBackground)) ProfileImage(imageStr: profile.image, size: 128, color: Color(uiColor: .secondarySystemGroupedBackground))
.aspectRatio(1, contentMode: .fit)
.frame(maxWidth: 128, maxHeight: 128)
if profile.image != nil { if profile.image != nil {
Button { Button {
profile.image = nil profile.image = nil
@@ -375,6 +375,37 @@ private let versionDescriptions: [VersionDescription] = [
description: "Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" description: "Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!"
), ),
] ]
),
VersionDescription(
version: "v5.7",
post: URL(string: "https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html"),
features: [
FeatureDescription(
icon: "key",
title: "Quantum resistant encryption",
description: "Will be enabled in direct chats!"
),
FeatureDescription(
icon: "arrowshape.turn.up.forward",
title: "Forward and save messages",
description: "Message source remains private."
),
FeatureDescription(
icon: "music.note",
title: "In-call sounds",
description: "When connecting audio and video calls."
),
FeatureDescription(
icon: "person.crop.square",
title: "Shape profile images",
description: "Square, circle, or anything in between."
),
FeatureDescription(
icon: "antenna.radiowaves.left.and.right",
title: "Network management",
description: "More reliable network connection."
)
]
) )
] ]
@@ -51,10 +51,10 @@ struct AdvancedNetworkSettings: View {
} }
.disabled(currentNetCfg == NetCfg.proxyDefaults) .disabled(currentNetCfg == NetCfg.proxyDefaults)
timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [5_000000, 7_500000, 10_000000, 15_000000, 20_000000, 30_000000, 40_000000], label: secondsLabel) timeoutSettingPicker("TCP connection timeout", selection: $netCfg.tcpConnectTimeout, values: [10_000000, 15_000000, 20_000000, 30_000000, 45_000000, 60_000000, 90_000000], label: secondsLabel)
timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [5_000000, 7_000000, 10_000000, 15_000000, 20_000000, 30_000000], label: secondsLabel) timeoutSettingPicker("Protocol timeout", selection: $netCfg.tcpTimeout, values: [5_000000, 7_000000, 10_000000, 15_000000, 20_000000, 30_000000], label: secondsLabel)
timeoutSettingPicker("Protocol timeout per KB", selection: $netCfg.tcpTimeoutPerKb, values: [2_500, 5_000, 10_000, 15_000, 20_000, 30_000], label: secondsLabel) timeoutSettingPicker("Protocol timeout per KB", selection: $netCfg.tcpTimeoutPerKb, values: [2_500, 5_000, 10_000, 15_000, 20_000, 30_000], label: secondsLabel)
intSettingPicker("Receiving concurrency", selection: $netCfg.rcvConcurrency, values: [1, 2, 4, 8, 12, 16, 24], label: "") // intSettingPicker("Receiving concurrency", selection: $netCfg.rcvConcurrency, values: [1, 2, 4, 8, 12, 16, 24], label: "")
timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel) timeoutSettingPicker("PING interval", selection: $netCfg.smpPingInterval, values: [120_000000, 300_000000, 600_000000, 1200_000000, 2400_000000, 3600_000000], label: secondsLabel)
intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "") intSettingPicker("PING count", selection: $netCfg.smpPingCount, values: [1, 2, 3, 5, 8], label: "")
Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive) Toggle("Enable TCP keep-alive", isOn: $enableKeepAlive)
@@ -23,6 +23,7 @@ extension AppSettings {
setNetCfg(val) setNetCfg(val)
} }
if let val = privacyEncryptLocalFiles { privacyEncryptLocalFilesGroupDefault.set(val) } if let val = privacyEncryptLocalFiles { privacyEncryptLocalFilesGroupDefault.set(val) }
if let val = privacyAskToApproveRelays { privacyAskToApproveRelaysGroupDefault.set(val) }
if let val = privacyAcceptImages { if let val = privacyAcceptImages {
privacyAcceptImagesGroupDefault.set(val) privacyAcceptImagesGroupDefault.set(val)
def.setValue(val, forKey: DEFAULT_PRIVACY_ACCEPT_IMAGES) def.setValue(val, forKey: DEFAULT_PRIVACY_ACCEPT_IMAGES)
@@ -50,6 +51,7 @@ extension AppSettings {
var c = AppSettings.defaults var c = AppSettings.defaults
c.networkConfig = getNetCfg() c.networkConfig = getNetCfg()
c.privacyEncryptLocalFiles = privacyEncryptLocalFilesGroupDefault.get() c.privacyEncryptLocalFiles = privacyEncryptLocalFilesGroupDefault.get()
c.privacyAskToApproveRelays = privacyAskToApproveRelaysGroupDefault.get()
c.privacyAcceptImages = privacyAcceptImagesGroupDefault.get() c.privacyAcceptImages = privacyAcceptImagesGroupDefault.get()
c.privacyLinkPreviews = def.bool(forKey: DEFAULT_PRIVACY_LINK_PREVIEWS) c.privacyLinkPreviews = def.bool(forKey: DEFAULT_PRIVACY_LINK_PREVIEWS)
c.privacyShowChatPreviews = def.bool(forKey: DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS) c.privacyShowChatPreviews = def.bool(forKey: DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS)
@@ -17,11 +17,14 @@ let interfaceStyleNames: [LocalizedStringKey] = ["System", "Light", "Dark"]
let appSettingsURL = URL(string: UIApplication.openSettingsURLString)! let appSettingsURL = URL(string: UIApplication.openSettingsURLString)!
struct AppearanceSettings: View { struct AppearanceSettings: View {
@EnvironmentObject var m: ChatModel
@Environment(\.colorScheme) var colorScheme
@EnvironmentObject var sceneDelegate: SceneDelegate @EnvironmentObject var sceneDelegate: SceneDelegate
@State private var iconLightTapped = false @State private var iconLightTapped = false
@State private var iconDarkTapped = false @State private var iconDarkTapped = false
@State private var userInterfaceStyle = getUserInterfaceStyleDefault() @State private var userInterfaceStyle = getUserInterfaceStyleDefault()
@State private var uiTintColor = getUIAccentColorDefault() @State private var uiTintColor = getUIAccentColorDefault()
@AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var profileImageCornerRadius = defaultProfileImageCorner
var body: some View { var body: some View {
VStack{ VStack{
@@ -44,6 +47,23 @@ struct AppearanceSettings: View {
} }
} }
Section("Profile images") {
HStack(spacing: 16) {
if let img = m.currentUser?.image, img != "" {
ProfileImage(imageStr: img, size: 60)
} else {
clipProfileImage(Image(colorScheme == .light ? "icon-dark" : "icon-light"), size: 60, radius: profileImageCornerRadius)
}
Slider(
value: $profileImageCornerRadius,
in: 0...50,
step: 2.5
)
}
.foregroundColor(.secondary)
}
Section { Section {
Picker("Theme", selection: $userInterfaceStyle) { Picker("Theme", selection: $userInterfaceStyle) {
ForEach(interfaceStyles, id: \.self) { style in ForEach(interfaceStyles, id: \.self) { style in
@@ -93,7 +113,7 @@ struct AppearanceSettings: View {
} }
._onButtonGesture { tapped.wrappedValue = $0 } perform: {} ._onButtonGesture { tapped.wrappedValue = $0 } perform: {}
.overlay(tapped.wrappedValue ? Color.secondary : Color.clear) .overlay(tapped.wrappedValue ? Color.secondary : Color.clear)
.cornerRadius(20) .cornerRadius(13.5)
} }
} }
@@ -12,7 +12,6 @@ import SimpleXChat
struct DeveloperView: View { struct DeveloperView: View {
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false @AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
@AppStorage(GROUP_DEFAULT_CONFIRM_DB_UPGRADES, store: groupDefaults) private var confirmDatabaseUpgrades = false @AppStorage(GROUP_DEFAULT_CONFIRM_DB_UPGRADES, store: groupDefaults) private var confirmDatabaseUpgrades = false
@AppStorage(GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED, store: groupDefaults) private var pqExperimentalEnabled = false
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
var body: some View { var body: some View {
@@ -43,33 +42,9 @@ struct DeveloperView: View {
} footer: { } footer: {
(developerTools ? Text("Show:") : Text("Hide:")) + Text(" ") + Text("Database IDs and Transport isolation option.") (developerTools ? Text("Show:") : Text("Hide:")) + Text(" ") + Text("Database IDs and Transport isolation option.")
} }
if developerTools {
Section {
settingsRow("key") {
Toggle("Post-quantum E2EE", isOn: $pqExperimentalEnabled)
.onChange(of: pqExperimentalEnabled) {
setPQExperimentalEnabled($0)
}
}
} header: {
Text(String("Experimental"))
} footer: {
Text(String("In this version applies only to new contacts."))
}
}
} }
} }
} }
private func setPQExperimentalEnabled(_ enable: Bool) {
do {
try apiSetPQEncryption(enable)
} catch let error {
let err = responseError(error)
logger.error("apiSetPQEncryption \(err)")
}
}
} }
struct DeveloperView_Previews: PreviewProvider { struct DeveloperView_Previews: PreviewProvider {
@@ -12,12 +12,16 @@ import SimpleXChat
private enum NetworkAlert: Identifiable { private enum NetworkAlert: Identifiable {
case updateOnionHosts(hosts: OnionHosts) case updateOnionHosts(hosts: OnionHosts)
case updateSessionMode(mode: TransportSessionMode) case updateSessionMode(mode: TransportSessionMode)
case updateSMPProxyMode(proxyMode: SMPProxyMode)
case updateSMPProxyFallback(proxyFallback: SMPProxyFallback)
case error(err: String) case error(err: String)
var id: String { var id: String {
switch self { switch self {
case let .updateOnionHosts(hosts): return "updateOnionHosts \(hosts)" case let .updateOnionHosts(hosts): return "updateOnionHosts \(hosts)"
case let .updateSessionMode(mode): return "updateSessionMode \(mode)" case let .updateSessionMode(mode): return "updateSessionMode \(mode)"
case let .updateSMPProxyMode(proxyMode): return "updateSMPProxyMode \(proxyMode)"
case let .updateSMPProxyFallback(proxyFallback): return "updateSMPProxyFallback \(proxyFallback)"
case let .error(err): return "error \(err)" case let .error(err): return "error \(err)"
} }
} }
@@ -26,11 +30,14 @@ private enum NetworkAlert: Identifiable {
struct NetworkAndServers: View { struct NetworkAndServers: View {
@EnvironmentObject var m: ChatModel @EnvironmentObject var m: ChatModel
@AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false @AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false
@AppStorage(DEFAULT_SHOW_SENT_VIA_RPOXY) private var showSentViaProxy = true
@State private var cfgLoaded = false @State private var cfgLoaded = false
@State private var currentNetCfg = NetCfg.defaults @State private var currentNetCfg = NetCfg.defaults
@State private var netCfg = NetCfg.defaults @State private var netCfg = NetCfg.defaults
@State private var onionHosts: OnionHosts = .no @State private var onionHosts: OnionHosts = .no
@State private var sessionMode: TransportSessionMode = .user @State private var sessionMode: TransportSessionMode = .user
@State private var proxyMode: SMPProxyMode = .never
@State private var proxyFallback: SMPProxyFallback = .allow
@State private var alert: NetworkAlert? @State private var alert: NetworkAlert?
var body: some View { var body: some View {
@@ -75,6 +82,30 @@ struct NetworkAndServers: View {
Text("Using .onion hosts requires compatible VPN provider.") Text("Using .onion hosts requires compatible VPN provider.")
} }
Section {
Picker("Private routing", selection: $proxyMode) {
ForEach(SMPProxyMode.values, id: \.self) { Text($0.text) }
}
.frame(height: 36)
Picker("Allow downgrade", selection: $proxyFallback) {
ForEach(SMPProxyFallback.values, id: \.self) { Text($0.text) }
}
.disabled(proxyMode == .never)
.frame(height: 36)
Toggle("Show message status", isOn: $showSentViaProxy)
} header: {
Text("Private message routing")
} footer: {
VStack(alignment: .leading) {
Text("To protect your IP address, private routing uses your SMP servers to deliver messages.")
if showSentViaProxy {
Text("Show → on messages sent via private routing.")
}
}
}
Section("Calls") { Section("Calls") {
NavigationLink { NavigationLink {
RTCServers() RTCServers()
@@ -99,14 +130,24 @@ struct NetworkAndServers: View {
currentNetCfg = getNetCfg() currentNetCfg = getNetCfg()
resetNetCfgView() resetNetCfgView()
} }
.onChange(of: onionHosts) { _ in .onChange(of: onionHosts) { hosts in
if onionHosts != OnionHosts(netCfg: currentNetCfg) { if hosts != OnionHosts(netCfg: currentNetCfg) {
alert = .updateOnionHosts(hosts: onionHosts) alert = .updateOnionHosts(hosts: hosts)
} }
} }
.onChange(of: sessionMode) { _ in .onChange(of: sessionMode) { mode in
if sessionMode != netCfg.sessionMode { if mode != netCfg.sessionMode {
alert = .updateSessionMode(mode: sessionMode) alert = .updateSessionMode(mode: mode)
}
}
.onChange(of: proxyMode) { mode in
if mode != netCfg.smpProxyMode {
alert = .updateSMPProxyMode(proxyMode: mode)
}
}
.onChange(of: proxyFallback) { fallbackMode in
if fallbackMode != netCfg.smpProxyFallback {
alert = .updateSMPProxyFallback(proxyFallback: fallbackMode)
} }
} }
.alert(item: $alert) { a in .alert(item: $alert) { a in
@@ -137,6 +178,30 @@ struct NetworkAndServers: View {
resetNetCfgView() resetNetCfgView()
} }
) )
case let .updateSMPProxyMode(proxyMode):
return Alert(
title: Text("Message routing mode"),
message: Text(proxyModeInfo(proxyMode)) + Text("\n") + Text("Updating this setting will re-connect the client to all servers."),
primaryButton: .default(Text("Ok")) {
netCfg.smpProxyMode = proxyMode
saveNetCfg()
},
secondaryButton: .cancel() {
resetNetCfgView()
}
)
case let .updateSMPProxyFallback(proxyFallback):
return Alert(
title: Text("Message routing fallback"),
message: Text(proxyFallbackInfo(proxyFallback)) + Text("\n") + Text("Updating this setting will re-connect the client to all servers."),
primaryButton: .default(Text("Ok")) {
netCfg.smpProxyFallback = proxyFallback
saveNetCfg()
},
secondaryButton: .cancel() {
resetNetCfgView()
}
)
case let .error(err): case let .error(err):
return Alert( return Alert(
title: Text("Error updating settings"), title: Text("Error updating settings"),
@@ -166,6 +231,8 @@ struct NetworkAndServers: View {
netCfg = currentNetCfg netCfg = currentNetCfg
onionHosts = OnionHosts(netCfg: netCfg) onionHosts = OnionHosts(netCfg: netCfg)
sessionMode = netCfg.sessionMode sessionMode = netCfg.sessionMode
proxyMode = netCfg.smpProxyMode
proxyFallback = netCfg.smpProxyFallback
} }
private func onionHostsInfo(_ hosts: OnionHosts) -> LocalizedStringKey { private func onionHostsInfo(_ hosts: OnionHosts) -> LocalizedStringKey {
@@ -182,6 +249,23 @@ struct NetworkAndServers: View {
case .entity: return "A separate TCP connection will be used **for each contact and group member**.\n**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail." case .entity: return "A separate TCP connection will be used **for each contact and group member**.\n**Please note**: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail."
} }
} }
private func proxyModeInfo(_ mode: SMPProxyMode) -> LocalizedStringKey {
switch mode {
case .always: return "Always use private routing."
case .unknown: return "Use private routing with unknown servers."
case .unprotected: return "Use private routing with unknown servers when IP address is not protected."
case .never: return "Do NOT use private routing."
}
}
private func proxyFallbackInfo(_ proxyFallback: SMPProxyFallback) -> LocalizedStringKey {
switch proxyFallback {
case .allow: return "Send messages directly when your or destination server does not support private routing."
case .allowProtected: return "Send messages directly when IP address is protected and your or destination server does not support private routing."
case .prohibit: return "Do NOT send messages directly, even if your or destination server does not support private routing."
}
}
} }
struct NetworkServersView_Previews: PreviewProvider { struct NetworkServersView_Previews: PreviewProvider {
@@ -16,6 +16,7 @@ struct PrivacySettings: View {
@AppStorage(DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS) private var showChatPreviews = true @AppStorage(DEFAULT_PRIVACY_SHOW_CHAT_PREVIEWS) private var showChatPreviews = true
@AppStorage(DEFAULT_PRIVACY_SAVE_LAST_DRAFT) private var saveLastDraft = true @AppStorage(DEFAULT_PRIVACY_SAVE_LAST_DRAFT) private var saveLastDraft = true
@AppStorage(GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES, store: groupDefaults) private var encryptLocalFiles = true @AppStorage(GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES, store: groupDefaults) private var encryptLocalFiles = true
@AppStorage(GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS, store: groupDefaults) private var askToApproveRelays = true
@State private var simplexLinkMode = privacySimplexLinkModeDefault.get() @State private var simplexLinkMode = privacySimplexLinkModeDefault.get()
@AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false @AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false
@AppStorage(DEFAULT_PERFORM_LA) private var prefPerformLA = false @AppStorage(DEFAULT_PERFORM_LA) private var prefPerformLA = false
@@ -64,18 +65,6 @@ struct PrivacySettings: View {
} }
Section { Section {
settingsRow("lock.doc") {
Toggle("Encrypt local files", isOn: $encryptLocalFiles)
.onChange(of: encryptLocalFiles) {
setEncryptLocalFiles($0)
}
}
settingsRow("photo") {
Toggle("Auto-accept images", isOn: $autoAcceptImages)
.onChange(of: autoAcceptImages) {
privacyAcceptImagesGroupDefault.set($0)
}
}
settingsRow("network") { settingsRow("network") {
Toggle("Send link previews", isOn: $useLinkPreviews) Toggle("Send link previews", isOn: $useLinkPreviews)
} }
@@ -108,6 +97,32 @@ struct PrivacySettings: View {
Text("Chats") Text("Chats")
} }
Section {
settingsRow("lock.doc") {
Toggle("Encrypt local files", isOn: $encryptLocalFiles)
.onChange(of: encryptLocalFiles) {
setEncryptLocalFiles($0)
}
}
settingsRow("photo") {
Toggle("Auto-accept images", isOn: $autoAcceptImages)
.onChange(of: autoAcceptImages) {
privacyAcceptImagesGroupDefault.set($0)
}
}
settingsRow("network.badge.shield.half.filled") {
Toggle("Protect IP address", isOn: $askToApproveRelays)
}
} header: {
Text("Files")
} footer: {
if askToApproveRelays {
Text("The app will ask to confirm downloads from unknown file servers (except .onion).")
} else {
Text("Without Tor or VPN, your IP address will be visible to file servers.")
}
}
Section { Section {
settingsRow("person") { settingsRow("person") {
Toggle("Contacts", isOn: $contactReceipts) Toggle("Contacts", isOn: $contactReceipts)
@@ -45,6 +45,7 @@ let DEFAULT_ACCENT_COLOR_RED = "accentColorRed"
let DEFAULT_ACCENT_COLOR_GREEN = "accentColorGreen" let DEFAULT_ACCENT_COLOR_GREEN = "accentColorGreen"
let DEFAULT_ACCENT_COLOR_BLUE = "accentColorBlue" let DEFAULT_ACCENT_COLOR_BLUE = "accentColorBlue"
let DEFAULT_USER_INTERFACE_STYLE = "userInterfaceStyle" let DEFAULT_USER_INTERFACE_STYLE = "userInterfaceStyle"
let DEFAULT_PROFILE_IMAGE_CORNER_RADIUS = "profileImageCornerRadius"
let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab" let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab"
let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown" let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown"
let DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE = "showHiddenProfilesNotice" let DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE = "showHiddenProfilesNotice"
@@ -59,6 +60,7 @@ let DEFAULT_DEVICE_NAME_FOR_REMOTE_ACCESS = "deviceNameForRemoteAccess"
let DEFAULT_CONFIRM_REMOTE_SESSIONS = "confirmRemoteSessions" let DEFAULT_CONFIRM_REMOTE_SESSIONS = "confirmRemoteSessions"
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST = "connectRemoteViaMulticast" let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST = "connectRemoteViaMulticast"
let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO = "connectRemoteViaMulticastAuto" let DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO = "connectRemoteViaMulticastAuto"
let DEFAULT_SHOW_SENT_VIA_RPOXY = "showSentViaProxy"
let ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN = "androidCallOnLockScreen" let ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN = "androidCallOnLockScreen"
@@ -87,6 +89,7 @@ let appDefaults: [String: Any] = [
DEFAULT_ACCENT_COLOR_GREEN: 0.533, DEFAULT_ACCENT_COLOR_GREEN: 0.533,
DEFAULT_ACCENT_COLOR_BLUE: 1.000, DEFAULT_ACCENT_COLOR_BLUE: 1.000,
DEFAULT_USER_INTERFACE_STYLE: 0, DEFAULT_USER_INTERFACE_STYLE: 0,
DEFAULT_PROFILE_IMAGE_CORNER_RADIUS: defaultProfileImageCorner,
DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue, DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue,
DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false, DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false,
DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true, DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true,
@@ -97,6 +100,7 @@ let appDefaults: [String: Any] = [
DEFAULT_CONFIRM_REMOTE_SESSIONS: false, DEFAULT_CONFIRM_REMOTE_SESSIONS: false,
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST: true, DEFAULT_CONNECT_REMOTE_VIA_MULTICAST: true,
DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO: true, DEFAULT_CONNECT_REMOTE_VIA_MULTICAST_AUTO: true,
DEFAULT_SHOW_SENT_VIA_RPOXY: false,
ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN: AppSettingsLockScreenCalls.show.rawValue ANDROID_DEFAULT_CALL_ON_LOCK_SCREEN: AppSettingsLockScreenCalls.show.rawValue
] ]
@@ -425,8 +429,7 @@ struct ProfilePreview: View {
var body: some View { var body: some View {
HStack { HStack {
ProfileImage(imageStr: profileOf.image, color: color) ProfileImage(imageStr: profileOf.image, size: 44, color: color)
.frame(width: 44, height: 44)
.padding(.trailing, 6) .padding(.trailing, 6)
.padding(.vertical, 6) .padding(.vertical, 6)
VStack(alignment: .leading) { VStack(alignment: .leading) {
@@ -188,9 +188,7 @@ struct UserProfile: View {
} }
func profileImageView(_ imageStr: String?) -> some View { func profileImageView(_ imageStr: String?) -> some View {
ProfileImage(imageStr: imageStr) ProfileImage(imageStr: imageStr, size: 192)
.aspectRatio(1, contentMode: .fit)
.frame(maxWidth: 192, maxHeight: 192)
} }
func editImageButton(action: @escaping () -> Void) -> some View { func editImageButton(action: @escaping () -> Void) -> some View {
@@ -309,8 +309,7 @@ struct UserProfilesView: View {
} }
} label: { } label: {
HStack { HStack {
ProfileImage(imageStr: user.image, color: Color(uiColor: .tertiarySystemFill)) ProfileImage(imageStr: user.image, size: 44, color: Color(uiColor: .tertiarySystemFill))
.frame(width: 44, height: 44)
.padding(.vertical, 4) .padding(.vertical, 4)
.padding(.trailing, 12) .padding(.trailing, 12)
Text(user.chatViewName) Text(user.chatViewName)
@@ -109,6 +109,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ downloaded" xml:space="preserve"> <trans-unit id="%@ downloaded" xml:space="preserve">
<source>%@ downloaded</source> <source>%@ 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="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -133,6 +134,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ uploaded" xml:space="preserve"> <trans-unit id="%@ uploaded" xml:space="preserve">
<source>%@ uploaded</source> <source>%@ uploaded</source>
<target>%@ качено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ wants to connect!" xml:space="preserve"> <trans-unit id="%@ wants to connect!" xml:space="preserve">
@@ -352,6 +354,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve"> <trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source> <source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
<target>**Моля, обърнете внимание**: използването на една и съща база данни на две устройства ще наруши декриптирането на съобщенията от вашите връзки като защита на сигурността.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve"> <trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
@@ -371,6 +374,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve"> <trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
<source>**Warning**: the archive will be removed.</source> <source>**Warning**: the archive will be removed.</source>
<target>**Внимание**: архивът ще бъде изтрит.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve"> <trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
@@ -741,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Разрешаване на изпращане на SimpleX линкове.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1085,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Мобилна мрежа</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -1205,6 +1211,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve"> <trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve">
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source> <source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
<target>Изберете _Мигриране от друго устройство_ на новото устройство и сканирайте QR кода.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Choose file" xml:space="preserve"> <trans-unit id="Choose file" xml:space="preserve">
@@ -2083,6 +2090,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Изтегли</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2197,6 +2205,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Активирано за</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2349,11 +2358,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Грешка при разрешаване на PQ криптиране за контакт</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Грешка при промяна на адреса</target> <target>Грешка при промяна на адреса</target>
@@ -2726,6 +2730,7 @@ This cannot be undone!</source>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Файлове и медия не са разрешени</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2795,14 +2800,22 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Препрати</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Препращане и запазване на съобщения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Препратено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Препратено от</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2917,6 +2930,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>Членовете на групата могат да изпращат SimpleX линкове.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3159,6 +3173,11 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Звуци по време на разговор</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Инкогнито</target> <target>Инкогнито</target>
@@ -3634,6 +3653,11 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Източникът на съобщението остава скрит.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Текст на съобщението</target> <target>Текст на съобщението</target>
@@ -3661,10 +3685,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve"> <trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
<source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source> <source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
<target>Съобщенията, файловете и разговорите са защитени чрез **криптиране от край до край** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve"> <trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source> <source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
<target>Съобщенията, файловете и разговорите са защитени чрез **квантово устойчиво e2e криптиране** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrate device" xml:space="preserve"> <trans-unit id="Migrate device" xml:space="preserve">
@@ -3747,6 +3773,11 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>По-надеждна мрежова връзка.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Най-вероятно тази връзка е изтрита.</target> <target>Най-вероятно тази връзка е изтрита.</target>
@@ -3784,6 +3815,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Мрежова връзка</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Управление на мрежата</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3898,6 +3935,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Няма мрежова връзка</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4116,6 +4154,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Други</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4285,11 +4324,6 @@ Error: %@</source>
<target>Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен</target> <target>Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Постквантово E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Запазете последната чернова на съобщението с прикачени файлове.</target> <target>Запазете последната чернова на съобщението с прикачени файлове.</target>
@@ -4340,6 +4374,11 @@ 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="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Профилни изображения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Име на профила</target> <target>Име на профила</target>
@@ -4382,6 +4421,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Забранете изпращането на SimpleX линкове.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4516,6 +4556,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Паралелност на получаване</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4535,6 +4576,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Получателят(ите) не могат да видят от кого е това съобщение.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4839,6 +4881,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Запазено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4848,6 +4891,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Запазено от</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5155,6 +5199,11 @@ 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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Променете формата на профилните изображения</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Сподели</target> <target>Сподели</target>
@@ -5277,10 +5326,12 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<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 links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<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 one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5318,6 +5369,11 @@ Error: %@</source>
<target>Някой</target> <target>Някой</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Квадрат, кръг или нещо между тях.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Започни чат</target> <target>Започни чат</target>
@@ -6121,6 +6177,7 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<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 prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -6193,6 +6250,11 @@ 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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>При свързване на аудио и видео разговори.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.</target> <target>Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.</target>
@@ -6205,10 +6267,17 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Ще бъде активирано в личните чатове!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Кабелен Ethernet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6248,6 +6317,7 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="You **must not** use the same database on two devices." xml:space="preserve"> <trans-unit id="You **must not** use the same database on two devices." xml:space="preserve">
<source>You **must not** use the same database on two devices.</source> <source>You **must not** use the same database on two 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="You accepted connection" xml:space="preserve"> <trans-unit id="You accepted connection" xml:space="preserve">
@@ -6695,6 +6765,7 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>администратори</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6709,6 +6780,7 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>всички членове</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7043,6 +7115,7 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>препратено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7254,6 +7327,7 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>собственици</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7308,10 +7382,12 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>запазено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>запазено от %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7456,6 +7532,7 @@ SimpleX сървърите не могат да видят вашия профи
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<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 invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -2263,10 +2263,6 @@ This cannot be undone!</source>
<target>Chyba přidávání člena(ů)</target> <target>Chyba přidávání člena(ů)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Chuba změny adresy</target> <target>Chuba změny adresy</target>
@@ -2698,6 +2694,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3050,6 +3050,10 @@ This cannot be undone!</source>
<target>V odpovědi na</target> <target>V odpovědi na</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Inkognito</target> <target>Inkognito</target>
@@ -3506,6 +3510,10 @@ This is your link for group %@!</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>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Text zprávy</target> <target>Text zprávy</target>
@@ -3610,6 +3618,10 @@ This is your link for group %@!</source>
<target>Další vylepšení se chystají již brzy!</target> <target>Další vylepšení se chystají již brzy!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Pravděpodobně je toto spojení smazáno.</target> <target>Pravděpodobně je toto spojení smazáno.</target>
@@ -3649,6 +3661,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>Nastavení sítě</target> <target>Nastavení sítě</target>
@@ -4130,10 +4146,6 @@ Error: %@</source>
<target>Je možné, že otisk certifikátu v adrese serveru je nesprávný</target> <target>Je možné, že otisk certifikátu v adrese serveru je nesprávný</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Zachování posledního návrhu zprávy s přílohami.</target> <target>Zachování posledního návrhu zprávy s přílohami.</target>
@@ -4183,6 +4195,10 @@ Error: %@</source>
<target>Profilový obrázek</target> <target>Profilový obrázek</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4978,6 +4994,10 @@ Error: %@</source>
<target>Nastavení</target> <target>Nastavení</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Sdílet</target> <target>Sdílet</target>
@@ -5139,6 +5159,10 @@ Error: %@</source>
<target>Někdo</target> <target>Někdo</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Začít chat</target> <target>Začít chat</target>
@@ -5975,6 +5999,10 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<target>Když je k dispozici</target> <target>Když je k dispozici</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Když někdo požádá o připojení, můžete žádost přijmout nebo odmítnout.</target> <target>Když někdo požádá o připojení, můžete žádost přijmout nebo odmítnout.</target>
@@ -5989,6 +6017,10 @@ Chcete-li se připojit, požádejte svůj kontakt o vytvoření dalšího odkazu
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Das Senden von SimpleX-Links erlauben.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Zellulär</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Herunterladen</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Aktiviert für</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Fehler beim Hinzufügen von Mitgliedern</target> <target>Fehler beim Hinzufügen von Mitgliedern</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Fehler beim Wechseln der Empfängeradresse</target> <target>Fehler beim Wechseln der Empfängeradresse</target>
@@ -2731,6 +2730,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Dateien und Medien sind nicht erlaubt</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Weiterleiten</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Nachrichten weiterleiten und speichern</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Weitergeleitet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Weitergeleitet aus</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ Das kann nicht rückgängig gemacht werden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>Gruppenmitglieder können SimpleX-Links senden.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ Das kann nicht rückgängig gemacht werden!</target>
<target>Als Antwort auf</target> <target>Als Antwort auf</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Klingeltöne</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Inkognito</target> <target>Inkognito</target>
@@ -3639,6 +3653,11 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>In dieser Gruppe sind Reaktionen auf Nachrichten nicht erlaubt.</target> <target>In dieser Gruppe sind Reaktionen auf Nachrichten nicht erlaubt.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Die Nachrichtenquelle bleibt privat.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Nachrichtentext</target> <target>Nachrichtentext</target>
@@ -3754,6 +3773,11 @@ Das ist Ihr Link für die Gruppe %@!</target>
<target>Weitere Verbesserungen sind bald verfügbar!</target> <target>Weitere Verbesserungen sind bald verfügbar!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Zuverlässigere Netzwerkverbindung.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Wahrscheinlich ist diese Verbindung gelöscht worden.</target> <target>Wahrscheinlich ist diese Verbindung gelöscht worden.</target>
@@ -3791,6 +3815,12 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Netzwerkverbindung</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Netzwerk-Verwaltung</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Keine Netzwerkverbindung</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ Das ist Ihr Link für die Gruppe %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Andere</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Fehler: %@</target>
<target>Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig</target> <target>Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Post-Quantum E2E-Verschlüsselung</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.</target> <target>Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.</target>
@@ -4347,6 +4374,11 @@ Fehler: %@</target>
<target>Profilbild</target> <target>Profilbild</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Profil-Bilder</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profilname</target> <target>Profilname</target>
@@ -4389,6 +4421,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Das Senden von SimpleX-Links nicht erlauben.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4398,7 +4431,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending disappearing messages." xml:space="preserve"> <trans-unit id="Prohibit sending disappearing messages." xml:space="preserve">
<source>Prohibit sending disappearing messages.</source> <source>Prohibit sending disappearing messages.</source>
<target>Das Senden von verschwindenden Nachrichten verbieten.</target> <target>Das Senden von verschwindenden Nachrichten nicht erlauben.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending files and media." xml:space="preserve"> <trans-unit id="Prohibit sending files and media." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Gleichzeitiger Empfang</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Empfänger können nicht sehen, von wem die Nachricht stammt.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Abgespeichert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Abgespeichert von</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Fehler: %@</target>
<target>Einstellungen</target> <target>Einstellungen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Form der Profil-Bilder</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Teilen</target> <target>Teilen</target>
@@ -5284,10 +5326,12 @@ Fehler: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<target>In dieser Gruppe sind SimpleX-Links nicht erlaubt.</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">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>SimpleX-Links sind nicht erlaubt</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Fehler: %@</target>
<target>Jemand</target> <target>Jemand</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Quadratisch, kreisförmig oder irgendetwas dazwischen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Starten Sie den Chat</target> <target>Starten Sie den Chat</target>
@@ -5983,7 +6032,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="Use current profile" xml:space="preserve"> <trans-unit id="Use current profile" xml:space="preserve">
<source>Use current profile</source> <source>Use current profile</source>
<target>Nutzen Sie das aktuelle Profil</target> <target>Das aktuelle Profil nutzen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use for new connections" xml:space="preserve"> <trans-unit id="Use for new connections" xml:space="preserve">
@@ -6003,7 +6052,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="Use new incognito profile" xml:space="preserve"> <trans-unit id="Use new incognito profile" xml:space="preserve">
<source>Use new incognito profile</source> <source>Use new incognito profile</source>
<target>Nutzen Sie das neue Inkognito-Profil</target> <target>Ein neues Inkognito-Profil nutzen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use only local notifications?" xml:space="preserve"> <trans-unit id="Use only local notifications?" xml:space="preserve">
@@ -6128,6 +6177,7 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Sprachnachrichten sind nicht erlaubt</target>
<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">
@@ -6200,6 +6250,11 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
<target>Wenn verfügbar</target> <target>Wenn verfügbar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Bei der Verbindung über Audio- und Video-Anrufe.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.</target> <target>Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.</target>
@@ -6212,10 +6267,17 @@ Bitten Sie Ihren Kontakt darum einen weiteren Verbindungs-Link zu erzeugen, um s
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Wird in direkten Chats automatisch aktiviert!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Kabelgebundenes Netzwerk</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>Administratoren</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>Alle Mitglieder</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>weitergeleitet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>Eigentümer</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>abgespeichert</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>abgespeichert von %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ SimpleX-Server können Ihr Profil nicht einsehen.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>Profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -2358,11 +2358,6 @@ This cannot be undone!</target>
<target>Error adding member(s)</target> <target>Error adding member(s)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Error allowing contact PQ encryption</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Error changing address</target> <target>Error changing address</target>
@@ -2808,6 +2803,11 @@ This cannot be undone!</target>
<target>Forward</target> <target>Forward</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Forward and save messages</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Forwarded</target> <target>Forwarded</target>
@@ -3173,6 +3173,11 @@ This cannot be undone!</target>
<target>In reply to</target> <target>In reply to</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>In-call sounds</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3648,6 +3653,11 @@ This is your link for group %@!</target>
<target>Message reactions are prohibited in this group.</target> <target>Message reactions are prohibited in this group.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Message source remains private.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Message text</target> <target>Message text</target>
@@ -3763,6 +3773,11 @@ This is your link for group %@!</target>
<target>More improvements are coming soon!</target> <target>More improvements are coming soon!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>More reliable network connection.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Most likely this connection is deleted.</target> <target>Most likely this connection is deleted.</target>
@@ -3803,6 +3818,11 @@ This is your link for group %@!</target>
<target>Network connection</target> <target>Network connection</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Network management</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>Network settings</target> <target>Network settings</target>
@@ -4304,11 +4324,6 @@ Error: %@</target>
<target>Possibly, certificate fingerprint in server address is incorrect</target> <target>Possibly, certificate fingerprint in server address is incorrect</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Post-quantum E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Preserve the last message draft, with attachments.</target> <target>Preserve the last message draft, with attachments.</target>
@@ -4359,6 +4374,11 @@ Error: %@</target>
<target>Profile image</target> <target>Profile image</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Profile images</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profile name</target> <target>Profile name</target>
@@ -5179,6 +5199,11 @@ Error: %@</target>
<target>Settings</target> <target>Settings</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Shape profile images</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Share</target> <target>Share</target>
@@ -5344,6 +5369,11 @@ Error: %@</target>
<target>Somebody</target> <target>Somebody</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Square, circle, or anything in between.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Start chat</target> <target>Start chat</target>
@@ -6220,6 +6250,11 @@ To connect, please ask your contact to create another connection link and check
<target>When available</target> <target>When available</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>When connecting audio and video calls.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>When people request to connect, you can accept or reject it.</target> <target>When people request to connect, you can accept or reject it.</target>
@@ -6235,6 +6270,11 @@ To connect, please ask your contact to create another connection link and check
<target>WiFi</target> <target>WiFi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Will be enabled in direct chats!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Wired ethernet</target> <target>Wired ethernet</target>
@@ -109,7 +109,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ downloaded" xml:space="preserve"> <trans-unit id="%@ downloaded" xml:space="preserve">
<source>%@ downloaded</source> <source>%@ downloaded</source>
<target>%@ downloaded</target> <target>%@ descargado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -134,7 +134,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ uploaded" xml:space="preserve"> <trans-unit id="%@ uploaded" xml:space="preserve">
<source>%@ uploaded</source> <source>%@ uploaded</source>
<target>%@ cargado</target> <target>%@ subido</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ wants to connect!" xml:space="preserve"> <trans-unit id="%@ wants to connect!" xml:space="preserve">
@@ -354,7 +354,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve"> <trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source> <source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
<target>**Tenga en cuenta**: usar la misma base de datos en dos dispositivos interrumpirá el descifrado de mensajes de sus conexiones, como protección de seguridad.</target> <target>**Recuarda**: usar la misma base de datos en dos dispositivos hará que falle el descifrado de mensajes como protección de seguridad.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve"> <trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
@@ -635,7 +635,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Admins can block a member for all." xml:space="preserve"> <trans-unit id="Admins can block a member for all." xml:space="preserve">
<source>Admins can block a member for all.</source> <source>Admins can block a member for all.</source>
<target>Los admins pueden bloquear un miembro por todos.</target> <target>Los administradores pueden bloquear a un miembro para los demás.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Admins can create the links to join groups." xml:space="preserve"> <trans-unit id="Admins can create the links to join groups." xml:space="preserve">
@@ -695,7 +695,7 @@
</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"> <trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source> <source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
<target>Todos sus contactos, conversaciones y archivos se cifrarán de forma segura y se subirán en fragmentos hacia puntos XFTP configurados.</target> <target>Todos tus contactos, conversaciones y archivos serán cifrados, divididos y subidos de forma segura a los servidores XFTP configurados.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow" xml:space="preserve"> <trans-unit id="Allow" xml:space="preserve">
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Permitir enviar enlaces SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -829,7 +830,7 @@
</trans-unit> </trans-unit>
<trans-unit id="App data migration" xml:space="preserve"> <trans-unit id="App data migration" xml:space="preserve">
<source>App data migration</source> <source>App data migration</source>
<target>Migración de datos de la aplicación</target> <target>Migrar datos de la aplicación</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="App encrypts new local files (except videos)." xml:space="preserve"> <trans-unit id="App encrypts new local files (except videos)." xml:space="preserve">
@@ -874,7 +875,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Archive and upload" xml:space="preserve"> <trans-unit id="Archive and upload" xml:space="preserve">
<source>Archive and upload</source> <source>Archive and upload</source>
<target>Archivar y transferir</target> <target>Archivar y subir</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Archiving database" xml:space="preserve"> <trans-unit id="Archiving database" xml:space="preserve">
@@ -1004,7 +1005,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Blocked by admin" xml:space="preserve"> <trans-unit id="Blocked by admin" xml:space="preserve">
<source>Blocked by admin</source> <source>Blocked by admin</source>
<target>Bloqueado por el administrador</target> <target>Bloqueado por administrador</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can add message reactions." xml:space="preserve"> <trans-unit id="Both you and your contact can add message reactions." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Móvil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -1174,17 +1176,17 @@
</trans-unit> </trans-unit>
<trans-unit id="Chat is stopped" xml:space="preserve"> <trans-unit id="Chat is stopped" xml:space="preserve">
<source>Chat is stopped</source> <source>Chat is stopped</source>
<target>Chat está detenido</target> <target>Chat está parado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." xml:space="preserve"> <trans-unit id="Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." xml:space="preserve">
<source>Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat.</source> <source>Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat.</source>
<target>Chat está detenido. Si estás usando esta base de datos en otro dispositivo, deberías transferirla de vuelta antes de iniciarlo.</target> <target>Chat parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar Chat.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat migrated!" xml:space="preserve"> <trans-unit id="Chat migrated!" xml:space="preserve">
<source>Chat migrated!</source> <source>Chat migrated!</source>
<target>Chat transferido !</target> <target>¡Chat migrado!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat preferences" xml:space="preserve"> <trans-unit id="Chat preferences" xml:space="preserve">
@@ -1209,7 +1211,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve"> <trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve">
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source> <source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
<target>Elija _Migrar desde otro dispositivo_ en el nuevo dispositivo y escanee el código QR.</target> <target>En el nuevo dispositivo selecciona _Migrar desde otro dispositivo_ y escanéa el código QR.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Choose file" xml:space="preserve"> <trans-unit id="Choose file" xml:space="preserve">
@@ -1284,7 +1286,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Confirm network settings" xml:space="preserve"> <trans-unit id="Confirm network settings" xml:space="preserve">
<source>Confirm network settings</source> <source>Confirm network settings</source>
<target>Confirmar los ajustes de red</target> <target>Confirmar configuración de red</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm new passphrase…" xml:space="preserve"> <trans-unit id="Confirm new passphrase…" xml:space="preserve">
@@ -1299,7 +1301,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Confirm that you remember database passphrase to migrate it." xml:space="preserve"> <trans-unit id="Confirm that you remember database passphrase to migrate it." xml:space="preserve">
<source>Confirm that you remember database passphrase to migrate it.</source> <source>Confirm that you remember database passphrase to migrate it.</source>
<target>Confirme que recuerda la frase secreta de la base de datos para migrarla.</target> <target>Confirma que recuerdas la frase de contraseña de la base de datos para migrarla.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm upload" xml:space="preserve"> <trans-unit id="Confirm upload" xml:space="preserve">
@@ -1568,7 +1570,7 @@ This is your own one-time link!</source>
</trans-unit> </trans-unit>
<trans-unit id="Creating archive link" xml:space="preserve"> <trans-unit id="Creating archive link" xml:space="preserve">
<source>Creating archive link</source> <source>Creating archive link</source>
<target>Creando enlace de archivo</target> <target>Creando enlace al archivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Creating link…" xml:space="preserve"> <trans-unit id="Creating link…" xml:space="preserve">
@@ -1766,7 +1768,7 @@ This is your own one-time link!</source>
</trans-unit> </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>¿Eliminar el perfil?</target> <target>¿Eliminar perfil?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Delete connection" xml:space="preserve"> <trans-unit id="Delete connection" xml:space="preserve">
@@ -2088,11 +2090,12 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Descargar</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
<source>Download failed</source> <source>Download failed</source>
<target>Error en la descarga</target> <target>Descarga fallida</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Download file" xml:space="preserve"> <trans-unit id="Download file" xml:space="preserve">
@@ -2167,7 +2170,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enable in direct chats (BETA)!" xml:space="preserve"> <trans-unit id="Enable in direct chats (BETA)!" xml:space="preserve">
<source>Enable in direct chats (BETA)!</source> <source>Enable in direct chats (BETA)!</source>
<target>Activar en chats directos (BETA)!</target> <target>¡Activar en chats directos (BETA)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enable instant notifications?" xml:space="preserve"> <trans-unit id="Enable instant notifications?" xml:space="preserve">
@@ -2202,6 +2205,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Activar para</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2291,7 +2295,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase" xml:space="preserve"> <trans-unit id="Enter passphrase" xml:space="preserve">
<source>Enter passphrase</source> <source>Enter passphrase</source>
<target>Introducir frase de contraseña</target> <target>Introduce la frase de contraseña</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Enter passphrase…" xml:space="preserve"> <trans-unit id="Enter passphrase…" xml:space="preserve">
@@ -2354,11 +2358,6 @@ This cannot be undone!</source>
<target>Error al añadir miembro(s)</target> <target>Error al añadir miembro(s)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Error al permitir cifrado PQ al contacto</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Error al cambiar servidor</target> <target>Error al cambiar servidor</target>
@@ -2571,7 +2570,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Error stopping chat" xml:space="preserve"> <trans-unit id="Error stopping chat" xml:space="preserve">
<source>Error stopping chat</source> <source>Error stopping chat</source>
<target>Error al detener Chat</target> <target>Error al parar Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error switching profile!" xml:space="preserve"> <trans-unit id="Error switching profile!" xml:space="preserve">
@@ -2701,12 +2700,12 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="File will be received when your contact completes uploading it." xml:space="preserve"> <trans-unit id="File will be received when your contact completes uploading it." xml:space="preserve">
<source>File will be received when your contact completes uploading it.</source> <source>File will be received when your contact completes uploading it.</source>
<target>El archivo se recibirá cuando tu contacto termine de subirlo.</target> <target>El archivo se recibirá cuando el contacto termine de subirlo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="File will be received when your contact is online, please wait or check later!" xml:space="preserve"> <trans-unit id="File will be received when your contact is online, please wait or check later!" xml:space="preserve">
<source>File will be received when your contact is online, please wait or check later!</source> <source>File will be received when your contact is online, please wait or check later!</source>
<target>El archivo se recibirá cuando tu contacto esté en línea, ¡por favor espera o compruébalo más tarde!</target> <target>El archivo se recibirá cuando el contacto esté en línea, ¡por favor espera o compruébalo más tarde!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="File: %@" xml:space="preserve"> <trans-unit id="File: %@" xml:space="preserve">
@@ -2726,11 +2725,12 @@ This cannot be undone!</source>
</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 in this group." xml:space="preserve">
<source>Files and media are prohibited in this group.</source> <source>Files and media are prohibited in this group.</source>
<target>No se permiten archivos y multimedia en este grupo.</target> <target>Los archivos y multimedia no están permitidos en este grupo.</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Archivos y multimedia no permitidos</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2745,7 +2745,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Finalize migration" xml:space="preserve"> <trans-unit id="Finalize migration" xml:space="preserve">
<source>Finalize migration</source> <source>Finalize migration</source>
<target>Finalizar la migración</target> <target>Finalizar migración</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Finalize migration on another device." xml:space="preserve"> <trans-unit id="Finalize migration on another device." xml:space="preserve">
@@ -2800,14 +2800,22 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Reenviar</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Reenviar y guardar mensajes</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Reenviado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Reenviado por</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>Los miembros del grupo pueden enviar enlaces SimpleX.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3061,7 +3070,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Hungarian interface" xml:space="preserve"> <trans-unit id="Hungarian interface" xml:space="preserve">
<source>Hungarian interface</source> <source>Hungarian interface</source>
<target>Interfaz húngara</target> <target>Interfaz en húngaro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="ICE servers (one per line)" xml:space="preserve"> <trans-unit id="ICE servers (one per line)" xml:space="preserve">
@@ -3096,12 +3105,12 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Image will be received when your contact completes uploading it." xml:space="preserve"> <trans-unit id="Image will be received when your contact completes uploading it." xml:space="preserve">
<source>Image will be received when your contact completes uploading it.</source> <source>Image will be received when your contact completes uploading it.</source>
<target>La imagen se recibirá cuando tu contacto termine de subirla.</target> <target>La imagen se recibirá cuando el contacto termine de subirla.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Image will be received when your contact is online, please wait or check later!" xml:space="preserve"> <trans-unit id="Image will be received when your contact is online, please wait or check later!" xml:space="preserve">
<source>Image will be received when your contact is online, please wait or check later!</source> <source>Image will be received when your contact is online, please wait or check later!</source>
<target>La imagen se recibirá cuando tu contacto esté en línea, ¡por favor espera o compruébalo más tarde!</target> <target>La imagen se recibirá cuando el contacto esté en línea, ¡por favor espera o compruébalo más tarde!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Immediately" xml:space="preserve"> <trans-unit id="Immediately" xml:space="preserve">
@@ -3156,7 +3165,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="In order to continue, chat should be stopped." xml:space="preserve"> <trans-unit id="In order to continue, chat should be stopped." xml:space="preserve">
<source>In order to continue, chat should be stopped.</source> <source>In order to continue, chat should be stopped.</source>
<target>Para continuar, el chat debe ser interrumpido.</target> <target>Para continuar, Chat debe estar parado.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In reply to" xml:space="preserve"> <trans-unit id="In reply to" xml:space="preserve">
@@ -3164,6 +3173,11 @@ This cannot be undone!</source>
<target>En respuesta a</target> <target>En respuesta a</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Sonido de llamada</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incógnito</target> <target>Incógnito</target>
@@ -3273,7 +3287,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Invalid migration confirmation" xml:space="preserve"> <trans-unit id="Invalid migration confirmation" xml:space="preserve">
<source>Invalid migration confirmation</source> <source>Invalid migration confirmation</source>
<target>Confirmación de migración inválida</target> <target>Confirmación de migración no válida</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Invalid name!" xml:space="preserve"> <trans-unit id="Invalid name!" xml:space="preserve">
@@ -3347,7 +3361,7 @@ This cannot be undone!</source>
2. Message decryption failed, because you or your contact used old database backup. 2. Message decryption failed, because you or your contact used old database backup.
3. The connection was compromised.</source> 3. The connection was compromised.</source>
<target>Esto puede suceder cuando: <target>Esto puede suceder cuando:
1. Los mensajes caducan en el cliente saliente tras 2 días o en el servidor tras 30 días. 1. Los mensajes caducan tras 2 días en el cliente saliente o tras 30 días en el servidor.
2. El descifrado ha fallado porque tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos. 2. El descifrado ha fallado porque tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos.
3. La conexión ha sido comprometida.</target> 3. La conexión ha sido comprometida.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3639,6 +3653,11 @@ This is your link for group %@!</source>
<target>Las reacciones a los mensajes no están permitidas en este grupo.</target> <target>Las reacciones a los mensajes no están permitidas en este grupo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>El autor del mensaje se mantiene privado.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Contacto y texto</target> <target>Contacto y texto</target>
@@ -3646,7 +3665,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Message too large" xml:space="preserve"> <trans-unit id="Message too large" xml:space="preserve">
<source>Message too large</source> <source>Message too large</source>
<target>Mensaje demasiado grande</target> <target>Mensaje demasiado largo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Messages" xml:space="preserve"> <trans-unit id="Messages" xml:space="preserve">
@@ -3666,12 +3685,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve"> <trans-unit id="Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
<source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source> <source>Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
<target>Los mensajes, archivos y llamadas están protegidos por **cifrado de extremo a extremo** con perfecta confidencialidad, repudio y recuperación tras ataques.</target> <target>Los mensajes, archivos y llamadas están protegidos mediante **cifrado de extremo a extremo** con secreto perfecto hacía adelante, repudio y recuperación tras ataque.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve"> <trans-unit id="Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." xml:space="preserve">
<source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source> <source>Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery.</source>
<target>Los mensajes, archivos y llamadas están protegidos por **cifrado de extremo a extremo resistente a la computación cuántica** con perfecta confidencialidad, repudio y recuperación tras ataques.</target> <target>Los mensajes, archivos y llamadas están protegidos mediante **cifrado de extremo a extremo resistente a tecnología cuántica** con secreto perfecto hacía adelante, repudio y recuperación tras ataque.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrate device" xml:space="preserve"> <trans-unit id="Migrate device" xml:space="preserve">
@@ -3691,12 +3710,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Migrate to another device" xml:space="preserve"> <trans-unit id="Migrate to another device" xml:space="preserve">
<source>Migrate to another device</source> <source>Migrate to another device</source>
<target>Migrar hacia otro dispositivo</target> <target>Migrar a otro dispositivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrate to another device via QR code." xml:space="preserve"> <trans-unit id="Migrate to another device via QR code." xml:space="preserve">
<source>Migrate to another device via QR code.</source> <source>Migrate to another device via QR code.</source>
<target>Migrar hacia otro dispositivo mediante código QR.</target> <target>Migrar a otro dispositivo mediante código QR.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Migrating" xml:space="preserve"> <trans-unit id="Migrating" xml:space="preserve">
@@ -3754,6 +3773,11 @@ This is your link for group %@!</source>
<target>¡Pronto habrá más mejoras!</target> <target>¡Pronto habrá más mejoras!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Conexión de red más fiable.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Probablemente la conexión ha sido eliminada.</target> <target>Probablemente la conexión ha sido eliminada.</target>
@@ -3791,6 +3815,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Conexión de red</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Gestión de la red</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Sin conexión de red</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4083,7 +4114,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Open migration to another device" xml:space="preserve"> <trans-unit id="Open migration to another device" xml:space="preserve">
<source>Open migration to another device</source> <source>Open migration to another device</source>
<target>Abrir la migración hacia otro dispositivo</target> <target>Abrir menú migración a otro dispositivo</target>
<note>authentication reason</note> <note>authentication reason</note>
</trans-unit> </trans-unit>
<trans-unit id="Open user profiles" xml:space="preserve"> <trans-unit id="Open user profiles" xml:space="preserve">
@@ -4113,7 +4144,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Or securely share this file link" xml:space="preserve"> <trans-unit id="Or securely share this file link" xml:space="preserve">
<source>Or securely share this file link</source> <source>Or securely share this file link</source>
<target>O comparta de forma segura el enlace de este archivo</target> <target>O comparte de forma segura este enlace al archivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Or show this code" xml:space="preserve"> <trans-unit id="Or show this code" xml:space="preserve">
@@ -4123,6 +4154,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Otro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4232,7 +4264,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Please confirm that network settings are correct for this device." xml:space="preserve"> <trans-unit id="Please confirm that network settings are correct for this device." xml:space="preserve">
<source>Please confirm that network settings are correct for this device.</source> <source>Please confirm that network settings are correct for this device.</source>
<target>Por favor confirme que la configuración de red es correcta para este dispositivo.</target> <target>Por favor, confirma que la configuración de red es correcta para este dispositivo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Please contact developers.&#10;Error: %@" xml:space="preserve"> <trans-unit id="Please contact developers.&#10;Error: %@" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Error: %@</target>
<target>Posiblemente la huella digital del certificado en la dirección del servidor es incorrecta</target> <target>Posiblemente la huella digital del certificado en la dirección del servidor es incorrecta</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>E2EE postcuántica</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Conserva el último borrador del mensaje con los datos adjuntos.</target> <target>Conserva el último borrador del mensaje con los datos adjuntos.</target>
@@ -4339,7 +4366,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Profile and server connections" xml:space="preserve"> <trans-unit id="Profile and server connections" xml:space="preserve">
<source>Profile and server connections</source> <source>Profile and server connections</source>
<target>Perfil y conexiones de servidor</target> <target>Datos del perfil y conexiones</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile image" xml:space="preserve"> <trans-unit id="Profile image" xml:space="preserve">
@@ -4347,6 +4374,11 @@ Error: %@</target>
<target>Imagen del perfil</target> <target>Imagen del perfil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Imágenes del perfil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nombre del perfil</target> <target>Nombre del perfil</target>
@@ -4389,6 +4421,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>No permitir el envío de enlaces SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4443,7 +4476,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Quantum resistant encryption" xml:space="preserve"> <trans-unit id="Quantum resistant encryption" xml:space="preserve">
<source>Quantum resistant encryption</source> <source>Quantum resistant encryption</source>
<target>Cifrado resistente a la tecnología cuántica</target> <target>Cifrado resistente a tecnología cuántica</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Rate the app" xml:space="preserve"> <trans-unit id="Rate the app" xml:space="preserve">
@@ -4523,6 +4556,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Concurrencia en la recepción</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Los destinatarios no ven de quién procede este mensaje.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4656,7 +4691,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Repeat upload" xml:space="preserve"> <trans-unit id="Repeat upload" xml:space="preserve">
<source>Repeat upload</source> <source>Repeat upload</source>
<target>Repetir la carga</target> <target>Repetir subida</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Reply" xml:space="preserve"> <trans-unit id="Reply" xml:space="preserve">
@@ -4846,6 +4881,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Guardado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Guardado desde</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -4949,7 +4986,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Send a live message - it will update for the recipient(s) as you type it" xml:space="preserve"> <trans-unit id="Send a live message - it will update for the recipient(s) as you type it" xml:space="preserve">
<source>Send a live message - it will update for the recipient(s) as you type it</source> <source>Send a live message - it will update for the recipient(s) as you type it</source>
<target>Envía un mensaje en vivo: se actualizará para el(los) destinatario(s) a medida que se escribe</target> <target>Envía un mensaje en vivo: se actualizará para el (los) destinatario(s) a medida que se escribe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Send delivery receipts to" xml:space="preserve"> <trans-unit id="Send delivery receipts to" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Error: %@</target>
<target>Configuración</target> <target>Configuración</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Dar forma a las imágenes de perfil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Compartir</target> <target>Compartir</target>
@@ -5284,10 +5326,12 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<target>Los enlaces SimpleX no se permiten en este grupo.</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">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>Enlaces SimpleX no permitidos</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Error: %@</target>
<target>Alguien</target> <target>Alguien</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Cuadrada, circular o cualquier forma intermedia.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Iniciar chat</target> <target>Iniciar chat</target>
@@ -5342,32 +5391,32 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Stop" xml:space="preserve"> <trans-unit id="Stop" xml:space="preserve">
<source>Stop</source> <source>Stop</source>
<target>Detener</target> <target>Parar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop SimpleX" xml:space="preserve"> <trans-unit id="Stop SimpleX" xml:space="preserve">
<source>Stop SimpleX</source> <source>Stop SimpleX</source>
<target>Detener SimpleX</target> <target>Parar SimpleX</target>
<note>authentication reason</note> <note>authentication reason</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop chat" xml:space="preserve"> <trans-unit id="Stop chat" xml:space="preserve">
<source>Stop chat</source> <source>Stop chat</source>
<target>Detener el chat</target> <target>Parar chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop chat to enable database actions" xml:space="preserve"> <trans-unit id="Stop chat to enable database actions" xml:space="preserve">
<source>Stop chat to enable database actions</source> <source>Stop chat to enable database actions</source>
<target>Detén SimpleX para habilitar las acciones sobre la base de datos</target> <target>Para habilitar las acciones sobre la base de datos, debes parar Chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." xml:space="preserve"> <trans-unit id="Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." xml:space="preserve">
<source>Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped.</source> <source>Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped.</source>
<target>Para poder exportar, importar o eliminar la base de datos primero debes detener Chat. Durante el tiempo que esté detenido no podrás recibir ni enviar mensajes.</target> <target>Para poder exportar, importar o eliminar la base de datos primero debes parar Chat. Mientras tanto no podrás recibir ni enviar mensajes.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop chat?" xml:space="preserve"> <trans-unit id="Stop chat?" xml:space="preserve">
<source>Stop chat?</source> <source>Stop chat?</source>
<target>¿Detener Chat?</target> <target>¿Parar Chat?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Stop file" xml:space="preserve"> <trans-unit id="Stop file" xml:space="preserve">
@@ -5397,7 +5446,7 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Stopping chat" xml:space="preserve"> <trans-unit id="Stopping chat" xml:space="preserve">
<source>Stopping chat</source> <source>Stopping chat</source>
<target>Detención del chat</target> <target>Parando chat</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Submit" xml:space="preserve"> <trans-unit id="Submit" xml:space="preserve">
@@ -5512,12 +5561,12 @@ Error: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" xml:space="preserve"> <trans-unit id="Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" xml:space="preserve">
<source>Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source> <source>Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!</source>
<target>Gracias a los usuarios: [contribuye vía Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#traducir-el-aplicaciones)!</target> <target>¡Nuestro agradecimiento a todos los colaboradores, [puedes contribuir a través de Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#traducir-el-aplicaciones)!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Thanks to the users contribute via Weblate!" xml:space="preserve"> <trans-unit id="Thanks to the users contribute via Weblate!" xml:space="preserve">
<source>Thanks to the users contribute via Weblate!</source> <source>Thanks to the users contribute via Weblate!</source>
<target>¡Gracias a los colaboradores! Contribuye a través de Weblate.</target> <target>¡Nuestro agradecimiento a todos los colaboradores! Puedes contribuir a través de Weblate</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The 1st platform without any user identifiers private by design." xml:space="preserve"> <trans-unit id="The 1st platform without any user identifiers private by design." xml:space="preserve">
@@ -5534,7 +5583,7 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
</trans-unit> </trans-unit>
<trans-unit id="The app can notify you when you receive messages or contact requests - please open settings to enable." xml:space="preserve"> <trans-unit id="The app can notify you when you receive messages or contact requests - please open settings to enable." xml:space="preserve">
<source>The app can notify you when you receive messages or contact requests - please open settings to enable.</source> <source>The app can notify you when you receive messages or contact requests - please open settings to enable.</source>
<target>La aplicación puede notificarte cuando recibas mensajes o solicitudes de contacto: abre la configuración para habilitar.</target> <target>La aplicación puede notificarte cuando recibas mensajes o solicitudes de contacto: por favor, abre la configuración para activarlo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve"> <trans-unit id="The attempt to change database passphrase was not completed." xml:space="preserve">
@@ -5639,7 +5688,7 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
</trans-unit> </trans-unit>
<trans-unit id="This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." xml:space="preserve"> <trans-unit id="This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." xml:space="preserve">
<source>This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes.</source> <source>This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes.</source>
<target>Esta acción es irreversible. Se eliminarán los mensajes enviados y recibidos anteriores a la selección. Puede tardar varios minutos.</target> <target>Esta acción es irreversible. Se eliminarán los mensajes enviados y recibidos anteriores a la selección. Podría tardar varios minutos.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." xml:space="preserve"> <trans-unit id="This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." xml:space="preserve">
@@ -5654,7 +5703,7 @@ Puede ocurrir por algún bug o cuando la conexión está comprometida.</target>
</trans-unit> </trans-unit>
<trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve"> <trans-unit id="This chat is protected by quantum resistant end-to-end encryption." xml:space="preserve">
<source>This chat is protected by quantum resistant end-to-end encryption.</source> <source>This chat is protected by quantum resistant end-to-end encryption.</source>
<target>Este chat está protegido por un cifrado de extremo a extremo resistente a tecnologías cuánticas.</target> <target>Este chat está protegido por cifrado de extremo a extremo resistente a tecnología cuántica.</target>
<note>E2EE info chat item</note> <note>E2EE info chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="This device name" xml:space="preserve"> <trans-unit id="This device name" xml:space="preserve">
@@ -5954,7 +6003,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Upload failed" xml:space="preserve"> <trans-unit id="Upload failed" xml:space="preserve">
<source>Upload failed</source> <source>Upload failed</source>
<target>Error de carga</target> <target>Error de subida</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Upload file" xml:space="preserve"> <trans-unit id="Upload file" xml:space="preserve">
@@ -5964,7 +6013,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Uploading archive" xml:space="preserve"> <trans-unit id="Uploading archive" xml:space="preserve">
<source>Uploading archive</source> <source>Uploading archive</source>
<target>Subiendo el archivo</target> <target>Subiendo archivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Use .onion hosts" xml:space="preserve"> <trans-unit id="Use .onion hosts" xml:space="preserve">
@@ -6019,7 +6068,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Use the app while in the call." xml:space="preserve"> <trans-unit id="Use the app while in the call." xml:space="preserve">
<source>Use the app while in the call.</source> <source>Use the app while in the call.</source>
<target>Usar la app durante la llamada.</target> <target>Usar la aplicación durante la llamada.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="User profile" xml:space="preserve"> <trans-unit id="User profile" xml:space="preserve">
@@ -6089,12 +6138,12 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Video will be received when your contact completes uploading it." xml:space="preserve"> <trans-unit id="Video will be received when your contact completes uploading it." xml:space="preserve">
<source>Video will be received when your contact completes uploading it.</source> <source>Video will be received when your contact completes uploading it.</source>
<target>El video se recibirá cuando tu contacto termine de subirlo.</target> <target>El video se recibirá cuando el contacto termine de subirlo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Video will be received when your contact is online, please wait or check later!" xml:space="preserve"> <trans-unit id="Video will be received when your contact is online, please wait or check later!" xml:space="preserve">
<source>Video will be received when your contact is online, please wait or check later!</source> <source>Video will be received when your contact is online, please wait or check later!</source>
<target>El vídeo se recibirá cuando tu contacto esté en línea, por favor espera o compruébalo más tarde.</target> <target>El vídeo se recibirá cuando el contacto esté en línea, por favor espera o compruébalo más tarde.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Videos and files up to 1gb" xml:space="preserve"> <trans-unit id="Videos and files up to 1gb" xml:space="preserve">
@@ -6129,6 +6178,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Mensajes de voz no permitidos</target>
<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">
@@ -6163,7 +6213,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Warning: starting chat on multiple devices is not supported and will cause message delivery failures" xml:space="preserve"> <trans-unit id="Warning: starting chat on multiple devices is not supported and will cause message delivery failures" xml:space="preserve">
<source>Warning: starting chat on multiple devices is not supported and will cause message delivery failures</source> <source>Warning: starting chat on multiple devices is not supported and will cause message delivery failures</source>
<target>Advertencia: el inicio del chat en varios dispositivos no es compatible y provocará fallos en la entrega de mensajes</target> <target>Atención: el inicio del chat en varios dispositivos es incompatible y provocará fallos en la entrega de mensajes</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Warning: you may lose some data!" xml:space="preserve"> <trans-unit id="Warning: you may lose some data!" xml:space="preserve">
@@ -6188,7 +6238,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="Welcome message is too long" xml:space="preserve"> <trans-unit id="Welcome message is too long" xml:space="preserve">
<source>Welcome message is too long</source> <source>Welcome message is too long</source>
<target>El mensaje de bienvenida es demasiado largo</target> <target>Mensaje de bienvenida demasiado largo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="What's new" xml:space="preserve"> <trans-unit id="What's new" xml:space="preserve">
@@ -6201,6 +6251,11 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
<target>Si disponibles</target> <target>Si disponibles</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Al iniciar llamadas de audio y vídeo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Cuando alguien solicite conectarse podrás aceptar o rechazar la solicitud.</target> <target>Cuando alguien solicite conectarse podrás aceptar o rechazar la solicitud.</target>
@@ -6213,10 +6268,17 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>¡Será habilitado en los chats directos!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Ethernet por cable</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6256,7 +6318,7 @@ Para conectarte, pide a tu contacto que cree otro enlace de conexión y comprueb
</trans-unit> </trans-unit>
<trans-unit id="You **must not** use the same database on two devices." xml:space="preserve"> <trans-unit id="You **must not** use the same database on two devices." xml:space="preserve">
<source>You **must not** use the same database on two devices.</source> <source>You **must not** use the same database on two devices.</source>
<target>**No debe** usar la misma base de datos en dos dispositivos.</target> <target>**No debes** usar la misma base de datos en dos dispositivos.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You accepted connection" xml:space="preserve"> <trans-unit id="You accepted connection" xml:space="preserve">
@@ -6348,7 +6410,7 @@ Repeat join request?</source>
</trans-unit> </trans-unit>
<trans-unit id="You can give another try." xml:space="preserve"> <trans-unit id="You can give another try." xml:space="preserve">
<source>You can give another try.</source> <source>You can give another try.</source>
<target>Puede intentarlo de nuevo.</target> <target>Puedes intentarlo de nuevo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You can hide or mute a user profile - swipe it to the right." xml:space="preserve"> <trans-unit id="You can hide or mute a user profile - swipe it to the right." xml:space="preserve">
@@ -6495,7 +6557,7 @@ Repeat connection request?</source>
</trans-unit> </trans-unit>
<trans-unit id="You will be connected when your contact's device is online, please wait or check later!" xml:space="preserve"> <trans-unit id="You will be connected when your contact's device is online, please wait or check later!" xml:space="preserve">
<source>You will be connected when your contact's device is online, please wait or check later!</source> <source>You will be connected when your contact's device is online, please wait or check later!</source>
<target>Te conectarás cuando el dispositivo de tu contacto esté en línea, por favor espera o compruébalo más tarde.</target> <target>Te conectarás cuando el dispositivo del contacto esté en línea, por favor espera o compruébalo más tarde.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="You will be required to authenticate when you start or resume the app after 30 seconds in background." xml:space="preserve"> <trans-unit id="You will be required to authenticate when you start or resume the app after 30 seconds in background." xml:space="preserve">
@@ -6581,8 +6643,8 @@ Repeat connection request?</source>
<trans-unit id="Your contact needs to be online for the connection to complete.&#10;You can cancel this connection and remove the contact (and try later with a new link)." xml:space="preserve"> <trans-unit id="Your contact needs to be online for the connection to complete.&#10;You can cancel this connection and remove the contact (and try later with a new link)." xml:space="preserve">
<source>Your contact needs to be online for the connection to complete. <source>Your contact needs to be online for the connection to complete.
You can cancel this connection and remove the contact (and try later with a new link).</source> You can cancel this connection and remove the contact (and try later with a new link).</source>
<target>Tu contacto debe estar en línea para que se complete la conexión. <target>El contacto debe estar en línea para completar la conexión.
Puedes cancelar esta conexión y eliminar el contacto (e intentarlo más tarde con un enlace nuevo).</target> Puedes cancelarla y eliminar el contacto (e intentarlo más tarde con un enlace nuevo).</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Your contact sent a file that is larger than currently supported maximum size (%@)." xml:space="preserve"> <trans-unit id="Your contact sent a file that is larger than currently supported maximum size (%@)." xml:space="preserve">
@@ -6704,6 +6766,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>administradores</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6718,6 +6781,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>todos los miembros</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -6757,12 +6821,12 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="blocked %@" xml:space="preserve"> <trans-unit id="blocked %@" xml:space="preserve">
<source>blocked %@</source> <source>blocked %@</source>
<target>%@ bloqueado</target> <target>ha bloqueado a %@</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="blocked by admin" xml:space="preserve"> <trans-unit id="blocked by admin" xml:space="preserve">
<source>blocked by admin</source> <source>blocked by admin</source>
<target>bloqueado por el administrador</target> <target>bloqueado por administrador</target>
<note>marked deleted chat item preview text</note> <note>marked deleted chat item preview text</note>
</trans-unit> </trans-unit>
<trans-unit id="bold" xml:space="preserve"> <trans-unit id="bold" xml:space="preserve">
@@ -7052,6 +7116,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>reenviado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7263,6 +7328,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>propietarios</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7272,7 +7338,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="quantum resistant e2e encryption" xml:space="preserve"> <trans-unit id="quantum resistant e2e encryption" xml:space="preserve">
<source>quantum resistant e2e encryption</source> <source>quantum resistant e2e encryption</source>
<target>cifrado e2e resistente a la cuántica</target> <target>cifrado e2e resistente a tecnología cuántica</target>
<note>chat item text</note> <note>chat item text</note>
</trans-unit> </trans-unit>
<trans-unit id="received answer…" xml:space="preserve"> <trans-unit id="received answer…" xml:space="preserve">
@@ -7317,10 +7383,12 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>guardado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>Guardado desde %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7380,7 +7448,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="unblocked %@" xml:space="preserve"> <trans-unit id="unblocked %@" xml:space="preserve">
<source>unblocked %@</source> <source>unblocked %@</source>
<target>%@ desbloqueado</target> <target>ha desbloqueado a %@</target>
<note>rcv group event chat item</note> <note>rcv group event chat item</note>
</trans-unit> </trans-unit>
<trans-unit id="unknown" xml:space="preserve"> <trans-unit id="unknown" xml:space="preserve">
@@ -7465,6 +7533,7 @@ Los servidores de SimpleX no pueden ver tu perfil.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>tu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -2255,10 +2255,6 @@ This cannot be undone!</source>
<target>Virhe lisättäessä jäseniä</target> <target>Virhe lisättäessä jäseniä</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Virhe osoitteenvaihdossa</target> <target>Virhe osoitteenvaihdossa</target>
@@ -2688,6 +2684,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3040,6 +3040,10 @@ This cannot be undone!</source>
<target>Vastauksena</target> <target>Vastauksena</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3496,6 +3500,10 @@ This is your link for group %@!</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>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Viestin teksti</target> <target>Viestin teksti</target>
@@ -3600,6 +3608,10 @@ This is your link for group %@!</source>
<target>Lisää parannuksia on tulossa pian!</target> <target>Lisää parannuksia on tulossa pian!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Todennäköisesti tämä yhteys on poistettu.</target> <target>Todennäköisesti tämä yhteys on poistettu.</target>
@@ -3639,6 +3651,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>Verkkoasetukset</target> <target>Verkkoasetukset</target>
@@ -4118,10 +4134,6 @@ Error: %@</source>
<target>Palvelimen osoitteen varmenteen sormenjälki on mahdollisesti virheellinen</target> <target>Palvelimen osoitteen varmenteen sormenjälki on mahdollisesti virheellinen</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Säilytä viimeinen viestiluonnos liitteineen.</target> <target>Säilytä viimeinen viestiluonnos liitteineen.</target>
@@ -4171,6 +4183,10 @@ Error: %@</source>
<target>Profiilikuva</target> <target>Profiilikuva</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4965,6 +4981,10 @@ Error: %@</source>
<target>Asetukset</target> <target>Asetukset</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Jaa</target> <target>Jaa</target>
@@ -5125,6 +5145,10 @@ Error: %@</source>
<target>Joku</target> <target>Joku</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Aloita keskustelu</target> <target>Aloita keskustelu</target>
@@ -5960,6 +5984,10 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<target>Kun saatavilla</target> <target>Kun saatavilla</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Kun ihmiset pyytävät yhteyden muodostamista, voit hyväksyä tai hylätä sen.</target> <target>Kun ihmiset pyytävät yhteyden muodostamista, voit hyväksyä tai hylätä sen.</target>
@@ -5974,6 +6002,10 @@ Jos haluat muodostaa yhteyden, pyydä kontaktiasi luomaan toinen yhteyslinkki ja
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Autorise l'envoi de liens SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Cellulaire</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Télécharger</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Activé pour</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ Cette opération ne peut être annulée !</target>
<target>Erreur lors de l'ajout de membre·s</target> <target>Erreur lors de l'ajout de membre·s</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Erreur lors de la négociation du chiffrement PQ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Erreur de changement d'adresse</target> <target>Erreur de changement d'adresse</target>
@@ -2731,6 +2730,7 @@ Cette opération ne peut être annulée !</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Fichiers et médias non autorisés</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Transférer</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Transférer et sauvegarder des messages</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Transféré</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Transféré depuis</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ Cette opération ne peut être annulée !</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <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> <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="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ Cette opération ne peut être annulée !</target>
<target>En réponse à</target> <target>En réponse à</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Sons d'appel</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3639,6 +3653,11 @@ Voici votre lien pour le groupe %@ !</target>
<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>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>La source du message reste privée.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Texte du message</target> <target>Texte du message</target>
@@ -3754,6 +3773,11 @@ Voici votre lien pour le groupe %@ !</target>
<target>Plus d'améliorations à venir !</target> <target>Plus d'améliorations à venir !</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Connexion réseau plus fiable.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Connexion probablement supprimée.</target> <target>Connexion probablement supprimée.</target>
@@ -3791,6 +3815,12 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Connexion au réseau</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Gestion du réseau</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Pas de connexion au réseau</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ Voici votre lien pour le groupe %@ !</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Autres</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Erreur: %@</target>
<target>Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte</target> <target>Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>E2EE post-quantique</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Conserver le brouillon du dernier message, avec les pièces jointes.</target> <target>Conserver le brouillon du dernier message, avec les pièces jointes.</target>
@@ -4347,6 +4374,11 @@ Erreur: %@</target>
<target>Image de profil</target> <target>Image de profil</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Images de profil</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nom du profil</target> <target>Nom du profil</target>
@@ -4389,6 +4421,7 @@ Erreur: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Interdire l'envoi de liens SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Erreur: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Réception simultanée</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Erreur: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Le(s) destinataire(s) ne peut(vent) pas voir de qui provient ce message.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Erreur: %@</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Erreur: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Enregistré depuis</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Erreur: %@</target>
<target>Paramètres</target> <target>Paramètres</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Images de profil modelable</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Partager</target> <target>Partager</target>
@@ -5284,10 +5326,12 @@ Erreur: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<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>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>Les liens SimpleX ne sont pas autorisés</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Erreur: %@</target>
<target>Quelqu'un</target> <target>Quelqu'un</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Carré, circulaire, ou toute autre forme intermédiaire.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Démarrer le chat</target> <target>Démarrer le chat</target>
@@ -6128,6 +6177,7 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Les messages vocaux ne sont pas autorisés</target>
<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">
@@ -6200,6 +6250,11 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
<target>Quand disponible</target> <target>Quand disponible</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Lors des appels audio et vidéo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Vous pouvez accepter ou refuser les demandes de contacts.</target> <target>Vous pouvez accepter ou refuser les demandes de contacts.</target>
@@ -6212,10 +6267,17 @@ Pour vous connecter, veuillez demander à votre contact de créer un autre lien
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Activé dans les discussions directes!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Ethernet câblé</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>admins</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>tous les membres</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>transféré</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>propriétaires</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>enregistré à partir de %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ Les serveurs SimpleX ne peuvent pas voir votre profil.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>vous</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
File diff suppressed because it is too large Load Diff
@@ -104,7 +104,7 @@
</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>%@ si è connesso/a</target> <target>%@ connesso/a</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ downloaded" xml:space="preserve"> <trans-unit id="%@ downloaded" xml:space="preserve">
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Consenti di inviare link di SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Mobile</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Scarica</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Attivo per</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ Non è reversibile!</target>
<target>Errore di aggiunta membro/i</target> <target>Errore di aggiunta membro/i</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Errore nel consentire la crittografia PQ al contatto</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Errore nella modifica dell'indirizzo</target> <target>Errore nella modifica dell'indirizzo</target>
@@ -2731,6 +2730,7 @@ Non è reversibile!</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>File e multimediali non consentiti</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Inoltra</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Inoltra e salva i messaggi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Inoltrato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Inoltrato da</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ Non è reversibile!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>I membri del gruppo possono inviare link di Simplex.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ Non è reversibile!</target>
<target>In risposta a</target> <target>In risposta a</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Suoni nelle chiamate</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3639,6 +3653,11 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Le reazioni ai messaggi sono vietate in questo gruppo.</target> <target>Le reazioni ai messaggi sono vietate in questo gruppo.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>La fonte del messaggio resta privata.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Testo del messaggio</target> <target>Testo del messaggio</target>
@@ -3754,6 +3773,11 @@ Questo è il tuo link per il gruppo %@!</target>
<target>Altri miglioramenti sono in arrivo!</target> <target>Altri miglioramenti sono in arrivo!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Connessione di rete più affidabile.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Probabilmente questa connessione è stata eliminata.</target> <target>Probabilmente questa connessione è stata eliminata.</target>
@@ -3791,6 +3815,12 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Connessione di rete</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Gestione della rete</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Nessuna connessione di rete</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ Questo è il tuo link per il gruppo %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Altro</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Errore: %@</target>
<target>Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata</target> <target>Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>E2EE post-quantistica</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Conserva la bozza dell'ultimo messaggio, con gli allegati.</target> <target>Conserva la bozza dell'ultimo messaggio, con gli allegati.</target>
@@ -4347,6 +4374,11 @@ Errore: %@</target>
<target>Immagine del profilo</target> <target>Immagine del profilo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Immagini del profilo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nome del profilo</target> <target>Nome del profilo</target>
@@ -4389,6 +4421,7 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Vieta l'invio di link di SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Ricezione concomitanza</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>I destinatari non possono vedere da chi proviene questo messaggio.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Salvato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Salvato da</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Errore: %@</target>
<target>Impostazioni</target> <target>Impostazioni</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Forma delle immagini del profilo</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Condividi</target> <target>Condividi</target>
@@ -5284,10 +5326,12 @@ Errore: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<target>I link di SimpleX sono vietati in questo gruppo.</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">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>Link di SimpleX non consentiti</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Errore: %@</target>
<target>Qualcuno</target> <target>Qualcuno</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Quadrata, circolare o qualsiasi forma tra le due.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Avvia chat</target> <target>Avvia chat</target>
@@ -6128,6 +6177,7 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Messaggi vocali non consentiti</target>
<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">
@@ -6200,6 +6250,11 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
<target>Quando disponibili</target> <target>Quando disponibili</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Quando si connettono le chiamate audio e video.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Quando le persone chiedono di connettersi, puoi accettare o rifiutare.</target> <target>Quando le persone chiedono di connettersi, puoi accettare o rifiutare.</target>
@@ -6212,10 +6267,17 @@ Per connetterti, chiedi al tuo contatto di creare un altro link di connessione e
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Viene attivata nelle chat dirette!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Cavo ethernet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>amministratori</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>tutti i membri</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>inoltrato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>proprietari</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>salvato</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>salvato da %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ I server di SimpleX non possono vedere il tuo profilo.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>tu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -109,6 +109,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ downloaded" xml:space="preserve"> <trans-unit id="%@ downloaded" xml:space="preserve">
<source>%@ downloaded</source> <source>%@ 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="%@ is connected!" xml:space="preserve"> <trans-unit id="%@ is connected!" xml:space="preserve">
@@ -133,6 +134,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@ uploaded" xml:space="preserve"> <trans-unit id="%@ uploaded" xml:space="preserve">
<source>%@ uploaded</source> <source>%@ uploaded</source>
<target>%@ アップロード済</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@ wants to connect!" xml:space="preserve"> <trans-unit id="%@ wants to connect!" xml:space="preserve">
@@ -142,6 +144,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld members" xml:space="preserve"> <trans-unit id="%@, %@ and %lld members" xml:space="preserve">
<source>%@, %@ and %lld members</source> <source>%@, %@ and %lld members</source>
<target>%@や%@など%lld人のメンバー</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve"> <trans-unit id="%@, %@ and %lld other members connected" xml:space="preserve">
@@ -211,6 +214,7 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld group events" xml:space="preserve"> <trans-unit id="%lld group events" xml:space="preserve">
<source>%lld group events</source> <source>%lld group events</source>
<target>%lld件のグループイベント</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld members" xml:space="preserve"> <trans-unit id="%lld members" xml:space="preserve">
@@ -220,10 +224,12 @@
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked" xml:space="preserve"> <trans-unit id="%lld messages blocked" xml:space="preserve">
<source>%lld messages blocked</source> <source>%lld messages blocked</source>
<target>%lld件のメッセージをブロック</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages blocked by admin" xml:space="preserve"> <trans-unit id="%lld messages blocked by admin" xml:space="preserve">
<source>%lld messages blocked by admin</source> <source>%lld messages blocked by admin</source>
<target>%lldのメッセージが管理者によりブロック済</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="%lld messages marked deleted" xml:space="preserve"> <trans-unit id="%lld messages marked deleted" xml:space="preserve">
@@ -308,10 +314,12 @@
</trans-unit> </trans-unit>
<trans-unit id="(new)" xml:space="preserve"> <trans-unit id="(new)" xml:space="preserve">
<source>(new)</source> <source>(new)</source>
<target>(新規)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="(this device v%@)" xml:space="preserve"> <trans-unit id="(this device v%@)" xml:space="preserve">
<source>(this device v%@)</source> <source>(this device v%@)</source>
<target>(このデバイス v%@)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id=")" xml:space="preserve"> <trans-unit id=")" xml:space="preserve">
@@ -321,6 +329,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Add contact**: to create a new invitation link, or connect via a link you received." xml:space="preserve"> <trans-unit id="**Add contact**: to create a new invitation link, or connect via a link you received." xml:space="preserve">
<source>**Add contact**: to create a new invitation link, or connect via a link you received.</source> <source>**Add contact**: to create a new invitation link, or connect via a link you received.</source>
<target>**コンタクトの追加**: 新しい招待リンクを作成するか、受け取ったリンクから接続します。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Add new contact**: to create your one-time QR Code for your contact." xml:space="preserve"> <trans-unit id="**Add new contact**: to create your one-time QR Code for your contact." xml:space="preserve">
@@ -330,6 +339,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Create group**: to create a new group." xml:space="preserve"> <trans-unit id="**Create group**: to create a new group." xml:space="preserve">
<source>**Create group**: to create a new group.</source> <source>**Create group**: to create a new group.</source>
<target>**グループ作成**: 新しいグループを作成する。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve"> <trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
@@ -344,6 +354,7 @@
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve"> <trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source> <source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
<target>**注意**: 2つの端末で同じデータベースを使用すると、セキュリティ保護として、あなたが接続しているメッセージの復号化が解除されます。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve"> <trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
@@ -363,16 +374,17 @@
</trans-unit> </trans-unit>
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve"> <trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
<source>**Warning**: the archive will be removed.</source> <source>**Warning**: the archive will be removed.</source>
<target>**警告**: アーカイブデータは削除されます。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**e2e encrypted** audio call" xml:space="preserve"> <trans-unit id="**e2e encrypted** audio call" xml:space="preserve">
<source>**e2e encrypted** audio call</source> <source>**e2e encrypted** audio call</source>
<target>**e2e 暗号化**音声通話</target> <target>**エンドツーエンド暗号化済み**音声通話</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**e2e encrypted** video call" xml:space="preserve"> <trans-unit id="**e2e encrypted** video call" xml:space="preserve">
<source>**e2e encrypted** video call</source> <source>**e2e encrypted** video call</source>
<target>**e2e暗号化**ビデオ通話</target> <target>**エンドツーエンド暗号化済み**の テレビ電話 通話</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="*bold*" xml:space="preserve"> <trans-unit id="*bold*" xml:space="preserve">
@@ -422,6 +434,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0 sec" xml:space="preserve"> <trans-unit id="0 sec" xml:space="preserve">
<source>0 sec</source> <source>0 sec</source>
<target>0 秒</target>
<note>time to disappear</note> <note>time to disappear</note>
</trans-unit> </trans-unit>
<trans-unit id="0s" xml:space="preserve"> <trans-unit id="0s" xml:space="preserve">
@@ -672,6 +685,7 @@
</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"> <trans-unit id="All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." xml:space="preserve">
<source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source> <source>All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays.</source>
<target>すべての連絡先、会話、ファイルは安全に暗号化され、設定されたXFTPリレーに分割でアップロードされます。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow" xml:space="preserve"> <trans-unit id="Allow" xml:space="preserve">
@@ -716,11 +730,12 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve"> <trans-unit id="Allow to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Allow to irreversibly delete sent messages. (24 hours)</source> <source>Allow to irreversibly delete sent messages. (24 hours)</source>
<target>送信済みメッセージの永久削除を許可する。</target> <target>送信済みメッセージの永久削除を許可する。(24時間)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>SimpleXリンクの送信を許可。</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -755,7 +770,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve"> <trans-unit id="Allow your contacts to irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source> <source>Allow your contacts to irreversibly delete sent messages. (24 hours)</source>
<target>送信相手が永久メッセージ削除するのを許可する。</target> <target>送信相手が永久メッセージ削除するのを許可する。(24時間)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve"> <trans-unit id="Allow your contacts to send disappearing messages." xml:space="preserve">
@@ -775,10 +790,12 @@
</trans-unit> </trans-unit>
<trans-unit id="Already connecting!" xml:space="preserve"> <trans-unit id="Already connecting!" xml:space="preserve">
<source>Already connecting!</source> <source>Already 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="Already joining the group!" xml:space="preserve"> <trans-unit id="Already joining the group!" xml:space="preserve">
<source>Already joining the group!</source> <source>Already joining the group!</source>
<target>すでにグループに参加しています!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Always use relay" xml:space="preserve"> <trans-unit id="Always use relay" xml:space="preserve">
@@ -803,6 +820,7 @@
</trans-unit> </trans-unit>
<trans-unit id="App data migration" xml:space="preserve"> <trans-unit id="App data migration" xml:space="preserve">
<source>App data migration</source> <source>App data migration</source>
<target>アプリデータの移行</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="App encrypts new local files (except videos)." xml:space="preserve"> <trans-unit id="App encrypts new local files (except videos)." xml:space="preserve">
@@ -975,7 +993,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can irreversibly delete sent messages. (24 hours)" xml:space="preserve"> <trans-unit id="Both you and your contact can irreversibly delete sent messages. (24 hours)" xml:space="preserve">
<source>Both you and your contact can irreversibly delete sent messages. (24 hours)</source> <source>Both you and your contact can irreversibly delete sent messages. (24 hours)</source>
<target>あなたと連絡相手が送信済みメッセージを永久削除できます。</target> <target>あなたと連絡相手が送信済みメッセージを永久削除できます。(24時間)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Both you and your contact can make calls." xml:space="preserve"> <trans-unit id="Both you and your contact can make calls." xml:space="preserve">
@@ -2262,10 +2280,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>アドレス変更にエラー発生</target> <target>アドレス変更にエラー発生</target>
@@ -2695,6 +2709,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -2806,7 +2824,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group members can irreversibly delete sent messages. (24 hours)" xml:space="preserve"> <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> <source>Group members can irreversibly delete sent messages. (24 hours)</source>
<target>グループのメンバーがメッセージを完全削除することができます。</target> <target>グループのメンバーがメッセージを完全削除することができます。(24時間)</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 SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
@@ -3047,6 +3065,10 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>シークレットモード</target> <target>シークレットモード</target>
@@ -3502,6 +3524,10 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>メッセージ内容</target> <target>メッセージ内容</target>
@@ -3606,6 +3632,10 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>おそらく、この接続は削除されています。</target> <target>おそらく、この接続は削除されています。</target>
@@ -3645,6 +3675,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>ネットワーク設定</target> <target>ネットワーク設定</target>
@@ -3862,7 +3896,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve"> <trans-unit id="Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" xml:space="preserve">
<source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source> <source>Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)</source>
<target>メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。</target> <target>メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。(24時間)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only you can make calls." xml:space="preserve"> <trans-unit id="Only you can make calls." xml:space="preserve">
@@ -3887,7 +3921,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" xml:space="preserve"> <trans-unit id="Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" xml:space="preserve">
<source>Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)</source> <source>Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)</source>
<target>メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。</target> <target>メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。(24時間)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Only your contact can make calls." xml:space="preserve"> <trans-unit id="Only your contact can make calls." xml:space="preserve">
@@ -4126,10 +4160,6 @@ Error: %@</source>
<target>サーバアドレスの証明証IDが正しくないかもしれません</target> <target>サーバアドレスの証明証IDが正しくないかもしれません</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>添付を含めて、下書きを保存する。</target> <target>添付を含めて、下書きを保存する。</target>
@@ -4179,6 +4209,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="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4965,6 +4999,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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>共有する</target> <target>共有する</target>
@@ -5126,6 +5164,10 @@ Error: %@</source>
<target>誰か</target> <target>誰か</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>チャットを開始する</target> <target>チャットを開始する</target>
@@ -5960,6 +6002,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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>接続が要求されたら、それを受け入れるか拒否するかを選択できます。</target> <target>接続が要求されたら、それを受け入れるか拒否するかを選択できます。</target>
@@ -5974,6 +6020,10 @@ To connect, please ask your contact to create another connection link and check
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Sta toe dat SimpleX-links worden verzonden.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Mobiel</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Downloaden</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Ingeschakeld voor</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>Fout bij het toevoegen van leden</target> <target>Fout bij het toevoegen van leden</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Fout bij het toestaan van contact PQ-versleuteling</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Fout bij wijzigen van adres</target> <target>Fout bij wijzigen van adres</target>
@@ -2731,6 +2730,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Bestanden en media niet toegestaan</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Doorsturen</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Berichten doorsturen en opslaan</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Doorgestuurd</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Doorgestuurd vanuit</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ Dit kan niet ongedaan gemaakt worden!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>Groepsleden kunnen SimpleX-links verzenden.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ Dit kan niet ongedaan gemaakt worden!</target>
<target>In antwoord op</target> <target>In antwoord op</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Geluiden tijdens het bellen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3639,6 +3653,11 @@ Dit is jouw link voor groep %@!</target>
<target>Reacties op berichten zijn verboden in deze groep.</target> <target>Reacties op berichten zijn verboden in deze groep.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Berichtbron blijft privé.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Bericht tekst</target> <target>Bericht tekst</target>
@@ -3754,6 +3773,11 @@ Dit is jouw link voor groep %@!</target>
<target>Meer verbeteringen volgen snel!</target> <target>Meer verbeteringen volgen snel!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Betrouwbaardere netwerkverbinding.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Hoogstwaarschijnlijk is deze verbinding verwijderd.</target> <target>Hoogstwaarschijnlijk is deze verbinding verwijderd.</target>
@@ -3791,6 +3815,12 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Netwerkverbinding</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Netwerkbeheer</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Geen netwerkverbinding</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ Dit is jouw link voor groep %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Ander</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Fout: %@</target>
<target>Mogelijk is de certificaat vingerafdruk in het server adres onjuist</target> <target>Mogelijk is de certificaat vingerafdruk in het server adres onjuist</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Post-quantum E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Bewaar het laatste berichtconcept, met bijlagen.</target> <target>Bewaar het laatste berichtconcept, met bijlagen.</target>
@@ -4347,6 +4374,11 @@ Fout: %@</target>
<target>profielfoto</target> <target>profielfoto</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Profiel afbeeldingen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profielnaam</target> <target>Profielnaam</target>
@@ -4389,6 +4421,7 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Verbied het verzenden van SimpleX-links</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Gelijktijdig ontvangen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Ontvanger(s) kunnen niet zien van wie dit bericht afkomstig is.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Opgeslagen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Opgeslagen van</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Fout: %@</target>
<target>Instellingen</target> <target>Instellingen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Vorm profiel afbeeldingen</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Deel</target> <target>Deel</target>
@@ -5284,10 +5326,12 @@ Fout: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<target>SimpleX-links zijn in deze groep verboden.</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">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>SimpleX-links zijn niet toegestaan</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Fout: %@</target>
<target>Iemand</target> <target>Iemand</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Vierkant, cirkel of iets daartussenin.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Begin gesprek</target> <target>Begin gesprek</target>
@@ -6128,6 +6177,7 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Spraakberichten niet toegestaan</target>
<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">
@@ -6200,6 +6250,11 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
<target>Wanneer beschikbaar</target> <target>Wanneer beschikbaar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Bij het verbinden van audio- en video-oproepen.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.</target> <target>Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.</target>
@@ -6212,10 +6267,17 @@ Om verbinding te maken, vraagt u uw contact om een andere verbinding link te mak
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>Wifi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Wordt ingeschakeld in directe chats!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Bekabeld Ethernet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>beheerders</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>alle leden</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>doorgestuurd</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>eigenaren</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>opgeslagen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>opgeslagen van %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ SimpleX servers kunnen uw profiel niet zien.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>jij</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -39,7 +39,7 @@
</trans-unit> </trans-unit>
<trans-unit id="!1 colored!" xml:space="preserve"> <trans-unit id="!1 colored!" xml:space="preserve">
<source>!1 colored!</source> <source>!1 colored!</source>
<target>!1 kolorowy!</target> <target>!1 pokolorowany!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="# %@" xml:space="preserve"> <trans-unit id="# %@" xml:space="preserve">
@@ -344,32 +344,32 @@
</trans-unit> </trans-unit>
<trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve"> <trans-unit id="**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." xml:space="preserve">
<source>**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have.</source> <source>**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have.</source>
<target>**Bardziej prywatny**: sprawdzanie nowych wiadomości co 20 minut. Token urządzenia jest współdzielony z serwerem SimpleX Chat, ale nie informacje o liczbie kontaktów lub wiadomości.</target> <target>**Bardziej prywatny**: sprawdzanie nowych wiadomości odbywa się co 20 minut. Współdzielony z serwerem SimpleX Chat jest token urządzenia, lecz nie informacje o liczbie kontaktów lub wiadomości.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." xml:space="preserve"> <trans-unit id="**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." xml:space="preserve">
<source>**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app).</source> <source>**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app).</source>
<target>**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, sprawdzaj wiadomości okresowo w tle (zależy jak często korzystasz z aplikacji).</target> <target>**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, wiadomości sprawdzane są co jakiś czas w tle (zależne od tego jak często korzystasz z aplikacji).</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve"> <trans-unit id="**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." xml:space="preserve">
<source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source> <source>**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection.</source>
<target>*Uwaga*: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie.</target> <target>*Uwaga*: w celach bezpieczeństwa użycie tej samej bazy danych na dwóch różnych urządzeniach spowoduje brak możliwości odszyfrowywania wiadomości z Twoich połączeń.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve"> <trans-unit id="**Please note**: you will NOT be able to recover or change passphrase if you lose it." xml:space="preserve">
<source>**Please note**: you will NOT be able to recover or change passphrase if you lose it.</source> <source>**Please note**: you will NOT be able to recover or change passphrase if you lose it.</source>
<target>**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić hasła, jeśli je stracisz.</target> <target>**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić kodu dostępu, jeśli go stracisz.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." xml:space="preserve"> <trans-unit id="**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." xml:space="preserve">
<source>**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from.</source> <source>**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from.</source>
<target>**Zalecane**: token urządzenia i powiadomienia są wysyłane do serwera powiadomień SimpleX Chat, ale nie treść wiadomości, rozmiar lub od kogo jest.</target> <target>**Zalecane**: do serwera powiadomień SimpleX Chat wysyłany jest token urządzenia i powiadomienia, lecz nie treść wiadomości, jej rozmiar lub od kogo ona jest.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve"> <trans-unit id="**Warning**: Instant push notifications require passphrase saved in Keychain." xml:space="preserve">
<source>**Warning**: Instant push notifications require passphrase saved in Keychain.</source> <source>**Warning**: Instant push notifications require passphrase saved in Keychain.</source>
<target>**Uwaga**: Natychmiastowe powiadomienia push wymagają hasła zapisanego w Keychain.</target> <target>**Uwaga**: Natychmiastowe powiadomienia push wymagają zapisania kodu dostępu w Keychain.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="**Warning**: the archive will be removed." xml:space="preserve"> <trans-unit id="**Warning**: the archive will be removed." xml:space="preserve">
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Zezwól na wysyłanie linków SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Sieć komórkowa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Pobierz</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Włączony dla</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ To nie może być cofnięte!</target>
<target>Błąd dodawania członka(ów)</target> <target>Błąd dodawania członka(ów)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Błąd pozwalania kontaktowi na szyfrowanie PQ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Błąd zmiany adresu</target> <target>Błąd zmiany adresu</target>
@@ -2731,6 +2730,7 @@ To nie może być cofnięte!</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Pliki i multimedia nie są dozwolone</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Przekaż dalej</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Przesyłaj dalej i zapisuj wiadomości</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Przekazane dalej</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Przekazane dalej od</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ To nie może być cofnięte!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <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> <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="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ To nie może być cofnięte!</target>
<target>W odpowiedzi na</target> <target>W odpowiedzi na</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Dźwięki w rozmowie</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Incognito</target> <target>Incognito</target>
@@ -3639,6 +3653,11 @@ To jest twój link do grupy %@!</target>
<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>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Źródło wiadomości pozostaje prywatne.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Tekst wiadomości</target> <target>Tekst wiadomości</target>
@@ -3754,6 +3773,11 @@ To jest twój link do grupy %@!</target>
<target>Więcej ulepszeń już wkrótce!</target> <target>Więcej ulepszeń już wkrótce!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Bardziej niezawodne połączenia sieciowe.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Najprawdopodobniej to połączenie jest usunięte.</target> <target>Najprawdopodobniej to połączenie jest usunięte.</target>
@@ -3791,6 +3815,12 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Połączenie z siecią</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Zarządzenie sieciowe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Brak połączenia z siecią</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ To jest twój link do grupy %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Inne</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4249,12 +4281,12 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Please enter correct current passphrase." xml:space="preserve"> <trans-unit id="Please enter correct current passphrase." xml:space="preserve">
<source>Please enter correct current passphrase.</source> <source>Please enter correct current passphrase.</source>
<target>Wprowadź poprawne aktualne hasło.</target> <target>Wprowadź poprawny obecny kod dostępu.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Please enter the previous password after restoring database backup. This action can not be undone." xml:space="preserve"> <trans-unit id="Please enter the previous password after restoring database backup. This action can not be undone." xml:space="preserve">
<source>Please enter the previous password after restoring database backup. This action can not be undone.</source> <source>Please enter the previous password after restoring database backup. This action can not be undone.</source>
<target>Proszę podać poprzednie hasło po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć.</target> <target>Proszę podać poprzedni kod dostępu po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Please remember or store it securely - there is no way to recover a lost passcode!" xml:space="preserve"> <trans-unit id="Please remember or store it securely - there is no way to recover a lost passcode!" xml:space="preserve">
@@ -4274,12 +4306,12 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Please store passphrase securely, you will NOT be able to access chat if you lose it." xml:space="preserve"> <trans-unit id="Please store passphrase securely, you will NOT be able to access chat if you lose it." xml:space="preserve">
<source>Please store passphrase securely, you will NOT be able to access chat if you lose it.</source> <source>Please store passphrase securely, you will NOT be able to access chat if you lose it.</source>
<target>Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu.</target> <target>Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Please store passphrase securely, you will NOT be able to change it if you lose it." xml:space="preserve"> <trans-unit id="Please store passphrase securely, you will NOT be able to change it if you lose it." xml:space="preserve">
<source>Please store passphrase securely, you will NOT be able to change it if you lose it.</source> <source>Please store passphrase securely, you will NOT be able to change it if you lose it.</source>
<target>Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można go zmienić.</target> <target>Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można go zmienić.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Polish interface" xml:space="preserve"> <trans-unit id="Polish interface" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Błąd: %@</target>
<target>Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy</target> <target>Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Postkwantowe E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami.</target> <target>Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami.</target>
@@ -4347,6 +4374,11 @@ Błąd: %@</target>
<target>Zdjęcie profilowe</target> <target>Zdjęcie profilowe</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Zdjęcia profilowe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Nazwa profilu</target> <target>Nazwa profilu</target>
@@ -4389,6 +4421,7 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Zabroń wysyłania linków SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Konkurencyjne odbieranie</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Odbiorca/y nie mogą zobaczyć od kogo jest ta wiadomość.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Błąd: %@</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Zapisane od</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ Błąd: %@</target>
<target>Ustawienia</target> <target>Ustawienia</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Kształtuj obrazy profilowe</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Udostępnij</target> <target>Udostępnij</target>
@@ -5284,10 +5326,12 @@ Błąd: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<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>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>Linki SimpleX są niedozwolone</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Błąd: %@</target>
<target>Ktoś</target> <target>Ktoś</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Kwadrat, okrąg lub cokolwiek pomiędzy.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Rozpocznij czat</target> <target>Rozpocznij czat</target>
@@ -6128,6 +6177,7 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Wiadomości głosowe są niedozwolone</target>
<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">
@@ -6200,6 +6250,11 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
<target>Gdy dostępny</target> <target>Gdy dostępny</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Podczas łączenia połączeń audio i wideo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić.</target> <target>Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić.</target>
@@ -6212,10 +6267,17 @@ Aby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połąc
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Zostanie włączone w czatach bezpośrednich!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Połączenie ethernet (po kablu)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>administratorzy</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>wszyscy członkowie</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>przekazane dalej</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>właściciele</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>zapisane od %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ Serwery SimpleX nie mogą zobaczyć Twojego profilu.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>Ty</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -610,160 +610,197 @@ Available in v5.1</source>
<source>Can't delete user profile!</source> <source>Can't delete user profile!</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Can't invite contact!" xml:space="preserve"> <trans-unit id="Can't invite contact!" xml:space="preserve" approved="no">
<source>Can't invite contact!</source> <source>Can't invite contact!</source>
<target state="translated">Não é possível convidar contato!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Can't invite contacts!" xml:space="preserve"> <trans-unit id="Can't invite contacts!" xml:space="preserve" approved="no">
<source>Can't invite contacts!</source> <source>Can't invite contacts!</source>
<target state="translated">Não é possível convidar contatos!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Cancel" xml:space="preserve"> <trans-unit id="Cancel" xml:space="preserve" approved="no">
<source>Cancel</source> <source>Cancel</source>
<target state="translated">Cancelar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Cannot access keychain to save database password" xml:space="preserve"> <trans-unit id="Cannot access keychain to save database password" xml:space="preserve" approved="no">
<source>Cannot access keychain to save database password</source> <source>Cannot access keychain to save database password</source>
<target state="translated">Não é possível acessar as chaves para salvar a senha do banco de dados</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Cannot receive file" xml:space="preserve"> <trans-unit id="Cannot receive file" xml:space="preserve" approved="no">
<source>Cannot receive file</source> <source>Cannot receive file</source>
<target state="translated">Não é possível receber o arquivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve" approved="no">
<source>Change</source> <source>Change</source>
<target state="translated">Mudar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change passcode" xml:space="preserve"> <trans-unit id="Change passcode" xml:space="preserve">
<source>Change passcode</source> <source>Change passcode</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change database passphrase?" xml:space="preserve"> <trans-unit id="Change database passphrase?" xml:space="preserve" approved="no">
<source>Change database passphrase?</source> <source>Change database passphrase?</source>
<target state="translated">Alterar a senha do banco de dados?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change lock mode" xml:space="preserve"> <trans-unit id="Change lock mode" xml:space="preserve" approved="no">
<source>Change lock mode</source> <source>Change lock mode</source>
<target state="translated">Alterar modo de bloqueio</target>
<note>authentication reason</note> <note>authentication reason</note>
</trans-unit> </trans-unit>
<trans-unit id="Change member role?" xml:space="preserve"> <trans-unit id="Change member role?" xml:space="preserve" approved="no">
<source>Change member role?</source> <source>Change member role?</source>
<target state="translated">Alterar a função do membro?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change passcode" xml:space="preserve"> <trans-unit id="Change passcode" xml:space="preserve" approved="no">
<source>Change passcode</source> <source>Change passcode</source>
<target state="translated">Alterar senha</target>
<note>authentication reason</note> <note>authentication reason</note>
</trans-unit> </trans-unit>
<trans-unit id="Change receiving address" xml:space="preserve"> <trans-unit id="Change receiving address" xml:space="preserve" approved="no">
<source>Change receiving address</source> <source>Change receiving address</source>
<target state="translated">Alterar endereço de recebimento</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change receiving address?" xml:space="preserve"> <trans-unit id="Change receiving address?" xml:space="preserve" approved="no">
<source>Change receiving address?</source> <source>Change receiving address?</source>
<target state="translated">Alterar endereço de recebimento?</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change role" xml:space="preserve"> <trans-unit id="Change role" xml:space="preserve" approved="no">
<source>Change role</source> <source>Change role</source>
<target state="translated">Mudar função</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat archive" xml:space="preserve"> <trans-unit id="Chat archive" xml:space="preserve" approved="no">
<source>Chat archive</source> <source>Chat archive</source>
<target state="translated">Arquivar conversa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat console" xml:space="preserve"> <trans-unit id="Chat console" xml:space="preserve" approved="no">
<source>Chat console</source> <source>Chat console</source>
<target state="translated">Console da conversa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat database" xml:space="preserve"> <trans-unit id="Chat database" xml:space="preserve" approved="no">
<source>Chat database</source> <source>Chat database</source>
<target state="translated">Banco de Dados da conversa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat database deleted" xml:space="preserve"> <trans-unit id="Chat database deleted" xml:space="preserve" approved="no">
<source>Chat database deleted</source> <source>Chat database deleted</source>
<target state="translated">Banco de Dados da conversa apagado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat database imported" xml:space="preserve"> <trans-unit id="Chat database imported" xml:space="preserve" approved="no">
<source>Chat database imported</source> <source>Chat database imported</source>
<target state="translated">Banco de Dados da conversa importado</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat is running" xml:space="preserve"> <trans-unit id="Chat is running" xml:space="preserve" approved="no">
<source>Chat is running</source> <source>Chat is running</source>
<target state="translated">A conversa está em execução</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat is stopped" xml:space="preserve"> <trans-unit id="Chat is stopped" xml:space="preserve">
<source>Chat is stopped</source> <source>Chat is stopped</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chat preferences" xml:space="preserve"> <trans-unit id="Chat preferences" xml:space="preserve" approved="no">
<source>Chat preferences</source> <source>Chat preferences</source>
<target state="translated">Preferências da conversa</target>
<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" approved="no">
<source>Chats</source> <source>Chats</source>
<target state="translated">Conversas</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Check server address and try again." xml:space="preserve"> <trans-unit id="Check server address and try again." xml:space="preserve" approved="no">
<source>Check server address and try again.</source> <source>Check server address and try again.</source>
<target state="translated">Verifique o endereço do servidor e tente novamente.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Chinese and Spanish interface" xml:space="preserve"> <trans-unit id="Chinese and Spanish interface" xml:space="preserve" approved="no">
<source>Chinese and Spanish interface</source> <source>Chinese and Spanish interface</source>
<target state="translated">Interface em Chinês e Espanhol</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Choose file" xml:space="preserve"> <trans-unit id="Choose file" xml:space="preserve" approved="no">
<source>Choose file</source> <source>Choose file</source>
<target state="translated">Escolher arquivo</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Choose from library" xml:space="preserve"> <trans-unit id="Choose from library" xml:space="preserve" approved="no">
<source>Choose from library</source> <source>Choose from library</source>
<target state="translated">Escolha da biblioteca</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Clear" xml:space="preserve"> <trans-unit id="Clear" xml:space="preserve" approved="no">
<source>Clear</source> <source>Clear</source>
<target state="translated">Limpar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Clear conversation" xml:space="preserve"> <trans-unit id="Clear conversation" xml:space="preserve" approved="no">
<source>Clear conversation</source> <source>Clear conversation</source>
<target state="translated">Limpar conversa</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Clear conversation?" xml:space="preserve"> <trans-unit id="Clear conversation?" xml:space="preserve" approved="no">
<source>Clear conversation?</source> <source>Clear conversation?</source>
<target state="translated">Limpar conversa?</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" approved="no">
<source>Clear verification</source> <source>Clear verification</source>
<target state="translated">Limpar verificação</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Colors" xml:space="preserve"> <trans-unit id="Colors" xml:space="preserve" approved="no">
<source>Colors</source> <source>Colors</source>
<target state="translated">Cores</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" approved="no">
<source>Compare file</source> <source>Compare file</source>
<target state="translated">Comparar arquivo</target>
<note>server test step</note> <note>server test step</note>
</trans-unit> </trans-unit>
<trans-unit id="Compare security codes with your contacts." xml:space="preserve"> <trans-unit id="Compare security codes with your contacts." xml:space="preserve" approved="no">
<source>Compare security codes with your contacts.</source> <source>Compare security codes with your contacts.</source>
<target state="translated">Compare os códigos de segurança com seus contatos.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Configure ICE servers" xml:space="preserve"> <trans-unit id="Configure ICE servers" xml:space="preserve" approved="no">
<source>Configure ICE servers</source> <source>Configure ICE servers</source>
<target state="translated">Configurar servidores ICE</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm" xml:space="preserve"> <trans-unit id="Confirm" xml:space="preserve" approved="no">
<source>Confirm</source> <source>Confirm</source>
<target state="translated">Confirme</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm Passcode" xml:space="preserve"> <trans-unit id="Confirm Passcode" xml:space="preserve" approved="no">
<source>Confirm Passcode</source> <source>Confirm Passcode</source>
<target state="translated">Confirmar senha</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm database upgrades" xml:space="preserve"> <trans-unit id="Confirm database upgrades" xml:space="preserve" approved="no">
<source>Confirm database upgrades</source> <source>Confirm database upgrades</source>
<target state="translated">Confirmar atualizações do banco de dados</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm new passphrase…" xml:space="preserve"> <trans-unit id="Confirm new passphrase…" xml:space="preserve" approved="no">
<source>Confirm new passphrase…</source> <source>Confirm new passphrase…</source>
<target state="translated">Confirme a nova senha…</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Confirm password" xml:space="preserve"> <trans-unit id="Confirm password" xml:space="preserve">
@@ -4447,6 +4484,62 @@ SimpleX servers cannot see your profile.</source>
<target state="translated">Permitir apagar irreversivelmente as mensagens enviadas. (24 horas)</target> <target state="translated">Permitir apagar irreversivelmente as mensagens enviadas. (24 horas)</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Choose _Migrate from another device_ on the new device and scan QR code." xml:space="preserve" approved="no">
<source>Choose _Migrate from another device_ on the new device and scan QR code.</source>
<target state="translated">Escolha _Migrar de outro dispositivo_ no novo dispositivo e leia o código QR.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Cancel migration" xml:space="preserve" approved="no">
<source>Cancel migration</source>
<target state="translated">Cancelar migração</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Camera not available" xml:space="preserve" approved="no">
<source>Camera not available</source>
<target state="translated">Câmera não disponível</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Change self-destruct passcode" xml:space="preserve" approved="no">
<source>Change self-destruct passcode</source>
<target state="translated">Alterar a senha de autodestruição</target>
<note>authentication reason
set passcode view</note>
</trans-unit>
<trans-unit id="Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." xml:space="preserve" approved="no">
<source>Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat.</source>
<target state="translated">A conversa foi interrompida. Se você já usou esse banco de dados em outro dispositivo, deverá transferi-lo de volta antes de iniciar a conversa.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Chat migrated!" xml:space="preserve" approved="no">
<source>Chat migrated!</source>
<target state="translated">Conversa migrada!</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Clear private notes?" xml:space="preserve" approved="no">
<source>Clear private notes?</source>
<target state="translated">Limpar notas privadas?</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Confirm network settings" xml:space="preserve" approved="no">
<source>Confirm network settings</source>
<target state="translated">Confirme as configurações de rede</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Confirm that you remember database passphrase to migrate it." xml:space="preserve" approved="no">
<source>Confirm that you remember database passphrase to migrate it.</source>
<target state="translated">Confirme se você se lembra da senha do banco de dados para migrá-lo.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Change self-destruct mode" xml:space="preserve" approved="no">
<source>Change self-destruct mode</source>
<target state="translated">Alterar modo de autodestruição</target>
<note>authentication reason</note>
</trans-unit>
<trans-unit id="Confirm upload" xml:space="preserve" approved="no">
<source>Confirm upload</source>
<target state="translated">Confirmar envio</target>
<note>No comment provided by engineer.</note>
</trans-unit>
</body> </body>
</file> </file>
<file original="en.lproj/SimpleX--iOS--InfoPlist.strings" source-language="en" target-language="pt" datatype="plaintext"> <file original="en.lproj/SimpleX--iOS--InfoPlist.strings" source-language="en" target-language="pt" datatype="plaintext">
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>Разрешить отправлять ссылки SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Мобильная сеть</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>Загрузить</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Включено для</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Ошибка разрешения квантово-устойчивого шифрования</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Ошибка при изменении адреса</target> <target>Ошибка при изменении адреса</target>
@@ -2731,6 +2730,7 @@ This cannot be undone!</source>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Файлы и медиа не разрешены</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>Переслать</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Переслать и сохранить сообщение</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>Переслано</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Переслано из</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2882,7 +2890,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group image" xml:space="preserve"> <trans-unit id="Group image" xml:space="preserve">
<source>Group image</source> <source>Group image</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 invitation" xml:space="preserve"> <trans-unit id="Group invitation" xml:space="preserve">
@@ -2922,6 +2930,7 @@ This cannot be undone!</source>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <source>Group members can send SimpleX links.</source>
<target>Члены группы могут отправлять ссылки SimpleX.</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"> <trans-unit id="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Звуки во время звонков</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Инкогнито</target> <target>Инкогнито</target>
@@ -3639,6 +3653,11 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Источник сообщения остаётся конфиденциальным.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Текст сообщения</target> <target>Текст сообщения</target>
@@ -3754,6 +3773,11 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Более надежное соединение с сетью.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Скорее всего, соединение удалено.</target> <target>Скорее всего, соединение удалено.</target>
@@ -3791,6 +3815,12 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Интернет-соединение</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Статус сети</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Нет интернет-соединения</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ This is your link for group %@!</source>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Другaя сеть</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Error: %@</source>
<target>Возможно, хэш сертификата в адресе сервера неверный</target> <target>Возможно, хэш сертификата в адресе сервера неверный</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Квантово-устойчивое E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Сохранить последний черновик, вместе с вложениями.</target> <target>Сохранить последний черновик, вместе с вложениями.</target>
@@ -4344,7 +4371,12 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Profile image" xml:space="preserve"> <trans-unit id="Profile image" xml:space="preserve">
<source>Profile image</source> <source>Profile image</source>
<target>Аватар</target> <target>Картинка профиля</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Картинки профилей</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
@@ -4389,6 +4421,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>Запретить отправку ссылок SimpleX.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4523,6 +4556,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Одновременный приём</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Получатели не видят от кого это сообщение.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Saved" xml:space="preserve"> <trans-unit id="Saved" xml:space="preserve">
<source>Saved</source> <source>Saved</source>
<target>Сохранено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Сохранено из</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5162,6 +5199,11 @@ 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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Форма картинок профилей</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Поделиться</target> <target>Поделиться</target>
@@ -5284,10 +5326,12 @@ Error: %@</source>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<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 links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<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 one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Error: %@</source>
<target>Контакт</target> <target>Контакт</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Квадрат, круг и все, что между ними.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Запустить чат</target> <target>Запустить чат</target>
@@ -6128,6 +6177,7 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<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 prohibited!" xml:space="preserve"> <trans-unit id="Voice messages prohibited!" xml:space="preserve">
@@ -6200,6 +6250,11 @@ 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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Во время соединения аудио и видео звонков.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Когда Вы получите запрос на соединение, Вы можете принять или отклонить его.</target> <target>Когда Вы получите запрос на соединение, Вы можете принять или отклонить его.</target>
@@ -6212,10 +6267,17 @@ To connect, please ask your contact to create another connection link and check
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Будет включено в прямых разговорах!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Проводная сеть</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>админы</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>все члены</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>переслано</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>владельцы</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="saved" xml:space="preserve"> <trans-unit id="saved" xml:space="preserve">
<source>saved</source> <source>saved</source>
<target>сохранено</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>сохранено из %@</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ SimpleX серверы не могут получить доступ к Ваше
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<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 invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -2241,10 +2241,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>เกิดข้อผิดพลาดในการเปลี่ยนที่อยู่</target> <target>เกิดข้อผิดพลาดในการเปลี่ยนที่อยู่</target>
@@ -2673,6 +2669,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3025,6 +3025,10 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>ไม่ระบุตัวตน</target> <target>ไม่ระบุตัวตน</target>
@@ -3479,6 +3483,10 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>ข้อความ</target> <target>ข้อความ</target>
@@ -3583,6 +3591,10 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<note>item status description</note> <note>item status description</note>
@@ -3621,6 +3633,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>การตั้งค่าเครือข่าย</target> <target>การตั้งค่าเครือข่าย</target>
@@ -4099,10 +4115,6 @@ Error: %@</source>
<target>อาจเป็นไปได้ว่าลายนิ้วมือของ certificate ในที่อยู่เซิร์ฟเวอร์ไม่ถูกต้อง</target> <target>อาจเป็นไปได้ว่าลายนิ้วมือของ certificate ในที่อยู่เซิร์ฟเวอร์ไม่ถูกต้อง</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>เก็บข้อความที่ร่างไว้ล่าสุดพร้อมไฟล์แนบ</target> <target>เก็บข้อความที่ร่างไว้ล่าสุดพร้อมไฟล์แนบ</target>
@@ -4152,6 +4164,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="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -4942,6 +4958,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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>แชร์</target> <target>แชร์</target>
@@ -5100,6 +5120,10 @@ Error: %@</source>
<target>ใครบางคน</target> <target>ใครบางคน</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>เริ่มแชท</target> <target>เริ่มแชท</target>
@@ -5932,6 +5956,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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>เมื่อมีคนขอเชื่อมต่อ คุณสามารถยอมรับหรือปฏิเสธได้</target> <target>เมื่อมีคนขอเชื่อมต่อ คุณสามารถยอมรับหรือปฏิเสธได้</target>
@@ -5946,6 +5974,10 @@ To connect, please ask your contact to create another connection link and check
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -745,6 +745,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Allow to send SimpleX links." xml:space="preserve"> <trans-unit id="Allow to send SimpleX links." xml:space="preserve">
<source>Allow to send SimpleX links.</source> <source>Allow to send SimpleX links.</source>
<target>SimpleX bağlantıları göndilmesine izin ver.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Allow to send files and media." xml:space="preserve"> <trans-unit id="Allow to send files and media." xml:space="preserve">
@@ -1089,6 +1090,7 @@
</trans-unit> </trans-unit>
<trans-unit id="Cellular" xml:space="preserve"> <trans-unit id="Cellular" xml:space="preserve">
<source>Cellular</source> <source>Cellular</source>
<target>Hücresel Veri</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Change" xml:space="preserve"> <trans-unit id="Change" xml:space="preserve">
@@ -2088,6 +2090,7 @@ Bu geri alınamaz!</target>
</trans-unit> </trans-unit>
<trans-unit id="Download" xml:space="preserve"> <trans-unit id="Download" xml:space="preserve">
<source>Download</source> <source>Download</source>
<target>İndir</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Download failed" xml:space="preserve"> <trans-unit id="Download failed" xml:space="preserve">
@@ -2202,6 +2205,7 @@ Bu geri alınamaz!</target>
</trans-unit> </trans-unit>
<trans-unit id="Enabled for" xml:space="preserve"> <trans-unit id="Enabled for" xml:space="preserve">
<source>Enabled for</source> <source>Enabled for</source>
<target>Şunlar için etkinleştirildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Encrypt" xml:space="preserve"> <trans-unit id="Encrypt" xml:space="preserve">
@@ -2354,11 +2358,6 @@ Bu geri alınamaz!</target>
<target>Üye(ler) eklenirken hata oluştu</target> <target>Üye(ler) eklenirken hata oluştu</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>İletişim PQ şifrelemesine izin verirken hata oluştu</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Adres değiştirilirken hata oluştu</target> <target>Adres değiştirilirken hata oluştu</target>
@@ -2731,6 +2730,7 @@ Bu geri alınamaz!</target>
</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">
<source>Files and media not allowed</source> <source>Files and media not allowed</source>
<target>Dosyalar ve medyaya izin verilmiyor</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 prohibited!" xml:space="preserve"> <trans-unit id="Files and media prohibited!" xml:space="preserve">
@@ -2800,14 +2800,22 @@ Bu geri alınamaz!</target>
</trans-unit> </trans-unit>
<trans-unit id="Forward" xml:space="preserve"> <trans-unit id="Forward" xml:space="preserve">
<source>Forward</source> <source>Forward</source>
<target>İlet</target>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<target>Mesajları ilet ve kaydet</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<target>İletildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Forwarded from" xml:space="preserve"> <trans-unit id="Forwarded from" xml:space="preserve">
<source>Forwarded from</source> <source>Forwarded from</source>
<target>Şuradan iletildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Found desktop" xml:space="preserve"> <trans-unit id="Found desktop" xml:space="preserve">
@@ -2922,6 +2930,7 @@ Bu geri alınamaz!</target>
</trans-unit> </trans-unit>
<trans-unit id="Group members can send SimpleX links." xml:space="preserve"> <trans-unit id="Group members can send SimpleX links." xml:space="preserve">
<source>Group members can send SimpleX links.</source> <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> <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="Group members can send direct messages." xml:space="preserve">
@@ -3164,6 +3173,11 @@ Bu geri alınamaz!</target>
<target>Cevap olarak</target> <target>Cevap olarak</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<target>Arama içi sesler</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Gizli</target> <target>Gizli</target>
@@ -3639,6 +3653,11 @@ Bu senin grup için bağlantın %@!</target>
<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>
<trans-unit id="Message source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<target>Mesaj kaynağı gizli kalır.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Mesaj yazısı</target> <target>Mesaj yazısı</target>
@@ -3754,6 +3773,11 @@ Bu senin grup için bağlantın %@!</target>
<target>Daha fazla geliştirmeler yakında geliyor!</target> <target>Daha fazla geliştirmeler yakında geliyor!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<target>Daha güvenilir ağ bağlantısı.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Büyük ihtimalle bu bağlantı silinmiş.</target> <target>Büyük ihtimalle bu bağlantı silinmiş.</target>
@@ -3791,6 +3815,12 @@ Bu senin grup için bağlantın %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Network connection" xml:space="preserve"> <trans-unit id="Network connection" xml:space="preserve">
<source>Network connection</source> <source>Network connection</source>
<target>Ağ bağlantısı</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<target>Ağ yönetimi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
@@ -3905,6 +3935,7 @@ Bu senin grup için bağlantın %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="No network connection" xml:space="preserve"> <trans-unit id="No network connection" xml:space="preserve">
<source>No network connection</source> <source>No network connection</source>
<target>Ağ bağlantısı yok</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="No permission to record voice message" xml:space="preserve"> <trans-unit id="No permission to record voice message" xml:space="preserve">
@@ -4123,6 +4154,7 @@ Bu senin grup için bağlantın %@!</target>
</trans-unit> </trans-unit>
<trans-unit id="Other" xml:space="preserve"> <trans-unit id="Other" xml:space="preserve">
<source>Other</source> <source>Other</source>
<target>Diğer</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="PING count" xml:space="preserve"> <trans-unit id="PING count" xml:space="preserve">
@@ -4292,11 +4324,6 @@ Hata: %@</target>
<target>Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil</target> <target>Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Kuantum sonrası E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Son mesaj taslağını ekleriyle birlikte koru.</target> <target>Son mesaj taslağını ekleriyle birlikte koru.</target>
@@ -4347,6 +4374,11 @@ Hata: %@</target>
<target>Profil fotoğrafı</target> <target>Profil fotoğrafı</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Profile images" xml:space="preserve">
<source>Profile images</source>
<target>Profil resimleri</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Profil ismi</target> <target>Profil ismi</target>
@@ -4389,6 +4421,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending SimpleX links." xml:space="preserve"> <trans-unit id="Prohibit sending SimpleX links." xml:space="preserve">
<source>Prohibit sending SimpleX links.</source> <source>Prohibit sending SimpleX links.</source>
<target>SimpleX bağlantısı gönderimini yasakla.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Prohibit sending direct messages to members." xml:space="preserve"> <trans-unit id="Prohibit sending direct messages to members." xml:space="preserve">
@@ -4493,7 +4526,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receipts are disabled" xml:space="preserve"> <trans-unit id="Receipts are disabled" xml:space="preserve">
<source>Receipts are disabled</source> <source>Receipts are disabled</source>
<target>Makbuzlar devre dışı bırakıldı</target> <target>Gönderildi bilgisi devre dışı bırakıldı</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Received at" xml:space="preserve"> <trans-unit id="Received at" xml:space="preserve">
@@ -4523,6 +4556,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Receiving concurrency" xml:space="preserve"> <trans-unit id="Receiving concurrency" xml:space="preserve">
<source>Receiving concurrency</source> <source>Receiving concurrency</source>
<target>Eşzamanlılık alınıyor</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Receiving file will be stopped." xml:space="preserve"> <trans-unit id="Receiving file will be stopped." xml:space="preserve">
@@ -4542,6 +4576,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve"> <trans-unit id="Recipient(s) can't see who this message is from." xml:space="preserve">
<source>Recipient(s) can't see who this message is from.</source> <source>Recipient(s) can't see who this message is from.</source>
<target>Alıcı(lar) bu mesajın kimden geldiğini göremez.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Recipients see updates as you type them." xml:space="preserve"> <trans-unit id="Recipients see updates as you type them." xml:space="preserve">
@@ -4846,6 +4881,7 @@ Hata: %@</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve"> <trans-unit id="Saved WebRTC ICE servers will be removed" xml:space="preserve">
@@ -4855,6 +4891,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Saved from" xml:space="preserve"> <trans-unit id="Saved from" xml:space="preserve">
<source>Saved from</source> <source>Saved from</source>
<target>Tarafından kaydedildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Saved message" xml:space="preserve"> <trans-unit id="Saved message" xml:space="preserve">
@@ -5029,7 +5066,7 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="Sending delivery receipts will be enabled for all contacts." xml:space="preserve"> <trans-unit id="Sending delivery receipts will be enabled for all contacts." xml:space="preserve">
<source>Sending delivery receipts will be enabled for all contacts.</source> <source>Sending delivery receipts will be enabled for all contacts.</source>
<target>Teslimat makbuzlarının gönderilmesi tüm kişiler için etkinleştirilecektir.</target> <target>Gönderildi bilgisi tüm kişiler için etkinleştirilecektir.</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Sending file will be stopped." xml:space="preserve"> <trans-unit id="Sending file will be stopped." xml:space="preserve">
@@ -5162,6 +5199,11 @@ Hata: %@</target>
<target>Ayarlar</target> <target>Ayarlar</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<target>Profil resimlerini şekillendir</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Paylaş</target> <target>Paylaş</target>
@@ -5284,10 +5326,12 @@ Hata: %@</target>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve"> <trans-unit id="SimpleX links are prohibited in this group." xml:space="preserve">
<source>SimpleX links are prohibited in this group.</source> <source>SimpleX links are prohibited in this group.</source>
<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>
<trans-unit id="SimpleX links not allowed" xml:space="preserve"> <trans-unit id="SimpleX links not allowed" xml:space="preserve">
<source>SimpleX links not allowed</source> <source>SimpleX links not allowed</source>
<target>SimpleX bağlantılarına izin verilmiyor</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="SimpleX one-time invitation" xml:space="preserve"> <trans-unit id="SimpleX one-time invitation" xml:space="preserve">
@@ -5325,6 +5369,11 @@ Hata: %@</target>
<target>Biri</target> <target>Biri</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<target>Kare,daire, veya aralarında herhangi bir şey.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Sohbeti başlat</target> <target>Sohbeti başlat</target>
@@ -6128,6 +6177,7 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
</trans-unit> </trans-unit>
<trans-unit id="Voice messages not allowed" xml:space="preserve"> <trans-unit id="Voice messages not allowed" xml:space="preserve">
<source>Voice messages not allowed</source> <source>Voice messages not allowed</source>
<target>Sesli mesajlara izin verilmiyor</target>
<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">
@@ -6200,6 +6250,11 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
<target>Mevcut olduğunda</target> <target>Mevcut olduğunda</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<target>Sesli ve görüntülü aramalara bağlanırken.</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz.</target> <target>İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz.</target>
@@ -6212,10 +6267,17 @@ Bağlanmak için lütfen kişinizden başka bir bağlantı oluşturmasını iste
</trans-unit> </trans-unit>
<trans-unit id="WiFi" xml:space="preserve"> <trans-unit id="WiFi" xml:space="preserve">
<source>WiFi</source> <source>WiFi</source>
<target>WiFi</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<target>Doğrudan sohbetlerde etkinleştirilecektir!</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<target>Kablolu ethernet</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="With encrypted files and media." xml:space="preserve"> <trans-unit id="With encrypted files and media." xml:space="preserve">
@@ -6703,6 +6765,7 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </trans-unit>
<trans-unit id="admins" xml:space="preserve"> <trans-unit id="admins" xml:space="preserve">
<source>admins</source> <source>admins</source>
<target>yöneticiler</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="agreeing encryption for %@…" xml:space="preserve"> <trans-unit id="agreeing encryption for %@…" xml:space="preserve">
@@ -6717,6 +6780,7 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </trans-unit>
<trans-unit id="all members" xml:space="preserve"> <trans-unit id="all members" xml:space="preserve">
<source>all members</source> <source>all members</source>
<target>bütün üyeler</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="always" xml:space="preserve"> <trans-unit id="always" xml:space="preserve">
@@ -7051,6 +7115,7 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </trans-unit>
<trans-unit id="forwarded" xml:space="preserve"> <trans-unit id="forwarded" xml:space="preserve">
<source>forwarded</source> <source>forwarded</source>
<target>iletildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="group deleted" xml:space="preserve"> <trans-unit id="group deleted" xml:space="preserve">
@@ -7262,6 +7327,7 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </trans-unit>
<trans-unit id="owners" xml:space="preserve"> <trans-unit id="owners" xml:space="preserve">
<source>owners</source> <source>owners</source>
<target>sahipler</target>
<note>feature role</note> <note>feature role</note>
</trans-unit> </trans-unit>
<trans-unit id="peer-to-peer" xml:space="preserve"> <trans-unit id="peer-to-peer" xml:space="preserve">
@@ -7316,10 +7382,12 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </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>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="saved from %@" xml:space="preserve"> <trans-unit id="saved from %@" xml:space="preserve">
<source>saved from %@</source> <source>saved from %@</source>
<target>%@ tarafından kaydedildi</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="sec" xml:space="preserve"> <trans-unit id="sec" xml:space="preserve">
@@ -7464,6 +7532,7 @@ SimpleX sunucuları profilinizi göremez.</target>
</trans-unit> </trans-unit>
<trans-unit id="you" xml:space="preserve"> <trans-unit id="you" xml:space="preserve">
<source>you</source> <source>you</source>
<target>sen</target>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="you are invited to group" xml:space="preserve"> <trans-unit id="you are invited to group" xml:space="preserve">
@@ -2354,11 +2354,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<target>Помилка, що дозволяє шифрування контакту PQ</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>Помилка зміни адреси</target> <target>Помилка зміни адреси</target>
@@ -2802,6 +2797,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3164,6 +3163,10 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>Інкогніто</target> <target>Інкогніто</target>
@@ -3639,6 +3642,10 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>Текст повідомлення</target> <target>Текст повідомлення</target>
@@ -3754,6 +3761,10 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>Швидше за все, це з'єднання видалено.</target> <target>Швидше за все, це з'єднання видалено.</target>
@@ -3793,6 +3804,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>Налаштування мережі</target> <target>Налаштування мережі</target>
@@ -4292,11 +4307,6 @@ Error: %@</source>
<target>Можливо, в адресі сервера неправильно вказано відбиток сертифіката</target> <target>Можливо, в адресі сервера неправильно вказано відбиток сертифіката</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<target>Пост-квантовий E2EE</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>Зберегти чернетку останнього повідомлення з вкладеннями.</target> <target>Зберегти чернетку останнього повідомлення з вкладеннями.</target>
@@ -4347,6 +4357,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="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<target>Назва профілю</target> <target>Назва профілю</target>
@@ -5162,6 +5176,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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>Поділіться</target> <target>Поділіться</target>
@@ -5325,6 +5343,10 @@ Error: %@</source>
<target>Хтось</target> <target>Хтось</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>Почати чат</target> <target>Почати чат</target>
@@ -6200,6 +6222,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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>Коли люди звертаються із запитом на підключення, ви можете прийняти або відхилити його.</target> <target>Коли люди звертаються із запитом на підключення, ви можете прийняти або відхилити його.</target>
@@ -6214,6 +6240,10 @@ To connect, please ask your contact to create another connection link and check
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -2307,10 +2307,6 @@ 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="Error allowing contact PQ encryption" xml:space="preserve">
<source>Error allowing contact PQ encryption</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Error changing address" xml:space="preserve"> <trans-unit id="Error changing address" xml:space="preserve">
<source>Error changing address</source> <source>Error changing address</source>
<target>更改地址错误</target> <target>更改地址错误</target>
@@ -2745,6 +2741,10 @@ This cannot be undone!</source>
<source>Forward</source> <source>Forward</source>
<note>chat item action</note> <note>chat item action</note>
</trans-unit> </trans-unit>
<trans-unit id="Forward and save messages" xml:space="preserve">
<source>Forward and save messages</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Forwarded" xml:space="preserve"> <trans-unit id="Forwarded" xml:space="preserve">
<source>Forwarded</source> <source>Forwarded</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -3102,6 +3102,10 @@ 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="In-call sounds" xml:space="preserve">
<source>In-call sounds</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Incognito" xml:space="preserve"> <trans-unit id="Incognito" xml:space="preserve">
<source>Incognito</source> <source>Incognito</source>
<target>隐身聊天</target> <target>隐身聊天</target>
@@ -3570,6 +3574,10 @@ 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 source remains private." xml:space="preserve">
<source>Message source remains private.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Message text" xml:space="preserve"> <trans-unit id="Message text" xml:space="preserve">
<source>Message text</source> <source>Message text</source>
<target>消息正文</target> <target>消息正文</target>
@@ -3674,6 +3682,10 @@ 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="More reliable network connection." xml:space="preserve">
<source>More reliable network connection.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Most likely this connection is deleted." xml:space="preserve"> <trans-unit id="Most likely this connection is deleted." xml:space="preserve">
<source>Most likely this connection is deleted.</source> <source>Most likely this connection is deleted.</source>
<target>此连接很可能已被删除。</target> <target>此连接很可能已被删除。</target>
@@ -3713,6 +3725,10 @@ This is your link for group %@!</source>
<source>Network connection</source> <source>Network connection</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Network management" xml:space="preserve">
<source>Network management</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Network settings" xml:space="preserve"> <trans-unit id="Network settings" xml:space="preserve">
<source>Network settings</source> <source>Network settings</source>
<target>网络设置</target> <target>网络设置</target>
@@ -4203,10 +4219,6 @@ Error: %@</source>
<target>服务器地址中的证书指纹可能不正确</target> <target>服务器地址中的证书指纹可能不正确</target>
<note>server test error</note> <note>server test error</note>
</trans-unit> </trans-unit>
<trans-unit id="Post-quantum E2EE" xml:space="preserve">
<source>Post-quantum E2EE</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve"> <trans-unit id="Preserve the last message draft, with attachments." xml:space="preserve">
<source>Preserve the last message draft, with attachments.</source> <source>Preserve the last message draft, with attachments.</source>
<target>保留最后的消息草稿及其附件。</target> <target>保留最后的消息草稿及其附件。</target>
@@ -4257,6 +4269,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="Profile images" xml:space="preserve">
<source>Profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Profile name" xml:space="preserve"> <trans-unit id="Profile name" xml:space="preserve">
<source>Profile name</source> <source>Profile name</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -5063,6 +5079,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="Shape profile images" xml:space="preserve">
<source>Shape profile images</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Share" xml:space="preserve"> <trans-unit id="Share" xml:space="preserve">
<source>Share</source> <source>Share</source>
<target>分享</target> <target>分享</target>
@@ -5225,6 +5245,10 @@ Error: %@</source>
<target>某人</target> <target>某人</target>
<note>notification title</note> <note>notification title</note>
</trans-unit> </trans-unit>
<trans-unit id="Square, circle, or anything in between." xml:space="preserve">
<source>Square, circle, or anything in between.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Start chat" xml:space="preserve"> <trans-unit id="Start chat" xml:space="preserve">
<source>Start chat</source> <source>Start chat</source>
<target>开始聊天</target> <target>开始聊天</target>
@@ -6086,6 +6110,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="When connecting audio and video calls." xml:space="preserve">
<source>When connecting audio and video calls.</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve"> <trans-unit id="When people request to connect, you can accept or reject it." xml:space="preserve">
<source>When people request to connect, you can accept or reject it.</source> <source>When people request to connect, you can accept or reject it.</source>
<target>当人们请求连接时,您可以接受或拒绝它。</target> <target>当人们请求连接时,您可以接受或拒绝它。</target>
@@ -6100,6 +6128,10 @@ To connect, please ask your contact to create another connection link and check
<source>WiFi</source> <source>WiFi</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
</trans-unit> </trans-unit>
<trans-unit id="Will be enabled in direct chats!" xml:space="preserve">
<source>Will be enabled in direct chats!</source>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Wired ethernet" xml:space="preserve"> <trans-unit id="Wired ethernet" xml:space="preserve">
<source>Wired ethernet</source> <source>Wired ethernet</source>
<note>No comment provided by engineer.</note> <note>No comment provided by engineer.</note>
@@ -696,14 +696,16 @@ func apiGetNtfMessage(nonce: String, encNtfInfo: String) -> NtfMessages? {
} }
func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil) -> AChatItem? { func apiReceiveFile(fileId: Int64, encrypted: Bool, inline: Bool? = nil) -> AChatItem? {
let r = sendSimpleXCmd(.receiveFile(fileId: fileId, encrypted: encrypted, inline: inline)) let userApprovedRelays = !privacyAskToApproveRelaysGroupDefault.get()
let r = sendSimpleXCmd(.receiveFile(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted, inline: inline))
if case let .rcvFileAccepted(_, chatItem) = r { return chatItem } if case let .rcvFileAccepted(_, chatItem) = r { return chatItem }
logger.error("receiveFile error: \(responseError(r))") logger.error("receiveFile error: \(responseError(r))")
return nil return nil
} }
func apiSetFileToReceive(fileId: Int64, encrypted: Bool) { func apiSetFileToReceive(fileId: Int64, encrypted: Bool) {
let r = sendSimpleXCmd(.setFileToReceive(fileId: fileId, encrypted: encrypted)) let userApprovedRelays = !privacyAskToApproveRelaysGroupDefault.get()
let r = sendSimpleXCmd(.setFileToReceive(fileId: fileId, userApprovedRelays: userApprovedRelays, encrypted: encrypted))
if case .cmdOk = r { return } if case .cmdOk = r { return }
logger.error("setFileToReceive error: \(responseError(r))") logger.error("setFileToReceive error: \(responseError(r))")
} }
+40 -32
View File
@@ -29,11 +29,6 @@
5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; }; 5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; };
5C13730B28156D2700F43030 /* ContactConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C13730A28156D2700F43030 /* ContactConnectionView.swift */; }; 5C13730B28156D2700F43030 /* ContactConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C13730A28156D2700F43030 /* ContactConnectionView.swift */; };
5C1A4C1E27A715B700EAD5AD /* ChatItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */; }; 5C1A4C1E27A715B700EAD5AD /* ChatItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */; };
5C2217842BD4465500A8B0E7 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C22177F2BD4465500A8B0E7 /* libgmpxx.a */; };
5C2217852BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C2217802BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a */; };
5C2217862BD4465500A8B0E7 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C2217812BD4465500A8B0E7 /* libgmp.a */; };
5C2217872BD4465500A8B0E7 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C2217822BD4465500A8B0E7 /* libffi.a */; };
5C2217882BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C2217832BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a */; };
5C2E260727A2941F00F70299 /* SimpleXAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260627A2941F00F70299 /* SimpleXAPI.swift */; }; 5C2E260727A2941F00F70299 /* SimpleXAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260627A2941F00F70299 /* SimpleXAPI.swift */; };
5C2E260B27A30CFA00F70299 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260A27A30CFA00F70299 /* ChatListView.swift */; }; 5C2E260B27A30CFA00F70299 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260A27A30CFA00F70299 /* ChatListView.swift */; };
5C2E260F27A30FDC00F70299 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260E27A30FDC00F70299 /* ChatView.swift */; }; 5C2E260F27A30FDC00F70299 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260E27A30FDC00F70299 /* ChatView.swift */; };
@@ -144,6 +139,11 @@
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */; }; 5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */; };
5CEBD7462A5C0A8F00665FE2 /* KeyboardPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */; }; 5CEBD7462A5C0A8F00665FE2 /* KeyboardPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */; };
5CEBD7482A5F115D00665FE2 /* SetDeliveryReceiptsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */; }; 5CEBD7482A5F115D00665FE2 /* SetDeliveryReceiptsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */; };
5CEE87942C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CEE878F2C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a */; };
5CEE87952C024F4F00583B8A /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CEE87902C024F4F00583B8A /* libgmp.a */; };
5CEE87962C024F4F00583B8A /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CEE87912C024F4F00583B8A /* libgmpxx.a */; };
5CEE87972C024F4F00583B8A /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CEE87922C024F4F00583B8A /* libffi.a */; };
5CEE87982C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CEE87932C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a */; };
5CF937202B24DE8C00E1D781 /* SharedFileSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF9371F2B24DE8C00E1D781 /* SharedFileSubscriber.swift */; }; 5CF937202B24DE8C00E1D781 /* SharedFileSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF9371F2B24DE8C00E1D781 /* SharedFileSubscriber.swift */; };
5CF937232B2503D000E1D781 /* NSESubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF937212B25034A00E1D781 /* NSESubscriber.swift */; }; 5CF937232B2503D000E1D781 /* NSESubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF937212B25034A00E1D781 /* NSESubscriber.swift */; };
5CFA59C42860BC6200863A68 /* MigrateToAppGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */; }; 5CFA59C42860BC6200863A68 /* MigrateToAppGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */; };
@@ -188,6 +188,8 @@
8C69FE7D2B8C7D2700267E38 /* AppSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */; }; 8C69FE7D2B8C7D2700267E38 /* AppSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */; };
8C7D949A2B88952700B7B9E1 /* MigrateToDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */; }; 8C7D949A2B88952700B7B9E1 /* MigrateToDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */; };
8C7DF3202B7CDB0A00C886D0 /* MigrateFromDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */; }; 8C7DF3202B7CDB0A00C886D0 /* MigrateFromDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */; };
8C81482C2BD91CD4002CBEC3 /* AudioDevicePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */; };
8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */; };
8CC956EE2BC0041000412A11 /* NetworkObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC956ED2BC0041000412A11 /* NetworkObserver.swift */; }; 8CC956EE2BC0041000412A11 /* NetworkObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC956ED2BC0041000412A11 /* NetworkObserver.swift */; };
D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; }; D7197A1829AE89660055C05A /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = D7197A1729AE89660055C05A /* WebRTC */; };
D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; }; D72A9088294BD7A70047C86D /* NativeTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D72A9087294BD7A70047C86D /* NativeTextEditor.swift */; };
@@ -279,11 +281,6 @@
5C13730A28156D2700F43030 /* ContactConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionView.swift; sourceTree = "<group>"; }; 5C13730A28156D2700F43030 /* ContactConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionView.swift; sourceTree = "<group>"; };
5C13730C2815740A00F43030 /* DebugJSON.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = DebugJSON.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 5C13730C2815740A00F43030 /* DebugJSON.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = DebugJSON.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemView.swift; sourceTree = "<group>"; }; 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemView.swift; sourceTree = "<group>"; };
5C22177F2BD4465500A8B0E7 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
5C2217802BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a"; sourceTree = "<group>"; };
5C2217812BD4465500A8B0E7 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5C2217822BD4465500A8B0E7 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5C2217832BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a"; sourceTree = "<group>"; };
5C245F3C2B501E98001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; }; 5C245F3C2B501E98001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; };
5C245F3D2B501F13001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = "tr.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = "<group>"; }; 5C245F3D2B501F13001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = "tr.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = "<group>"; };
5C245F3E2B501F13001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 5C245F3E2B501F13001CC39F /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@@ -438,6 +435,11 @@
5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = "<group>"; }; 5CEACCEC27DEA495000BD591 /* MsgContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MsgContentView.swift; sourceTree = "<group>"; };
5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = "<group>"; }; 5CEBD7452A5C0A8F00665FE2 /* KeyboardPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardPadding.swift; sourceTree = "<group>"; };
5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = "<group>"; }; 5CEBD7472A5F115D00665FE2 /* SetDeliveryReceiptsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetDeliveryReceiptsView.swift; sourceTree = "<group>"; };
5CEE878F2C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a"; sourceTree = "<group>"; };
5CEE87902C024F4F00583B8A /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = "<group>"; };
5CEE87912C024F4F00583B8A /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = "<group>"; };
5CEE87922C024F4F00583B8A /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = "<group>"; };
5CEE87932C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a"; sourceTree = "<group>"; };
5CF9371F2B24DE8C00E1D781 /* SharedFileSubscriber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedFileSubscriber.swift; sourceTree = "<group>"; }; 5CF9371F2B24DE8C00E1D781 /* SharedFileSubscriber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedFileSubscriber.swift; sourceTree = "<group>"; };
5CF937212B25034A00E1D781 /* NSESubscriber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSESubscriber.swift; sourceTree = "<group>"; }; 5CF937212B25034A00E1D781 /* NSESubscriber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSESubscriber.swift; sourceTree = "<group>"; };
5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = "<group>"; }; 5CFA59C32860BC6200863A68 /* MigrateToAppGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToAppGroupView.swift; sourceTree = "<group>"; };
@@ -483,6 +485,8 @@
8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettings.swift; sourceTree = "<group>"; }; 8C69FE7C2B8C7D2700267E38 /* AppSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettings.swift; sourceTree = "<group>"; };
8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToDevice.swift; sourceTree = "<group>"; }; 8C7D94992B88952700B7B9E1 /* MigrateToDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateToDevice.swift; sourceTree = "<group>"; };
8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateFromDevice.swift; sourceTree = "<group>"; }; 8C7DF31F2B7CDB0A00C886D0 /* MigrateFromDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrateFromDevice.swift; sourceTree = "<group>"; };
8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioDevicePicker.swift; sourceTree = "<group>"; };
8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallAudioDeviceManager.swift; sourceTree = "<group>"; };
8CC956ED2BC0041000412A11 /* NetworkObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkObserver.swift; sourceTree = "<group>"; }; 8CC956ED2BC0041000412A11 /* NetworkObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkObserver.swift; sourceTree = "<group>"; };
D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; }; D72A9087294BD7A70047C86D /* NativeTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTextEditor.swift; sourceTree = "<group>"; };
D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; }; D741547729AF89AF0022400A /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.1.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
@@ -525,13 +529,13 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
5C2217842BD4465500A8B0E7 /* libgmpxx.a in Frameworks */, 5CEE87942C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a in Frameworks */,
5C2217872BD4465500A8B0E7 /* libffi.a in Frameworks */, 5CEE87972C024F4F00583B8A /* libffi.a in Frameworks */,
5C2217862BD4465500A8B0E7 /* libgmp.a in Frameworks */, 5CEE87962C024F4F00583B8A /* libgmpxx.a in Frameworks */,
5C2217882BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a in Frameworks */,
5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */,
5CEE87952C024F4F00583B8A /* libgmp.a in Frameworks */,
5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */,
5C2217852BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a in Frameworks */, 5CEE87982C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -549,6 +553,8 @@
5C55A922283CEDE600C4E99E /* SoundPlayer.swift */, 5C55A922283CEDE600C4E99E /* SoundPlayer.swift */,
18415323A4082FC92887F906 /* WebRTCClient.swift */, 18415323A4082FC92887F906 /* WebRTCClient.swift */,
18415B08031E8FB0F7FC27F9 /* CallViewRenderers.swift */, 18415B08031E8FB0F7FC27F9 /* CallViewRenderers.swift */,
8CC4ED8F2BD7B8530078AEE8 /* CallAudioDeviceManager.swift */,
8C81482B2BD91CD4002CBEC3 /* AudioDevicePicker.swift */,
); );
path = Call; path = Call;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -595,11 +601,11 @@
5C764E5C279C70B7000C6508 /* Libraries */ = { 5C764E5C279C70B7000C6508 /* Libraries */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5C2217822BD4465500A8B0E7 /* libffi.a */, 5CEE87922C024F4F00583B8A /* libffi.a */,
5C2217812BD4465500A8B0E7 /* libgmp.a */, 5CEE87902C024F4F00583B8A /* libgmp.a */,
5C22177F2BD4465500A8B0E7 /* libgmpxx.a */, 5CEE87912C024F4F00583B8A /* libgmpxx.a */,
5C2217802BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy-ghc9.6.3.a */, 5CEE878F2C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G-ghc9.6.3.a */,
5C2217832BD4465500A8B0E7 /* libHSsimplex-chat-5.7.0.1-4ZWOoOvQtRR3xwBSWKICWy.a */, 5CEE87932C024F4F00583B8A /* libHSsimplex-chat-5.8.0.3-3OkzEeUKATkEGDdUZR1g6G.a */,
); );
path = Libraries; path = Libraries;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -1237,6 +1243,7 @@
5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */, 5CB346E52868AA7F001FD2EF /* SuspendChat.swift in Sources */,
5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */, 5C9C2DA52894777E00CC63B1 /* GroupProfileView.swift in Sources */,
5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */, 5CEACCED27DEA495000BD591 /* MsgContentView.swift in Sources */,
8C81482C2BD91CD4002CBEC3 /* AudioDevicePicker.swift in Sources */,
5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */, 5CCB939C297EFCB100399E78 /* NavStackCompat.swift in Sources */,
5C764E89279CBCB3000C6508 /* ChatModel.swift in Sources */, 5C764E89279CBCB3000C6508 /* ChatModel.swift in Sources */,
5C971E1D27AEBEF600C8A3CE /* ChatInfoView.swift in Sources */, 5C971E1D27AEBEF600C8A3CE /* ChatInfoView.swift in Sources */,
@@ -1266,6 +1273,7 @@
18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */, 18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */,
1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */, 1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */,
64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */, 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */,
8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */,
18415C6C56DBCEC2CBBD2F11 /* WebRTCClient.swift in Sources */, 18415C6C56DBCEC2CBBD2F11 /* WebRTCClient.swift in Sources */,
184152CEF68D2336FC2EBCB0 /* CallViewRenderers.swift in Sources */, 184152CEF68D2336FC2EBCB0 /* CallViewRenderers.swift in Sources */,
5CB634AD29E46CF70066AD6B /* LocalAuthView.swift in Sources */, 5CB634AD29E46CF70066AD6B /* LocalAuthView.swift in Sources */,
@@ -1544,7 +1552,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@@ -1569,7 +1577,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LLVM_LTO = YES_THIN; LLVM_LTO = YES_THIN;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
PRODUCT_NAME = SimpleX; PRODUCT_NAME = SimpleX;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -1593,7 +1601,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEAD_CODE_STRIPPING = YES; DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@@ -1618,7 +1626,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
LLVM_LTO = YES; LLVM_LTO = YES;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.app;
PRODUCT_NAME = SimpleX; PRODUCT_NAME = SimpleX;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -1679,7 +1687,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GCC_OPTIMIZATION_LEVEL = s; GCC_OPTIMIZATION_LEVEL = s;
@@ -1694,7 +1702,7 @@
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
LLVM_LTO = YES; LLVM_LTO = YES;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1716,7 +1724,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_CODE_COVERAGE = NO; ENABLE_CODE_COVERAGE = NO;
@@ -1731,7 +1739,7 @@
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
LLVM_LTO = YES; LLVM_LTO = YES;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE"; PRODUCT_BUNDLE_IDENTIFIER = "chat.simplex.app.SimpleX-NSE";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1753,7 +1761,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
@@ -1779,7 +1787,7 @@
"$(PROJECT_DIR)/Libraries/sim", "$(PROJECT_DIR)/Libraries/sim",
); );
LLVM_LTO = YES; LLVM_LTO = YES;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -1804,7 +1812,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 = 208; CURRENT_PROJECT_VERSION = 220;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T; DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_COMPATIBILITY_VERSION = 1;
@@ -1830,7 +1838,7 @@
"$(PROJECT_DIR)/Libraries/sim", "$(PROJECT_DIR)/Libraries/sim",
); );
LLVM_LTO = YES; LLVM_LTO = YES;
MARKETING_VERSION = 5.7; MARKETING_VERSION = 5.8;
PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat; PRODUCT_BUNDLE_IDENTIFIER = chat.simplex.SimpleXChat;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos; SDKROOT = iphoneos;
+64 -18
View File
@@ -32,8 +32,6 @@ public enum ChatCommand {
case setTempFolder(tempFolder: String) case setTempFolder(tempFolder: String)
case setFilesFolder(filesFolder: String) case setFilesFolder(filesFolder: String)
case apiSetEncryptLocalFiles(enable: Bool) case apiSetEncryptLocalFiles(enable: Bool)
case apiSetPQEncryption(enable: Bool)
case apiSetContactPQ(contactId: Int64, enable: Bool)
case apiExportArchive(config: ArchiveConfig) case apiExportArchive(config: ArchiveConfig)
case apiImportArchive(config: ArchiveConfig) case apiImportArchive(config: ArchiveConfig)
case apiDeleteStorage case apiDeleteStorage
@@ -50,7 +48,7 @@ public enum ChatCommand {
case apiDeleteChatItem(type: ChatType, id: Int64, itemId: Int64, mode: CIDeleteMode) case apiDeleteChatItem(type: ChatType, id: Int64, itemId: Int64, mode: CIDeleteMode)
case apiDeleteMemberChatItem(groupId: Int64, groupMemberId: Int64, itemId: Int64) case apiDeleteMemberChatItem(groupId: Int64, groupMemberId: Int64, itemId: Int64)
case apiChatItemReaction(type: ChatType, id: Int64, itemId: Int64, add: Bool, reaction: MsgReaction) case apiChatItemReaction(type: ChatType, id: Int64, itemId: Int64, add: Bool, reaction: MsgReaction)
case apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64) case apiForwardChatItem(toChatType: ChatType, toChatId: Int64, fromChatType: ChatType, fromChatId: Int64, itemId: Int64, ttl: Int?)
case apiGetNtfToken case apiGetNtfToken
case apiRegisterToken(token: DeviceToken, notificationMode: NotificationsMode) case apiRegisterToken(token: DeviceToken, notificationMode: NotificationsMode)
case apiVerifyToken(token: DeviceToken, nonce: String, code: String) case apiVerifyToken(token: DeviceToken, nonce: String, code: String)
@@ -125,8 +123,8 @@ public enum ChatCommand {
case apiGetNetworkStatuses case apiGetNetworkStatuses
case apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64)) case apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64))
case apiChatUnread(type: ChatType, id: Int64, unreadChat: Bool) case apiChatUnread(type: ChatType, id: Int64, unreadChat: Bool)
case receiveFile(fileId: Int64, encrypted: Bool?, inline: Bool?) case receiveFile(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool?, inline: Bool?)
case setFileToReceive(fileId: Int64, encrypted: Bool?) case setFileToReceive(fileId: Int64, userApprovedRelays: Bool, encrypted: Bool?)
case cancelFile(fileId: Int64) case cancelFile(fileId: Int64)
// remote desktop commands // remote desktop commands
case setLocalDeviceName(displayName: String) case setLocalDeviceName(displayName: String)
@@ -172,8 +170,6 @@ public enum ChatCommand {
case let .setTempFolder(tempFolder): return "/_temp_folder \(tempFolder)" case let .setTempFolder(tempFolder): return "/_temp_folder \(tempFolder)"
case let .setFilesFolder(filesFolder): return "/_files_folder \(filesFolder)" case let .setFilesFolder(filesFolder): return "/_files_folder \(filesFolder)"
case let .apiSetEncryptLocalFiles(enable): return "/_files_encrypt \(onOff(enable))" case let .apiSetEncryptLocalFiles(enable): return "/_files_encrypt \(onOff(enable))"
case let .apiSetPQEncryption(enable): return "/pq \(onOff(enable))"
case let .apiSetContactPQ(contactId, enable): return "/_pq @\(contactId) \(onOff(enable))"
case let .apiExportArchive(cfg): return "/_db export \(encodeJSON(cfg))" case let .apiExportArchive(cfg): return "/_db export \(encodeJSON(cfg))"
case let .apiImportArchive(cfg): return "/_db import \(encodeJSON(cfg))" case let .apiImportArchive(cfg): return "/_db import \(encodeJSON(cfg))"
case .apiDeleteStorage: return "/_db delete" case .apiDeleteStorage: return "/_db delete"
@@ -196,7 +192,9 @@ public enum ChatCommand {
case let .apiDeleteChatItem(type, id, itemId, mode): return "/_delete item \(ref(type, id)) \(itemId) \(mode.rawValue)" case let .apiDeleteChatItem(type, id, itemId, mode): return "/_delete item \(ref(type, id)) \(itemId) \(mode.rawValue)"
case let .apiDeleteMemberChatItem(groupId, groupMemberId, itemId): return "/_delete member item #\(groupId) \(groupMemberId) \(itemId)" case let .apiDeleteMemberChatItem(groupId, groupMemberId, itemId): return "/_delete member item #\(groupId) \(groupMemberId) \(itemId)"
case let .apiChatItemReaction(type, id, itemId, add, reaction): return "/_reaction \(ref(type, id)) \(itemId) \(onOff(add)) \(encodeJSON(reaction))" case let .apiChatItemReaction(type, id, itemId, add, reaction): return "/_reaction \(ref(type, id)) \(itemId) \(onOff(add)) \(encodeJSON(reaction))"
case let .apiForwardChatItem(toChatType, toChatId, fromChatType, fromChatId, itemId): return "/_forward \(ref(toChatType, toChatId)) \(ref(fromChatType, fromChatId)) \(itemId)" case let .apiForwardChatItem(toChatType, toChatId, fromChatType, fromChatId, itemId, ttl):
let ttlStr = ttl != nil ? "\(ttl!)" : "default"
return "/_forward \(ref(toChatType, toChatId)) \(ref(fromChatType, fromChatId)) \(itemId) ttl=\(ttlStr)"
case .apiGetNtfToken: return "/_ntf get " case .apiGetNtfToken: return "/_ntf get "
case let .apiRegisterToken(token, notificationMode): return "/_ntf register \(token.cmdString) \(notificationMode.rawValue)" case let .apiRegisterToken(token, notificationMode): return "/_ntf register \(token.cmdString) \(notificationMode.rawValue)"
case let .apiVerifyToken(token, nonce, code): return "/_ntf verify \(token.cmdString) \(nonce) \(code)" case let .apiVerifyToken(token, nonce, code): return "/_ntf verify \(token.cmdString) \(nonce) \(code)"
@@ -284,8 +282,8 @@ public enum ChatCommand {
case .apiGetNetworkStatuses: return "/_network_statuses" case .apiGetNetworkStatuses: return "/_network_statuses"
case let .apiChatRead(type, id, itemRange: (from, to)): return "/_read chat \(ref(type, id)) from=\(from) to=\(to)" case let .apiChatRead(type, id, itemRange: (from, to)): return "/_read chat \(ref(type, id)) from=\(from) to=\(to)"
case let .apiChatUnread(type, id, unreadChat): return "/_unread chat \(ref(type, id)) \(onOff(unreadChat))" case let .apiChatUnread(type, id, unreadChat): return "/_unread chat \(ref(type, id)) \(onOff(unreadChat))"
case let .receiveFile(fileId, encrypt, inline): return "/freceive \(fileId)\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))" case let .receiveFile(fileId, userApprovedRelays, encrypt, inline): return "/freceive \(fileId)\(onOffParam("approved_relays", userApprovedRelays))\(onOffParam("encrypt", encrypt))\(onOffParam("inline", inline))"
case let .setFileToReceive(fileId, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("encrypt", encrypt))" case let .setFileToReceive(fileId, userApprovedRelays, encrypt): return "/_set_file_to_receive \(fileId)\(onOffParam("approved_relays", userApprovedRelays))\(onOffParam("encrypt", encrypt))"
case let .cancelFile(fileId): return "/fcancel \(fileId)" case let .cancelFile(fileId): return "/fcancel \(fileId)"
case let .setLocalDeviceName(displayName): return "/set device name \(displayName)" case let .setLocalDeviceName(displayName): return "/set device name \(displayName)"
case let .connectRemoteCtrl(xrcpInv): return "/connect remote ctrl \(xrcpInv)" case let .connectRemoteCtrl(xrcpInv): return "/connect remote ctrl \(xrcpInv)"
@@ -326,8 +324,6 @@ public enum ChatCommand {
case .setTempFolder: return "setTempFolder" case .setTempFolder: return "setTempFolder"
case .setFilesFolder: return "setFilesFolder" case .setFilesFolder: return "setFilesFolder"
case .apiSetEncryptLocalFiles: return "apiSetEncryptLocalFiles" case .apiSetEncryptLocalFiles: return "apiSetEncryptLocalFiles"
case .apiSetPQEncryption: return "apiSetPQEncryption"
case .apiSetContactPQ: return "apiSetContactPQ"
case .apiExportArchive: return "apiExportArchive" case .apiExportArchive: return "apiExportArchive"
case .apiImportArchive: return "apiImportArchive" case .apiImportArchive: return "apiImportArchive"
case .apiDeleteStorage: return "apiDeleteStorage" case .apiDeleteStorage: return "apiDeleteStorage"
@@ -645,6 +641,7 @@ public enum ChatResponse: Decodable, Error {
case ntfMessages(user_: User?, connEntity_: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo]) case ntfMessages(user_: User?, connEntity_: ConnectionEntity?, msgTs: Date?, ntfMessages: [NtfMsgInfo])
case ntfMessage(user: UserRef, connEntity: ConnectionEntity, ntfMessage: NtfMsgInfo) case ntfMessage(user: UserRef, connEntity: ConnectionEntity, ntfMessage: NtfMsgInfo)
case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection) case contactConnectionDeleted(user: UserRef, connection: PendingContactConnection)
case contactDisabled(user: UserRef, contact: Contact)
// remote desktop responses/events // remote desktop responses/events
case remoteCtrlList(remoteCtrls: [RemoteCtrlInfo]) case remoteCtrlList(remoteCtrls: [RemoteCtrlInfo])
case remoteCtrlFound(remoteCtrl: RemoteCtrlInfo, ctrlAppInfo_: CtrlAppInfo?, appVersion: String, compatible: Bool) case remoteCtrlFound(remoteCtrl: RemoteCtrlInfo, ctrlAppInfo_: CtrlAppInfo?, appVersion: String, compatible: Bool)
@@ -653,7 +650,6 @@ public enum ChatResponse: Decodable, Error {
case remoteCtrlConnected(remoteCtrl: RemoteCtrlInfo) case remoteCtrlConnected(remoteCtrl: RemoteCtrlInfo)
case remoteCtrlStopped(rcsState: RemoteCtrlSessionState, rcStopReason: RemoteCtrlStopReason) case remoteCtrlStopped(rcsState: RemoteCtrlSessionState, rcStopReason: RemoteCtrlStopReason)
// pq // pq
case contactPQAllowed(user: UserRef, contact: Contact, pqEncryption: Bool)
case contactPQEnabled(user: UserRef, contact: Contact, pqEnabled: Bool) case contactPQEnabled(user: UserRef, contact: Contact, pqEnabled: Bool)
// misc // misc
case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration]) case versionInfo(versionInfo: CoreVersionInfo, chatMigrations: [UpMigration], agentMigrations: [UpMigration])
@@ -803,14 +799,14 @@ public enum ChatResponse: Decodable, Error {
case .ntfMessages: return "ntfMessages" case .ntfMessages: return "ntfMessages"
case .ntfMessage: return "ntfMessage" case .ntfMessage: return "ntfMessage"
case .contactConnectionDeleted: return "contactConnectionDeleted" case .contactConnectionDeleted: return "contactConnectionDeleted"
case .contactDisabled: return "contactDisabled"
case .remoteCtrlList: return "remoteCtrlList" case .remoteCtrlList: return "remoteCtrlList"
case .remoteCtrlFound: return "remoteCtrlFound" case .remoteCtrlFound: return "remoteCtrlFound"
case .remoteCtrlConnecting: return "remoteCtrlConnecting" case .remoteCtrlConnecting: return "remoteCtrlConnecting"
case .remoteCtrlSessionCode: return "remoteCtrlSessionCode" case .remoteCtrlSessionCode: return "remoteCtrlSessionCode"
case .remoteCtrlConnected: return "remoteCtrlConnected" case .remoteCtrlConnected: return "remoteCtrlConnected"
case .remoteCtrlStopped: return "remoteCtrlStopped" case .remoteCtrlStopped: return "remoteCtrlStopped"
case .contactPQAllowed: return "contactPQAllowed" case .contactPQEnabled: return "contactPQEnabled"
case .contactPQEnabled: return "contactPQAllowed"
case .versionInfo: return "versionInfo" case .versionInfo: return "versionInfo"
case .cmdOk: return "cmdOk" case .cmdOk: return "cmdOk"
case .chatCmdError: return "chatCmdError" case .chatCmdError: return "chatCmdError"
@@ -961,13 +957,13 @@ public enum ChatResponse: Decodable, Error {
case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))") case let .ntfMessages(u, connEntity, msgTs, ntfMessages): return withUser(u, "connEntity: \(String(describing: connEntity))\nmsgTs: \(String(describing: msgTs))\nntfMessages: \(String(describing: ntfMessages))")
case let .ntfMessage(u, connEntity, ntfMessage): return withUser(u, "connEntity: \(String(describing: connEntity))\nntfMessage: \(String(describing: ntfMessage))") case let .ntfMessage(u, connEntity, ntfMessage): return withUser(u, "connEntity: \(String(describing: connEntity))\nntfMessage: \(String(describing: ntfMessage))")
case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection)) case let .contactConnectionDeleted(u, connection): return withUser(u, String(describing: connection))
case let .contactDisabled(u, contact): return withUser(u, String(describing: contact))
case let .remoteCtrlList(remoteCtrls): return String(describing: remoteCtrls) case let .remoteCtrlList(remoteCtrls): return String(describing: remoteCtrls)
case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): return "remoteCtrl:\n\(String(describing: remoteCtrl))\nctrlAppInfo_:\n\(String(describing: ctrlAppInfo_))\nappVersion: \(appVersion)\ncompatible: \(compatible)" case let .remoteCtrlFound(remoteCtrl, ctrlAppInfo_, appVersion, compatible): return "remoteCtrl:\n\(String(describing: remoteCtrl))\nctrlAppInfo_:\n\(String(describing: ctrlAppInfo_))\nappVersion: \(appVersion)\ncompatible: \(compatible)"
case let .remoteCtrlConnecting(remoteCtrl_, ctrlAppInfo, appVersion): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nctrlAppInfo:\n\(String(describing: ctrlAppInfo))\nappVersion: \(appVersion)" case let .remoteCtrlConnecting(remoteCtrl_, ctrlAppInfo, appVersion): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nctrlAppInfo:\n\(String(describing: ctrlAppInfo))\nappVersion: \(appVersion)"
case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nsessionCode: \(sessionCode)" case let .remoteCtrlSessionCode(remoteCtrl_, sessionCode): return "remoteCtrl_:\n\(String(describing: remoteCtrl_))\nsessionCode: \(sessionCode)"
case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl) case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl)
case .remoteCtrlStopped: return noDetails case .remoteCtrlStopped: return noDetails
case let .contactPQAllowed(u, contact, pqEncryption): return withUser(u, "contact: \(String(describing: contact))\npqEncryption: \(pqEncryption)")
case let .contactPQEnabled(u, contact, pqEnabled): return withUser(u, "contact: \(String(describing: contact))\npqEnabled: \(pqEnabled)") case let .contactPQEnabled(u, contact, pqEnabled): return withUser(u, "contact: \(String(describing: contact))\npqEnabled: \(pqEnabled)")
case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))" case let .versionInfo(versionInfo, chatMigrations, agentMigrations): return "\(String(describing: versionInfo))\n\nchat migrations: \(chatMigrations.map(\.upName))\n\nagent migrations: \(agentMigrations.map(\.upName))"
case .cmdOk: return noDetails case .cmdOk: return noDetails
@@ -1251,9 +1247,12 @@ public struct ServerAddress: Decodable {
public struct NetCfg: Codable, Equatable { public struct NetCfg: Codable, Equatable {
public var socksProxy: String? = nil public var socksProxy: String? = nil
var socksMode: SocksMode = .always
public var hostMode: HostMode = .publicHost public var hostMode: HostMode = .publicHost
public var requiredHostMode = true public var requiredHostMode = true
public var sessionMode: TransportSessionMode public var sessionMode: TransportSessionMode
public var smpProxyMode: SMPProxyMode = .never
public var smpProxyFallback: SMPProxyFallback = .allow
public var tcpConnectTimeout: Int // microseconds public var tcpConnectTimeout: Int // microseconds
public var tcpTimeout: Int // microseconds public var tcpTimeout: Int // microseconds
public var tcpTimeoutPerKb: Int // microseconds public var tcpTimeoutPerKb: Int // microseconds
@@ -1266,7 +1265,7 @@ public struct NetCfg: Codable, Equatable {
public static let defaults: NetCfg = NetCfg( public static let defaults: NetCfg = NetCfg(
socksProxy: nil, socksProxy: nil,
sessionMode: TransportSessionMode.user, sessionMode: TransportSessionMode.user,
tcpConnectTimeout: 10_000_000, tcpConnectTimeout: 25_000_000,
tcpTimeout: 15_000_000, tcpTimeout: 15_000_000,
tcpTimeoutPerKb: 10_000, tcpTimeoutPerKb: 10_000,
rcvConcurrency: 12, rcvConcurrency: 12,
@@ -1279,7 +1278,7 @@ public struct NetCfg: Codable, Equatable {
public static let proxyDefaults: NetCfg = NetCfg( public static let proxyDefaults: NetCfg = NetCfg(
socksProxy: nil, socksProxy: nil,
sessionMode: TransportSessionMode.user, sessionMode: TransportSessionMode.user,
tcpConnectTimeout: 20_000_000, tcpConnectTimeout: 35_000_000,
tcpTimeout: 20_000_000, tcpTimeout: 20_000_000,
tcpTimeoutPerKb: 15_000, tcpTimeoutPerKb: 15_000,
rcvConcurrency: 8, rcvConcurrency: 8,
@@ -1298,6 +1297,49 @@ public enum HostMode: String, Codable {
case publicHost = "public" case publicHost = "public"
} }
public enum SocksMode: String, Codable {
case always = "always"
case onion = "onion"
}
public enum SMPProxyMode: String, Codable {
case always = "always"
case unknown = "unknown"
case unprotected = "unprotected"
case never = "never"
public var text: LocalizedStringKey {
switch self {
case .always: return "always"
case .unknown: return "unknown relays"
case .unprotected: return "unprotected"
case .never: return "never"
}
}
public var id: SMPProxyMode { self }
public static let values: [SMPProxyMode] = [.always, .unknown, .unprotected, .never]
}
public enum SMPProxyFallback: String, Codable {
case allow = "allow"
case allowProtected = "allowProtected"
case prohibit = "prohibit"
public var text: LocalizedStringKey {
switch self {
case .allow: return "yes"
case .allowProtected: return "when IP hidden"
case .prohibit: return "no"
}
}
public var id: SMPProxyFallback { self }
public static let values: [SMPProxyFallback] = [.allow, .allowProtected, .prohibit]
}
public enum OnionHosts: String, Identifiable { public enum OnionHosts: String, Identifiable {
case no case no
case prefer case prefer
@@ -1718,6 +1760,7 @@ public enum ChatErrorType: Decodable {
case fileImageType(filePath: String) case fileImageType(filePath: String)
case fileImageSize(filePath: String) case fileImageSize(filePath: String)
case fileNotReceived(fileId: Int64) case fileNotReceived(fileId: Int64)
case fileNotApproved(fileId: Int64, unknownServers: [String])
// case xFTPRcvFile // case xFTPRcvFile
// case xFTPSndFile // case xFTPSndFile
case fallbackToSMPProhibited(fileId: Int64) case fallbackToSMPProhibited(fileId: Int64)
@@ -1996,6 +2039,7 @@ public struct MigrationFileLinkData: Codable {
public struct AppSettings: Codable, Equatable { public struct AppSettings: Codable, Equatable {
public var networkConfig: NetCfg? = nil public var networkConfig: NetCfg? = nil
public var privacyEncryptLocalFiles: Bool? = nil public var privacyEncryptLocalFiles: Bool? = nil
public var privacyAskToApproveRelays: Bool? = nil
public var privacyAcceptImages: Bool? = nil public var privacyAcceptImages: Bool? = nil
public var privacyLinkPreviews: Bool? = nil public var privacyLinkPreviews: Bool? = nil
public var privacyShowChatPreviews: Bool? = nil public var privacyShowChatPreviews: Bool? = nil
@@ -2019,6 +2063,7 @@ public struct AppSettings: Codable, Equatable {
let def = AppSettings.defaults let def = AppSettings.defaults
if networkConfig != def.networkConfig { empty.networkConfig = networkConfig } if networkConfig != def.networkConfig { empty.networkConfig = networkConfig }
if privacyEncryptLocalFiles != def.privacyEncryptLocalFiles { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles } if privacyEncryptLocalFiles != def.privacyEncryptLocalFiles { empty.privacyEncryptLocalFiles = privacyEncryptLocalFiles }
if privacyAskToApproveRelays != def.privacyAskToApproveRelays { empty.privacyAskToApproveRelays = privacyAskToApproveRelays }
if privacyAcceptImages != def.privacyAcceptImages { empty.privacyAcceptImages = privacyAcceptImages } if privacyAcceptImages != def.privacyAcceptImages { empty.privacyAcceptImages = privacyAcceptImages }
if privacyLinkPreviews != def.privacyLinkPreviews { empty.privacyLinkPreviews = privacyLinkPreviews } if privacyLinkPreviews != def.privacyLinkPreviews { empty.privacyLinkPreviews = privacyLinkPreviews }
if privacyShowChatPreviews != def.privacyShowChatPreviews { empty.privacyShowChatPreviews = privacyShowChatPreviews } if privacyShowChatPreviews != def.privacyShowChatPreviews { empty.privacyShowChatPreviews = privacyShowChatPreviews }
@@ -2043,6 +2088,7 @@ public struct AppSettings: Codable, Equatable {
AppSettings ( AppSettings (
networkConfig: NetCfg.defaults, networkConfig: NetCfg.defaults,
privacyEncryptLocalFiles: true, privacyEncryptLocalFiles: true,
privacyAskToApproveRelays: true,
privacyAcceptImages: true, privacyAcceptImages: true,
privacyLinkPreviews: true, privacyLinkPreviews: true,
privacyShowChatPreviews: true, privacyShowChatPreviews: true,
+27 -3
View File
@@ -23,9 +23,12 @@ public let GROUP_DEFAULT_NTF_ENABLE_PERIODIC = "ntfEnablePeriodic" // no longer
let GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES = "privacyAcceptImages" let GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES = "privacyAcceptImages"
public let GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE = "privacyTransferImagesInline" // no longer used public let GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE = "privacyTransferImagesInline" // no longer used
public let GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES = "privacyEncryptLocalFiles" public let GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES = "privacyEncryptLocalFiles"
public let GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS = "privacyAskToApproveRelays"
let GROUP_DEFAULT_NTF_BADGE_COUNT = "ntgBadgeCount" let GROUP_DEFAULT_NTF_BADGE_COUNT = "ntgBadgeCount"
let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts" let GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS = "networkUseOnionHosts"
let GROUP_DEFAULT_NETWORK_SESSION_MODE = "networkSessionMode" let GROUP_DEFAULT_NETWORK_SESSION_MODE = "networkSessionMode"
let GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE = "networkSMPProxyMode"
let GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK = "networkSMPProxyFallback"
let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout" let GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT = "networkTCPConnectTimeout"
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout" let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT = "networkTCPTimeout"
let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB = "networkTCPTimeoutPerKb" let GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB = "networkTCPTimeoutPerKb"
@@ -41,7 +44,7 @@ let GROUP_DEFAULT_STORE_DB_PASSPHRASE = "storeDBPassphrase"
public let GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE = "initialRandomDBPassphrase" public let GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE = "initialRandomDBPassphrase"
public let GROUP_DEFAULT_CONFIRM_DB_UPGRADES = "confirmDBUpgrades" 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" public let GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED = "pqExperimentalEnabled" // no longer used
public let APP_GROUP_NAME = "group.chat.simplex.app" public let APP_GROUP_NAME = "group.chat.simplex.app"
@@ -53,6 +56,8 @@ public func registerGroupDefaults() {
GROUP_DEFAULT_NTF_ENABLE_PERIODIC: false, GROUP_DEFAULT_NTF_ENABLE_PERIODIC: false,
GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS: OnionHosts.no.rawValue, GROUP_DEFAULT_NETWORK_USE_ONION_HOSTS: OnionHosts.no.rawValue,
GROUP_DEFAULT_NETWORK_SESSION_MODE: TransportSessionMode.user.rawValue, GROUP_DEFAULT_NETWORK_SESSION_MODE: TransportSessionMode.user.rawValue,
GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE: SMPProxyMode.never.rawValue,
GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK: SMPProxyFallback.allow.rawValue,
GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout, GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT: NetCfg.defaults.tcpConnectTimeout,
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout, GROUP_DEFAULT_NETWORK_TCP_TIMEOUT: NetCfg.defaults.tcpTimeout,
GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB: NetCfg.defaults.tcpTimeoutPerKb, GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB: NetCfg.defaults.tcpTimeoutPerKb,
@@ -69,6 +74,7 @@ public func registerGroupDefaults() {
GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES: true, GROUP_DEFAULT_PRIVACY_ACCEPT_IMAGES: true,
GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE: false, GROUP_DEFAULT_PRIVACY_TRANSFER_IMAGES_INLINE: false,
GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES: true, GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES: true,
GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS: true,
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,
@@ -177,6 +183,8 @@ public let privacyAcceptImagesGroupDefault = BoolDefault(defaults: groupDefaults
public let privacyEncryptLocalFilesGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES) public let privacyEncryptLocalFilesGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ENCRYPT_LOCAL_FILES)
public let privacyAskToApproveRelaysGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PRIVACY_ASK_TO_APPROVE_RELAYS)
public let ntfBadgeCountGroupDefault = IntDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_NTF_BADGE_COUNT) public let ntfBadgeCountGroupDefault = IntDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_NTF_BADGE_COUNT)
public let networkUseOnionHostsGroupDefault = EnumDefault<OnionHosts>( public let networkUseOnionHostsGroupDefault = EnumDefault<OnionHosts>(
@@ -191,6 +199,18 @@ public let networkSessionModeGroupDefault = EnumDefault<TransportSessionMode>(
withDefault: .user withDefault: .user
) )
public let networkSMPProxyModeGroupDefault = EnumDefault<SMPProxyMode>(
defaults: groupDefaults,
forKey: GROUP_DEFAULT_NETWORK_SMP_PROXY_MODE,
withDefault: .never
)
public let networkSMPProxyFallbackGroupDefault = EnumDefault<SMPProxyFallback>(
defaults: groupDefaults,
forKey: GROUP_DEFAULT_NETWORK_SMP_PROXY_FALLBACK,
withDefault: .allow
)
public let storeDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_STORE_DB_PASSPHRASE) public let storeDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_STORE_DB_PASSPHRASE)
public let initialRandomDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE) public let initialRandomDBPassphraseGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_INITIAL_RANDOM_DB_PASSPHRASE)
@@ -199,8 +219,6 @@ public let confirmDBUpgradesGroupDefault = BoolDefault(defaults: groupDefaults,
public let callKitEnabledGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_CALL_KIT_ENABLED) public let callKitEnabledGroupDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_CALL_KIT_ENABLED)
public let pqExperimentalEnabledDefault = BoolDefault(defaults: groupDefaults, forKey: GROUP_DEFAULT_PQ_EXPERIMENTAL_ENABLED)
public class DateDefault { public class DateDefault {
var defaults: UserDefaults var defaults: UserDefaults
var key: String var key: String
@@ -277,6 +295,8 @@ public func getNetCfg() -> NetCfg {
let onionHosts = networkUseOnionHostsGroupDefault.get() let onionHosts = networkUseOnionHostsGroupDefault.get()
let (hostMode, requiredHostMode) = onionHosts.hostMode let (hostMode, requiredHostMode) = onionHosts.hostMode
let sessionMode = networkSessionModeGroupDefault.get() let sessionMode = networkSessionModeGroupDefault.get()
let smpProxyMode = networkSMPProxyModeGroupDefault.get()
let smpProxyFallback = networkSMPProxyFallbackGroupDefault.get()
let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) let tcpConnectTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) let tcpTimeout = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
let tcpTimeoutPerKb = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB) let tcpTimeoutPerKb = groupDefaults.integer(forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
@@ -297,6 +317,8 @@ public func getNetCfg() -> NetCfg {
hostMode: hostMode, hostMode: hostMode,
requiredHostMode: requiredHostMode, requiredHostMode: requiredHostMode,
sessionMode: sessionMode, sessionMode: sessionMode,
smpProxyMode: smpProxyMode,
smpProxyFallback: smpProxyFallback,
tcpConnectTimeout: tcpConnectTimeout, tcpConnectTimeout: tcpConnectTimeout,
tcpTimeout: tcpTimeout, tcpTimeout: tcpTimeout,
tcpTimeoutPerKb: tcpTimeoutPerKb, tcpTimeoutPerKb: tcpTimeoutPerKb,
@@ -311,6 +333,8 @@ public func getNetCfg() -> NetCfg {
public func setNetCfg(_ cfg: NetCfg) { public func setNetCfg(_ cfg: NetCfg) {
networkUseOnionHostsGroupDefault.set(OnionHosts(netCfg: cfg)) networkUseOnionHostsGroupDefault.set(OnionHosts(netCfg: cfg))
networkSessionModeGroupDefault.set(cfg.sessionMode) networkSessionModeGroupDefault.set(cfg.sessionMode)
networkSMPProxyModeGroupDefault.set(cfg.smpProxyMode)
networkSMPProxyFallbackGroupDefault.set(cfg.smpProxyFallback)
groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT) groupDefaults.set(cfg.tcpConnectTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_CONNECT_TIMEOUT)
groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT) groupDefaults.set(cfg.tcpTimeout, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT)
groupDefaults.set(cfg.tcpTimeoutPerKb, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB) groupDefaults.set(cfg.tcpTimeoutPerKb, forKey: GROUP_DEFAULT_NETWORK_TCP_TIMEOUT_PER_KB)
+76 -6
View File
@@ -1510,7 +1510,12 @@ public struct Contact: Identifiable, Decodable, NamedChat {
public var ready: Bool { get { activeConn?.connStatus == .ready } } public var ready: Bool { get { activeConn?.connStatus == .ready } }
public var active: Bool { get { contactStatus == .active } } public var active: Bool { get { contactStatus == .active } }
public var sendMsgEnabled: Bool { get { public var sendMsgEnabled: Bool { get {
(ready && active && !(activeConn?.connectionStats?.ratchetSyncSendProhibited ?? false)) (
ready
&& active
&& !(activeConn?.connectionStats?.ratchetSyncSendProhibited ?? false)
&& !(activeConn?.connDisabled ?? true)
)
|| nextSendGrpInv || nextSendGrpInv
} } } }
public var nextSendGrpInv: Bool { get { contactGroupMemberId != nil && !contactGrpInvSent } } public var nextSendGrpInv: Bool { get { contactGroupMemberId != nil && !contactGrpInvSent } }
@@ -1601,15 +1606,20 @@ public struct Connection: Decodable {
public var pqEncryption: Bool public var pqEncryption: Bool
public var pqSndEnabled: Bool? public var pqSndEnabled: Bool?
public var pqRcvEnabled: Bool? public var pqRcvEnabled: Bool?
public var authErrCounter: Int
public var connectionStats: ConnectionStats? = nil public var connectionStats: ConnectionStats? = nil
private enum CodingKeys: String, CodingKey { private enum CodingKeys: String, CodingKey {
case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled case connId, agentConnId, peerChatVRange, connStatus, connLevel, viaGroupLink, customUserProfileId, connectionCode, pqSupport, pqEncryption, pqSndEnabled, pqRcvEnabled, authErrCounter
} }
public var id: ChatId { get { ":\(connId)" } } public var id: ChatId { get { ":\(connId)" } }
public var connDisabled: Bool {
authErrCounter >= 10 // authErrDisableCount in core
}
public var connPQEnabled: Bool { public var connPQEnabled: Bool {
pqSndEnabled == true && pqRcvEnabled == true pqSndEnabled == true && pqRcvEnabled == true
} }
@@ -1622,7 +1632,8 @@ public struct Connection: Decodable {
connLevel: 0, connLevel: 0,
viaGroupLink: false, viaGroupLink: false,
pqSupport: false, pqSupport: false,
pqEncryption: false pqEncryption: false,
authErrCounter: 0
) )
} }
@@ -2437,6 +2448,16 @@ public struct ChatItem: Identifiable, Decodable {
} }
} }
public var showLocalDelete: Bool {
switch content {
case .sndDirectE2EEInfo: return false
case .rcvDirectE2EEInfo: return false
case .sndGroupE2EEInfo: return false
case .rcvGroupE2EEInfo: return false
default: return true
}
}
public static func getSample (_ id: Int64, _ dir: CIDirection, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, quotedItem: CIQuote? = nil, file: CIFile? = nil, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, deletable: Bool = true, editable: Bool = true) -> ChatItem { public static func getSample (_ id: Int64, _ dir: CIDirection, _ ts: Date, _ text: String, _ status: CIStatus = .sndNew, quotedItem: CIQuote? = nil, file: CIFile? = nil, itemDeleted: CIDeleted? = nil, itemEdited: Bool = false, itemLive: Bool = false, deletable: Bool = true, editable: Bool = true) -> ChatItem {
ChatItem( ChatItem(
chatDir: dir, chatDir: dir,
@@ -2611,6 +2632,7 @@ public struct CIMeta: Decodable {
public var itemTs: Date public var itemTs: Date
var itemText: String var itemText: String
public var itemStatus: CIStatus public var itemStatus: CIStatus
public var sentViaProxy: Bool?
public var createdAt: Date public var createdAt: Date
public var updatedAt: Date public var updatedAt: Date
public var itemForwarded: CIForwardedFrom? public var itemForwarded: CIForwardedFrom?
@@ -2700,7 +2722,8 @@ public enum CIStatus: Decodable {
case sndSent(sndProgress: SndCIStatusProgress) case sndSent(sndProgress: SndCIStatusProgress)
case sndRcvd(msgRcptStatus: MsgReceiptStatus, sndProgress: SndCIStatusProgress) case sndRcvd(msgRcptStatus: MsgReceiptStatus, sndProgress: SndCIStatusProgress)
case sndErrorAuth case sndErrorAuth
case sndError(agentError: String) case sndError(agentError: SndError)
case sndWarning(agentError: SndError)
case rcvNew case rcvNew
case rcvRead case rcvRead
case invalid(text: String) case invalid(text: String)
@@ -2712,6 +2735,7 @@ public enum CIStatus: Decodable {
case .sndRcvd: return "sndRcvd" case .sndRcvd: return "sndRcvd"
case .sndErrorAuth: return "sndErrorAuth" case .sndErrorAuth: return "sndErrorAuth"
case .sndError: return "sndError" case .sndError: return "sndError"
case .sndWarning: return "sndWarning"
case .rcvNew: return "rcvNew" case .rcvNew: return "rcvNew"
case .rcvRead: return "rcvRead" case .rcvRead: return "rcvRead"
case .invalid: return "invalid" case .invalid: return "invalid"
@@ -2728,7 +2752,8 @@ public enum CIStatus: Decodable {
case .badMsgHash: return ("checkmark", .red) case .badMsgHash: return ("checkmark", .red)
} }
case .sndErrorAuth: return ("multiply", .red) case .sndErrorAuth: return ("multiply", .red)
case .sndError: return ("exclamationmark.triangle.fill", .yellow) case .sndError: return ("multiply", .red)
case .sndWarning: return ("exclamationmark.triangle.fill", .orange)
case .rcvNew: return ("circlebadge.fill", Color.accentColor) case .rcvNew: return ("circlebadge.fill", Color.accentColor)
case .rcvRead: return nil case .rcvRead: return nil
case .invalid: return ("questionmark", metaColor) case .invalid: return ("questionmark", metaColor)
@@ -2746,7 +2771,11 @@ public enum CIStatus: Decodable {
) )
case let .sndError(agentError): return ( case let .sndError(agentError): return (
NSLocalizedString("Message delivery error", comment: "item status text"), NSLocalizedString("Message delivery error", comment: "item status text"),
String.localizedStringWithFormat(NSLocalizedString("Unexpected error: %@", comment: "item status description"), agentError) agentError.errorInfo
)
case let .sndWarning(agentError): return (
NSLocalizedString("Message delivery warning", comment: "item status text"),
agentError.errorInfo
) )
case .rcvNew: return nil case .rcvNew: return nil
case .rcvRead: return nil case .rcvRead: return nil
@@ -2758,6 +2787,42 @@ public enum CIStatus: Decodable {
} }
} }
public enum SndError: Decodable {
case auth
case quota
case expired
case relay(srvError: SrvError)
case proxy(proxyServer: String, srvError: SrvError)
case proxyRelay(proxyServer: String, srvError: SrvError)
case other(sndError: String)
public var errorInfo: String {
switch self {
case .auth: NSLocalizedString("Wrong key or unknown connection - most likely this connection is deleted.", comment: "snd error text")
case .quota: NSLocalizedString("Capacity exceeded - recipient did not receive previously sent messages.", comment: "snd error text")
case .expired: NSLocalizedString("Network issues - message expired after many attempts to send it.", comment: "snd error text")
case let .relay(srvError): String.localizedStringWithFormat(NSLocalizedString("Destination server error: %@", comment: "snd error text"), srvError.errorInfo)
case let .proxy(proxyServer, srvError): String.localizedStringWithFormat(NSLocalizedString("Forwarding server: %@\nError: %@", comment: "snd error text"), proxyServer, srvError.errorInfo)
case let .proxyRelay(proxyServer, srvError): String.localizedStringWithFormat(NSLocalizedString("Forwarding server: %@\nDestination server error: %@", comment: "snd error text"), proxyServer, srvError.errorInfo)
case let .other(sndError): String.localizedStringWithFormat(NSLocalizedString("Error: %@", comment: "snd error text"), sndError)
}
}
}
public enum SrvError: Decodable {
case host
case version
case other(srvError: String)
public var errorInfo: String {
switch self {
case .host: NSLocalizedString("Server address is incompatible with network settings.", comment: "srv error text.")
case .version: NSLocalizedString("Server version is incompatible with network settings.", comment: "srv error text")
case let .other(srvError): srvError
}
}
}
public enum MsgReceiptStatus: String, Decodable { public enum MsgReceiptStatus: String, Decodable {
case ok case ok
case badMsgHash case badMsgHash
@@ -3109,6 +3174,7 @@ public struct CIFile: Decodable {
case .rcvInvitation: return false case .rcvInvitation: return false
case .rcvAccepted: return false case .rcvAccepted: return false
case .rcvTransfer: return false case .rcvTransfer: return false
case .rcvAborted: return false
case .rcvCancelled: return false case .rcvCancelled: return false
case .rcvComplete: return true case .rcvComplete: return true
case .rcvError: return false case .rcvError: return false
@@ -3133,6 +3199,7 @@ public struct CIFile: Decodable {
case .rcvInvitation: return nil case .rcvInvitation: return nil
case .rcvAccepted: return rcvCancelAction case .rcvAccepted: return rcvCancelAction
case .rcvTransfer: return rcvCancelAction case .rcvTransfer: return rcvCancelAction
case .rcvAborted: return nil
case .rcvCancelled: return nil case .rcvCancelled: return nil
case .rcvComplete: return nil case .rcvComplete: return nil
case .rcvError: return nil case .rcvError: return nil
@@ -3247,6 +3314,7 @@ public enum CIFileStatus: Decodable, Equatable {
case rcvInvitation case rcvInvitation
case rcvAccepted case rcvAccepted
case rcvTransfer(rcvProgress: Int64, rcvTotal: Int64) case rcvTransfer(rcvProgress: Int64, rcvTotal: Int64)
case rcvAborted
case rcvComplete case rcvComplete
case rcvCancelled case rcvCancelled
case rcvError case rcvError
@@ -3262,6 +3330,7 @@ public enum CIFileStatus: Decodable, Equatable {
case .rcvInvitation: return "rcvInvitation" case .rcvInvitation: return "rcvInvitation"
case .rcvAccepted: return "rcvAccepted" case .rcvAccepted: return "rcvAccepted"
case let .rcvTransfer(rcvProgress, rcvTotal): return "rcvTransfer \(rcvProgress) \(rcvTotal)" case let .rcvTransfer(rcvProgress, rcvTotal): return "rcvTransfer \(rcvProgress) \(rcvTotal)"
case .rcvAborted: return "rcvAborted"
case .rcvComplete: return "rcvComplete" case .rcvComplete: return "rcvComplete"
case .rcvCancelled: return "rcvCancelled" case .rcvCancelled: return "rcvCancelled"
case .rcvError: return "rcvError" case .rcvError: return "rcvError"
@@ -3876,4 +3945,5 @@ public struct ChatItemVersion: Decodable {
public struct MemberDeliveryStatus: Decodable { public struct MemberDeliveryStatus: Decodable {
public var groupMemberId: Int64 public var groupMemberId: Int64
public var memberDeliveryStatus: CIStatus public var memberDeliveryStatus: CIStatus
public var sentViaProxy: Bool?
} }
+142 -7
View File
@@ -85,6 +85,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Най-поверително**: не използвайте сървъра за известия SimpleX Chat, периодично проверявайте съобщенията във фонов режим (зависи от това колко често използвате приложението)."; "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Най-поверително**: не използвайте сървъра за известия SimpleX Chat, периодично проверявайте съобщенията във фонов режим (зависи от това колко често използвате приложението).";
/* No comment provided by engineer. */
"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Моля, обърнете внимание**: използването на една и съща база данни на две устройства ще наруши декриптирането на съобщенията от вашите връзки като защита на сигурността.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Моля, обърнете внимание**: НЯМА да можете да възстановите или промените паролата, ако я загубите."; "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Моля, обърнете внимание**: НЯМА да можете да възстановите или промените паролата, ако я загубите.";
@@ -94,6 +97,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: Незабавните push известия изискват парола, запазена в Keychain."; "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Внимание**: Незабавните push известия изискват парола, запазена в Keychain.";
/* No comment provided by engineer. */
"**Warning**: the archive will be removed." = "**Внимание**: архивът ще бъде изтрит.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"*bold*" = "\\*удебелен*"; "*bold*" = "\\*удебелен*";
@@ -136,6 +142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ connected" = "%@ свързан"; "%@ connected" = "%@ свързан";
/* No comment provided by engineer. */
"%@ downloaded" = "%@ изтеглено";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ е свързан!"; "%@ is connected!" = "%@ е свързан!";
@@ -148,6 +157,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ servers" = "%@ сървъри"; "%@ servers" = "%@ сървъри";
/* No comment provided by engineer. */
"%@ uploaded" = "%@ качено";
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ иска да се свърже!"; "%@ wants to connect!" = "%@ иска да се свърже!";
@@ -377,6 +389,9 @@
/* member role */ /* member role */
"admin" = "админ"; "admin" = "админ";
/* feature role */
"admins" = "администратори";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Администраторите могат да блокират член за всички."; "Admins can block a member for all." = "Администраторите могат да блокират член за всички.";
@@ -404,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Всички членове на групата ще останат свързани."; "All group members will remain connected." = "Всички членове на групата ще останат свързани.";
/* feature role */
"all members" = "всички членове";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Всички съобщения ще бъдат изтрити - това не може да бъде отменено!"; "All messages will be deleted - this cannot be undone!" = "Всички съобщения ще бъдат изтрити - това не може да бъде отменено!";
@@ -452,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Позволи изпращане на файлове и медия."; "Allow to send files and media." = "Позволи изпращане на файлове и медия.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Разрешаване на изпращане на SimpleX линкове.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Позволи изпращане на гласови съобщения."; "Allow to send voice messages." = "Позволи изпращане на гласови съобщения.";
@@ -695,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Файлът не може да бъде получен"; "Cannot receive file" = "Файлът не може да бъде получен";
/* No comment provided by engineer. */
"Cellular" = "Мобилна мрежа";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Промени"; "Change" = "Промени";
@@ -780,6 +804,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chinese and Spanish interface" = "Китайски и Испански интерфейс"; "Chinese and Spanish interface" = "Китайски и Испански интерфейс";
/* No comment provided by engineer. */
"Choose _Migrate from another device_ on the new device and scan QR code." = "Изберете _Мигриране от друго устройство_ на новото устройство и сканирайте QR кода.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Choose file" = "Избери файл"; "Choose file" = "Избери файл";
@@ -1386,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Понижи версията и отвори чата"; "Downgrade and open chat" = "Понижи версията и отвори чата";
/* chat item action */
"Download" = "Изтегли";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Неуспешно изтегляне"; "Download failed" = "Неуспешно изтегляне";
@@ -1461,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "активирано"; "enabled" = "активирано";
/* No comment provided by engineer. */
"Enabled for" = "Активирано за";
/* enabled status */ /* enabled status */
"enabled for contact" = "активирано за контакт"; "enabled for contact" = "активирано за контакт";
@@ -1590,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Грешка при добавяне на член(ове)"; "Error adding member(s)" = "Грешка при добавяне на член(ове)";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Грешка при разрешаване на PQ криптиране за контакт";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Грешка при промяна на адреса"; "Error changing address" = "Грешка при промяна на адреса";
@@ -1818,6 +1848,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Файловете и медията са забранени в тази група."; "Files and media are prohibited in this group." = "Файловете и медията са забранени в тази група.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Файлове и медия не са разрешени";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Файловете и медията са забранени!"; "Files and media prohibited!" = "Файловете и медията са забранени!";
@@ -1857,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "За конзолата"; "For console" = "За конзолата";
/* chat item action */
"Forward" = "Препрати";
/* No comment provided by engineer. */
"Forward and save messages" = "Препращане и запазване на съобщения";
/* No comment provided by engineer. */
"forwarded" = "препратено";
/* No comment provided by engineer. */
"Forwarded" = "Препратено";
/* No comment provided by engineer. */
"Forwarded from" = "Препратено от";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Намерено настолно устройство"; "Found desktop" = "Намерено настолно устройство";
@@ -1935,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Членовете на групата могат да изпращат файлове и медия."; "Group members can send files and media." = "Членовете на групата могат да изпращат файлове и медия.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Членовете на групата могат да изпращат SimpleX линкове.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения."; "Group members can send voice messages." = "Членовете на групата могат да изпращат гласови съобщения.";
@@ -2076,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "В отговор на"; "In reply to" = "В отговор на";
/* No comment provided by engineer. */
"In-call sounds" = "Звуци по време на разговор";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Инкогнито"; "Incognito" = "Инкогнито";
@@ -2421,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "получено съобщение"; "message received" = "получено съобщение";
/* No comment provided by engineer. */
"Message source remains private." = "Източникът на съобщението остава скрит.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Текст на съобщението"; "Message text" = "Текст на съобщението";
@@ -2436,6 +2493,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages from %@ will be shown!" = "Съобщенията от %@ ще бъдат показани!"; "Messages from %@ will be shown!" = "Съобщенията от %@ ще бъдат показани!";
/* No comment provided by engineer. */
"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Съобщенията, файловете и разговорите са защитени чрез **криптиране от край до край** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.";
/* No comment provided by engineer. */
"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Съобщенията, файловете и разговорите са защитени чрез **квантово устойчиво e2e криптиране** с перфектна секретност при препращане, правдоподобно опровержение и възстановяване при взлом.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrate device" = "Мигрирай устройството"; "Migrate device" = "Мигрирай устройството";
@@ -2499,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Очаквайте скоро още подобрения!"; "More improvements are coming soon!" = "Очаквайте скоро още подобрения!";
/* No comment provided by engineer. */
"More reliable network connection." = "По-надеждна мрежова връзка.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Най-вероятно тази връзка е изтрита."; "Most likely this connection is deleted." = "Най-вероятно тази връзка е изтрита.";
@@ -2520,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Мрежа и сървъри"; "Network & servers" = "Мрежа и сървъри";
/* No comment provided by engineer. */
"Network connection" = "Мрежова връзка";
/* No comment provided by engineer. */
"Network management" = "Управление на мрежата";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Мрежови настройки"; "Network settings" = "Мрежови настройки";
@@ -2598,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Няма история"; "No history" = "Няма история";
/* No comment provided by engineer. */
"No network connection" = "Няма мрежова връзка";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Няма разрешение за запис на гласово съобщение"; "No permission to record voice message" = "Няма разрешение за запис на гласово съобщение";
@@ -2744,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Или покажи този код"; "Or show this code" = "Или покажи този код";
/* No comment provided by engineer. */
"Other" = "Други";
/* member role */ /* member role */
"owner" = "собственик"; "owner" = "собственик";
/* feature role */
"owners" = "собственици";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Код за достъп"; "Passcode" = "Код за достъп";
@@ -2849,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен"; "Possibly, certificate fingerprint in server address is incorrect" = "Въжможно е пръстовият отпечатък на сертификата в адреса на сървъра да е неправилен";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Постквантово E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Запазете последната чернова на съобщението с прикачени файлове."; "Preserve the last message draft, with attachments." = "Запазете последната чернова на съобщението с прикачени файлове.";
@@ -2882,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Профилно изображение"; "Profile image" = "Профилно изображение";
/* No comment provided by engineer. */
"Profile images" = "Профилни изображения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Име на профила"; "Profile name" = "Име на профила";
@@ -2915,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Забрани изпращането на файлове и медия."; "Prohibit sending files and media." = "Забрани изпращането на файлове и медия.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Забранете изпращането на SimpleX линкове.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Забрани изпращането на гласови съобщения."; "Prohibit sending voice messages." = "Забрани изпращането на гласови съобщения.";
@@ -2993,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Получаващият адрес ще бъде променен към друг сървър. Промяната на адреса ще завърши, след като подателят е онлайн."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Получаващият адрес ще бъде променен към друг сървър. Промяната на адреса ще завърши, след като подателят е онлайн.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Паралелност на получаване";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Получаващият се файл ще бъде спрян."; "Receiving file will be stopped." = "Получаващият се файл ще бъде спрян.";
@@ -3002,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Скорошна история и подобрен [bot за директория за групи](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPd jdLW3%23%2F%3Fv%3D1-2% 26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Получателят(ите) не могат да видят от кого е това съобщение.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Получателите виждат актуализации, докато ги въвеждате."; "Recipients see updates as you type them." = "Получателите виждат актуализации, докато ги въвеждате.";
@@ -3197,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Запази съобщението при посрещане?"; "Save welcome message?" = "Запази съобщението при посрещане?";
/* No comment provided by engineer. */
"saved" = "запазено";
/* No comment provided by engineer. */
"Saved" = "Запазено";
/* No comment provided by engineer. */
"Saved from" = "Запазено от";
/* No comment provided by engineer. */
"saved from %@" = "запазено от %@";
/* message info title */ /* message info title */
"Saved message" = "Запазено съобщение"; "Saved message" = "Запазено съобщение";
@@ -3404,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Настройки"; "Settings" = "Настройки";
/* No comment provided by engineer. */
"Shape profile images" = "Променете формата на профилните изображения";
/* chat item action */ /* chat item action */
"Share" = "Сподели"; "Share" = "Сподели";
@@ -3461,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX групов линк"; "SimpleX group link" = "SimpleX групов линк";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX линкове"; "SimpleX links" = "SimpleX линкове";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "SimpleX линкове са забранени в тази група.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX линковете не са разрешени";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX заключване"; "SimpleX Lock" = "SimpleX заключване";
@@ -3500,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Някой"; "Somebody" = "Някой";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Квадрат, кръг или нещо между тях.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "стандартно криптиране от край до край"; "standard end-to-end encryption" = "стандартно криптиране от край до край";
@@ -4028,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Гласовите съобщения са забранени в тази група."; "Voice messages are prohibited in this group." = "Гласовите съобщения са забранени в тази група.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Гласовите съобщения не са разрешени";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Гласовите съобщения са забранени!"; "Voice messages prohibited!" = "Гласовите съобщения са забранени!";
@@ -4079,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Когато са налични"; "When available" = "Когато са налични";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "При свързване на аудио и видео разговори.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите."; "When people request to connect, you can accept or reject it." = "Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите.";
/* 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." = "Когато споделяте инкогнито профил с някого, този профил ще се използва за групите, в които той ви кани.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Ще бъде активирано в личните чатове!";
/* No comment provided by engineer. */
"Wired ethernet" = "Кабелен Ethernet";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "С криптирани файлове и медия."; "With encrypted files and media." = "С криптирани файлове и медия.";
@@ -4106,9 +4235,15 @@
/* pref value */ /* pref value */
"yes" = "да"; "yes" = "да";
/* No comment provided by engineer. */
"you" = "вие";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Вие"; "You" = "Вие";
/* No comment provided by engineer. */
"You **must not** use the same database on two devices." = "**Не трябва** да използвате една и съща база данни на две устройства.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You accepted connection" = "Вие приехте връзката"; "You accepted connection" = "Вие приехте връзката";
+1 -1
View File
@@ -2903,7 +2903,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Skupinový odkaz SimpleX"; "SimpleX group link" = "Skupinový odkaz SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Odkazy na SimpleX"; "SimpleX links" = "Odkazy na SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+121 -10
View File
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "Admin"; "admin" = "Admin";
/* feature role */
"admins" = "Administratoren";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Administratoren können ein Gruppenmitglied für Alle blockieren."; "Admins can block a member for all." = "Administratoren können ein Gruppenmitglied für Alle blockieren.";
@@ -416,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden."; "All group members will remain connected." = "Alle Gruppenmitglieder bleiben verbunden.";
/* feature role */
"all members" = "Alle Mitglieder";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Es werden alle Nachrichten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden!"; "All messages will be deleted - this cannot be undone!" = "Es werden alle Nachrichten gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Das Senden von Dateien und Medien erlauben."; "Allow to send files and media." = "Das Senden von Dateien und Medien erlauben.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Das Senden von SimpleX-Links erlauben.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Das Senden von Sprachnachrichten erlauben."; "Allow to send voice messages." = "Das Senden von Sprachnachrichten erlauben.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Datei kann nicht empfangen werden"; "Cannot receive file" = "Datei kann nicht empfangen werden";
/* No comment provided by engineer. */
"Cellular" = "Zellulär";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Ändern"; "Change" = "Ändern";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Datenbank herabstufen und den Chat öffnen"; "Downgrade and open chat" = "Datenbank herabstufen und den Chat öffnen";
/* chat item action */
"Download" = "Herunterladen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Herunterladen fehlgeschlagen"; "Download failed" = "Herunterladen fehlgeschlagen";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "Aktiviert"; "enabled" = "Aktiviert";
/* No comment provided by engineer. */
"Enabled for" = "Aktiviert für";
/* enabled status */ /* enabled status */
"enabled for contact" = "Für Kontakt aktiviert"; "enabled for contact" = "Für Kontakt aktiviert";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Fehler beim Hinzufügen von Mitgliedern"; "Error adding member(s)" = "Fehler beim Hinzufügen von Mitgliedern";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Fehler beim Zulassen der Kontakt-PQ-Verschlüsselung";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Fehler beim Wechseln der Empfängeradresse"; "Error changing address" = "Fehler beim Wechseln der Empfängeradresse";
@@ -1833,6 +1848,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "In dieser Gruppe sind Dateien und Medien nicht erlaubt."; "Files and media are prohibited in this group." = "In dieser Gruppe sind Dateien und Medien nicht erlaubt.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Dateien und Medien sind nicht erlaubt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Dateien und Medien sind nicht erlaubt!"; "Files and media prohibited!" = "Dateien und Medien sind nicht erlaubt!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Für Konsole"; "For console" = "Für Konsole";
/* chat item action */
"Forward" = "Weiterleiten";
/* No comment provided by engineer. */
"Forward and save messages" = "Nachrichten weiterleiten und speichern";
/* No comment provided by engineer. */
"forwarded" = "weitergeleitet";
/* No comment provided by engineer. */
"Forwarded" = "Weitergeleitet";
/* No comment provided by engineer. */
"Forwarded from" = "Weitergeleitet aus";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Gefundener Desktop"; "Found desktop" = "Gefundener Desktop";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden."; "Group members can send files and media." = "Gruppenmitglieder können Dateien und Medien senden.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Gruppenmitglieder können SimpleX-Links senden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden."; "Group members can send voice messages." = "Gruppenmitglieder können Sprachnachrichten versenden.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "Als Antwort auf"; "In reply to" = "Als Antwort auf";
/* No comment provided by engineer. */
"In-call sounds" = "Klingeltöne";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Inkognito"; "Incognito" = "Inkognito";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "Nachricht empfangen"; "message received" = "Nachricht empfangen";
/* No comment provided by engineer. */
"Message source remains private." = "Die Nachrichtenquelle bleibt privat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Nachrichtentext"; "Message text" = "Nachrichtentext";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Weitere Verbesserungen sind bald verfügbar!"; "More improvements are coming soon!" = "Weitere Verbesserungen sind bald verfügbar!";
/* No comment provided by engineer. */
"More reliable network connection." = "Zuverlässigere Netzwerkverbindung.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Wahrscheinlich ist diese Verbindung gelöscht worden."; "Most likely this connection is deleted." = "Wahrscheinlich ist diese Verbindung gelöscht worden.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Netzwerk & Server"; "Network & servers" = "Netzwerk & Server";
/* No comment provided by engineer. */
"Network connection" = "Netzwerkverbindung";
/* No comment provided by engineer. */
"Network management" = "Netzwerk-Verwaltung";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Netzwerkeinstellungen"; "Network settings" = "Netzwerkeinstellungen";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Kein Nachrichtenverlauf"; "No history" = "Kein Nachrichtenverlauf";
/* No comment provided by engineer. */
"No network connection" = "Keine Netzwerkverbindung";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Keine Berechtigung für das Aufnehmen von Sprachnachrichten"; "No permission to record voice message" = "Keine Berechtigung für das Aufnehmen von Sprachnachrichten";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Oder diesen QR-Code anzeigen"; "Or show this code" = "Oder diesen QR-Code anzeigen";
/* No comment provided by engineer. */
"Other" = "Andere";
/* member role */ /* member role */
"owner" = "Eigentümer"; "owner" = "Eigentümer";
/* feature role */
"owners" = "Eigentümer";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Zugangscode"; "Passcode" = "Zugangscode";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig"; "Possibly, certificate fingerprint in server address is incorrect" = "Der Fingerabdruck des Zertifikats in der Serveradresse ist wahrscheinlich ungültig";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Post-Quantum E2E-Verschlüsselung";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren."; "Preserve the last message draft, with attachments." = "Den letzten Nachrichtenentwurf, auch mit seinen Anhängen, aufbewahren.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Profilbild"; "Profile image" = "Profilbild";
/* No comment provided by engineer. */
"Profile images" = "Profil-Bilder";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Profilname"; "Profile name" = "Profilname";
@@ -2931,11 +2991,14 @@
"Prohibit sending direct messages to members." = "Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben."; "Prohibit sending direct messages to members." = "Das Senden von Direktnachrichten an Gruppenmitglieder nicht erlauben.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending disappearing messages." = "Das Senden von verschwindenden Nachrichten verbieten."; "Prohibit sending disappearing messages." = "Das Senden von verschwindenden Nachrichten nicht erlauben.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Das Senden von Dateien und Medien nicht erlauben."; "Prohibit sending files and media." = "Das Senden von Dateien und Medien nicht erlauben.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Das Senden von SimpleX-Links nicht erlauben.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Das Senden von Sprachnachrichten nicht erlauben."; "Prohibit sending voice messages." = "Das Senden von Sprachnachrichten nicht erlauben.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Die Empfängeradresse wird auf einen anderen Server geändert. Der Adresswechsel wird abgeschlossen, wenn der Absender wieder online ist."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Die Empfängeradresse wird auf einen anderen Server geändert. Der Adresswechsel wird abgeschlossen, wenn der Absender wieder online ist.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Gleichzeitiger Empfang";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Der Empfang der Datei wird beendet."; "Receiving file will be stopped." = "Der Empfang der Datei wird beendet.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Aktueller Nachrichtenverlauf und verbesserter [Gruppenverzeichnis-Bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Empfänger können nicht sehen, von wem die Nachricht stammt.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben."; "Recipients see updates as you type them." = "Die Empfänger sehen Nachrichtenaktualisierungen, während Sie sie eingeben.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Begrüßungsmeldung speichern?"; "Save welcome message?" = "Begrüßungsmeldung speichern?";
/* No comment provided by engineer. */
"saved" = "abgespeichert";
/* No comment provided by engineer. */
"Saved" = "Abgespeichert";
/* No comment provided by engineer. */
"Saved from" = "Abgespeichert von";
/* No comment provided by engineer. */
"saved from %@" = "abgespeichert von %@";
/* message info title */ /* message info title */
"Saved message" = "Gespeicherte Nachricht"; "Saved message" = "Gespeicherte Nachricht";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Einstellungen"; "Settings" = "Einstellungen";
/* No comment provided by engineer. */
"Shape profile images" = "Form der Profil-Bilder";
/* chat item action */ /* chat item action */
"Share" = "Teilen"; "Share" = "Teilen";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX Gruppen-Link"; "SimpleX group link" = "SimpleX Gruppen-Link";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX-Links"; "SimpleX links" = "SimpleX-Links";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "In dieser Gruppe sind SimpleX-Links nicht erlaubt.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX-Links sind nicht erlaubt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX-Sperre"; "SimpleX Lock" = "SimpleX-Sperre";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Jemand"; "Somebody" = "Jemand";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Quadratisch, kreisförmig oder irgendetwas dazwischen.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "Standard-Ende-zu-Ende-Verschlüsselung"; "standard end-to-end encryption" = "Standard-Ende-zu-Ende-Verschlüsselung";
@@ -3936,7 +4029,7 @@
"Use chat" = "Verwenden Sie Chat"; "Use chat" = "Verwenden Sie Chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use current profile" = "Nutzen Sie das aktuelle Profil"; "Use current profile" = "Das aktuelle Profil nutzen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use for new connections" = "Für neue Verbindungen nutzen"; "Use for new connections" = "Für neue Verbindungen nutzen";
@@ -3948,7 +4041,7 @@
"Use iOS call interface" = "iOS Anrufschnittstelle nutzen"; "Use iOS call interface" = "iOS Anrufschnittstelle nutzen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use new incognito profile" = "Nutzen Sie das neue Inkognito-Profil"; "Use new incognito profile" = "Ein neues Inkognito-Profil nutzen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use only local notifications?" = "Nur lokale Benachrichtigungen nutzen?"; "Use only local notifications?" = "Nur lokale Benachrichtigungen nutzen?";
@@ -4049,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "In dieser Gruppe sind Sprachnachrichten nicht erlaubt."; "Voice messages are prohibited in this group." = "In dieser Gruppe sind Sprachnachrichten nicht erlaubt.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Sprachnachrichten sind nicht erlaubt";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Sprachnachrichten sind nicht erlaubt!"; "Voice messages prohibited!" = "Sprachnachrichten sind nicht erlaubt!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Wenn verfügbar"; "When available" = "Wenn verfügbar";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Bei der Verbindung über Audio- und Video-Anrufe.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen."; "When people request to connect, you can accept or reject it." = "Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen.";
/* 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." = "Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Wenn Sie ein Inkognito-Profil mit Jemandem teilen, wird dieses Profil auch für die Gruppen verwendet, für die Sie von diesem Kontakt eingeladen werden.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Wird in direkten Chats automatisch aktiviert!";
/* No comment provided by engineer. */
"Wired ethernet" = "Kabelgebundenes Netzwerk";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Mit verschlüsselten Dateien und Medien."; "With encrypted files and media." = "Mit verschlüsselten Dateien und Medien.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "Ja"; "yes" = "Ja";
/* No comment provided by engineer. */
"you" = "Profil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Profil"; "You" = "Profil";
+187 -76
View File
@@ -86,7 +86,7 @@
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Más privado**: no se usa el servidor de notificaciones de SimpleX Chat, los mensajes se comprueban periódicamente en segundo plano (dependiendo de la frecuencia con la que utilices la aplicación)."; "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Más privado**: no se usa el servidor de notificaciones de SimpleX Chat, los mensajes se comprueban periódicamente en segundo plano (dependiendo de la frecuencia con la que utilices la aplicación).";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Tenga en cuenta**: usar la misma base de datos en dos dispositivos interrumpirá el descifrado de mensajes de sus conexiones, como protección de seguridad."; "**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**Recuarda**: usar la misma base de datos en dos dispositivos hará que falle el descifrado de mensajes como protección de seguridad.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Atención**: NO podrás recuperar o cambiar la contraseña si la pierdes."; "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Atención**: NO podrás recuperar o cambiar la contraseña si la pierdes.";
@@ -143,7 +143,7 @@
"%@ connected" = "%@ conectado"; "%@ connected" = "%@ conectado";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ downloaded" = "%@ downloaded"; "%@ downloaded" = "%@ descargado";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ ¡está conectado!"; "%@ is connected!" = "%@ ¡está conectado!";
@@ -158,7 +158,7 @@
"%@ servers" = "Servidores %@"; "%@ servers" = "Servidores %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ uploaded" = "%@ cargado"; "%@ uploaded" = "%@ subido";
/* notification title */ /* notification title */
"%@ wants to connect!" = "¡ %@ quiere contactar!"; "%@ wants to connect!" = "¡ %@ quiere contactar!";
@@ -389,8 +389,11 @@
/* member role */ /* member role */
"admin" = "administrador"; "admin" = "administrador";
/* feature role */
"admins" = "administradores";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Los admins pueden bloquear un miembro por todos."; "Admins can block a member for all." = "Los administradores pueden bloquear a un miembro para los demás.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can create the links to join groups." = "Los administradores pueden crear enlaces para unirse a grupos."; "Admins can create the links to join groups." = "Los administradores pueden crear enlaces para unirse a grupos.";
@@ -416,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Todos los miembros del grupo permanecerán conectados."; "All group members will remain connected." = "Todos los miembros del grupo permanecerán conectados.";
/* feature role */
"all members" = "todos los miembros";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Todos los mensajes serán borrados. ¡No podrá deshacerse!"; "All messages will be deleted - this cannot be undone!" = "Todos los mensajes serán borrados. ¡No podrá deshacerse!";
@@ -432,7 +438,7 @@
"All your contacts will remain connected. Profile update will be sent to your contacts." = "Todos tus contactos permanecerán conectados. La actualización del perfil se enviará a tus contactos."; "All your contacts will remain connected. Profile update will be sent to your contacts." = "Todos tus contactos permanecerán conectados. La actualización del perfil se enviará a tus contactos.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Todos sus contactos, conversaciones y archivos se cifrarán de forma segura y se subirán en fragmentos hacia puntos XFTP configurados."; "All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "Todos tus contactos, conversaciones y archivos serán cifrados, divididos y subidos de forma segura a los servidores XFTP configurados.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow" = "Se permite"; "Allow" = "Se permite";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Se permite enviar archivos y multimedia."; "Allow to send files and media." = "Se permite enviar archivos y multimedia.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Permitir enviar enlaces SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Permites enviar mensajes de voz."; "Allow to send voice messages." = "Permites enviar mensajes de voz.";
@@ -516,7 +525,7 @@
"App build: %@" = "Compilación app: %@"; "App build: %@" = "Compilación app: %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"App data migration" = "Migración de datos de la aplicación"; "App data migration" = "Migrar datos de la aplicación";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"App encrypts new local files (except videos)." = "Cifrado de los nuevos archivos locales (excepto vídeos)."; "App encrypts new local files (except videos)." = "Cifrado de los nuevos archivos locales (excepto vídeos).";
@@ -543,7 +552,7 @@
"Apply" = "Aplicar"; "Apply" = "Aplicar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Archive and upload" = "Archivar y transferir"; "Archive and upload" = "Archivar y subir";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Archiving database" = "Archivando base de datos"; "Archiving database" = "Archivando base de datos";
@@ -636,13 +645,13 @@
"blocked" = "bloqueado"; "blocked" = "bloqueado";
/* rcv group event chat item */ /* rcv group event chat item */
"blocked %@" = "%@ bloqueado"; "blocked %@" = "ha bloqueado a %@";
/* marked deleted chat item preview text */ /* marked deleted chat item preview text */
"blocked by admin" = "bloqueado por el administrador"; "blocked by admin" = "bloqueado por administrador";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Blocked by admin" = "Bloqueado por el administrador"; "Blocked by admin" = "Bloqueado por administrador";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"bold" = "negrita"; "bold" = "negrita";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "No se puede recibir el archivo"; "Cannot receive file" = "No se puede recibir el archivo";
/* No comment provided by engineer. */
"Cellular" = "Móvil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Cambiar"; "Change" = "Cambiar";
@@ -772,13 +784,13 @@
"Chat is running" = "Chat está en ejecución"; "Chat is running" = "Chat está en ejecución";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat is stopped" = "Chat está detenido"; "Chat is stopped" = "Chat está parado";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat está detenido. Si estás usando esta base de datos en otro dispositivo, deberías transferirla de vuelta antes de iniciarlo."; "Chat is stopped. If you already used this database on another device, you should transfer it back before starting chat." = "Chat parado. Si has usado esta base de datos en otro dispositivo, debes transferirla de vuelta antes de iniciar Chat.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat migrated!" = "Chat transferido !"; "Chat migrated!" = "¡Chat migrado!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Chat preferences" = "Preferencias de Chat"; "Chat preferences" = "Preferencias de Chat";
@@ -793,7 +805,7 @@
"Chinese and Spanish interface" = "Interfaz en chino y español"; "Chinese and Spanish interface" = "Interfaz en chino y español";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Choose _Migrate from another device_ on the new device and scan QR code." = "Elija _Migrar desde otro dispositivo_ en el nuevo dispositivo y escanee el código QR."; "Choose _Migrate from another device_ on the new device and scan QR code." = "En el nuevo dispositivo selecciona _Migrar desde otro dispositivo_ y escanéa el código QR.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Choose file" = "Elije archivo"; "Choose file" = "Elije archivo";
@@ -841,7 +853,7 @@
"Confirm database upgrades" = "Confirmar actualizaciones de la bases de datos"; "Confirm database upgrades" = "Confirmar actualizaciones de la bases de datos";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Confirm network settings" = "Confirmar los ajustes de red"; "Confirm network settings" = "Confirmar configuración de red";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Confirm new passphrase…" = "Confirme nueva contraseña…"; "Confirm new passphrase…" = "Confirme nueva contraseña…";
@@ -853,7 +865,7 @@
"Confirm password" = "Confirmar contraseña"; "Confirm password" = "Confirmar contraseña";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Confirm that you remember database passphrase to migrate it." = "Confirme que recuerda la frase secreta de la base de datos para migrarla."; "Confirm that you remember database passphrase to migrate it." = "Confirma que recuerdas la frase de contraseña de la base de datos para migrarla.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Confirm upload" = "Confirmar subida"; "Confirm upload" = "Confirmar subida";
@@ -1057,7 +1069,7 @@
"Created on %@" = "Creado en %@"; "Created on %@" = "Creado en %@";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Creating archive link" = "Creando enlace de archivo"; "Creating archive link" = "Creando enlace al archivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Creating link…" = "Creando enlace…"; "Creating link…" = "Creando enlace…";
@@ -1189,7 +1201,7 @@
"Delete chat profile" = "Eliminar perfil"; "Delete chat profile" = "Eliminar perfil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete chat profile?" = "¿Eliminar el perfil?"; "Delete chat profile?" = "¿Eliminar perfil?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Delete connection" = "Eliminar conexión"; "Delete connection" = "Eliminar conexión";
@@ -1401,8 +1413,11 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Degradar y abrir Chat"; "Downgrade and open chat" = "Degradar y abrir Chat";
/* chat item action */
"Download" = "Descargar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Error en la descarga"; "Download failed" = "Descarga fallida";
/* server test step */ /* server test step */
"Download file" = "Descargar archivo"; "Download file" = "Descargar archivo";
@@ -1447,7 +1462,7 @@
"Enable for all" = "Activar para todos"; "Enable for all" = "Activar para todos";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enable in direct chats (BETA)!" = "Activar en chats directos (BETA)!"; "Enable in direct chats (BETA)!" = "¡Activar en chats directos (BETA)!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enable instant notifications?" = "¿Activar notificación instantánea?"; "Enable instant notifications?" = "¿Activar notificación instantánea?";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "activado"; "enabled" = "activado";
/* No comment provided by engineer. */
"Enabled for" = "Activar para";
/* enabled status */ /* enabled status */
"enabled for contact" = "activado para el contacto"; "enabled for contact" = "activado para el contacto";
@@ -1564,7 +1582,7 @@
"Enter Passcode" = "Introduce Código"; "Enter Passcode" = "Introduce Código";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter passphrase" = "Introducir frase de contraseña"; "Enter passphrase" = "Introduce la frase de contraseña";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Enter passphrase…" = "Introduce la contraseña…"; "Enter passphrase…" = "Introduce la contraseña…";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Error al añadir miembro(s)"; "Error adding member(s)" = "Error al añadir miembro(s)";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Error al permitir cifrado PQ al contacto";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Error al cambiar servidor"; "Error changing address" = "Error al cambiar servidor";
@@ -1735,7 +1750,7 @@
"Error starting chat" = "Error al iniciar Chat"; "Error starting chat" = "Error al iniciar Chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error stopping chat" = "Error al detener Chat"; "Error stopping chat" = "Error al parar Chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error switching profile!" = "¡Error al cambiar perfil!"; "Error switching profile!" = "¡Error al cambiar perfil!";
@@ -1816,10 +1831,10 @@
"File will be deleted from servers." = "El archivo será eliminado de los servidores."; "File will be deleted from servers." = "El archivo será eliminado de los servidores.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"File will be received when your contact completes uploading it." = "El archivo se recibirá cuando tu contacto termine de subirlo."; "File will be received when your contact completes uploading it." = "El archivo se recibirá cuando el contacto termine de subirlo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"File will be received when your contact is online, please wait or check later!" = "El archivo se recibirá cuando tu contacto esté en línea, ¡por favor espera o compruébalo más tarde!"; "File will be received when your contact is online, please wait or check later!" = "El archivo se recibirá cuando el contacto esté en línea, ¡por favor espera o compruébalo más tarde!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"File: %@" = "Archivo: %@"; "File: %@" = "Archivo: %@";
@@ -1831,7 +1846,10 @@
"Files and media" = "Archivos y multimedia"; "Files and media" = "Archivos y multimedia";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "No se permiten archivos y multimedia en este grupo."; "Files and media are prohibited in this group." = "Los archivos y multimedia no están permitidos en este grupo.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Archivos y multimedia no permitidos";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "¡Archivos y multimedia no permitidos!"; "Files and media prohibited!" = "¡Archivos y multimedia no permitidos!";
@@ -1840,7 +1858,7 @@
"Filter unread and favorite chats." = "Filtra chats no leídos y favoritos."; "Filter unread and favorite chats." = "Filtra chats no leídos y favoritos.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Finalize migration" = "Finalizar la migración"; "Finalize migration" = "Finalizar migración";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Finalize migration on another device." = "Finalizar la migración en otro dispositivo."; "Finalize migration on another device." = "Finalizar la migración en otro dispositivo.";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Para consola"; "For console" = "Para consola";
/* chat item action */
"Forward" = "Reenviar";
/* No comment provided by engineer. */
"Forward and save messages" = "Reenviar y guardar mensajes";
/* No comment provided by engineer. */
"forwarded" = "reenviado";
/* No comment provided by engineer. */
"Forwarded" = "Reenviado";
/* No comment provided by engineer. */
"Forwarded from" = "Reenviado por";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Ordenador encontrado"; "Found desktop" = "Ordenador encontrado";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia."; "Group members can send files and media." = "Los miembros del grupo pueden enviar archivos y multimedia.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Los miembros del grupo pueden enviar enlaces SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz."; "Group members can send voice messages." = "Los miembros del grupo pueden enviar mensajes de voz.";
@@ -2029,7 +2065,7 @@
"How to use your servers" = "Cómo usar los servidores"; "How to use your servers" = "Cómo usar los servidores";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Hungarian interface" = "Interfaz húngara"; "Hungarian interface" = "Interfaz en húngaro";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"ICE servers (one per line)" = "Servidores ICE (uno por línea)"; "ICE servers (one per line)" = "Servidores ICE (uno por línea)";
@@ -2050,10 +2086,10 @@
"Ignore" = "Ignorar"; "Ignore" = "Ignorar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Image will be received when your contact completes uploading it." = "La imagen se recibirá cuando tu contacto termine de subirla."; "Image will be received when your contact completes uploading it." = "La imagen se recibirá cuando el contacto termine de subirla.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Image will be received when your contact is online, please wait or check later!" = "La imagen se recibirá cuando tu contacto esté en línea, ¡por favor espera o compruébalo más tarde!"; "Image will be received when your contact is online, please wait or check later!" = "La imagen se recibirá cuando el contacto esté en línea, ¡por favor espera o compruébalo más tarde!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Immediately" = "Inmediatamente"; "Immediately" = "Inmediatamente";
@@ -2086,11 +2122,14 @@
"Improved server configuration" = "Configuración del servidor mejorada"; "Improved server configuration" = "Configuración del servidor mejorada";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In order to continue, chat should be stopped." = "Para continuar, el chat debe ser interrumpido."; "In order to continue, chat should be stopped." = "Para continuar, Chat debe estar parado.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "En respuesta a"; "In reply to" = "En respuesta a";
/* No comment provided by engineer. */
"In-call sounds" = "Sonido de llamada";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incógnito"; "Incognito" = "Incógnito";
@@ -2173,7 +2212,7 @@
"Invalid link" = "Enlace no válido"; "Invalid link" = "Enlace no válido";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid migration confirmation" = "Confirmación de migración inválida"; "Invalid migration confirmation" = "Confirmación de migración no válida";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Invalid name!" = "¡Nombre no válido!"; "Invalid name!" = "¡Nombre no válido!";
@@ -2239,7 +2278,7 @@
"It can happen when you or your connection used the old database backup." = "Puede ocurrir cuando tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos."; "It can happen when you or your connection used the old database backup." = "Puede ocurrir cuando tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It can happen when:\n1. The messages expired in the sending client after 2 days or on the server after 30 days.\n2. Message decryption failed, because you or your contact used old database backup.\n3. The connection was compromised." = "Esto puede suceder cuando:\n1. Los mensajes caducan en el cliente saliente tras 2 días o en el servidor tras 30 días.\n2. El descifrado ha fallado porque tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos.\n3. La conexión ha sido comprometida."; "It can happen when:\n1. The messages expired in the sending client after 2 days or on the server after 30 days.\n2. Message decryption failed, because you or your contact used old database backup.\n3. The connection was compromised." = "Esto puede suceder cuando:\n1. Los mensajes caducan tras 2 días en el cliente saliente o tras 30 días en el servidor.\n2. El descifrado ha fallado porque tu o tu contacto estáis usando una copia de seguridad antigua de la base de datos.\n3. La conexión ha sido comprometida.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"It seems like you are already connected via this link. If it is not the case, there was an error (%@)." = "Parece que ya estás conectado mediante este enlace. Si no es así ha habido un error (%@)."; "It seems like you are already connected via this link. If it is not the case, there was an error (%@)." = "Parece que ya estás conectado mediante este enlace. Si no es así ha habido un error (%@).";
@@ -2436,11 +2475,14 @@
/* notification */ /* notification */
"message received" = "mensaje recibido"; "message received" = "mensaje recibido";
/* No comment provided by engineer. */
"Message source remains private." = "El autor del mensaje se mantiene privado.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Contacto y texto"; "Message text" = "Contacto y texto";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message too large" = "Mensaje demasiado grande"; "Message too large" = "Mensaje demasiado largo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages" = "Mensajes"; "Messages" = "Mensajes";
@@ -2452,10 +2494,10 @@
"Messages from %@ will be shown!" = "¡Los mensajes de %@ serán mostrados!"; "Messages from %@ will be shown!" = "¡Los mensajes de %@ serán mostrados!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Los mensajes, archivos y llamadas están protegidos por **cifrado de extremo a extremo** con perfecta confidencialidad, repudio y recuperación tras ataques."; "Messages, files and calls are protected by **end-to-end encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Los mensajes, archivos y llamadas están protegidos mediante **cifrado de extremo a extremo** con secreto perfecto hacía adelante, repudio y recuperación tras ataque.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Los mensajes, archivos y llamadas están protegidos por **cifrado de extremo a extremo resistente a la computación cuántica** con perfecta confidencialidad, repudio y recuperación tras ataques."; "Messages, files and calls are protected by **quantum resistant e2e encryption** with perfect forward secrecy, repudiation and break-in recovery." = "Los mensajes, archivos y llamadas están protegidos mediante **cifrado de extremo a extremo resistente a tecnología cuántica** con secreto perfecto hacía adelante, repudio y recuperación tras ataque.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrate device" = "Migrar dispositivo"; "Migrate device" = "Migrar dispositivo";
@@ -2467,10 +2509,10 @@
"Migrate here" = "Migrar aquí"; "Migrate here" = "Migrar aquí";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrate to another device" = "Migrar hacia otro dispositivo"; "Migrate to another device" = "Migrar a otro dispositivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrate to another device via QR code." = "Migrar hacia otro dispositivo mediante código QR."; "Migrate to another device via QR code." = "Migrar a otro dispositivo mediante código QR.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Migrating" = "Migrando"; "Migrating" = "Migrando";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "¡Pronto habrá más mejoras!"; "More improvements are coming soon!" = "¡Pronto habrá más mejoras!";
/* No comment provided by engineer. */
"More reliable network connection." = "Conexión de red más fiable.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Probablemente la conexión ha sido eliminada."; "Most likely this connection is deleted." = "Probablemente la conexión ha sido eliminada.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Servidores y Redes"; "Network & servers" = "Servidores y Redes";
/* No comment provided by engineer. */
"Network connection" = "Conexión de red";
/* No comment provided by engineer. */
"Network management" = "Gestión de la red";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Configuración de red"; "Network settings" = "Configuración de red";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Sin historial"; "No history" = "Sin historial";
/* No comment provided by engineer. */
"No network connection" = "Sin conexión de red";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Sin permiso para grabar mensajes de voz"; "No permission to record voice message" = "Sin permiso para grabar mensajes de voz";
@@ -2739,7 +2793,7 @@
"Open group" = "Grupo abierto"; "Open group" = "Grupo abierto";
/* authentication reason */ /* authentication reason */
"Open migration to another device" = "Abrir la migración hacia otro dispositivo"; "Open migration to another device" = "Abrir menú migración a otro dispositivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Open Settings" = "Abrir Configuración"; "Open Settings" = "Abrir Configuración";
@@ -2760,14 +2814,20 @@
"Or scan QR code" = "O escanear código QR"; "Or scan QR code" = "O escanear código QR";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or securely share this file link" = "O comparta de forma segura el enlace de este archivo"; "Or securely share this file link" = "O comparte de forma segura este enlace al archivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "O mostrar este código"; "Or show this code" = "O mostrar este código";
/* No comment provided by engineer. */
"Other" = "Otro";
/* member role */ /* member role */
"owner" = "propietario"; "owner" = "propietario";
/* feature role */
"owners" = "propietarios";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Código de acceso"; "Passcode" = "Código de acceso";
@@ -2835,7 +2895,7 @@
"Please check yours and your contact preferences." = "Comprueba tus preferencias y las de tu contacto."; "Please check yours and your contact preferences." = "Comprueba tus preferencias y las de tu contacto.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please confirm that network settings are correct for this device." = "Por favor confirme que la configuración de red es correcta para este dispositivo."; "Please confirm that network settings are correct for this device." = "Por favor, confirma que la configuración de red es correcta para este dispositivo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please contact developers.\nError: %@" = "Por favor, contacta con los desarrolladores.\nError: %@"; "Please contact developers.\nError: %@" = "Por favor, contacta con los desarrolladores.\nError: %@";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Posiblemente la huella digital del certificado en la dirección del servidor es incorrecta"; "Possibly, certificate fingerprint in server address is incorrect" = "Posiblemente la huella digital del certificado en la dirección del servidor es incorrecta";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "E2EE postcuántica";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Conserva el último borrador del mensaje con los datos adjuntos."; "Preserve the last message draft, with attachments." = "Conserva el último borrador del mensaje con los datos adjuntos.";
@@ -2898,11 +2955,14 @@
"Private notes" = "Notas privadas"; "Private notes" = "Notas privadas";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile and server connections" = "Perfil y conexiones de servidor"; "Profile and server connections" = "Datos del perfil y conexiones";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Imagen del perfil"; "Profile image" = "Imagen del perfil";
/* No comment provided by engineer. */
"Profile images" = "Imágenes del perfil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Nombre del perfil"; "Profile name" = "Nombre del perfil";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "No permitir el envío de archivos y multimedia."; "Prohibit sending files and media." = "No permitir el envío de archivos y multimedia.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "No permitir el envío de enlaces SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "No se permiten mensajes de voz."; "Prohibit sending voice messages." = "No se permiten mensajes de voz.";
@@ -2958,10 +3021,10 @@
"Push server" = "Servidor push"; "Push server" = "Servidor push";
/* chat item text */ /* chat item text */
"quantum resistant e2e encryption" = "cifrado e2e resistente a la cuántica"; "quantum resistant e2e encryption" = "cifrado e2e resistente a tecnología cuántica";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Quantum resistant encryption" = "Cifrado resistente a la tecnología cuántica"; "Quantum resistant encryption" = "Cifrado resistente a tecnología cuántica";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Rate the app" = "Valora la aplicación"; "Rate the app" = "Valora la aplicación";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "La dirección de recepción pasará a otro servidor. El cambio se completará cuando el remitente esté en línea."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "La dirección de recepción pasará a otro servidor. El cambio se completará cuando el remitente esté en línea.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Concurrencia en la recepción";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Se detendrá la recepción del archivo."; "Receiving file will be stopped." = "Se detendrá la recepción del archivo.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historial reciente y [bot del directorio](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) mejorados."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historial reciente y [bot del directorio](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) mejorados.";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Los destinatarios no ven de quién procede este mensaje.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Los destinatarios ven actualizarse mientras escribes."; "Recipients see updates as you type them." = "Los destinatarios ven actualizarse mientras escribes.";
@@ -3108,7 +3177,7 @@
"Repeat join request?" = "¿Repetir solicitud de admisión?"; "Repeat join request?" = "¿Repetir solicitud de admisión?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Repeat upload" = "Repetir la carga"; "Repeat upload" = "Repetir subida";
/* chat item action */ /* chat item action */
"Reply" = "Responder"; "Reply" = "Responder";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "¿Guardar mensaje de bienvenida?"; "Save welcome message?" = "¿Guardar mensaje de bienvenida?";
/* No comment provided by engineer. */
"saved" = "guardado";
/* No comment provided by engineer. */
"Saved" = "Guardado";
/* No comment provided by engineer. */
"Saved from" = "Guardado desde";
/* No comment provided by engineer. */
"saved from %@" = "Guardado desde %@";
/* message info title */ /* message info title */
"Saved message" = "Mensaje guardado"; "Saved message" = "Mensaje guardado";
@@ -3288,7 +3369,7 @@
"Send" = "Enviar"; "Send" = "Enviar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Send a live message - it will update for the recipient(s) as you type it" = "Envía un mensaje en vivo: se actualizará para el(los) destinatario(s) a medida que se escribe"; "Send a live message - it will update for the recipient(s) as you type it" = "Envía un mensaje en vivo: se actualizará para el (los) destinatario(s) a medida que se escribe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Send delivery receipts to" = "Enviar confirmaciones de entrega a"; "Send delivery receipts to" = "Enviar confirmaciones de entrega a";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Configuración"; "Settings" = "Configuración";
/* No comment provided by engineer. */
"Shape profile images" = "Dar forma a las imágenes de perfil";
/* chat item action */ /* chat item action */
"Share" = "Compartir"; "Share" = "Compartir";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Enlace de grupo SimpleX"; "SimpleX group link" = "Enlace de grupo SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Enlaces SimpleX"; "SimpleX links" = "Enlaces SimpleX";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Los enlaces SimpleX no se permiten en este grupo.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "Enlaces SimpleX no permitidos";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "Bloqueo SimpleX"; "SimpleX Lock" = "Bloqueo SimpleX";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Alguien"; "Somebody" = "Alguien";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Cuadrada, circular o cualquier forma intermedia.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "cifrado estándar de extremo a extremo"; "standard end-to-end encryption" = "cifrado estándar de extremo a extremo";
@@ -3537,19 +3630,19 @@
"starting…" = "inicializando…"; "starting…" = "inicializando…";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stop" = "Detener"; "Stop" = "Parar";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stop chat" = "Detener el chat"; "Stop chat" = "Parar chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stop chat to enable database actions" = "Detén SimpleX para habilitar las acciones sobre la base de datos"; "Stop chat to enable database actions" = "Para habilitar las acciones sobre la base de datos, debes parar Chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." = "Para poder exportar, importar o eliminar la base de datos primero debes detener Chat. Durante el tiempo que esté detenido no podrás recibir ni enviar mensajes."; "Stop chat to export, import or delete chat database. You will not be able to receive and send messages while the chat is stopped." = "Para poder exportar, importar o eliminar la base de datos primero debes parar Chat. Mientras tanto no podrás recibir ni enviar mensajes.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stop chat?" = "¿Detener Chat?"; "Stop chat?" = "¿Parar Chat?";
/* cancel file action */ /* cancel file action */
"Stop file" = "Detener archivo"; "Stop file" = "Detener archivo";
@@ -3567,10 +3660,10 @@
"Stop sharing address?" = "¿Dejar de compartir la dirección?"; "Stop sharing address?" = "¿Dejar de compartir la dirección?";
/* authentication reason */ /* authentication reason */
"Stop SimpleX" = "Detener SimpleX"; "Stop SimpleX" = "Parar SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Stopping chat" = "Detención del chat"; "Stopping chat" = "Parando chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"strike" = "tachado"; "strike" = "tachado";
@@ -3642,16 +3735,16 @@
"Thank you for installing SimpleX Chat!" = "¡Gracias por instalar SimpleX Chat!"; "Thank you for installing SimpleX Chat!" = "¡Gracias por instalar SimpleX Chat!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "Gracias a los usuarios: [contribuye vía Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#traducir-el-aplicaciones)!"; "Thanks to the users [contribute via Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#help-translating-simplex-chat)!" = "¡Nuestro agradecimiento a todos los colaboradores, [puedes contribuir a través de Weblate](https://github.com/simplex-chat/simplex-chat/tree/stable#traducir-el-aplicaciones)!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Thanks to the users contribute via Weblate!" = "¡Gracias a los colaboradores! Contribuye a través de Weblate."; "Thanks to the users contribute via Weblate!" = "¡Nuestro agradecimiento a todos los colaboradores! Puedes contribuir a través de Weblate";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The 1st platform without any user identifiers private by design." = "La primera plataforma sin identificadores de usuario: diseñada para la privacidad."; "The 1st platform without any user identifiers private by design." = "La primera plataforma sin identificadores de usuario: diseñada para la privacidad.";
/* 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." = "La aplicación puede notificarte cuando recibas mensajes o solicitudes de contacto: abre la configuración para habilitar."; "The app can notify you when you receive messages or contact requests - please open settings to enable." = "La aplicación puede notificarte cuando recibas mensajes o solicitudes de contacto: por favor, abre la configuración para activarlo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"The attempt to change database passphrase was not completed." = "El intento de cambiar la contraseña de la base de datos no se ha completado."; "The attempt to change database passphrase was not completed." = "El intento de cambiar la contraseña de la base de datos no se ha completado.";
@@ -3717,7 +3810,7 @@
"This action cannot be undone - all received and sent files and media will be deleted. Low resolution pictures will remain." = "Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán."; "This action cannot be undone - all received and sent files and media will be deleted. Low resolution pictures will remain." = "Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." = "Esta acción es irreversible. Se eliminarán los mensajes enviados y recibidos anteriores a la selección. Puede tardar varios minutos."; "This action cannot be undone - the messages sent and received earlier than selected will be deleted. It may take several minutes." = "Esta acción es irreversible. Se eliminarán los mensajes enviados y recibidos anteriores a la selección. Podría tardar varios minutos.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Esta acción es irreversible. Tu perfil, contactos, mensajes y archivos se perderán irreversiblemente."; "This action cannot be undone - your profile, contacts, messages and files will be irreversibly lost." = "Esta acción es irreversible. Tu perfil, contactos, mensajes y archivos se perderán irreversiblemente.";
@@ -3726,7 +3819,7 @@
"This chat is protected by end-to-end encryption." = "Este chat está protegido por cifrado de extremo a extremo."; "This chat is protected by end-to-end encryption." = "Este chat está protegido por cifrado de extremo a extremo.";
/* E2EE info chat item */ /* E2EE info chat item */
"This chat is protected by quantum resistant end-to-end encryption." = "Este chat está protegido por un cifrado de extremo a extremo resistente a tecnologías cuánticas."; "This chat is protected by quantum resistant end-to-end encryption." = "Este chat está protegido por cifrado de extremo a extremo resistente a tecnología cuántica.";
/* notification title */ /* notification title */
"this contact" = "este contacto"; "this contact" = "este contacto";
@@ -3825,7 +3918,7 @@
"Unblock member?" = "¿Desbloquear miembro?"; "Unblock member?" = "¿Desbloquear miembro?";
/* rcv group event chat item */ /* rcv group event chat item */
"unblocked %@" = "%@ desbloqueado"; "unblocked %@" = "ha desbloqueado a %@";
/* item status description */ /* item status description */
"Unexpected error: %@" = "Error inesperado: %@"; "Unexpected error: %@" = "Error inesperado: %@";
@@ -3921,13 +4014,13 @@
"Upgrade and open chat" = "Actualizar y abrir Chat"; "Upgrade and open chat" = "Actualizar y abrir Chat";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Upload failed" = "Error de carga"; "Upload failed" = "Error de subida";
/* server test step */ /* server test step */
"Upload file" = "Subir archivo"; "Upload file" = "Subir archivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Uploading archive" = "Subiendo el archivo"; "Uploading archive" = "Subiendo archivo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use .onion hosts" = "Usar hosts .onion"; "Use .onion hosts" = "Usar hosts .onion";
@@ -3960,7 +4053,7 @@
"Use SimpleX Chat servers?" = "¿Usar servidores SimpleX Chat?"; "Use SimpleX Chat servers?" = "¿Usar servidores SimpleX Chat?";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Use the app while in the call." = "Usar la app durante la llamada."; "Use the app while in the call." = "Usar la aplicación durante la llamada.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"User profile" = "Perfil de usuario"; "User profile" = "Perfil de usuario";
@@ -4023,10 +4116,10 @@
"video call (not e2e encrypted)" = "videollamada (sin cifrar)"; "video call (not e2e encrypted)" = "videollamada (sin cifrar)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video will be received when your contact completes uploading it." = "El video se recibirá cuando tu contacto termine de subirlo."; "Video will be received when your contact completes uploading it." = "El video se recibirá cuando el contacto termine de subirlo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Video will be received when your contact is online, please wait or check later!" = "El vídeo se recibirá cuando tu contacto esté en línea, por favor espera o compruébalo más tarde."; "Video will be received when your contact is online, please wait or check later!" = "El vídeo se recibirá cuando el contacto esté en línea, por favor espera o compruébalo más tarde.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Videos and files up to 1gb" = "Vídeos y archivos de hasta 1Gb"; "Videos and files up to 1gb" = "Vídeos y archivos de hasta 1Gb";
@@ -4049,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Los mensajes de voz no están permitidos en este grupo."; "Voice messages are prohibited in this group." = "Los mensajes de voz no están permitidos en este grupo.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Mensajes de voz no permitidos";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "¡Mensajes de voz no permitidos!"; "Voice messages prohibited!" = "¡Mensajes de voz no permitidos!";
@@ -4074,7 +4170,7 @@
"wants to connect to you!" = "¡quiere contactar contigo!"; "wants to connect to you!" = "¡quiere contactar contigo!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Advertencia: el inicio del chat en varios dispositivos no es compatible y provocará fallos en la entrega de mensajes"; "Warning: starting chat on multiple devices is not supported and will cause message delivery failures" = "Atención: el inicio del chat en varios dispositivos es incompatible y provocará fallos en la entrega de mensajes";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Warning: you may lose some data!" = "Atención: ¡puedes perder algunos datos!"; "Warning: you may lose some data!" = "Atención: ¡puedes perder algunos datos!";
@@ -4092,7 +4188,7 @@
"Welcome message" = "Mensaje de bienvenida"; "Welcome message" = "Mensaje de bienvenida";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Welcome message is too long" = "El mensaje de bienvenida es demasiado largo"; "Welcome message is too long" = "Mensaje de bienvenida demasiado largo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"What's new" = "Novedades"; "What's new" = "Novedades";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Si disponibles"; "When available" = "Si disponibles";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Al iniciar llamadas de audio y vídeo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Cuando alguien solicite conectarse podrás aceptar o rechazar la solicitud."; "When people request to connect, you can accept or reject it." = "Cuando alguien solicite conectarse podrás aceptar o rechazar la solicitud.";
/* 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." = "Cuando compartes un perfil incógnito con alguien, este perfil también se usará para los grupos a los que te inviten."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Cuando compartes un perfil incógnito con alguien, este perfil también se usará para los grupos a los que te inviten.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "¡Será habilitado en los chats directos!";
/* No comment provided by engineer. */
"Wired ethernet" = "Ethernet por cable";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Con cifrado de archivos y multimedia."; "With encrypted files and media." = "Con cifrado de archivos y multimedia.";
@@ -4127,11 +4235,14 @@
/* pref value */ /* pref value */
"yes" = "sí"; "yes" = "sí";
/* No comment provided by engineer. */
"you" = "tu";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Tú"; "You" = "Tú";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You **must not** use the same database on two devices." = "**No debe** usar la misma base de datos en dos dispositivos."; "You **must not** use the same database on two devices." = "**No debes** usar la misma base de datos en dos dispositivos.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You accepted connection" = "Has aceptado la conexión"; "You accepted connection" = "Has aceptado la conexión";
@@ -4194,7 +4305,7 @@
"You can enable them later via app Privacy & Security settings." = "Puedes activarlos más tarde en la configuración de Privacidad y Seguridad."; "You can enable them later via app Privacy & Security settings." = "Puedes activarlos más tarde en la configuración de Privacidad y Seguridad.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can give another try." = "Puede intentarlo de nuevo."; "You can give another try." = "Puedes intentarlo de nuevo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You can hide or mute a user profile - swipe it to the right." = "Puedes ocultar o silenciar un perfil deslizándolo a la derecha."; "You can hide or mute a user profile - swipe it to the right." = "Puedes ocultar o silenciar un perfil deslizándolo a la derecha.";
@@ -4308,7 +4419,7 @@
"You will be connected when your connection request is accepted, please wait or check later!" = "Te conectarás cuando tu solicitud se acepte, por favor espera o compruébalo más tarde."; "You will be connected when your connection request is accepted, please wait or check later!" = "Te conectarás cuando tu solicitud se acepte, por favor espera o compruébalo más tarde.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be connected when your contact's device is online, please wait or check later!" = "Te conectarás cuando el dispositivo de tu contacto esté en línea, por favor espera o compruébalo más tarde."; "You will be connected when your contact's device is online, please wait or check later!" = "Te conectarás cuando el dispositivo del contacto esté en línea, por favor espera o compruébalo más tarde.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Se te pedirá identificarte cuándo inicies o continues usando la aplicación tras 30 segundos en segundo plano."; "You will be required to authenticate when you start or resume the app after 30 seconds in background." = "Se te pedirá identificarte cuándo inicies o continues usando la aplicación tras 30 segundos en segundo plano.";
@@ -4350,7 +4461,7 @@
"Your chat profiles" = "Mis perfiles"; "Your chat profiles" = "Mis perfiles";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your contact needs to be online for the connection to complete.\nYou can cancel this connection and remove the contact (and try later with a new link)." = "Tu contacto debe estar en línea para que se complete la conexión.\nPuedes cancelar esta conexión y eliminar el contacto (e intentarlo más tarde con un enlace nuevo)."; "Your contact needs to be online for the connection to complete.\nYou can cancel this connection and remove the contact (and try later with a new link)." = "El contacto debe estar en línea para completar la conexión.\nPuedes cancelarla y eliminar el contacto (e intentarlo más tarde con un enlace nuevo).";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Your contact sent a file that is larger than currently supported maximum size (%@)." = "El contacto ha enviado un archivo mayor al máximo admitido (%@)."; "Your contact sent a file that is larger than currently supported maximum size (%@)." = "El contacto ha enviado un archivo mayor al máximo admitido (%@).";
+1 -1
View File
@@ -2867,7 +2867,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX-ryhmän linkki"; "SimpleX group link" = "SimpleX-ryhmän linkki";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX-linkit"; "SimpleX links" = "SimpleX-linkit";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+118 -7
View File
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "admin"; "admin" = "admin";
/* feature role */
"admins" = "admins";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Les admins peuvent bloquer un membre pour tous."; "Admins can block a member for all." = "Les admins peuvent bloquer un membre pour tous.";
@@ -416,6 +419,9 @@
/* 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.";
/* feature role */
"all members" = "tous les membres";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Tous les messages seront supprimés - il n'est pas possible de revenir en arrière!"; "All messages will be deleted - this cannot be undone!" = "Tous les messages seront supprimés - il n'est pas possible de revenir en arrière!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Permet l'envoi de fichiers et de médias."; "Allow to send files and media." = "Permet l'envoi de fichiers et de médias.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Autorise l'envoi de liens SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Autoriser l'envoi de messages vocaux."; "Allow to send voice messages." = "Autoriser l'envoi de messages vocaux.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Impossible de recevoir le fichier"; "Cannot receive file" = "Impossible de recevoir le fichier";
/* No comment provided by engineer. */
"Cellular" = "Cellulaire";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Changer"; "Change" = "Changer";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Rétrograder et ouvrir le chat"; "Downgrade and open chat" = "Rétrograder et ouvrir le chat";
/* chat item action */
"Download" = "Télécharger";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Échec du téléchargement"; "Download failed" = "Échec du téléchargement";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "activé"; "enabled" = "activé";
/* No comment provided by engineer. */
"Enabled for" = "Activé pour";
/* enabled status */ /* enabled status */
"enabled for contact" = "activé pour le contact"; "enabled for contact" = "activé pour le contact";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Erreur lors de l'ajout de membre·s"; "Error adding member(s)" = "Erreur lors de l'ajout de membre·s";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Erreur lors de la négociation du chiffrement PQ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Erreur de changement d'adresse"; "Error changing address" = "Erreur de changement d'adresse";
@@ -1833,6 +1848,9 @@
/* 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 in this group." = "Les fichiers et les médias sont interdits dans ce groupe.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Fichiers et médias non autorisés";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Fichiers et médias interdits !"; "Files and media prohibited!" = "Fichiers et médias interdits !";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Pour la console"; "For console" = "Pour la console";
/* chat item action */
"Forward" = "Transférer";
/* No comment provided by engineer. */
"Forward and save messages" = "Transférer et sauvegarder des messages";
/* No comment provided by engineer. */
"forwarded" = "transféré";
/* No comment provided by engineer. */
"Forwarded" = "Transféré";
/* No comment provided by engineer. */
"Forwarded from" = "Transféré depuis";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Bureau trouvé"; "Found desktop" = "Bureau trouvé";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Les membres du groupe peuvent envoyer des fichiers et des médias."; "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. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux."; "Group members can send voice messages." = "Les membres du groupe peuvent envoyer des messages vocaux.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "En réponse à"; "In reply to" = "En réponse à";
/* No comment provided by engineer. */
"In-call sounds" = "Sons d'appel";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "message reçu"; "message received" = "message reçu";
/* No comment provided by engineer. */
"Message source remains private." = "La source du message reste privée.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Texte du message"; "Message text" = "Texte du message";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Plus d'améliorations à venir !"; "More improvements are coming soon!" = "Plus d'améliorations à venir !";
/* No comment provided by engineer. */
"More reliable network connection." = "Connexion réseau plus fiable.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Connexion probablement supprimée."; "Most likely this connection is deleted." = "Connexion probablement supprimée.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Réseau et serveurs"; "Network & servers" = "Réseau et serveurs";
/* No comment provided by engineer. */
"Network connection" = "Connexion au réseau";
/* No comment provided by engineer. */
"Network management" = "Gestion du réseau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Paramètres réseau"; "Network settings" = "Paramètres réseau";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Aucun historique"; "No history" = "Aucun historique";
/* No comment provided by engineer. */
"No network connection" = "Pas de connexion au réseau";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Pas l'autorisation d'enregistrer un message vocal"; "No permission to record voice message" = "Pas l'autorisation d'enregistrer un message vocal";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Ou présenter ce code"; "Or show this code" = "Ou présenter ce code";
/* No comment provided by engineer. */
"Other" = "Autres";
/* member role */ /* member role */
"owner" = "propriétaire"; "owner" = "propriétaire";
/* feature role */
"owners" = "propriétaires";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Code d'accès"; "Passcode" = "Code d'accès";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte"; "Possibly, certificate fingerprint in server address is incorrect" = "Il est possible que l'empreinte du certificat dans l'adresse du serveur soit incorrecte";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "E2EE post-quantique";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Conserver le brouillon du dernier message, avec les pièces jointes."; "Preserve the last message draft, with attachments." = "Conserver le brouillon du dernier message, avec les pièces jointes.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Image de profil"; "Profile image" = "Image de profil";
/* No comment provided by engineer. */
"Profile images" = "Images de profil";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Nom du profil"; "Profile name" = "Nom du profil";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Interdire l'envoi de fichiers et de médias."; "Prohibit sending files and media." = "Interdire l'envoi de fichiers et de médias.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Interdire l'envoi de liens SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Interdire l'envoi de messages vocaux."; "Prohibit sending voice messages." = "Interdire l'envoi de messages vocaux.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "L'adresse de réception sera changée pour un autre serveur. Le changement d'adresse sera terminé lorsque l'expéditeur sera en ligne."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "L'adresse de réception sera changée pour un autre serveur. Le changement d'adresse sera terminé lorsque l'expéditeur sera en ligne.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Réception simultanée";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "La réception du fichier sera interrompue."; "Receiving file will be stopped." = "La réception du fichier sera interrompue.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Historique récent et amélioration du [bot annuaire](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Le(s) destinataire(s) ne peut(vent) pas voir de qui provient ce message.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez."; "Recipients see updates as you type them." = "Les destinataires voient les mises à jour au fur et à mesure que vous leur écrivez.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Enregistrer le message d'accueil?"; "Save welcome message?" = "Enregistrer le message d'accueil?";
/* No comment provided by engineer. */
"saved" = "enregistré";
/* No comment provided by engineer. */
"Saved" = "Enregistré";
/* No comment provided by engineer. */
"Saved from" = "Enregistré depuis";
/* No comment provided by engineer. */
"saved from %@" = "enregistré à partir de %@";
/* message info title */ /* message info title */
"Saved message" = "Message enregistré"; "Saved message" = "Message enregistré";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Paramètres"; "Settings" = "Paramètres";
/* No comment provided by engineer. */
"Shape profile images" = "Images de profil modelable";
/* chat item action */ /* chat item action */
"Share" = "Partager"; "Share" = "Partager";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Lien de groupe SimpleX"; "SimpleX group link" = "Lien de groupe SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Liens SimpleX"; "SimpleX links" = "Liens SimpleX";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Les liens SimpleX sont interdits dans ce groupe.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "Les liens SimpleX ne sont pas autorisés";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX Lock"; "SimpleX Lock" = "SimpleX Lock";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Quelqu'un"; "Somebody" = "Quelqu'un";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Carré, circulaire, ou toute autre forme intermédiaire.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "chiffrement de bout en bout standard"; "standard end-to-end encryption" = "chiffrement de bout en bout standard";
@@ -4049,6 +4142,9 @@
/* 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 in this group." = "Les messages vocaux sont interdits dans ce groupe.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Les messages vocaux ne sont pas autorisés";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Messages vocaux interdits !"; "Voice messages prohibited!" = "Messages vocaux interdits !";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Quand disponible"; "When available" = "Quand disponible";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Lors des appels audio et vidéo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Vous pouvez accepter ou refuser les demandes de contacts."; "When people request to connect, you can accept or reject it." = "Vous pouvez accepter ou refuser les demandes de contacts.";
/* 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." = "Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Lorsque vous partagez un profil incognito avec quelqu'un, ce profil sera utilisé pour les groupes auxquels il vous invite.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Activé dans les discussions directes!";
/* No comment provided by engineer. */
"Wired ethernet" = "Ethernet câblé";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Avec les fichiers et les médias chiffrés."; "With encrypted files and media." = "Avec les fichiers et les médias chiffrés.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "oui"; "yes" = "oui";
/* No comment provided by engineer. */
"you" = "vous";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Vous"; "You" = "Vous";
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,7 @@
"CFBundleName" = "SimpleX"; "CFBundleName" = "SimpleX";
/* Privacy - Camera Usage Description */ /* Privacy - Camera Usage Description */
"NSCameraUsageDescription" = "A SimpleX-nek kamera-hozzáférésre van szüksége a QR-kódok beolvasásához, hogy csatlakozhasson más felhasználókhoz és videohívásokhoz."; "NSCameraUsageDescription" = "A SimpleX-nek kamera-hozzáférésre van szüksége a QR-kódok beolvasásához, hogy kapcsolódhasson más felhasználókhoz és videohívásokhoz.";
/* Privacy - Face ID Usage Description */ /* Privacy - Face ID Usage Description */
"NSFaceIDUsageDescription" = "A SimpleX Face ID-t használ a helyi hitelesítéshez"; "NSFaceIDUsageDescription" = "A SimpleX Face ID-t használ a helyi hitelesítéshez";
+119 -8
View File
@@ -140,7 +140,7 @@
"%@ at %@:" = "%1$@ alle %2$@:"; "%@ at %@:" = "%1$@ alle %2$@:";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ connected" = "%@ si è connesso/a"; "%@ connected" = "%@ connesso/a";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ downloaded" = "%@ scaricati"; "%@ downloaded" = "%@ scaricati";
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "amministratore"; "admin" = "amministratore";
/* feature role */
"admins" = "amministratori";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Gli amministratori possono bloccare un membro per tutti."; "Admins can block a member for all." = "Gli amministratori possono bloccare un membro per tutti.";
@@ -416,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi."; "All group members will remain connected." = "Tutti i membri del gruppo resteranno connessi.";
/* feature role */
"all members" = "tutti i membri";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Tutti i messaggi verranno eliminati, non è reversibile!"; "All messages will be deleted - this cannot be undone!" = "Tutti i messaggi verranno eliminati, non è reversibile!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Consenti l'invio di file e contenuti multimediali."; "Allow to send files and media." = "Consenti l'invio di file e contenuti multimediali.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Consenti di inviare link di SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Permetti l'invio di messaggi vocali."; "Allow to send voice messages." = "Permetti l'invio di messaggi vocali.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Impossibile ricevere il file"; "Cannot receive file" = "Impossibile ricevere il file";
/* No comment provided by engineer. */
"Cellular" = "Mobile";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Cambia"; "Change" = "Cambia";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Esegui downgrade e apri chat"; "Downgrade and open chat" = "Esegui downgrade e apri chat";
/* chat item action */
"Download" = "Scarica";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Scaricamento fallito"; "Download failed" = "Scaricamento fallito";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "attivato"; "enabled" = "attivato";
/* No comment provided by engineer. */
"Enabled for" = "Attivo per";
/* enabled status */ /* enabled status */
"enabled for contact" = "attivato per il contatto"; "enabled for contact" = "attivato per il contatto";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Errore di aggiunta membro/i"; "Error adding member(s)" = "Errore di aggiunta membro/i";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Errore nel consentire la crittografia PQ al contatto";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Errore nella modifica dell'indirizzo"; "Error changing address" = "Errore nella modifica dell'indirizzo";
@@ -1833,6 +1848,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "File e contenuti multimediali sono vietati in questo gruppo."; "Files and media are prohibited in this group." = "File e contenuti multimediali sono vietati in questo gruppo.";
/* No comment provided by engineer. */
"Files and media not allowed" = "File e multimediali non consentiti";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "File e contenuti multimediali vietati!"; "Files and media prohibited!" = "File e contenuti multimediali vietati!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Per console"; "For console" = "Per console";
/* chat item action */
"Forward" = "Inoltra";
/* No comment provided by engineer. */
"Forward and save messages" = "Inoltra e salva i messaggi";
/* No comment provided by engineer. */
"forwarded" = "inoltrato";
/* No comment provided by engineer. */
"Forwarded" = "Inoltrato";
/* No comment provided by engineer. */
"Forwarded from" = "Inoltrato da";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Desktop trovato"; "Found desktop" = "Desktop trovato";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali."; "Group members can send files and media." = "I membri del gruppo possono inviare file e contenuti multimediali.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "I membri del gruppo possono inviare link di Simplex.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali."; "Group members can send voice messages." = "I membri del gruppo possono inviare messaggi vocali.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "In risposta a"; "In reply to" = "In risposta a";
/* No comment provided by engineer. */
"In-call sounds" = "Suoni nelle chiamate";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "messaggio ricevuto"; "message received" = "messaggio ricevuto";
/* No comment provided by engineer. */
"Message source remains private." = "La fonte del messaggio resta privata.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Testo del messaggio"; "Message text" = "Testo del messaggio";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Altri miglioramenti sono in arrivo!"; "More improvements are coming soon!" = "Altri miglioramenti sono in arrivo!";
/* No comment provided by engineer. */
"More reliable network connection." = "Connessione di rete più affidabile.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Probabilmente questa connessione è stata eliminata."; "Most likely this connection is deleted." = "Probabilmente questa connessione è stata eliminata.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Rete e server"; "Network & servers" = "Rete e server";
/* No comment provided by engineer. */
"Network connection" = "Connessione di rete";
/* No comment provided by engineer. */
"Network management" = "Gestione della rete";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Impostazioni di rete"; "Network settings" = "Impostazioni di rete";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Nessuna cronologia"; "No history" = "Nessuna cronologia";
/* No comment provided by engineer. */
"No network connection" = "Nessuna connessione di rete";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Nessuna autorizzazione per registrare messaggi vocali"; "No permission to record voice message" = "Nessuna autorizzazione per registrare messaggi vocali";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "O mostra questo codice"; "Or show this code" = "O mostra questo codice";
/* No comment provided by engineer. */
"Other" = "Altro";
/* member role */ /* member role */
"owner" = "proprietario"; "owner" = "proprietario";
/* feature role */
"owners" = "proprietari";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Codice di accesso"; "Passcode" = "Codice di accesso";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata"; "Possibly, certificate fingerprint in server address is incorrect" = "Probabilmente l'impronta del certificato nell'indirizzo del server è sbagliata";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "E2EE post-quantistica";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Conserva la bozza dell'ultimo messaggio, con gli allegati."; "Preserve the last message draft, with attachments." = "Conserva la bozza dell'ultimo messaggio, con gli allegati.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Immagine del profilo"; "Profile image" = "Immagine del profilo";
/* No comment provided by engineer. */
"Profile images" = "Immagini del profilo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Nome del profilo"; "Profile name" = "Nome del profilo";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Proibisci l'invio di file e contenuti multimediali."; "Prohibit sending files and media." = "Proibisci l'invio di file e contenuti multimediali.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Vieta l'invio di link di SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Proibisci l'invio di messaggi vocali."; "Prohibit sending voice messages." = "Proibisci l'invio di messaggi vocali.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "L'indirizzo di ricezione verrà cambiato in un server diverso. La modifica dell'indirizzo verrà completata dopo che il mittente sarà in linea."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "L'indirizzo di ricezione verrà cambiato in un server diverso. La modifica dell'indirizzo verrà completata dopo che il mittente sarà in linea.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Ricezione concomitanza";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "La ricezione del file verrà interrotta."; "Receiving file will be stopped." = "La ricezione del file verrà interrotta.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Cronologia recente e [bot della directory](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion) migliorato.";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "I destinatari non possono vedere da chi proviene questo messaggio.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "I destinatari vedono gli aggiornamenti mentre li digiti."; "Recipients see updates as you type them." = "I destinatari vedono gli aggiornamenti mentre li digiti.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Salvare il messaggio di benvenuto?"; "Save welcome message?" = "Salvare il messaggio di benvenuto?";
/* No comment provided by engineer. */
"saved" = "salvato";
/* No comment provided by engineer. */
"Saved" = "Salvato";
/* No comment provided by engineer. */
"Saved from" = "Salvato da";
/* No comment provided by engineer. */
"saved from %@" = "salvato da %@";
/* message info title */ /* message info title */
"Saved message" = "Messaggio salvato"; "Saved message" = "Messaggio salvato";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Impostazioni"; "Settings" = "Impostazioni";
/* No comment provided by engineer. */
"Shape profile images" = "Forma delle immagini del profilo";
/* chat item action */ /* chat item action */
"Share" = "Condividi"; "Share" = "Condividi";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Link gruppo SimpleX"; "SimpleX group link" = "Link gruppo SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Link di SimpleX"; "SimpleX links" = "Link di SimpleX";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "I link di SimpleX sono vietati in questo gruppo.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "Link di SimpleX non consentiti";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX Lock"; "SimpleX Lock" = "SimpleX Lock";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Qualcuno"; "Somebody" = "Qualcuno";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Quadrata, circolare o qualsiasi forma tra le due.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "crittografia end-to-end standard"; "standard end-to-end encryption" = "crittografia end-to-end standard";
@@ -4049,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "I messaggi vocali sono vietati in questo gruppo."; "Voice messages are prohibited in this group." = "I messaggi vocali sono vietati in questo gruppo.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Messaggi vocali non consentiti";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Messaggi vocali vietati!"; "Voice messages prohibited!" = "Messaggi vocali vietati!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Quando disponibili"; "When available" = "Quando disponibili";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Quando si connettono le chiamate audio e video.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Quando le persone chiedono di connettersi, puoi accettare o rifiutare."; "When people request to connect, you can accept or reject it." = "Quando le persone chiedono di connettersi, puoi accettare o rifiutare.";
/* 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." = "Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Quando condividi un profilo in incognito con qualcuno, questo profilo verrà utilizzato per i gruppi a cui ti invitano.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Viene attivata nelle chat dirette!";
/* No comment provided by engineer. */
"Wired ethernet" = "Cavo ethernet";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Con file e multimediali criptati."; "With encrypted files and media." = "Con file e multimediali criptati.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "sì"; "yes" = "sì";
/* No comment provided by engineer. */
"you" = "tu";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Tu"; "You" = "Tu";
+63 -9
View File
@@ -40,6 +40,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"(" = "("; "(" = "(";
/* No comment provided by engineer. */
"(new)" = "(新規)";
/* No comment provided by engineer. */
"(this device v%@)" = "(このデバイス v%@)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
")" = ")"; ")" = ")";
@@ -52,14 +58,20 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"[Star on GitHub](https://github.com/simplex-chat/simplex-chat)" = "[GitHub でスターを付ける](https://github.com/simplex-chat/simplex-chat)"; "[Star on GitHub](https://github.com/simplex-chat/simplex-chat)" = "[GitHub でスターを付ける](https://github.com/simplex-chat/simplex-chat)";
/* No comment provided by engineer. */
"**Add contact**: to create a new invitation link, or connect via a link you received." = "**コンタクトの追加**: 新しい招待リンクを作成するか、受け取ったリンクから接続します。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Add new contact**: to create your one-time QR Code for your contact." = "**新しい連絡先を追加**: 連絡先のワンタイム QR コードまたはリンクを作成します。"; "**Add new contact**: to create your one-time QR Code for your contact." = "**新しい連絡先を追加**: 連絡先のワンタイム QR コードまたはリンクを作成します。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**e2e encrypted** audio call" = "**e2e 暗号化**音声通話"; "**Create group**: to create a new group." = "**グループ作成**: 新しいグループを作成する。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**e2e encrypted** video call" = "**e2e暗号化**ビデオ通話"; "**e2e encrypted** audio call" = "**エンドツーエンド暗号化済み**の音声通話";
/* No comment provided by engineer. */
"**e2e encrypted** video call" = "**エンドツーエンド暗号化済み**の テレビ電話 通話";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." = "**よりプライベート**: 20 分ごとに新しいメッセージを確認します。 デバイス トークンは SimpleX Chat サーバーと共有されますが、連絡先やメッセージの数は共有されません。"; "**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." = "**よりプライベート**: 20 分ごとに新しいメッセージを確認します。 デバイス トークンは SimpleX Chat サーバーと共有されますが、連絡先やメッセージの数は共有されません。";
@@ -67,6 +79,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**最もプライベート**: SimpleX Chat 通知サーバーを使用せず、バックグラウンドで定期的にメッセージをチェックします (アプリの使用頻度によって異なります)。"; "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**最もプライベート**: SimpleX Chat 通知サーバーを使用せず、バックグラウンドで定期的にメッセージをチェックします (アプリの使用頻度によって異なります)。";
/* No comment provided by engineer. */
"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "**注意**: 2つの端末で同じデータベースを使用すると、セキュリティ保護として、あなたが接続しているメッセージの復号化が解除されます。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**注意**: パスフレーズを紛失すると、パスフレーズを復元または変更できなくなります。"; "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**注意**: パスフレーズを紛失すると、パスフレーズを復元または変更できなくなります。";
@@ -76,6 +91,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**警告**: 即時の プッシュ通知には、キーチェーンに保存されたパスフレーズが必要です。"; "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**警告**: 即時の プッシュ通知には、キーチェーンに保存されたパスフレーズが必要です。";
/* No comment provided by engineer. */
"**Warning**: the archive will be removed." = "**警告**: アーカイブデータは削除されます。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"*bold*" = "\\*太字*"; "*bold*" = "\\*太字*";
@@ -118,6 +136,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ connected" = "%@ 接続中"; "%@ connected" = "%@ 接続中";
/* No comment provided by engineer. */
"%@ downloaded" = "%@ ダウンロード済";
/* notification title */ /* notification title */
"%@ is connected!" = "%@ 接続中!"; "%@ is connected!" = "%@ 接続中!";
@@ -130,9 +151,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@ servers" = "%@ サーバー"; "%@ servers" = "%@ サーバー";
/* No comment provided by engineer. */
"%@ uploaded" = "%@ アップロード済";
/* notification title */ /* notification title */
"%@ wants to connect!" = "%@ が接続を希望しています!"; "%@ wants to connect!" = "%@ が接続を希望しています!";
/* No comment provided by engineer. */
"%@, %@ and %lld members" = "%@や%@など%lld人のメンバー";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%@, %@ and %lld other members connected" = "%@, %@ および %lld 人のメンバーが接続中"; "%@, %@ and %lld other members connected" = "%@, %@ および %lld 人のメンバーが接続中";
@@ -172,9 +199,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld file(s) with total size of %@" = "%lld 個のファイル(合計サイズ: %@)"; "%lld file(s) with total size of %@" = "%lld 個のファイル(合計サイズ: %@)";
/* No comment provided by engineer. */
"%lld group events" = "%lld件のグループイベント";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld members" = "%lld 人のメンバー"; "%lld members" = "%lld 人のメンバー";
/* No comment provided by engineer. */
"%lld messages blocked" = "%lld件のメッセージをブロック";
/* No comment provided by engineer. */
"%lld messages blocked by admin" = "%lldのメッセージが管理者によりブロック済";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"%lld messages marked deleted" = "%lld 件のメッセージが削除されました"; "%lld messages marked deleted" = "%lld 件のメッセージが削除されました";
@@ -229,6 +265,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"~strike~" = "\\~取り消し線~"; "~strike~" = "\\~取り消し線~";
/* time to disappear */
"0 sec" = "0 秒";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"0s" = "0秒"; "0s" = "0秒";
@@ -374,6 +413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All your contacts will remain connected. Profile update will be sent to your contacts." = "すべての連絡先は維持されます。連絡先に更新されたプロフィールを送信します。"; "All your contacts will remain connected. Profile update will be sent to your contacts." = "すべての連絡先は維持されます。連絡先に更新されたプロフィールを送信します。";
/* No comment provided by engineer. */
"All your contacts, conversations and files will be securely encrypted and uploaded in chunks to configured XFTP relays." = "すべての連絡先、会話、ファイルは安全に暗号化され、設定されたXFTPリレーに分割でアップロードされます。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow" = "許可"; "Allow" = "許可";
@@ -399,11 +441,14 @@
"Allow sending disappearing messages." = "消えるメッセージの送信を許可する。"; "Allow sending disappearing messages." = "消えるメッセージの送信を許可する。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to irreversibly delete sent messages. (24 hours)" = "送信済みメッセージの永久削除を許可する。"; "Allow to irreversibly delete sent messages. (24 hours)" = "送信済みメッセージの永久削除を許可する。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "ファイルやメディアの送信を許可する。"; "Allow to send files and media." = "ファイルやメディアの送信を許可する。";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "SimpleXリンクの送信を許可。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "音声メッセージの送信を許可する。"; "Allow to send voice messages." = "音声メッセージの送信を許可する。";
@@ -420,7 +465,7 @@
"Allow your contacts to call you." = "連絡先からの通話を許可する。"; "Allow your contacts to call you." = "連絡先からの通話を許可する。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow your contacts to irreversibly delete sent messages. (24 hours)" = "送信相手が永久メッセージ削除するのを許可する。"; "Allow your contacts to irreversibly delete sent messages. (24 hours)" = "送信相手が永久メッセージ削除するのを許可する。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow your contacts to send disappearing messages." = "送信相手が消えるメッセージを送るのを許可する。"; "Allow your contacts to send disappearing messages." = "送信相手が消えるメッセージを送るのを許可する。";
@@ -431,6 +476,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Already connected?" = "すでに接続済みですか?"; "Already connected?" = "すでに接続済みですか?";
/* No comment provided by engineer. */
"Already connecting!" = "既に接続中です!";
/* No comment provided by engineer. */
"Already joining the group!" = "すでにグループに参加しています!";
/* pref value */ /* pref value */
"always" = "常に"; "always" = "常に";
@@ -446,6 +497,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"App build: %@" = "アプリのビルド: %@"; "App build: %@" = "アプリのビルド: %@";
/* No comment provided by engineer. */
"App data migration" = "アプリデータの移行";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"App encrypts new local files (except videos)." = "アプリは新しいローカルファイル(ビデオを除く)を暗号化します。"; "App encrypts new local files (except videos)." = "アプリは新しいローカルファイル(ビデオを除く)を暗号化します。";
@@ -531,7 +585,7 @@
"Both you and your contact can add message reactions." = "自分も相手もメッセージへのリアクションを追加できます。"; "Both you and your contact can add message reactions." = "自分も相手もメッセージへのリアクションを追加できます。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Both you and your contact can irreversibly delete sent messages. (24 hours)" = "あなたと連絡相手が送信済みメッセージを永久削除できます。"; "Both you and your contact can irreversibly delete sent messages. (24 hours)" = "あなたと連絡相手が送信済みメッセージを永久削除できます。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Both you and your contact can make calls." = "あなたからも連絡先からも通話ができます。"; "Both you and your contact can make calls." = "あなたからも連絡先からも通話ができます。";
@@ -1603,7 +1657,7 @@
"Group members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。"; "Group members can add message reactions." = "グループメンバーはメッセージへのリアクションを追加できます。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。"; "Group members can irreversibly delete sent messages. (24 hours)" = "グループのメンバーがメッセージを完全削除することができます。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。"; "Group members can send direct messages." = "グループのメンバーがダイレクトメッセージを送信できます。";
@@ -2244,7 +2298,7 @@
"Only you can add message reactions." = "メッセージへのリアクションを追加できるのは、あなただけです。"; "Only you can add message reactions." = "メッセージへのリアクションを追加できるのは、あなただけです。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。"; "Only you can irreversibly delete messages (your contact can mark them for deletion). (24 hours)" = "メッセージの完全削除はあなたにしかできません (あなたの連絡先は削除対象とすることができます)。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only you can make calls." = "自分からのみ通話ができます。"; "Only you can make calls." = "自分からのみ通話ができます。";
@@ -2259,7 +2313,7 @@
"Only your contact can add message reactions." = "メッセージへのリアクションを追加できるのは連絡先だけです。"; "Only your contact can add message reactions." = "メッセージへのリアクションを追加できるのは連絡先だけです。";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" = "メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。"; "Only your contact can irreversibly delete messages (you can mark them for deletion). (24 hours)" = "メッセージを完全削除できるのはあなたの連絡相手だけです (あなたは削除対象とすることができます)。(24時間)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Only your contact can make calls." = "連絡先からのみ通話ができます。"; "Only your contact can make calls." = "連絡先からのみ通話ができます。";
@@ -2867,7 +2921,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleXグループリンク"; "SimpleX group link" = "SimpleXグループリンク";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleXリンク"; "SimpleX links" = "SimpleXリンク";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+118 -7
View File
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "Beheerder"; "admin" = "Beheerder";
/* feature role */
"admins" = "beheerders";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Beheerders kunnen een lid voor iedereen blokkeren."; "Admins can block a member for all." = "Beheerders kunnen een lid voor iedereen blokkeren.";
@@ -416,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Alle groepsleden blijven verbonden."; "All group members will remain connected." = "Alle groepsleden blijven verbonden.";
/* feature role */
"all members" = "alle leden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Alle berichten worden verwijderd. Dit kan niet ongedaan worden gemaakt!"; "All messages will be deleted - this cannot be undone!" = "Alle berichten worden verwijderd. Dit kan niet ongedaan worden gemaakt!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Sta toe om bestanden en media te verzenden."; "Allow to send files and media." = "Sta toe om bestanden en media te verzenden.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Sta toe dat SimpleX-links worden verzonden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Sta toe om spraak berichten te verzenden."; "Allow to send voice messages." = "Sta toe om spraak berichten te verzenden.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Kan bestand niet ontvangen"; "Cannot receive file" = "Kan bestand niet ontvangen";
/* No comment provided by engineer. */
"Cellular" = "Mobiel";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Veranderen"; "Change" = "Veranderen";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Downgraden en chat openen"; "Downgrade and open chat" = "Downgraden en chat openen";
/* chat item action */
"Download" = "Downloaden";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Download mislukt"; "Download failed" = "Download mislukt";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "ingeschakeld"; "enabled" = "ingeschakeld";
/* No comment provided by engineer. */
"Enabled for" = "Ingeschakeld voor";
/* enabled status */ /* enabled status */
"enabled for contact" = "ingeschakeld voor contact"; "enabled for contact" = "ingeschakeld voor contact";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Fout bij het toevoegen van leden"; "Error adding member(s)" = "Fout bij het toevoegen van leden";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Fout bij het toestaan van contact PQ-versleuteling";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Fout bij wijzigen van adres"; "Error changing address" = "Fout bij wijzigen van adres";
@@ -1833,6 +1848,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Bestanden en media zijn verboden in deze groep."; "Files and media are prohibited in this group." = "Bestanden en media zijn verboden in deze groep.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Bestanden en media niet toegestaan";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Bestanden en media verboden!"; "Files and media prohibited!" = "Bestanden en media verboden!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Voor console"; "For console" = "Voor console";
/* chat item action */
"Forward" = "Doorsturen";
/* No comment provided by engineer. */
"Forward and save messages" = "Berichten doorsturen en opslaan";
/* No comment provided by engineer. */
"forwarded" = "doorgestuurd";
/* No comment provided by engineer. */
"Forwarded" = "Doorgestuurd";
/* No comment provided by engineer. */
"Forwarded from" = "Doorgestuurd vanuit";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Desktop gevonden"; "Found desktop" = "Desktop gevonden";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Groepsleden kunnen bestanden en media verzenden."; "Group members can send files and media." = "Groepsleden kunnen bestanden en media verzenden.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Groepsleden kunnen SimpleX-links verzenden.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden."; "Group members can send voice messages." = "Groepsleden kunnen spraak berichten verzenden.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "In antwoord op"; "In reply to" = "In antwoord op";
/* No comment provided by engineer. */
"In-call sounds" = "Geluiden tijdens het bellen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "bericht ontvangen"; "message received" = "bericht ontvangen";
/* No comment provided by engineer. */
"Message source remains private." = "Berichtbron blijft privé.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Bericht tekst"; "Message text" = "Bericht tekst";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Meer verbeteringen volgen snel!"; "More improvements are coming soon!" = "Meer verbeteringen volgen snel!";
/* No comment provided by engineer. */
"More reliable network connection." = "Betrouwbaardere netwerkverbinding.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Hoogstwaarschijnlijk is deze verbinding verwijderd."; "Most likely this connection is deleted." = "Hoogstwaarschijnlijk is deze verbinding verwijderd.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Netwerk & servers"; "Network & servers" = "Netwerk & servers";
/* No comment provided by engineer. */
"Network connection" = "Netwerkverbinding";
/* No comment provided by engineer. */
"Network management" = "Netwerkbeheer";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Netwerk instellingen"; "Network settings" = "Netwerk instellingen";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Geen geschiedenis"; "No history" = "Geen geschiedenis";
/* No comment provided by engineer. */
"No network connection" = "Geen netwerkverbinding";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Geen toestemming om spraakbericht op te nemen"; "No permission to record voice message" = "Geen toestemming om spraakbericht op te nemen";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Of laat deze code zien"; "Or show this code" = "Of laat deze code zien";
/* No comment provided by engineer. */
"Other" = "Ander";
/* member role */ /* member role */
"owner" = "Eigenaar"; "owner" = "Eigenaar";
/* feature role */
"owners" = "eigenaren";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Toegangscode"; "Passcode" = "Toegangscode";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Mogelijk is de certificaat vingerafdruk in het server adres onjuist"; "Possibly, certificate fingerprint in server address is incorrect" = "Mogelijk is de certificaat vingerafdruk in het server adres onjuist";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Post-quantum E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Bewaar het laatste berichtconcept, met bijlagen."; "Preserve the last message draft, with attachments." = "Bewaar het laatste berichtconcept, met bijlagen.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "profielfoto"; "Profile image" = "profielfoto";
/* No comment provided by engineer. */
"Profile images" = "Profiel afbeeldingen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Profielnaam"; "Profile name" = "Profielnaam";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Verbied het verzenden van bestanden en media."; "Prohibit sending files and media." = "Verbied het verzenden van bestanden en media.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Verbied het verzenden van SimpleX-links";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Verbieden het verzenden van spraak berichten."; "Prohibit sending voice messages." = "Verbieden het verzenden van spraak berichten.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Het ontvangstadres wordt gewijzigd naar een andere server. Adres wijziging wordt voltooid nadat de afzender online is."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Het ontvangstadres wordt gewijzigd naar een andere server. Adres wijziging wordt voltooid nadat de afzender online is.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Gelijktijdig ontvangen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Het ontvangen van het bestand wordt gestopt."; "Receiving file will be stopped." = "Het ontvangen van het bestand wordt gestopt.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Recente geschiedenis en verbeterde [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Recente geschiedenis en verbeterde [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Ontvanger(s) kunnen niet zien van wie dit bericht afkomstig is.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Ontvangers zien updates terwijl u ze typt."; "Recipients see updates as you type them." = "Ontvangers zien updates terwijl u ze typt.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Welkomst bericht opslaan?"; "Save welcome message?" = "Welkomst bericht opslaan?";
/* No comment provided by engineer. */
"saved" = "opgeslagen";
/* No comment provided by engineer. */
"Saved" = "Opgeslagen";
/* No comment provided by engineer. */
"Saved from" = "Opgeslagen van";
/* No comment provided by engineer. */
"saved from %@" = "opgeslagen van %@";
/* message info title */ /* message info title */
"Saved message" = "Opgeslagen bericht"; "Saved message" = "Opgeslagen bericht";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Instellingen"; "Settings" = "Instellingen";
/* No comment provided by engineer. */
"Shape profile images" = "Vorm profiel afbeeldingen";
/* chat item action */ /* chat item action */
"Share" = "Deel"; "Share" = "Deel";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX groep link"; "SimpleX group link" = "SimpleX groep link";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX links"; "SimpleX links" = "SimpleX links";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "SimpleX-links zijn in deze groep verboden.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX-links zijn niet toegestaan";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX Vergrendelen"; "SimpleX Lock" = "SimpleX Vergrendelen";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Iemand"; "Somebody" = "Iemand";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Vierkant, cirkel of iets daartussenin.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "standaard end-to-end encryptie"; "standard end-to-end encryption" = "standaard end-to-end encryptie";
@@ -4049,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Spraak berichten zijn verboden in deze groep."; "Voice messages are prohibited in this group." = "Spraak berichten zijn verboden in deze groep.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Spraakberichten niet toegestaan";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Spraak berichten verboden!"; "Voice messages prohibited!" = "Spraak berichten verboden!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Wanneer beschikbaar"; "When available" = "Wanneer beschikbaar";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Bij het verbinden van audio- en video-oproepen.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren."; "When people request to connect, you can accept or reject it." = "Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren.";
/* 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." = "Wanneer je een incognito profiel met iemand deelt, wordt dit profiel gebruikt voor de groepen waarvoor ze je uitnodigen."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Wanneer je een incognito profiel met iemand deelt, wordt dit profiel gebruikt voor de groepen waarvoor ze je uitnodigen.";
/* No comment provided by engineer. */
"WiFi" = "Wifi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Wordt ingeschakeld in directe chats!";
/* No comment provided by engineer. */
"Wired ethernet" = "Bekabeld Ethernet";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Met versleutelde bestanden en media."; "With encrypted files and media." = "Met versleutelde bestanden en media.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "Ja"; "yes" = "Ja";
/* No comment provided by engineer. */
"you" = "jij";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Jij"; "You" = "Jij";
+129 -18
View File
@@ -38,7 +38,7 @@
": " = ": "; ": " = ": ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"!1 colored!" = "!1 kolorowy!"; "!1 colored!" = "!1 pokolorowany!";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"." = "."; "." = ".";
@@ -80,22 +80,22 @@
"**e2e encrypted** video call" = "**szyfrowane e2e** połączenie wideo"; "**e2e encrypted** video call" = "**szyfrowane e2e** połączenie wideo";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." = "**Bardziej prywatny**: sprawdzanie nowych wiadomości co 20 minut. Token urządzenia jest współdzielony z serwerem SimpleX Chat, ale nie informacje o liczbie kontaktów lub wiadomości."; "**More private**: check new messages every 20 minutes. Device token is shared with SimpleX Chat server, but not how many contacts or messages you have." = "**Bardziej prywatny**: sprawdzanie nowych wiadomości odbywa się co 20 minut. Współdzielony z serwerem SimpleX Chat jest token urządzenia, lecz nie informacje o liczbie kontaktów lub wiadomości.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, sprawdzaj wiadomości okresowo w tle (zależy jak często korzystasz z aplikacji)."; "**Most private**: do not use SimpleX Chat notifications server, check messages periodically in the background (depends on how often you use the app)." = "**Najbardziej prywatny**: nie korzystaj z serwera powiadomień SimpleX Chat, wiadomości sprawdzane są co jakiś czas w tle (zależne od tego jak często korzystasz z aplikacji).";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "*Uwaga*: używanie tej samej bazy danych na dwóch urządzeniach zepsuje odszyfrowywanie wiadomości twoich połączeń, jako zabezpieczenie."; "**Please note**: using the same database on two devices will break the decryption of messages from your connections, as a security protection." = "*Uwaga*: w celach bezpieczeństwa użycie tej samej bazy danych na dwóch różnych urządzeniach spowoduje brak możliwości odszyfrowywania wiadomości z Twoich połączeń.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić hasła, jeśli je stracisz."; "**Please note**: you will NOT be able to recover or change passphrase if you lose it." = "**Uwaga**: NIE będziesz w stanie odzyskać lub zmienić kodu dostępu, jeśli go stracisz.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." = "**Zalecane**: token urządzenia i powiadomienia są wysyłane do serwera powiadomień SimpleX Chat, ale nie treść wiadomości, rozmiar lub od kogo jest."; "**Recommended**: device token and notifications are sent to SimpleX Chat notification server, but not the message content, size or who it is from." = "**Zalecane**: do serwera powiadomień SimpleX Chat wysyłany jest token urządzenia i powiadomienia, lecz nie treść wiadomości, jej rozmiar lub od kogo ona jest.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Uwaga**: Natychmiastowe powiadomienia push wymagają hasła zapisanego w Keychain."; "**Warning**: Instant push notifications require passphrase saved in Keychain." = "**Uwaga**: Natychmiastowe powiadomienia push wymagają zapisania kodu dostępu w Keychain.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"**Warning**: the archive will be removed." = "**Ostrzeżenie**: archiwum zostanie usunięte."; "**Warning**: the archive will be removed." = "**Ostrzeżenie**: archiwum zostanie usunięte.";
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "administrator"; "admin" = "administrator";
/* feature role */
"admins" = "administratorzy";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Administratorzy mogą blokować członka dla wszystkich."; "Admins can block a member for all." = "Administratorzy mogą blokować członka dla wszystkich.";
@@ -416,6 +419,9 @@
/* 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.";
/* feature role */
"all members" = "wszyscy członkowie";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Wszystkie wiadomości zostaną usunięte nie można tego cofnąć!"; "All messages will be deleted - this cannot be undone!" = "Wszystkie wiadomości zostaną usunięte nie można tego cofnąć!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Pozwól na wysyłanie plików i mediów."; "Allow to send files and media." = "Pozwól na wysyłanie plików i mediów.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Zezwól na wysyłanie linków SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Zezwól na wysyłanie wiadomości głosowych."; "Allow to send voice messages." = "Zezwól na wysyłanie wiadomości głosowych.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Nie można odebrać pliku"; "Cannot receive file" = "Nie można odebrać pliku";
/* No comment provided by engineer. */
"Cellular" = "Sieć komórkowa";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Zmień"; "Change" = "Zmień";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Obniż wersję i otwórz czat"; "Downgrade and open chat" = "Obniż wersję i otwórz czat";
/* chat item action */
"Download" = "Pobierz";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Pobieranie nie udane"; "Download failed" = "Pobieranie nie udane";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "włączone"; "enabled" = "włączone";
/* No comment provided by engineer. */
"Enabled for" = "Włączony dla";
/* enabled status */ /* enabled status */
"enabled for contact" = "włączone dla kontaktu"; "enabled for contact" = "włączone dla kontaktu";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Błąd dodawania członka(ów)"; "Error adding member(s)" = "Błąd dodawania członka(ów)";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Błąd pozwalania kontaktowi na szyfrowanie PQ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Błąd zmiany adresu"; "Error changing address" = "Błąd zmiany adresu";
@@ -1833,6 +1848,9 @@
/* 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 in this group." = "Pliki i media są zabronione w tej grupie.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Pliki i multimedia nie są dozwolone";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Pliki i media zabronione!"; "Files and media prohibited!" = "Pliki i media zabronione!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Dla konsoli"; "For console" = "Dla konsoli";
/* chat item action */
"Forward" = "Przekaż dalej";
/* No comment provided by engineer. */
"Forward and save messages" = "Przesyłaj dalej i zapisuj wiadomości";
/* No comment provided by engineer. */
"forwarded" = "przekazane dalej";
/* No comment provided by engineer. */
"Forwarded" = "Przekazane dalej";
/* No comment provided by engineer. */
"Forwarded from" = "Przekazane dalej od";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Znaleziono komputer"; "Found desktop" = "Znaleziono komputer";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Członkowie grupy mogą wysyłać pliki i media."; "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. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe."; "Group members can send voice messages." = "Członkowie grupy mogą wysyłać wiadomości głosowe.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "W odpowiedzi na"; "In reply to" = "W odpowiedzi na";
/* No comment provided by engineer. */
"In-call sounds" = "Dźwięki w rozmowie";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Incognito"; "Incognito" = "Incognito";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "wiadomość otrzymana"; "message received" = "wiadomość otrzymana";
/* No comment provided by engineer. */
"Message source remains private." = "Źródło wiadomości pozostaje prywatne.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Tekst wiadomości"; "Message text" = "Tekst wiadomości";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Więcej ulepszeń już wkrótce!"; "More improvements are coming soon!" = "Więcej ulepszeń już wkrótce!";
/* No comment provided by engineer. */
"More reliable network connection." = "Bardziej niezawodne połączenia sieciowe.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Najprawdopodobniej to połączenie jest usunięte."; "Most likely this connection is deleted." = "Najprawdopodobniej to połączenie jest usunięte.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Sieć i serwery"; "Network & servers" = "Sieć i serwery";
/* No comment provided by engineer. */
"Network connection" = "Połączenie z siecią";
/* No comment provided by engineer. */
"Network management" = "Zarządzenie sieciowe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Ustawienia sieci"; "Network settings" = "Ustawienia sieci";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Brak historii"; "No history" = "Brak historii";
/* No comment provided by engineer. */
"No network connection" = "Brak połączenia z siecią";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Brak uprawnień do nagrywania wiadomości głosowej"; "No permission to record voice message" = "Brak uprawnień do nagrywania wiadomości głosowej";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Lub pokaż ten kod"; "Or show this code" = "Lub pokaż ten kod";
/* No comment provided by engineer. */
"Other" = "Inne";
/* member role */ /* member role */
"owner" = "właściciel"; "owner" = "właściciel";
/* feature role */
"owners" = "właściciele";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Pin"; "Passcode" = "Pin";
@@ -2844,10 +2904,10 @@
"Please contact group admin." = "Skontaktuj się z administratorem grupy."; "Please contact group admin." = "Skontaktuj się z administratorem grupy.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please enter correct current passphrase." = "Wprowadź poprawne aktualne hasło."; "Please enter correct current passphrase." = "Wprowadź poprawny obecny kod dostępu.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please enter the previous password after restoring database backup. This action can not be undone." = "Proszę podać poprzednie hasło po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć."; "Please enter the previous password after restoring database backup. This action can not be undone." = "Proszę podać poprzedni kod dostępu po przywróceniu kopii zapasowej bazy danych. Tej czynności nie można cofnąć.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please remember or store it securely - there is no way to recover a lost passcode!" = "Prosimy o jego zapamiętanie lub bezpieczne przechowywanie - nie ma możliwości odzyskania utraconego pinu!"; "Please remember or store it securely - there is no way to recover a lost passcode!" = "Prosimy o jego zapamiętanie lub bezpieczne przechowywanie - nie ma możliwości odzyskania utraconego pinu!";
@@ -2859,10 +2919,10 @@
"Please restart the app and migrate the database to enable push notifications." = "Uruchom ponownie aplikację i przeprowadź migrację bazy danych, aby włączyć powiadomienia push."; "Please restart the app and migrate the database to enable push notifications." = "Uruchom ponownie aplikację i przeprowadź migrację bazy danych, aby włączyć powiadomienia push.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please store passphrase securely, you will NOT be able to access chat if you lose it." = "Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu."; "Please store passphrase securely, you will NOT be able to access chat if you lose it." = "Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można uzyskać dostępu do czatu.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Please store passphrase securely, you will NOT be able to change it if you lose it." = "Prosimy o bezpieczne przechowywanie hasła, w przypadku jego utraty NIE będzie można go zmienić."; "Please store passphrase securely, you will NOT be able to change it if you lose it." = "Przechowuj kod dostępu w bezpieczny sposób, w przypadku jego utraty NIE będzie można go zmienić.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Polish interface" = "Polski interfejs"; "Polish interface" = "Polski interfejs";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy"; "Possibly, certificate fingerprint in server address is incorrect" = "Możliwe, że odcisk palca certyfikatu w adresie serwera jest nieprawidłowy";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Postkwantowe E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami."; "Preserve the last message draft, with attachments." = "Zachowaj ostatnią wersję roboczą wiadomości wraz z załącznikami.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Zdjęcie profilowe"; "Profile image" = "Zdjęcie profilowe";
/* No comment provided by engineer. */
"Profile images" = "Zdjęcia profilowe";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Nazwa profilu"; "Profile name" = "Nazwa profilu";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Zakaz wysyłania plików i mediów."; "Prohibit sending files and media." = "Zakaz wysyłania plików i mediów.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Zabroń wysyłania linków SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Zabroń wysyłania wiadomości głosowych."; "Prohibit sending voice messages." = "Zabroń wysyłania wiadomości głosowych.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Adres odbiorczy zostanie zmieniony na inny serwer. Zmiana adresu zostanie zakończona gdy nadawca będzie online."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Adres odbiorczy zostanie zmieniony na inny serwer. Zmiana adresu zostanie zakończona gdy nadawca będzie online.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Konkurencyjne odbieranie";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Odbieranie pliku zostanie przerwane."; "Receiving file will be stopped." = "Odbieranie pliku zostanie przerwane.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Ostania historia i ulepszony [bot adresowy](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Ostania historia i ulepszony [bot adresowy](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Odbiorca/y nie mogą zobaczyć od kogo jest ta wiadomość.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Odbiorcy widzą aktualizacje podczas ich wpisywania."; "Recipients see updates as you type them." = "Odbiorcy widzą aktualizacje podczas ich wpisywania.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Zapisać wiadomość powitalną?"; "Save welcome message?" = "Zapisać wiadomość powitalną?";
/* No comment provided by engineer. */
"saved" = "zapisane";
/* No comment provided by engineer. */
"Saved" = "Zapisane";
/* No comment provided by engineer. */
"Saved from" = "Zapisane od";
/* No comment provided by engineer. */
"saved from %@" = "zapisane od %@";
/* message info title */ /* message info title */
"Saved message" = "Zachowano wiadomość"; "Saved message" = "Zachowano wiadomość";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Ustawienia"; "Settings" = "Ustawienia";
/* No comment provided by engineer. */
"Shape profile images" = "Kształtuj obrazy profilowe";
/* chat item action */ /* chat item action */
"Share" = "Udostępnij"; "Share" = "Udostępnij";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Link grupy SimpleX"; "SimpleX group link" = "Link grupy SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Linki SimpleX"; "SimpleX links" = "Linki SimpleX";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Linki SimpleX są zablokowane na tej grupie.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "Linki SimpleX są niedozwolone";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "Blokada SimpleX"; "SimpleX Lock" = "Blokada SimpleX";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Ktoś"; "Somebody" = "Ktoś";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Kwadrat, okrąg lub cokolwiek pomiędzy.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "standardowe szyfrowanie end-to-end"; "standard end-to-end encryption" = "standardowe szyfrowanie end-to-end";
@@ -4049,6 +4142,9 @@
/* 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 in this group." = "Wiadomości głosowe są zabronione w tej grupie.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Wiadomości głosowe są niedozwolone";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Wiadomości głosowe zabronione!"; "Voice messages prohibited!" = "Wiadomości głosowe zabronione!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Gdy dostępny"; "When available" = "Gdy dostępny";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Podczas łączenia połączeń audio i wideo.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić."; "When people request to connect, you can accept or reject it." = "Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić.";
/* 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." = "Gdy udostępnisz komuś profil incognito, będzie on używany w grupach, do których Cię zaprosi."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Gdy udostępnisz komuś profil incognito, będzie on używany w grupach, do których Cię zaprosi.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Zostanie włączone w czatach bezpośrednich!";
/* No comment provided by engineer. */
"Wired ethernet" = "Połączenie ethernet (po kablu)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Z zaszyfrowanymi plikami i multimediami."; "With encrypted files and media." = "Z zaszyfrowanymi plikami i multimediami.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "tak"; "yes" = "tak";
/* No comment provided by engineer. */
"you" = "Ty";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Ty"; "You" = "Ty";
+120 -9
View File
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "админ"; "admin" = "админ";
/* feature role */
"admins" = "админы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Админы могут заблокировать члена группы."; "Admins can block a member for all." = "Админы могут заблокировать члена группы.";
@@ -416,6 +419,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе."; "All group members will remain connected." = "Все члены группы, которые соединились через эту ссылку, останутся в группе.";
/* feature role */
"all members" = "все члены";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Все сообщения будут удалены - это нельзя отменить!"; "All messages will be deleted - this cannot be undone!" = "Все сообщения будут удалены - это нельзя отменить!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Разрешить посылать файлы и медиа."; "Allow to send files and media." = "Разрешить посылать файлы и медиа.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "Разрешить отправлять ссылки SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Разрешить отправлять голосовые сообщения."; "Allow to send voice messages." = "Разрешить отправлять голосовые сообщения.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Невозможно получить файл"; "Cannot receive file" = "Невозможно получить файл";
/* No comment provided by engineer. */
"Cellular" = "Мобильная сеть";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Поменять"; "Change" = "Поменять";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Откатить версию и открыть чат"; "Downgrade and open chat" = "Откатить версию и открыть чат";
/* chat item action */
"Download" = "Загрузить";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Ошибка загрузки"; "Download failed" = "Ошибка загрузки";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "включено"; "enabled" = "включено";
/* No comment provided by engineer. */
"Enabled for" = "Включено для";
/* enabled status */ /* enabled status */
"enabled for contact" = "включено для контакта"; "enabled for contact" = "включено для контакта";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Ошибка при добавлении членов группы"; "Error adding member(s)" = "Ошибка при добавлении членов группы";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Ошибка разрешения квантово-устойчивого шифрования";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Ошибка при изменении адреса"; "Error changing address" = "Ошибка при изменении адреса";
@@ -1833,6 +1848,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media are prohibited in this group." = "Файлы и медиа запрещены в этой группе."; "Files and media are prohibited in this group." = "Файлы и медиа запрещены в этой группе.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Файлы и медиа не разрешены";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Файлы и медиа запрещены!"; "Files and media prohibited!" = "Файлы и медиа запрещены!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Для консоли"; "For console" = "Для консоли";
/* chat item action */
"Forward" = "Переслать";
/* No comment provided by engineer. */
"Forward and save messages" = "Переслать и сохранить сообщение";
/* No comment provided by engineer. */
"forwarded" = "переслано";
/* No comment provided by engineer. */
"Forwarded" = "Переслано";
/* No comment provided by engineer. */
"Forwarded from" = "Переслано из";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Компьютер найден"; "Found desktop" = "Компьютер найден";
@@ -1918,7 +1951,7 @@
"Group full name (optional)" = "Полное имя (необязательно)"; "Group full name (optional)" = "Полное имя (необязательно)";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group image" = "Аватар группы"; "Group image" = "Картинка группы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group invitation" = "Приглашение в группу"; "Group invitation" = "Приглашение в группу";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Члены группы могут слать файлы и медиа."; "Group members can send files and media." = "Члены группы могут слать файлы и медиа.";
/* No comment provided by engineer. */
"Group members can send SimpleX links." = "Члены группы могут отправлять ссылки SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Члены группы могут отправлять голосовые сообщения."; "Group members can send voice messages." = "Члены группы могут отправлять голосовые сообщения.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "В ответ на"; "In reply to" = "В ответ на";
/* No comment provided by engineer. */
"In-call sounds" = "Звуки во время звонков";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Инкогнито"; "Incognito" = "Инкогнито";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "получено сообщение"; "message received" = "получено сообщение";
/* No comment provided by engineer. */
"Message source remains private." = "Источник сообщения остаётся конфиденциальным.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Текст сообщения"; "Message text" = "Текст сообщения";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Дополнительные улучшения скоро!"; "More improvements are coming soon!" = "Дополнительные улучшения скоро!";
/* No comment provided by engineer. */
"More reliable network connection." = "Более надежное соединение с сетью.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Скорее всего, соединение удалено."; "Most likely this connection is deleted." = "Скорее всего, соединение удалено.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Сеть & серверы"; "Network & servers" = "Сеть & серверы";
/* No comment provided by engineer. */
"Network connection" = "Интернет-соединение";
/* No comment provided by engineer. */
"Network management" = "Статус сети";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Настройки сети"; "Network settings" = "Настройки сети";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Нет истории"; "No history" = "Нет истории";
/* No comment provided by engineer. */
"No network connection" = "Нет интернет-соединения";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Нет разрешения для записи голосового сообщения"; "No permission to record voice message" = "Нет разрешения для записи голосового сообщения";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Или покажите этот код"; "Or show this code" = "Или покажите этот код";
/* No comment provided by engineer. */
"Other" = "Другaя сеть";
/* member role */ /* member role */
"owner" = "владелец"; "owner" = "владелец";
/* feature role */
"owners" = "владельцы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Код доступа"; "Passcode" = "Код доступа";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Возможно, хэш сертификата в адресе сервера неверный"; "Possibly, certificate fingerprint in server address is incorrect" = "Возможно, хэш сертификата в адресе сервера неверный";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Квантово-устойчивое E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Сохранить последний черновик, вместе с вложениями."; "Preserve the last message draft, with attachments." = "Сохранить последний черновик, вместе с вложениями.";
@@ -2901,7 +2958,10 @@
"Profile and server connections" = "Профиль и соединения на сервере"; "Profile and server connections" = "Профиль и соединения на сервере";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Аватар"; "Profile image" = "Картинка профиля";
/* No comment provided by engineer. */
"Profile images" = "Картинки профилей";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Имя профиля"; "Profile name" = "Имя профиля";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Запретить слать файлы и медиа."; "Prohibit sending files and media." = "Запретить слать файлы и медиа.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "Запретить отправку ссылок SimpleX.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Запретить отправлять голосовые сообщений."; "Prohibit sending voice messages." = "Запретить отправлять голосовые сообщений.";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Адрес получения сообщений будет перемещён на другой сервер. Изменение адреса завершится после того как отправитель будет онлайн."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Адрес получения сообщений будет перемещён на другой сервер. Изменение адреса завершится после того как отправитель будет онлайн.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Одновременный приём";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Приём файла будет прекращён."; "Receiving file will be stopped." = "Приём файла будет прекращён.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "История сообщений и улучшенный [каталог групп](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "История сообщений и улучшенный [каталог групп](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Получатели не видят от кого это сообщение.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Получатели видят их в то время как Вы их набираете."; "Recipients see updates as you type them." = "Получатели видят их в то время как Вы их набираете.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Сохранить приветственное сообщение?"; "Save welcome message?" = "Сохранить приветственное сообщение?";
/* No comment provided by engineer. */
"saved" = "сохранено";
/* No comment provided by engineer. */
"Saved" = "Сохранено";
/* No comment provided by engineer. */
"Saved from" = "Сохранено из";
/* No comment provided by engineer. */
"saved from %@" = "сохранено из %@";
/* message info title */ /* message info title */
"Saved message" = "Сохраненное сообщение"; "Saved message" = "Сохраненное сообщение";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Настройки"; "Settings" = "Настройки";
/* No comment provided by engineer. */
"Shape profile images" = "Форма картинок профилей";
/* chat item action */ /* chat item action */
"Share" = "Поделиться"; "Share" = "Поделиться";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX ссылка группы"; "SimpleX group link" = "SimpleX ссылка группы";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX ссылки"; "SimpleX links" = "SimpleX ссылки";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "Ссылки SimpleX запрещены в этой группе.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "Ссылки SimpleX не разрешены";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "Блокировка SimpleX"; "SimpleX Lock" = "Блокировка SimpleX";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Контакт"; "Somebody" = "Контакт";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Квадрат, круг и все, что между ними.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "стандартное end-to-end шифрование"; "standard end-to-end encryption" = "стандартное end-to-end шифрование";
@@ -4049,6 +4142,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages are prohibited in this group." = "Голосовые сообщения запрещены в этой группе."; "Voice messages are prohibited in this group." = "Голосовые сообщения запрещены в этой группе.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Голосовые сообщения не разрешены";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Голосовые сообщения запрещены!"; "Voice messages prohibited!" = "Голосовые сообщения запрещены!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Когда возможно"; "When available" = "Когда возможно";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Во время соединения аудио и видео звонков.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "Когда Вы получите запрос на соединение, Вы можете принять или отклонить его."; "When people request to connect, you can accept or reject it." = "Когда Вы получите запрос на соединение, Вы можете принять или отклонить его.";
/* 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." = "Когда Вы соединены с контактом инкогнито, тот же самый инкогнито профиль будет использоваться для групп с этим контактом.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Будет включено в прямых разговорах!";
/* No comment provided by engineer. */
"Wired ethernet" = "Проводная сеть";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "С зашифрованными файлами и медиа."; "With encrypted files and media." = "С зашифрованными файлами и медиа.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "да"; "yes" = "да";
/* No comment provided by engineer. */
"you" = "Вы";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Вы"; "You" = "Вы";
+1 -1
View File
@@ -2789,7 +2789,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "ลิงค์กลุ่ม SimpleX"; "SimpleX group link" = "ลิงค์กลุ่ม SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "ลิงก์ SimpleX"; "SimpleX links" = "ลิงก์ SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+120 -9
View File
@@ -389,6 +389,9 @@
/* member role */ /* member role */
"admin" = "yönetici"; "admin" = "yönetici";
/* feature role */
"admins" = "yöneticiler";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Admins can block a member for all." = "Yöneticiler bir üyeyi tamamen engelleyebilirler."; "Admins can block a member for all." = "Yöneticiler bir üyeyi tamamen engelleyebilirler.";
@@ -416,6 +419,9 @@
/* 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.";
/* feature role */
"all members" = "bütün üyeler";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"All messages will be deleted - this cannot be undone!" = "Tüm mesajlar silinecektir - bu geri alınamaz!"; "All messages will be deleted - this cannot be undone!" = "Tüm mesajlar silinecektir - bu geri alınamaz!";
@@ -464,6 +470,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send files and media." = "Dosya ve medya göndermeye izin ver."; "Allow to send files and media." = "Dosya ve medya göndermeye izin ver.";
/* No comment provided by engineer. */
"Allow to send SimpleX links." = "SimpleX bağlantıları göndilmesine izin ver.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Allow to send voice messages." = "Sesli mesaj göndermeye izin ver."; "Allow to send voice messages." = "Sesli mesaj göndermeye izin ver.";
@@ -707,6 +716,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Cannot receive file" = "Dosya alınamıyor"; "Cannot receive file" = "Dosya alınamıyor";
/* No comment provided by engineer. */
"Cellular" = "Hücresel Veri";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Change" = "Değiştir"; "Change" = "Değiştir";
@@ -1401,6 +1413,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Downgrade and open chat" = "Sürüm düşür ve sohbeti aç"; "Downgrade and open chat" = "Sürüm düşür ve sohbeti aç";
/* chat item action */
"Download" = "İndir";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Download failed" = "Yükleme başarısız oldu"; "Download failed" = "Yükleme başarısız oldu";
@@ -1476,6 +1491,9 @@
/* enabled status */ /* enabled status */
"enabled" = "etkin"; "enabled" = "etkin";
/* No comment provided by engineer. */
"Enabled for" = "Şunlar için etkinleştirildi";
/* enabled status */ /* enabled status */
"enabled for contact" = "konuşulan kişi için etkinleşti"; "enabled for contact" = "konuşulan kişi için etkinleşti";
@@ -1605,9 +1623,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Üye(ler) eklenirken hata oluştu"; "Error adding member(s)" = "Üye(ler) eklenirken hata oluştu";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "İletişim PQ şifrelemesine izin verirken hata oluştu";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Adres değiştirilirken hata oluştu"; "Error changing address" = "Adres değiştirilirken hata oluştu";
@@ -1833,6 +1848,9 @@
/* 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 in this group." = "Dosyalar ve medya bu grupta yasaklandı.";
/* No comment provided by engineer. */
"Files and media not allowed" = "Dosyalar ve medyaya izin verilmiyor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Files and media prohibited!" = "Dosyalar ve medya yasaklandı!"; "Files and media prohibited!" = "Dosyalar ve medya yasaklandı!";
@@ -1872,6 +1890,21 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"For console" = "Konsol için"; "For console" = "Konsol için";
/* chat item action */
"Forward" = "İlet";
/* No comment provided by engineer. */
"Forward and save messages" = "Mesajları ilet ve kaydet";
/* No comment provided by engineer. */
"forwarded" = "iletildi";
/* No comment provided by engineer. */
"Forwarded" = "İletildi";
/* No comment provided by engineer. */
"Forwarded from" = "Şuradan iletildi";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Found desktop" = "Bilgisayar bulundu"; "Found desktop" = "Bilgisayar bulundu";
@@ -1950,6 +1983,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Group members can send files and media." = "Grup üyeleri dosyalar ve medya gönderebilir."; "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. */ /* No comment provided by engineer. */
"Group members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir."; "Group members can send voice messages." = "Grup üyeleri sesli mesajlar gönderebilir.";
@@ -2091,6 +2127,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"In reply to" = "Cevap olarak"; "In reply to" = "Cevap olarak";
/* No comment provided by engineer. */
"In-call sounds" = "Arama içi sesler";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Incognito" = "Gizli"; "Incognito" = "Gizli";
@@ -2436,6 +2475,9 @@
/* notification */ /* notification */
"message received" = "mesaj alındı"; "message received" = "mesaj alındı";
/* No comment provided by engineer. */
"Message source remains private." = "Mesaj kaynağı gizli kalır.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Message text" = "Mesaj yazısı"; "Message text" = "Mesaj yazısı";
@@ -2520,6 +2562,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"More improvements are coming soon!" = "Daha fazla geliştirmeler yakında geliyor!"; "More improvements are coming soon!" = "Daha fazla geliştirmeler yakında geliyor!";
/* No comment provided by engineer. */
"More reliable network connection." = "Daha güvenilir ağ bağlantısı.";
/* item status description */ /* item status description */
"Most likely this connection is deleted." = "Büyük ihtimalle bu bağlantı silinmiş."; "Most likely this connection is deleted." = "Büyük ihtimalle bu bağlantı silinmiş.";
@@ -2541,6 +2586,12 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network & servers" = "Ağ & sunucular"; "Network & servers" = "Ağ & sunucular";
/* No comment provided by engineer. */
"Network connection" = "Ağ bağlantısı";
/* No comment provided by engineer. */
"Network management" = "Ağ yönetimi";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Network settings" = "Ağ ayarları"; "Network settings" = "Ağ ayarları";
@@ -2619,6 +2670,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No history" = "Geçmiş yok"; "No history" = "Geçmiş yok";
/* No comment provided by engineer. */
"No network connection" = "Ağ bağlantısı yok";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"No permission to record voice message" = "Sesli mesaj kaydetmek için izin yok"; "No permission to record voice message" = "Sesli mesaj kaydetmek için izin yok";
@@ -2765,9 +2819,15 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Or show this code" = "Veya bu kodu göster"; "Or show this code" = "Veya bu kodu göster";
/* No comment provided by engineer. */
"Other" = "Diğer";
/* member role */ /* member role */
"owner" = "sahip"; "owner" = "sahip";
/* feature role */
"owners" = "sahipler";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Passcode" = "Şifre"; "Passcode" = "Şifre";
@@ -2870,9 +2930,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil"; "Possibly, certificate fingerprint in server address is incorrect" = "Muhtemelen, sunucu adresindeki parmakizi sertifikası doğru değil";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Kuantum sonrası E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Son mesaj taslağını ekleriyle birlikte koru."; "Preserve the last message draft, with attachments." = "Son mesaj taslağını ekleriyle birlikte koru.";
@@ -2903,6 +2960,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile image" = "Profil fotoğrafı"; "Profile image" = "Profil fotoğrafı";
/* No comment provided by engineer. */
"Profile images" = "Profil resimleri";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Profile name" = "Profil ismi"; "Profile name" = "Profil ismi";
@@ -2936,6 +2996,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending files and media." = "Dosyalar ve medya gönderimlerini yasakla."; "Prohibit sending files and media." = "Dosyalar ve medya gönderimlerini yasakla.";
/* No comment provided by engineer. */
"Prohibit sending SimpleX links." = "SimpleX bağlantısı gönderimini yasakla.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Prohibit sending voice messages." = "Sesli mesajların gönderimini yasakla."; "Prohibit sending voice messages." = "Sesli mesajların gönderimini yasakla.";
@@ -2991,7 +3054,7 @@
"Read more in our GitHub repository." = "Daha fazlasını GitHub depomuzdan oku."; "Read more in our GitHub repository." = "Daha fazlasını GitHub depomuzdan oku.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receipts are disabled" = "Makbuzlar devre dışı bırakıldı"; "Receipts are disabled" = "Gönderildi bilgisi devre dışı bırakıldı";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"received answer…" = "alınan cevap…"; "received answer…" = "alınan cevap…";
@@ -3014,6 +3077,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Alıcı adresi farklı bir sunucuya değiştirilecektir. Gönderici çevrimiçi olduktan sonra adres değişikliği tamamlanacaktır."; "Receiving address will be changed to a different server. Address change will complete after sender comes online." = "Alıcı adresi farklı bir sunucuya değiştirilecektir. Gönderici çevrimiçi olduktan sonra adres değişikliği tamamlanacaktır.";
/* No comment provided by engineer. */
"Receiving concurrency" = "Eşzamanlılık alınıyor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Receiving file will be stopped." = "Dosya alımı durdurulacaktır."; "Receiving file will be stopped." = "Dosya alımı durdurulacaktır.";
@@ -3023,6 +3089,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Yakın geçmiş ve geliştirilmiş [dizin botu](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex. im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)."; "Recent history and improved [directory bot](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion)." = "Yakın geçmiş ve geliştirilmiş [dizin botu](simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex. im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion).";
/* No comment provided by engineer. */
"Recipient(s) can't see who this message is from." = "Alıcı(lar) bu mesajın kimden geldiğini göremez.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Recipients see updates as you type them." = "Alıcılar yazdığına göre güncellemeleri görecektir."; "Recipients see updates as you type them." = "Alıcılar yazdığına göre güncellemeleri görecektir.";
@@ -3218,6 +3287,18 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Save welcome message?" = "Hoşgeldin mesajı kaydedilsin mi?"; "Save welcome message?" = "Hoşgeldin mesajı kaydedilsin mi?";
/* No comment provided by engineer. */
"saved" = "kaydedildi";
/* No comment provided by engineer. */
"Saved" = "Kaydedildi";
/* No comment provided by engineer. */
"Saved from" = "Tarafından kaydedildi";
/* No comment provided by engineer. */
"saved from %@" = "%@ tarafından kaydedildi";
/* message info title */ /* message info title */
"Saved message" = "Kaydedilmiş mesaj"; "Saved message" = "Kaydedilmiş mesaj";
@@ -3339,7 +3420,7 @@
"Sending delivery receipts will be enabled for all contacts in all visible chat profiles." = "Görüldü bilgisi, tüm görünür sohbet profillerindeki tüm kişiler için etkinleştirilecektir."; "Sending delivery receipts will be enabled for all contacts in all visible chat profiles." = "Görüldü bilgisi, tüm görünür sohbet profillerindeki tüm kişiler için etkinleştirilecektir.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Sending delivery receipts will be enabled for all contacts." = "Teslimat makbuzlarının gönderilmesi tüm kişiler için etkinleştirilecektir."; "Sending delivery receipts will be enabled for all contacts." = "Gönderildi bilgisi tüm kişiler için etkinleştirilecektir.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Sending file will be stopped." = "Dosya gönderimi durdurulacaktır."; "Sending file will be stopped." = "Dosya gönderimi durdurulacaktır.";
@@ -3425,6 +3506,9 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Settings" = "Ayarlar"; "Settings" = "Ayarlar";
/* No comment provided by engineer. */
"Shape profile images" = "Profil resimlerini şekillendir";
/* chat item action */ /* chat item action */
"Share" = "Paylaş"; "Share" = "Paylaş";
@@ -3482,9 +3566,15 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX grup bağlantısı"; "SimpleX group link" = "SimpleX grup bağlantısı";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX bağlantıları"; "SimpleX links" = "SimpleX bağlantıları";
/* No comment provided by engineer. */
"SimpleX links are prohibited in this group." = "SimpleX bağlantıları bu grupta yasaklandı.";
/* No comment provided by engineer. */
"SimpleX links not allowed" = "SimpleX bağlantılarına izin verilmiyor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"SimpleX Lock" = "SimpleX Kilidi"; "SimpleX Lock" = "SimpleX Kilidi";
@@ -3521,6 +3611,9 @@
/* notification title */ /* notification title */
"Somebody" = "Biri"; "Somebody" = "Biri";
/* No comment provided by engineer. */
"Square, circle, or anything in between." = "Kare,daire, veya aralarında herhangi bir şey.";
/* chat item text */ /* chat item text */
"standard end-to-end encryption" = "standart uçtan uca şifreleme"; "standard end-to-end encryption" = "standart uçtan uca şifreleme";
@@ -4049,6 +4142,9 @@
/* 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 in this group." = "Bu grupta sesli mesajlar yasaktır.";
/* No comment provided by engineer. */
"Voice messages not allowed" = "Sesli mesajlara izin verilmiyor";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Voice messages prohibited!" = "Sesli mesajlar yasaktır!"; "Voice messages prohibited!" = "Sesli mesajlar yasaktır!";
@@ -4100,12 +4196,24 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When available" = "Mevcut olduğunda"; "When available" = "Mevcut olduğunda";
/* No comment provided by engineer. */
"When connecting audio and video calls." = "Sesli ve görüntülü aramalara bağlanırken.";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"When people request to connect, you can accept or reject it." = "İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz."; "When people request to connect, you can accept or reject it." = "İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz.";
/* 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." = "Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır."; "When you share an incognito profile with somebody, this profile will be used for the groups they invite you to." = "Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır.";
/* No comment provided by engineer. */
"WiFi" = "WiFi";
/* No comment provided by engineer. */
"Will be enabled in direct chats!" = "Doğrudan sohbetlerde etkinleştirilecektir!";
/* No comment provided by engineer. */
"Wired ethernet" = "Kablolu ethernet";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"With encrypted files and media." = "Şifrelenmiş dosyalar ve medya ile birlikte."; "With encrypted files and media." = "Şifrelenmiş dosyalar ve medya ile birlikte.";
@@ -4127,6 +4235,9 @@
/* pref value */ /* pref value */
"yes" = "evet"; "yes" = "evet";
/* No comment provided by engineer. */
"you" = "sen";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"You" = "Sen"; "You" = "Sen";
+1 -7
View File
@@ -1605,9 +1605,6 @@
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error adding member(s)" = "Помилка додавання користувача(ів)"; "Error adding member(s)" = "Помилка додавання користувача(ів)";
/* No comment provided by engineer. */
"Error allowing contact PQ encryption" = "Помилка, що дозволяє шифрування контакту PQ";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Error changing address" = "Помилка зміни адреси"; "Error changing address" = "Помилка зміни адреси";
@@ -2870,9 +2867,6 @@
/* server test error */ /* server test error */
"Possibly, certificate fingerprint in server address is incorrect" = "Можливо, в адресі сервера неправильно вказано відбиток сертифіката"; "Possibly, certificate fingerprint in server address is incorrect" = "Можливо, в адресі сервера неправильно вказано відбиток сертифіката";
/* No comment provided by engineer. */
"Post-quantum E2EE" = "Пост-квантовий E2EE";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
"Preserve the last message draft, with attachments." = "Зберегти чернетку останнього повідомлення з вкладеннями."; "Preserve the last message draft, with attachments." = "Зберегти чернетку останнього повідомлення з вкладеннями.";
@@ -3482,7 +3476,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "Посилання на групу SimpleX"; "SimpleX group link" = "Посилання на групу SimpleX";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "Посилання SimpleX"; "SimpleX links" = "Посилання SimpleX";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+1 -1
View File
@@ -3185,7 +3185,7 @@
/* simplex link type */ /* simplex link type */
"SimpleX group link" = "SimpleX 群组链接"; "SimpleX group link" = "SimpleX 群组链接";
/* No comment provided by engineer. */ /* chat feature */
"SimpleX links" = "SimpleX 链接"; "SimpleX links" = "SimpleX 链接";
/* No comment provided by engineer. */ /* No comment provided by engineer. */
+2 -1
View File
@@ -13,7 +13,7 @@ android {
defaultConfig { defaultConfig {
applicationId = "chat.simplex.app" applicationId = "chat.simplex.app"
namespace = "chat.simplex.app" namespace = "chat.simplex.app"
minSdk = 28 minSdk = 26
//noinspection OldTargetApi //noinspection OldTargetApi
targetSdk = 33 targetSdk = 33
// !!! // !!!
@@ -94,6 +94,7 @@ android {
"it", "it",
"iw", "iw",
"ja", "ja",
"lt",
"nl", "nl",
"pl", "pl",
"pt-rBR", "pt-rBR",
@@ -7,7 +7,7 @@ import chat.simplex.app.SimplexService.Companion.showPassphraseNotification
import chat.simplex.common.model.ChatController import chat.simplex.common.model.ChatController
import chat.simplex.common.views.helpers.DBMigrationResult import chat.simplex.common.views.helpers.DBMigrationResult
import chat.simplex.common.platform.chatModel import chat.simplex.common.platform.chatModel
import chat.simplex.common.platform.initChatControllerAndRunMigrations import chat.simplex.common.platform.initChatControllerOnStart
import chat.simplex.common.views.helpers.DatabaseUtils import chat.simplex.common.views.helpers.DatabaseUtils
import kotlinx.coroutines.* import kotlinx.coroutines.*
import java.util.Date import java.util.Date
@@ -60,7 +60,7 @@ class MessagesFetcherWork(
try { try {
// In case of self-destruct is enabled the initialization process will not start in SimplexApp, Let's start it here // In case of self-destruct is enabled the initialization process will not start in SimplexApp, Let's start it here
if (DatabaseUtils.ksSelfDestructPassword.get() != null && chatModel.chatDbStatus.value == null) { if (DatabaseUtils.ksSelfDestructPassword.get() != null && chatModel.chatDbStatus.value == null) {
initChatControllerAndRunMigrations() initChatControllerOnStart()
} }
withTimeout(durationSeconds * 1000L) { withTimeout(durationSeconds * 1000L) {
val chatController = ChatController val chatController = ChatController
@@ -6,7 +6,6 @@ import android.content.Context
import chat.simplex.common.platform.Log import chat.simplex.common.platform.Log
import android.content.Intent import android.content.Intent
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.media.AudioManager
import android.os.* import android.os.*
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.DisposableEffect
@@ -66,6 +65,7 @@ class SimplexApp: Application(), LifecycleEventObserver {
context = this context = this
initHaskell() initHaskell()
initMultiplatform() initMultiplatform()
runMigrations()
tmpDir.deleteRecursively() tmpDir.deleteRecursively()
tmpDir.mkdir() tmpDir.mkdir()
@@ -74,7 +74,7 @@ class SimplexApp: Application(), LifecycleEventObserver {
// It's important, otherwise, user may be locked in undefined state // It's important, otherwise, user may be locked in undefined state
appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo) appPrefs.onboardingStage.set(OnboardingStage.Step1_SimpleXInfo)
} else if (DatabaseUtils.ksAppPassword.get() == null || DatabaseUtils.ksSelfDestructPassword.get() == null) { } else if (DatabaseUtils.ksAppPassword.get() == null || DatabaseUtils.ksSelfDestructPassword.get() == null) {
initChatControllerAndRunMigrations() initChatControllerOnStart()
} }
ProcessLifecycleOwner.get().lifecycle.addObserver(this@SimplexApp) ProcessLifecycleOwner.get().lifecycle.addObserver(this@SimplexApp)
} }
@@ -254,7 +254,7 @@ class SimplexApp: Application(), LifecycleEventObserver {
override fun androidSetNightModeIfSupported() { override fun androidSetNightModeIfSupported() {
if (Build.VERSION.SDK_INT < 31) return if (Build.VERSION.SDK_INT < 31) return
val light = if (CurrentColors.value.name == DefaultTheme.SYSTEM.name) { val light = if (CurrentColors.value.name == DefaultTheme.SYSTEM_THEME_NAME) {
null null
} else { } else {
CurrentColors.value.colors.isLight CurrentColors.value.colors.isLight
@@ -77,7 +77,7 @@ class SimplexService: Service() {
isServiceStarted = true isServiceStarted = true
// In case of self-destruct is enabled the initialization process will not start in SimplexApp, Let's start it here // In case of self-destruct is enabled the initialization process will not start in SimplexApp, Let's start it here
if (DatabaseUtils.ksSelfDestructPassword.get() != null && chatModel.chatDbStatus.value == null) { if (DatabaseUtils.ksSelfDestructPassword.get() != null && chatModel.chatDbStatus.value == null) {
initChatControllerAndRunMigrations() initChatControllerOnStart()
} }
} }
} }
+5 -2
View File
@@ -37,7 +37,7 @@ kotlin {
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
api("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0") api("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0")
api("com.russhwolf:multiplatform-settings:1.1.1") api("com.russhwolf:multiplatform-settings:1.1.1")
api("com.charleskorn.kaml:kaml:0.58.0") api("com.charleskorn.kaml:kaml:0.59.0")
api("org.jetbrains.compose.ui:ui-text:${rootProject.extra["compose.version"] as String}") api("org.jetbrains.compose.ui:ui-text:${rootProject.extra["compose.version"] as String}")
implementation("org.jetbrains.compose.components:components-animatedimage:${rootProject.extra["compose.version"] as String}") implementation("org.jetbrains.compose.components:components-animatedimage:${rootProject.extra["compose.version"] as String}")
//Barcode //Barcode
@@ -53,6 +53,9 @@ kotlin {
val commonTest by getting { val commonTest by getting {
dependencies { dependencies {
implementation(kotlin("test")) implementation(kotlin("test"))
implementation(kotlin("test-junit"))
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
} }
} }
val androidMain by getting { val androidMain by getting {
@@ -113,7 +116,7 @@ android {
compileSdk = 34 compileSdk = 34
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig { defaultConfig {
minSdk = 28 minSdk = 26
} }
testOptions.targetSdk = 33 testOptions.targetSdk = 33
lint.targetSdk = 33 lint.targetSdk = 33
@@ -15,8 +15,10 @@ actual val dataDir: File = androidAppContext.dataDir
actual val tmpDir: File = androidAppContext.getDir("temp", Application.MODE_PRIVATE) actual val tmpDir: File = androidAppContext.getDir("temp", Application.MODE_PRIVATE)
actual val filesDir: File = File(dataDir.absolutePath + File.separator + "files") actual val filesDir: File = File(dataDir.absolutePath + File.separator + "files")
actual val appFilesDir: File = File(filesDir.absolutePath + File.separator + "app_files") actual val appFilesDir: File = File(filesDir.absolutePath + File.separator + "app_files")
actual val wallpapersDir: File = File(filesDir.absolutePath + File.separator + "assets" + File.separator + "wallpapers").also { it.mkdirs() }
actual val coreTmpDir: File = File(filesDir.absolutePath + File.separator + "temp_files") actual val coreTmpDir: File = File(filesDir.absolutePath + File.separator + "temp_files")
actual val dbAbsolutePrefixPath: String = dataDir.absolutePath + File.separator + "files" actual val dbAbsolutePrefixPath: String = dataDir.absolutePath + File.separator + "files"
actual val preferencesDir = File(dataDir.absolutePath + File.separator + "shared_prefs")
actual val chatDatabaseFileName: String = "files_chat.db" actual val chatDatabaseFileName: String = "files_chat.db"
actual val agentDatabaseFileName: String = "files_agent.db" actual val agentDatabaseFileName: String = "files_agent.db"
@@ -156,13 +156,13 @@ actual object AudioPlayer: AudioPlayerInterface {
} }
}.onFailure { }.onFailure {
Log.e(TAG, it.stackTraceToString()) Log.e(TAG, it.stackTraceToString())
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.unknown_error), it.message) AlertManager.shared.showAlertMsg(generalGetString(MR.strings.unknown_error), it.stackTraceToString())
return null return null
} }
runCatching { player.prepare() }.onFailure { runCatching { player.prepare() }.onFailure {
// Can happen when audio file is broken // Can happen when audio file is broken
Log.e(TAG, it.stackTraceToString()) Log.e(TAG, it.stackTraceToString())
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.unknown_error), it.message) AlertManager.shared.showAlertMsg(generalGetString(MR.strings.unknown_error), it.stackTraceToString())
return null return null
} }
} }

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