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
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
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
+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
Evgeny and Evgeny @ 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
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
+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
Evgeny and Evgeny @ 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
Evgeny and Evgeny @ 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
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
spacedandy-agents-simplex
06c816de10
review: round 1 fixes
...
badge-service: a Play charge whose clipped period start leaves its month
already spent is answered as period over, not internal (R1-A1).
docs: the per-store answer classes list Play's 410 and the App Store
subscription check (R1-A2).
tests: a held receipt with no attempt yet blocks an invoice (R1-B2); a
renewing report keeps an ended status (R1-B3); a test comment names
[google] (run 005 C2-R2-1).
ios: a subscription refused because this Apple ID subscribed before
shows its sentence, not the error's name (R1-C2); ios, android, desktop:
the Check your order footnotes share one helper (R1-C3).
Run: 006-subscriptions-branch-review, review round 1
2026-10-15 15:50:21 +00:00
spacedandy-agents-simplex
18617ade60
review: round 1 fixes
...
ios: stop selling a subscription once this device has seen one, so a
second profile is not charged for a subscription Apple folds into the
first (R1-12). Continue pins the chosen period on both apps (R1-13).
Only a device with a subscription asks its store for products and status
when reporting, and the purchases are marked checked before the report
(R1-14, R1-5: Kotlin now loads the products, so the price shows after a
restart). Restore says "Nothing to restore" after a cancelled purchase
(R1-7). Android keeps sweeping one-time purchases when the subscriptions
query fails (R1-6). The freshness comment in requestBadgeIssue states the
service's one-hour repeat of its last check (R1-1).
Run: 003-badge-subscriptions-ui, review round 1
2026-10-15 09:25:48 +00:00
spacedandy-agents-simplex
648dccd7c4
android, desktop: sell badge subscriptions and show their state on Your badge
...
The Kotlin port of the iOS screens. How long and Check your order offer
monthly and annual with Google Play's subscription disclosure, the privacy
policy link and Restore purchases. Your badge shows the subscription's state
with the same texts as iOS, the store named Google Play with a store lane and
"the store" without one, and Manage subscription and Restore purchases only
with a store lane on the local host. The chat list shows one banner for the
current badge alert of any kind. Desktop shows the state, footers and banners
without store rows or a price.
Run: 003-badge-subscriptions-ui, slice 12
2026-10-15 07:22:47 +00:00
spacedandy-agents-simplex
812518eeb4
android: hand Play subscriptions to the core and report their renewal state
...
The Kotlin port of the iOS store change. A Play subscription was
acknowledged uncredited; every badge product now goes through a core
invoice and is handed over. The sweep queries subscriptions as well as
one-time products, and the sweep and purchases listener hand over as listed,
so another device on the Google account does not claim them; Restore claims
them for this profile. A subscription is bought on its base plan's own
offer, and the app never acknowledges one itself: the service does when it
credits it, so Play still refunds one the service never credits.
The app reports Play's isAutoRenewing to the core as renewing or cancelled.
Run: 003-badge-subscriptions-ui, slice 11
2026-10-15 07:16:25 +00:00
Narasimha-sc
23ca3ea42f
desktop: hide SimpleX address and chat preferences rows with no profile and no mobile in use ( #7717 )
2026-10-15 05:37:37 +01:00
Narasimha-sc
000258224c
desktop: fix crash in SimpleX address screen when there is no profile ( #7679 )
...
* desktop: fix crash in SimpleX address screen when there is no profile
* desktop: close SimpleX address screen when there is no profile
* desktop: rerun address screen self-close when its modal is reused or the stack changes
* desktop: close SimpleX address screen only when it is the top modal
* plans: correct address no-profile crash triggers and fix description
* plans: correct address no-profile crash fix description and verification
* plans: tighten address no-profile crash wording
* plans: add self-destruct trigger to address no-profile crash
* plans: qualify self-destruct trigger on desktop
* plans: drop desktop-only title from address no-profile crash
* plans: no connected mobile, not no mobile
* spec, product: document isLastModal and address screen without profile
* plans, spec, product: plan sections, address row spec, GAP-08 and GAP-09
* spec, product, plans: fix GAP-08/09 wording, table placement, ModalManager line
* spec, product: GAP-08/09 accuracy, gap count, clickable ModalManager location
* product, plans: GAP-09 at the level the code supports; qualify picker auto-open
* spec, product, plans: fix GAP-09 locations, stale line links, wording
* spec, product, plans: update plain-text line numbers; GAP-09 read wording
* plans: name the picker auto-open condition
* spec, plans: wording; security note
* plans: self-destruct did not crash on Android master; not a trigger
* plans: self-destruct path possible but unconfirmed; Android recovers silently
* spec, product, plans: drop GAP-09 and unrelated line refreshes
* plan: Android self-destruct path confirmed in logcat
* desktop: close Chat preferences screen when there is no profile, as the address screen does
2026-10-14 22:14:55 +01:00
spaced4ndy
59c588932e
badge-service: verify App Store and Google Play purchases ( #7654 )
2026-10-13 15:24:07 +00:00
Evgeny and Evgeny @ SimpleX Chat
2f4a443dda
ui: markdown viewer ( #7702 )
...
* ui: markdown viewer
* simplify
* fixes
* plan
* ios sheet, center modal on desktop
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-13 14:38:37 +01:00
Evgeny and Evgeny @ SimpleX Chat
7d870c6ff5
ui: open file after tap when it is received ( #7700 )
...
* ui: open file after tap when it is received
* fix ios
* simplify
* simplify
* better
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-13 11:24:14 +01:00
Evgeny and Evgeny @ SimpleX Chat
1bd7c95006
ui: additional check for plain domains ( #7699 )
...
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-13 08:53:04 +01:00
Evgeny
d673a6b021
ui: show unicode characters in address as unicode markers ( #7698 )
...
* ui: show unicode characters in address as unicode markers
* defence in depth for links in messages (they are non-clickable from parser)
---------
Current code does not have this problem, as markdown parser rejects such links, and they are not clickable - it is needed for new markdown file viewer - this way unicode links in markdown show with unicode sequences instead of look-alike letters.
2026-10-13 08:42:59 +01:00
Evgeny and Evgeny @ SimpleX Chat
07c363849b
core, ui: invite member of one group to another group ( #7682 )
...
* rfc: invite member of one group to another group
* update
* update
* implement
* version
* update
* do not show error if contact was removed when joining group
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-11 09:50:42 +01:00
Narasimha-sc
7d8a174388
android: recognise passphrase fields as passwords for password managers ( #7612 )
...
* android: recognise passphrase fields as passwords for password managers
Passphrase fields used a hand-rolled VisualTransformation lambda, so Compose never
marked them as password fields: the autofill structure carried no hints and no
password inputType, and password managers could not identify them. The raw
passphrase was also exposed through the CopyText/ACTION_COPY accessibility action.
PassphraseField now declares an autofill content type and uses
PasswordVisualTransformation, which sets the password semantics Compose derives
that flag from.
Fields that create a passphrase declare NewPassword. Where no field would carry
plain password (first-time setup, hidden profile password) they declare both, as
managers do not recognise a form whose every field is newPassword. On the change
form the current-passphrase field supplies password, so the new fields declare
only newPassword - adding password there leaves the manager unable to tell which
field holds the new value and suppresses the save prompt.
* android: do not offer to save hidden profile passwords
Hidden profile password fields no longer declare an autofill content type.
Compose commits the autofill session, which shows the password manager's
save prompt, only after the last field with a content type leaves the
screen, so these fields never trigger it. A saved entry would reveal that
the hidden profile exists.
Rewrite the plan to match the code.
2026-10-10 21:57:12 +01:00
Narasimha-sc and Evgeny Poberezkin
afcaf22100
android, desktop: storage breakdown in developer options ( #7603 )
...
* android, desktop: storage breakdown in developer options
Port of the iOS Storage screen (#5529 ): lists each top-level entry of the app's data, config and temp folders with its recursive size, so it is possible to see what takes space.
* android, desktop: simplify storage view
Use DefaultProgressView, drop the bold total and redundant absoluteFile, and do not follow top-level symlinks (matches iOS; avoids counting the Android lib link).
* android, desktop: storage view: do not crash on names the JVM cannot convert to Path
Under a non-UTF-8 locale on Linux, File.toPath() throws InvalidPathException for a non-ASCII top-level name (e.g. a received file decrypted into tmpDir); log it and show 0 bytes. Also correct plan wording.
* android, desktop: storage view: fold path conversion into treeSize, use produceState
Also correct plan wording (du per-directory overhead, unlistable roots, Windows junctions).
* android, desktop: storage view: open as card screen like other settings screens
* android, desktop: storage view: list top-level entries as Path to keep their exact names
File.listFiles + toPath loses names that are not valid in the JVM file-name encoding (non-ASCII under a C locale, invalid UTF-8), so those entries showed 0 bytes. Files.newDirectoryStream keeps the raw bytes.
* android, desktop: storage view: normalize root paths before dropping nested roots
A root spelled with .. (e.g. XDG_DATA_HOME=/x/data/../tmp) compared as nested in another root and its size was shown nowhere.
* android, desktop: document storage view in spec and product docs
* android, desktop: storage view: single catch when listing a root
* android, desktop: do not log file paths in storage view
The walk's IOException messages contain the full path, which in tmpDir can be a received file's original name.
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2026-10-10 21:55:08 +01:00
Narasimha-sc and Evgeny Poberezkin
d72f68e6dc
android, desktop: free strings returned by the core ( #7595 )
...
The core allocates every chat_* response with malloc and passes ownership to
the caller, as iOS does in API.swift. Both JNI bindings copied the bytes into a
Java string and dropped the pointer, so every command, event and file read
leaked its whole response into the C allocator - invisible to both the JVM and
the Haskell heap profiler.
Desktop frees in decode_to_utf8_string, the funnel every entry point already
goes through. Android has no such funnel because NewStringUTF is called inline,
so decode_and_free is added and the call sites routed through it. chatReadFile
frees directly on both.
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2026-10-10 19:08:35 +01:00
Narasimha-sc
74c6b9d930
android: show attachment options above the keyboard ( #7570 )
2026-10-10 17:02:40 +01:00
spaced4ndy
cf3d6c45d0
ios, android: tell the buyer once a run when a swept purchase cannot be handed over ( #7674 )
2026-10-09 11:59:39 +00:00
spaced4ndy
57ab333a2b
Merge branch 'master' into badge-in-app-checkout
2026-10-09 15:00:36 +04:00
spaced4ndy
7c2c7503f2
ui: do not show "No relays" while leaving a channel ( #7673 )
2026-10-09 10:56:00 +00:00
Evgeny and Evgeny @ SimpleX Chat
9c9c86f9c0
core, ui: fix profiles, add error alerts ( #7663 )
...
* core, ui: fix profiles, add error alerts
* simplify
* query plans
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-08 22:53:59 +01:00
Evgeny and Evgeny @ SimpleX Chat
96970373b0
core: add status when switching queue ( #7664 )
...
* core: add status when switching queue
* fix
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-10-08 16:31:29 +01:00