Commit Graph
3782 Commits
Author SHA1 Message Date
spacedandy-agents-simplex 0ac50cd4c3 fixup! docs: describe badge tier changes and restore as the service handles them 2026-10-22 20:39:05 +04:00
spacedandy-agents-simplex e9f859759d fixup! docs: describe badge tier changes and restore as the service handles them 2026-10-22 20:39:05 +04:00
spacedandy-agents-simplex a43a44f2ee docs: describe badge tier changes and restore as the service handles them
The RPC document splits a store tier change by store and direction: the
app never starts one, an App Store raise seen within a day of its charge
is sent as upgradeBadgeSubscription, every other change waits for the
renewal check, and a Play plan change is a new token, a new purchase.
transferBadge and its limits are checked against the handlers, and the
upgrades that are not built are marked so.

The overview admits what Restore discloses: the service links the two
purchase keys, a store receipt moves its subscription to whoever presents
it within the move limit, and a new badge or tier is shown as soon as it
is issued. The Android gap names what remains of Restore.
2026-10-22 20:39:05 +04:00
spaced4ndy 7a93b63385 badge-service: let a restore ask the store without waiting for the purchase's own check 2026-10-22 20:00:25 +04:00
spacedandy-agents-simplex 03cc98f4db Merge branch 'master' into f/badge-subscriptions
# Conflicts:
#	apps/ios/SimpleX.xcodeproj/project.pbxproj
#	simplex-chat.cabal
#	src/Simplex/Chat/Store/SQLite/Migrations.hs
2026-10-21 18:24:09 +00:00
spaced4ndy 1bbbad99cb core, badge-service, ios, android: change badge tier in the store, and restore a subscription on another device (#7795) 2026-10-21 16:53:15 +00:00
EvgenyandEvgeny @ SimpleX Chat 3126d9b544 ios: set default proxy mode (#7790)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-21 14:35:41 +01:00
spaced4ndy f8f64a3047 core, ios, android: explain a failed badge renewal and stop retrying a subscription the store forgot; tests (#7788) 2026-10-21 07:44:20 +00:00
spaced4ndy 6cef6b9e60 badge-service: name the purchase each request came from in the log 2026-10-20 20:32:04 +04:00
spaced4ndy 696abf13ab badge-service: name the purchase each request came from in the log 2026-10-20 20:19:01 +04:00
spaced4ndy b6376b90c7 fix compilation 2026-10-20 19:26:06 +04:00
spaced4ndy a68eb91da1 badge-service: log each request's command and each store check's outcome 2026-10-20 19:16:36 +04:00
spaced4ndy 3c61a3ced4 badge-service: credit test purchases and check the store during coverage in a dev deployment 2026-10-20 18:50:52 +04:00
SimpleX Chat fcef2ad008 7.1-beta.7: android 387, desktop 168, ios 363 2026-10-20 12:34:51 +00:00
spacedandy-agents-simplex 038f50ac30 core, ios, android, desktop: let a lapsed iOS subscriber subscribe again to the badge the profile retired
The iOS app refused any subscription to an Apple ID that ever subscribed, so a lapsed subscriber could never subscribe again in the app. Core now tells the apps each subscription's store reference (BadgeSubscription.transactionRef, optional in JSON), and the iOS gate opens a subscription card only when every earlier subscription of the Apple ID is the active profile's newest purchase, retired, of the card's badge: the one charge core resumes. Kotlin gets the model field only, as Play gives a resubscription a new token and needs no gate.

Run: 011-subscription-resume, slice S2b
2026-10-20 16:33:12 +04:00
spacedandy-agents-simplex c0619385e9 fixup! badge-service: let a dev deployment ask its mock store while coverage runs 2026-10-20 15:37:53 +04:00
spacedandy-agents-simplex e570748206 fixup! badge-service: let a dev deployment ask its mock store while coverage runs 2026-10-20 15:37:53 +04:00
spacedandy-agents-simplex e116987e5b badge-service: let a dev deployment ask its mock store while coverage runs
[dev] check_store_during_coverage = on makes every issueBadge for a
subscription ask the dev mock, during paid coverage too, and bank the
month of a charge it can grant, issued once coverage reaches it. So a
renewal can be watched by hand without waiting a month, and a mock that
forgot the plan after a restart answers ended at once.

Off by default, and refused unless accept_unverified_store_receipts is
on, which is itself refused beside a real store: a real store has not
started its next charge while coverage runs, and asking spends the
quota every subscriber shares.

Run: 011-subscription-tools, slice S3a
2026-10-20 15:37:53 +04:00
+104 8af38dc33e ui: translations (#7782)
* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (German)

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

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (Russian)

Currently translated at 99.5% (2501 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2513 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 97.6% (2453 of 2513 strings)

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

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

Currently translated at 96.4% (2424 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

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

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

* Translated using Weblate (Dutch)

Currently translated at 81.3% (2044 of 2513 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 81.3% (2044 of 2513 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 81.3% (2044 of 2513 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 81.3% (2044 of 2513 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 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 48.7% (1224 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 35.6% (896 of 2513 strings)

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

* Translated using Weblate (Croatian)

Currently translated at 1.8% (47 of 2513 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 29.2% (735 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 85.6% (2152 of 2513 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 1.5% (38 of 2513 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 44.2% (1113 of 2513 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 44.2% (1113 of 2513 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 44.2% (1113 of 2513 strings)

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

* Translated using Weblate (Korean)

Currently translated at 17.5% (441 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Polish)

Currently translated at 86.2% (2168 of 2513 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 6.0% (153 of 2513 strings)

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

* Translated using Weblate (Greek)

Currently translated at 1.0% (27 of 2513 strings)

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

* Translated using Weblate (Hebrew)

Currently translated at 26.3% (661 of 2513 strings)

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

* Translated using Weblate (Thai)

Currently translated at 42.9% (1079 of 2513 strings)

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

* Translated using Weblate (Thai)

Currently translated at 42.9% (1079 of 2513 strings)

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

* Translated using Weblate (Bengali)

Currently translated at 0.1% (3 of 2513 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 61.4% (1544 of 2513 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 61.4% (1544 of 2513 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 61.4% (1544 of 2513 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 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 85.4% (2147 of 2513 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Azerbaijani)

Currently translated at 47.0% (1183 of 2513 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 47.0% (1183 of 2513 strings)

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

* Translated using Weblate (Bulgarian)

Currently translated at 80.9% (2430 of 3001 strings)

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

* Translated using Weblate (Russian)

Currently translated at 93.9% (2820 of 3001 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 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 56.6% (1701 of 3001 strings)

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

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

Currently translated at 92.0% (2763 of 3001 strings)

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

* Translated using Weblate (Thai)

Currently translated at 42.2% (1269 of 3001 strings)

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

* Translated using Weblate (Polish)

Currently translated at 82.0% (2463 of 3001 strings)

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

* Translated using Weblate (Greek)

Currently translated at 81.7% (2454 of 3001 strings)

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

* Translated using Weblate (Croatian)

Currently translated at 48.5% (1457 of 3001 strings)

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

* Translated using Weblate (Czech)

Currently translated at 89.4% (2685 of 3001 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Hebrew)

Currently translated at 69.1% (2074 of 3001 strings)

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

* Translated using Weblate (Persian)

Currently translated at 81.1% (2434 of 3001 strings)

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

* Translated using Weblate (Dutch)

Currently translated at 78.0% (2342 of 3001 strings)

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

* Translated using Weblate (Indonesian)

Currently translated at 88.3% (2650 of 3001 strings)

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

* Translated using Weblate (Bengali)

Currently translated at 1.7% (53 of 3001 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 94.2% (2827 of 3001 strings)

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

* Translated using Weblate (Korean)

Currently translated at 49.5% (1488 of 3001 strings)

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

* Translated using Weblate (Italian)

Currently translated at 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 47.9% (1438 of 3001 strings)

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

* Translated using Weblate (French)

Currently translated at 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Romanian)

Currently translated at 82.0% (2463 of 3001 strings)

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

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

Currently translated at 96.5% (2897 of 3001 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 0.3% (10 of 3001 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 86.3% (2590 of 3001 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 91.1% (2735 of 3001 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 92.8% (2787 of 3001 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 96.5% (2898 of 3001 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 39.3% (1180 of 3001 strings)

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

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

* ios: remove empty targets, restore az/cs strings

* ios: import and export localizations

* ios: fix broken placeholders in translations

* ios: restore cs draft translations

* ios: fix more broken placeholders and link

---------

Co-authored-by: mlanp <mlanp@users.noreply.hosted.weblate.org>
Co-authored-by: Anonymous <anonymous@users.noreply.hosted.weblate.org>
Co-authored-by: Pixelcode <{pixelcode|git}@pgp.forgoodeyesonly.eu>
Co-authored-by: Evgeny Poberezkin <epoberezkin@users.noreply.hosted.weblate.org>
Co-authored-by: tn <tr4jan@users.noreply.hosted.weblate.org>
Co-authored-by: J. Lavoie <edanas@users.noreply.hosted.weblate.org>
Co-authored-by: J R <jrs@users.noreply.hosted.weblate.org>
Co-authored-by: Sarfaraz Ahmed <sahmed@users.noreply.hosted.weblate.org>
Co-authored-by: sith-on-mars <sith-on-mars@users.noreply.hosted.weblate.org>
Co-authored-by: TheFirstMonster <thefirstmonster@users.noreply.hosted.weblate.org>
Co-authored-by: khalidbelk <khalidbelk@users.noreply.hosted.weblate.org>
Co-authored-by: Near <near8954@users.noreply.hosted.weblate.org>
Co-authored-by: thedmdim <thedmdim@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate user 107176 <zhuk2@users.noreply.hosted.weblate.org>
Co-authored-by: Artem Vorotnikov <vorot93@users.noreply.hosted.weblate.org>
Co-authored-by: Paul <acornacre@users.noreply.hosted.weblate.org>
Co-authored-by: А О <twofish85@users.noreply.hosted.weblate.org>
Co-authored-by: whoami11 <whoami021992@users.noreply.hosted.weblate.org>
Co-authored-by: Skyward Copied <skywardcopied@users.noreply.hosted.weblate.org>
Co-authored-by: Evgeny <esp@users.noreply.hosted.weblate.org>
Co-authored-by: Игорь Линчевский <insrtnqme@users.noreply.hosted.weblate.org>
Co-authored-by: Name Lastname <simplex-edit0r@users.noreply.hosted.weblate.org>
Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com>
Co-authored-by: Mqlx <mqlx@users.noreply.hosted.weblate.org>
Co-authored-by: Ranakan <ranak4n@users.noreply.hosted.weblate.org>
Co-authored-by: Karl Rinneberg <hundertwasser@users.noreply.hosted.weblate.org>
Co-authored-by: indiandoc <indiandoc@users.noreply.hosted.weblate.org>
Co-authored-by: cedev-1 <121963179+cedev-1@users.noreply.github.com>
Co-authored-by: Deleted User <deleted-6980@users.noreply.hosted.weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Float <float@users.noreply.hosted.weblate.org>
Co-authored-by: Deleted User <dnstxqet@users.noreply.hosted.weblate.org>
Co-authored-by: BlacAmDK <blacamdk@users.noreply.hosted.weblate.org>
Co-authored-by: re me <jisizhang001@users.noreply.hosted.weblate.org>
Co-authored-by: Aaron H <chieferino@users.noreply.hosted.weblate.org>
Co-authored-by: Loping151 <loping151@users.noreply.hosted.weblate.org>
Co-authored-by: cllih <cllih@users.noreply.hosted.weblate.org>
Co-authored-by: Zhiyounihao <zhiyouni@users.noreply.hosted.weblate.org>
Co-authored-by: M Sarmad Qadeer <msarmadqadeer@users.noreply.hosted.weblate.org>
Co-authored-by: Albert Bob <vicdorke@users.noreply.hosted.weblate.org>
Co-authored-by: 小连招 <onecombo666@users.noreply.hosted.weblate.org>
Co-authored-by: Yay <yay9hbx5otn5@users.noreply.hosted.weblate.org>
Co-authored-by: Frank Yang <frankyang96@users.noreply.hosted.weblate.org>
Co-authored-by: Citrus <citrus@users.noreply.hosted.weblate.org>
Co-authored-by: Ross Li <ross89223@users.noreply.hosted.weblate.org>
Co-authored-by: No name <certainbot@users.noreply.hosted.weblate.org>
Co-authored-by: Luis Morillo Najarro <lsmor@users.noreply.hosted.weblate.org>
Co-authored-by: Darío Hereñú <kant@users.noreply.hosted.weblate.org>
Co-authored-by: Víctor <vzamanillo@users.noreply.hosted.weblate.org>
Co-authored-by: kudebug <kudebug@users.noreply.hosted.weblate.org>
Co-authored-by: Carlos Perez <charlieper@users.noreply.hosted.weblate.org>
Co-authored-by: Isaac ALejandro Lopez <justanormalguy@users.noreply.hosted.weblate.org>
Co-authored-by: gacarel <gacarel@users.noreply.hosted.weblate.org>
Co-authored-by: John m <jvanmanen@users.noreply.hosted.weblate.org>
Co-authored-by: M1K4 <mika-nl@users.noreply.hosted.weblate.org>
Co-authored-by: a4318 <a4318@users.noreply.hosted.weblate.org>
Co-authored-by: Miyu Sakatsuki <miyu-dev@users.noreply.hosted.weblate.org>
Co-authored-by: ikyhtr <ikyhtr@users.noreply.hosted.weblate.org>
Co-authored-by: 小林照幸 <koba-ninkigumi@users.noreply.hosted.weblate.org>
Co-authored-by: proudmuslim-dev <proudmuslim-dev@users.noreply.hosted.weblate.org>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: Rei <rei_@users.noreply.hosted.weblate.org>
Co-authored-by: yokoba0413 <yokoba0413@users.noreply.hosted.weblate.org>
Co-authored-by: ryokky3 <ryokky3@users.noreply.hosted.weblate.org>
Co-authored-by: koreirozzu <koreirozzu@users.noreply.hosted.weblate.org>
Co-authored-by: daydreamer-json <daydreamer-json@users.noreply.hosted.weblate.org>
Co-authored-by: acevif <acevif@users.noreply.hosted.weblate.org>
Co-authored-by: ActiveTK. <webmaster@activetk.jp>
Co-authored-by: Dima Sivan <dimasivan@users.noreply.hosted.weblate.org>
Co-authored-by: zenobit <zenobit@disroot.org>
Co-authored-by: Mehmed <don43@users.noreply.hosted.weblate.org>
Co-authored-by: mslr8 <hosted.weblate.org.poncho089@passmail.net>
Co-authored-by: Pluto <offplutonium@users.noreply.hosted.weblate.org>
Co-authored-by: idk <ciganzelezo@users.noreply.hosted.weblate.org>
Co-authored-by: Nenad <nenadmirkovic00@gmail.com>
Co-authored-by: Magorak Magorov <magorakmagorov@users.noreply.hosted.weblate.org>
Co-authored-by: Maksym Lukashenko <prototypem995@users.noreply.hosted.weblate.org>
Co-authored-by: Max <prototypem95@users.noreply.hosted.weblate.org>
Co-authored-by: ghost <ghosthamster@users.noreply.hosted.weblate.org>
Co-authored-by: rider of the storm <passat-b6-tdi@users.noreply.hosted.weblate.org>
Co-authored-by: Deleted User <mgorpinic2005@gmail.com>
Co-authored-by: Hotripak <hotr1pak@users.noreply.hosted.weblate.org>
Co-authored-by: Groovy394 <groovy394@users.noreply.hosted.weblate.org>
Co-authored-by: aquaticexpectancy <aquaticexpectancy@users.noreply.hosted.weblate.org>
Co-authored-by: Andrii Sudak <andrii-sudak@users.noreply.hosted.weblate.org>
Co-authored-by: sr sr <sr1919os@users.noreply.hosted.weblate.org>
Co-authored-by: petri <petrik@users.noreply.hosted.weblate.org>
Co-authored-by: Jiri Grönroos <artnay@users.noreply.hosted.weblate.org>
Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com>
Co-authored-by: Jester Hodl <jesterhodl@users.noreply.hosted.weblate.org>
Co-authored-by: Kszyche <hostedweblate001user@users.noreply.hosted.weblate.org>
Co-authored-by: Wiesław Fijołek <percival@users.noreply.hosted.weblate.org>
Co-authored-by: Arturro43 <arturro43@users.noreply.hosted.weblate.org>
Co-authored-by: Omikorin <git@omikor.in>
Co-authored-by: Titapa (PunPun) Chaiyakiturajai <titapapunne@users.noreply.hosted.weblate.org>
Co-authored-by: elgratea <flantito@users.noreply.hosted.weblate.org>
Co-authored-by: 109247019824 <109247019824@users.noreply.hosted.weblate.org>
Co-authored-by: Kaanito <kaanito@users.noreply.hosted.weblate.org>
Co-authored-by: Abdullah Koyuncu <wiseweb-works@users.noreply.hosted.weblate.org>
Co-authored-by: goknarbahceli <goknarbahceli@users.noreply.hosted.weblate.org>
Co-authored-by: Dennis <dennnis@users.noreply.hosted.weblate.org>
Co-authored-by: cervezagua <cervezagua@users.noreply.hosted.weblate.org>
Co-authored-by: Deleted User <deleted-65564@users.noreply.hosted.weblate.org>
Co-authored-by: Egehan KAHRAMAN <vastsea0@users.noreply.hosted.weblate.org>
Co-authored-by: Omer <abulomer@users.noreply.hosted.weblate.org>
Co-authored-by: xe1st <xe1st@users.noreply.hosted.weblate.org>
Co-authored-by: echoloji <echoloji@users.noreply.hosted.weblate.org>
Co-authored-by: U.S. <usnetiz@users.noreply.hosted.weblate.org>
Co-authored-by: summoner001 <summoner@disroot.org>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: d4f5409d <d4f5409d@users.noreply.hosted.weblate.org>
Co-authored-by: Mireli5656 <mireli5656@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-10-20 09:27:01 +01:00
spacedandy-agents-simplex 5dc5da61b2 docs: record that a badge subscription cannot be restored or bought again
Restoring a subscription on a new device or under another profile fails for two independent reasons, the client's restore reading only unfinished transactions on iOS and the service answering any key but the one it credited receipt_used, and a lapsed iOS subscriber cannot subscribe again on the same install either. Both gaps files record it in their own format, and both restorePurchases() say why reading the store's entitlements alone would not help.

Run: 010-subscription-lifecycle, slice S2c
2026-10-20 03:29:19 +00:00
spacedandy-agents-simplex 55d69781e8 core: retire a subscription badge as soon as its store says it ended
A subscription badge retired only on an ended answer to a request that was due, and only once the ledger's paidThrough had passed, so an ended answer while the ledger still covered, or the iOS app's report of StoreKit's expired or revoked state, left the badge shown, Support SimpleX unreachable and every purchase refused until a later request. Now an answered ended state is stored even while coverage runs (the service writes it only from a store check, after which it grants nothing), and every pass retires a subscription whose state, from this pass's answer or else as stored, is ended, whatever the ledger covers. The paidThrough guard stays at the prepaid call site, its only remaining user.

Run: 010-subscription-lifecycle, slice S1
2026-10-20 03:10:59 +00:00
spaced4ndy 2d093d8c0a ui wip 2026-10-19 20:58:34 +04:00
EvgenyandEvgeny @ SimpleX Chat ba9269a3ad desktop: fix race condition when searching for address (#7776)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-19 17:54:57 +01:00
spaced4ndy 2058daf700 ui 2026-10-19 19:29:21 +04:00
spaced4ndy a1392e2713 ios: no alert when a badge purchase is cancelled 2026-10-19 18:29:49 +04:00
spaced4ndy b5b9b664dd ios, android, desktop: smaller Restore purchases label 2026-10-19 18:23:32 +04:00
spaced4ndy 9e62d09941 ios, android, desktop: show the badge privacy policy in the app 2026-10-19 18:13:09 +04:00
spaced4ndy e2119cef14 ios, android, desktop: restore purchases on the Support SimpleX screen 2026-10-19 18:08:36 +04:00
spaced4ndy 140db8db88 ios, android: hide Restore purchases on the order screen 2026-10-19 17:57:51 +04:00
spaced4ndy da39d8923a update ios lib 2026-10-19 16:53:47 +04:00
+9 5b61fd5c99 ui: translations (#7770)
* website: disable badge page temporarily (#7516)

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* Translated using Weblate (German)

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

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

* Translated using Weblate (French)

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

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

* Translated using Weblate (Italian)

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

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

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

Currently translated at 99.9% (2920 of 2921 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 99.6% (2911 of 2921 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Azerbaijani)

Currently translated at 32.9% (827 of 2513 strings)

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

* Translated using Weblate (Kurdish)

Currently translated at 29.3% (858 of 2921 strings)

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

* Translated using Weblate (Kurdish)

Currently translated at 32.8% (961 of 2921 strings)

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

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

Currently translated at 99.9% (2929 of 2930 strings)

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

* Translated using Weblate (Italian)

Currently translated at 100.0% (2930 of 2930 strings)

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

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (2930 of 2930 strings)

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

* Translated using Weblate (Kurdish)

Currently translated at 38.3% (1123 of 2930 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2930 of 2930 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 33.2% (835 of 2513 strings)

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

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

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

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

Currently translated at 97.6% (2903 of 2972 strings)

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

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

Currently translated at 97.8% (2909 of 2972 strings)

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

* Translated using Weblate (Hungarian)

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

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

* Translated using Weblate (Italian)

Currently translated at 98.0% (2913 of 2972 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% (2972 of 2972 strings)

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

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

Currently translated at 97.9% (2911 of 2972 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (2972 of 2972 strings)

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

* Translated using Weblate (French)

Currently translated at 99.3% (2952 of 2972 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% (2972 of 2972 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% (2513 of 2513 strings)

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

* Translated using Weblate (Arabic)

Currently translated at 97.1% (2888 of 2972 strings)

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

* Translated using Weblate (French)

Currently translated at 99.8% (2967 of 2972 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.0% (2943 of 2972 strings)

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

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

Currently translated at 99.9% (2971 of 2972 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% (2972 of 2972 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% (2513 of 2513 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (2972 of 2972 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.1% (2886 of 2972 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 37.4% (942 of 2513 strings)

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

* Translated using Weblate (French)

Currently translated at 100.0% (2972 of 2972 strings)

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

* Translated using Weblate (Czech)

Currently translated at 90.8% (2701 of 2972 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 42.6% (1071 of 2513 strings)

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

* Translated using Weblate (Czech)

Currently translated at 91.0% (2705 of 2972 strings)

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

* Translated using Weblate (Czech)

Currently translated at 50.2% (1264 of 2513 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 45.2% (1136 of 2513 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 45.3% (1140 of 2513 strings)

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

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (2972 of 2972 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 46.2% (1162 of 2513 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 37.2% (1108 of 2972 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 40.1% (1193 of 2972 strings)

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

* Translated using Weblate (Portuguese)

Currently translated at 40.2% (1195 of 2972 strings)

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

* Translated using Weblate (Slovak)

Currently translated at 36.6% (1089 of 2972 strings)

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

* Translated using Weblate (Azerbaijani)

Currently translated at 47.0% (1183 of 2513 strings)

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

* android, desktop: remove unused translations

* ui: fix translations (stale badge texts, missing placeholder, inverted and verbless strings)

- de, es, fr, hu, it, pt-BR, zh-Hans: re-translate badge strings from the current English (#7544 rewrote them after they were translated), restore the %1$s detail in badges_error_bad_service_response
- es, pt-BR: badges_savings is a discount, not "store"
- zh-Hans: Legend badge tier is 传奇, not a chart legend
- ku: "removed you" read as "you removed"; removed status is derxistî
- pt: verb buttons (Open, Archive, Save address settings, Paste link / Scan), link vs address in onboarding, accepted/removed %1$s events
- az (iOS): Mark deleted/verified/read, Keep conversation, Forward, Lock after, broken bold
- pt-BR: Monthly badge period, "shown on your profile" caption
- de: Support SimpleX as an action (it is also an alert button)
- cs (iOS): %d day singular, Test relay caption grammar

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: mlanp <github@lang.xyz>
Co-authored-by: Ranakan <ranakan.dev@protonmail.ch>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate user 54392 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: SanctumSaturn <oraculogithub@gmail.com>
Co-authored-by: summoner001 <summoner@disroot.org>
Co-authored-by: Mireli5656 <miraliseyidli5656@gmail.com>
Co-authored-by: Terciman <ter.distant121@passinbox.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: No name <usir.alerts@onionmail.org>
Co-authored-by: zenobit <zenobit@disroot.org>
Co-authored-by: Fábio Pereira (Serzedo) <fpereira-84@users.noreply.hosted.weblate.org>
Co-authored-by: Martin Kozempel <martin1928@users.noreply.hosted.weblate.org>
Co-authored-by: Mireli5656 <mireli5656@users.noreply.hosted.weblate.org>
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com>
2026-10-19 12:24:24 +00:00
spacedandy-agents-simplex a2e9456e6d ios, android, desktop: use the dev badge page for testing (don't merge) 2026-10-19 11:19:14 +00:00
spacedandy-agents-simplex ea359edb66 ios, android, desktop: choose a badge in the app 2026-10-19 11:18:25 +00:00
2ea1ec0d50 ui: reconnect call (#7711)
* Update Call.hs

* Update Internal.hs

* add reconnecting string

* Update WebRTC.kt

* desktop: show reconnecting state, keep call duration

* android keep connection time correct wiith adding reconnecting

* Update CallTypes.swift add reconnecting status on IOS

* Update WebRTC.swift add reconnecting

* add reconnecting and make sure call duration is correct

* Update call.ts

* core: regenerate call.js from call.ts

* Update Call.hs revert call status change

minimization

* Update Internal.hs rever to minimize changes

* Update CallTypes.swift minimize changes

* Update WebRTC.kt minimize changes

* Update CallView.desktop.kt desktop shows reconnecting without sending to core

* Update CallView.android.kt show reconnecting without sending it to the core

* Update ActiveCallView.swift show reconnecting to ui without sending to core

* Update CallView.desktop.kt add reconnecting sound on reconnect

* Update CallView.android.kt add reconnecting sound

* Update ActiveCallView.swift play reconnecting sound when reconnecting

* Update RecAndPlay.desktop.kt

* rebuild

* refactor

* build

* android, desktop: restart ICE to reconnect calls

* ios: restart ICE to reconnect calls

* webrtc: add call reconnection e2e tests

* android, desktop: fix lost call commands

---------

Co-authored-by: GuavaGoat <320862384+GuavaGoat@users.noreply.github.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-19 12:17:16 +01:00
spacedandy-agents-simplex d50488460d Merge branch 'master' into f/badge-subscriptions
# Conflicts:
#	src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt
2026-10-19 09:49:17 +00:00
EvgenyandEvgeny @ SimpleX Chat 0563460204 core, ui: support block markdown (#7734)
* plan: support block markdown

* update plans

* core, ui: markdown plans and implementation

* better

* simplify

* markdown tests and fixes

* implement

* fixes

* fix test

* bold

* block markdown rendering

* fix selection and rtl

* fixes

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-18 22:44:33 +01:00
EvgenyandEvgeny @ SimpleX Chat 77f9f4a464 core: add peer type "agent" (#7738)
* add agent peer type

* bot types

* agent app icons

* refactor

* smaller image

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-17 19:23:53 +01:00
spaced4ndy 19566b5274 Merge branch 'master' into f/badge-subscriptions 2026-10-16 23:32:16 +04:00
spaced4ndy a356512645 Merge branch 'master' into badge-in-app-checkout 2026-10-16 22:07:28 +04:00
spaced4ndy c998eb1fee ios, android, desktop: use the production badge page 2026-10-16 21:30:55 +04:00
spaced4ndy 898c6f1266 ios, android, desktop: choose a badge on the website 2026-10-16 21:07:45 +04:00
sh aaa388e570 desktop: add emoji picker (#7708)
* desktop: add emoji picker data and generator

* desktop: emoji picker in compose field

* desktop: document compose emoji picker
2026-10-16 14:34:04 +01:00
spacedandy-agents-simplex 613ce364f4 review: round 1 fixes
R1-A1: the docs and the PlayReads comment said the purchase path reads Play's subscriptions at most 300 times a minute; it asks about at most 300 subscriptions, and a credited one is read once more to acknowledge it, so made-up tokens can spend at most a tenth of the quota renewal checks share.
R1-A2: a comment on RequestLane repeated the one above the queues.
R1-B1: a test that a held pass, which sends no request, leaves the unrenewed run unchanged.
R1-B2: the outage test's last wait for the run is 30 s instead of 5 s.

Run: 007-subscriptions-retirement-lane, review round 1
2026-10-16 12:58:51 +00:00
spacedandy-agents-simplex bc79a360ce badge-service: read Play's subscriptions at most 300 times a minute for purchases
A Play subscription purchase is asked about without any offline check, so any token in the accepted grammar spends a read from the Subscriptions quota renewal checks share. The purchase path now takes one of a minute's 300 reads for each Play subscription it asks about, a tenth of Play's default quota; with none left, the claim is answered rate_limited with the seconds left in the minute and is not held, as Play was not asked. A claim already held takes no read, and App Store claims, verified offline first, take none.

Run: 007-subscriptions-retirement-lane, slice 3
2026-10-16 11:46:45 +00:00
spacedandy-agents-simplex 9fadf5f726 badge-service: name the web limiter's fixed-window step
takeToken counted a request against a minute's limit inline. The step becomes takeFrom, a pure function, so the purchase path's Play read allowance can use the same rule. No behaviour change.

Run: 007-subscriptions-retirement-lane, slice 3a
2026-10-16 11:36:30 +00:00
spacedandy-agents-simplex 6db4feb821 badge-service: check renewals on a lane no purchase waits on
Renewal checks shared the store lane with every purchase, so made-up Play tokens, which anyone can send, and the weekly burst of genuine purchases delayed them. Renewal checks now wait on a lane of their own, which only a request signed by the purchase key it names, and due its hourly store check, can reach.

Run: 007-subscriptions-retirement-lane, slice 2
2026-10-16 11:29:10 +00:00
spacedandy-agents-simplex 293cf6aadc badge-service: name the lane each request waits on
The router answered "may this request ask a store" as a Bool; renewal checks are to get a lane of their own, which a Bool cannot say. requestLane now names the lane: main, purchase or renewal. Both store lanes still share one queue, so no request changes lane.

Run: 007-subscriptions-retirement-lane, slice 1
2026-10-16 11:18:25 +00:00
spacedandy-agents-simplex ce7fed16b0 Merge branch 'badge-in-app-checkout' into f/badge-subscriptions
# Conflicts:
#	src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt
2026-10-16 10:19:54 +00:00
spacedandy-agents-simplex e3324c6828 Merge branch 'master' into badge-in-app-checkout
# Conflicts:
#	simplex-chat.cabal
#	src/Simplex/Chat/Store/Postgres/Migrations.hs
#	src/Simplex/Chat/Store/SQLite/Migrations.hs
#	src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt
#	src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql
2026-10-16 09:40:53 +00:00
spacedandy-agents-simplex 52c79c35ab ios, android: no Restore purchases on Your badge, where a restored purchase could not be credited
Your badge shows only while a badge is shown, so a purchase Restore found there with no record on this device was held under a profile whose held receipts are not processed while it shows a badge: not credited, nothing said, and on Android acknowledged, ending Play's three-day refund. Restore stays on Check your order, the one screen where a restored purchase can be processed.

Run: 005-subscriptions-load-timing, slice 7
2026-10-15 18:39:37 +00:00