mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-11-10 22:48:00 +00:00
d3e2157dcab1ef26d756a9d5ebefaecd8feb77e8
1606
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d3e2157dca | Merge branch 'master' into f/badge-subscriptions | ||
|
|
b72379c640 |
desktop: ask before replacing a file, do not suggest hidden file names (#7877)
* desktop: ask before replacing a file, do not suggest hidden file names * desktop: test the file name suggested by the Save dialog |
||
|
|
c3b709a807 | docs: CLAUDE.md importing the contributing and CI guides (#7871) | ||
|
|
2d2d3abeda |
Merge branch 'master' into f/badge-subscriptions
# Conflicts: # simplex-chat.cabal # src/Simplex/Chat/Store/Postgres/Migrations.hs # src/Simplex/Chat/Store/SQLite/Migrations.hs |
||
|
|
7810fc4752 |
core, ui: terminal chat layout for LLM and service bot chats (#7811)
* plan: UI improvements to improve LLM usage via SimpleX * core, ui: types for chat layout * core, ui: settings for alternative terminal-like chat layout for managing LLMs or other service bots * plan: message priority * fixes * query plan * update plans * remove silent messages plan * rename migrations * implement layout * amend * fix * fix * fix * improve * time on the right, sender name in blue * no avatar in direct chats * better previews * update, fixes * update * time gap * changes * ui: terminal layout line heights, gaps and time placement * ui: simplify terminal meta layout, correct its docs and tests * ui: right-to-left emoji edge in terminal rows, time placement tests * android, desktop: raise Kotlin compiler memory to 4 GB * ui: terminal captions as follow-up text, classic event separators * ui: terminal media edge and overlay time, plan decisions * ui: simplify terminal row separation, correct doc line references * ui: keep the media time inside terminal rows, restore caption conditions * ui: terminal heading capitals at large font scales, idle live message time * ui: rename the classic voice-with-text flag, correct the meta copy docs * ui: smaller terminal layout diff, sender gap and meta names * ui: terminal row as tall as the media time * docs: remove the chat layout section from the bots readme * docs: shorten the terminal layout section of the chat view * core: address settings API as on master, /auto_accept reads the stored layout * ui: smaller terminal headings * ui: classic sender rows and avatar rule as on master * ui: classic reply quote text colour as on master * ios: keep the chat layout setting with other UI settings * ui: go-to button at the end of terminal rows, no gutter in direct chats * ui: forwarded arrow on the header line of terminal rows, above the time * ui: forwarded arrow centred above the time line of terminal rows --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com> |
||
|
|
d5bab6d9d7 |
desktop: stop the gsettings theme monitor when the app exits (#7747)
* desktop: stop the gsettings theme monitor when the app exits On Linux the theme detector library starts `gsettings monitor` to follow the system theme and never stops it. The process outlived the app, one per run, each holding a D-Bus connection until the next theme change. A shutdown hook now stops it. * plans: gsettings theme monitor left running after the app exits * desktop: install the gsettings shutdown hook on Linux only * plans: correct the Ctrl-C note for the gsettings monitor * plans: gsettings ignores SIGPIPE; the monitor lives until killed or logout |
||
|
|
31c4b68189 | ui: don't reconnect calls with peers before v22 (#7785) | ||
|
|
8cdfed8f27 | update badge subscriptions docs (#7802) | ||
|
|
cfcce1b43c |
ui: create one group on a double click of Create group (#7759)
* desktop: open a pending connection's "Learn more" and "Incognito" pages once
On desktop the connection view stays clickable in the center pane, so each
click on these rows pushed another modal onto the right pane. Close the
right-pane modals first, as ChatView does when the connection opens. The page
is closed and shown again in one event, so its content is keyed by its
ModalData to start fresh.
Desktop only: on Android the view can itself be the open modal of the shared
manager ("Set contact name"), and the new page already covers the row.
Fixes #6270
* ui: open a modal once when its button is double-clicked
A modal slides in over 250 ms, and until it covers the button that opened it the button still takes clicks, so a double click opened two copies (left-pane pages and most stacked center and right-pane pages on desktop, animated modals on Android). When a modal opens, the page it covers draws an empty pointerInput box over itself while it slides out; when a pane's first modal slides in, the empty page sliding out covers the view under the pane. The page sliding in already takes clicks, and nothing is blocked when a page closes.
* ui: add isTopModalOpen, which ignores modals that are sliding out
A modal closed with animation stays in modalViews until it has slid out, and isLastModalOpen counts it. A check-then-closeModal() on it would close the modal under it. Uses the same index as isLastModal; isLastModalOpen and its callers are unchanged.
* desktop: don't open a second badges page or profile form
These buttons stay clickable on desktop while their page is shown in another pane, so each click opened another copy:
- "Support SimpleX" in the chat's large-file and badge alerts (Badges on the right): the alerts skip while Badges is open, on desktop only, as on Android the page covers the button;
- "+ Add profile" in Your chat profiles and "Create chat profile" in the picker (form in the center): skip while the form is on top, keeping what was typed, before asking for authentication; the picker row still hides the picker.
* desktop: replace a page of the same kind on top instead of stacking another
These buttons stay clickable on desktop while their page is shown in another pane, so each click pushed another copy:
- the chat banner's bio "Read more" (right pane);
- a markdown file clicked in a support chat (viewer in the center);
- message "Info" in the main chat while a support or reports chat is open on the right.
Their content depends on what was clicked and the pane can hold other pages (a support chat), so a page of the same kind on top is replaced. The new page is drawn where the old one was, so its content is keyed by its ModalData to start fresh. The markdown file and Info load on a background thread; their close and show now run on the main thread. The markdown check is desktop only, as on Android the viewer covers its file once it has loaded.
* plans: a page opens again on every click of its button (#6270)
* ui: create one group on a double click of Create group
"Create group" creates the group, opens it and only then closes its
page, and the core does not deduplicate, so a double click created two
groups. The page now ignores a click while its create is in progress,
on desktop and Android.
* plans: a double click on "create group" creates two groups
* plans: D2 is valid at 80 ms only
* ui: ignore a click on Create group until its page has closed after a create
|
||
|
|
eb2ed9d078 | ios, android, desktop: open the badge page on the site again | ||
|
|
0ac50cd4c3 | fixup! docs: describe badge tier changes and restore as the service handles them | ||
|
|
e9f859759d | fixup! docs: describe badge tier changes and restore as the service handles them | ||
|
|
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. |
||
|
|
cc3f49f794 |
android, desktop: fix chat preview and unread counter updating wrong chat (#7072)
* android, desktop: fix chat preview and unread counter updating wrong chat While "Chat with admins", a member support chat or the reports view was open, ChatsContext.addChatItem in the secondary context looked up the chat's index in its own list but read and wrote the main chat list at that index (chatsContext.chats[i]), so an unrelated chat in the main list got the message as its preview and its unread count went up. Use the context's own list at all four sites again. The main-list qualifier had also made a pending invitee's sent support messages reach the group's preview in the main list (at a secondary-list index), so send that update to the main list explicitly: addSentChatItem passes a sent item to the main chat list context as well when it is sent from a secondary view and belongs in the main list (inMainChatList, the same rule addChatItem uses for previews). Count unread stats only in the main chat list context, so the revert does not make the open secondary view count main-list messages in its own list. * plans: wrong-chat preview and unread fix |
||
|
|
87e3f8c3f6 |
ui: open a page once when its button is clicked again or double-clicked (#7725)
* desktop: open a pending connection's "Learn more" and "Incognito" pages once
On desktop the connection view stays clickable in the center pane, so each
click on these rows pushed another modal onto the right pane. Close the
right-pane modals first, as ChatView does when the connection opens. The page
is closed and shown again in one event, so its content is keyed by its
ModalData to start fresh.
Desktop only: on Android the view can itself be the open modal of the shared
manager ("Set contact name"), and the new page already covers the row.
Fixes #6270
* ui: open a modal once when its button is double-clicked
A modal slides in over 250 ms, and until it covers the button that opened it the button still takes clicks, so a double click opened two copies (left-pane pages and most stacked center and right-pane pages on desktop, animated modals on Android). When a modal opens, the page it covers draws an empty pointerInput box over itself while it slides out; when a pane's first modal slides in, the empty page sliding out covers the view under the pane. The page sliding in already takes clicks, and nothing is blocked when a page closes.
* ui: add isTopModalOpen, which ignores modals that are sliding out
A modal closed with animation stays in modalViews until it has slid out, and isLastModalOpen counts it. A check-then-closeModal() on it would close the modal under it. Uses the same index as isLastModal; isLastModalOpen and its callers are unchanged.
* desktop: don't open a second badges page or profile form
These buttons stay clickable on desktop while their page is shown in another pane, so each click opened another copy:
- "Support SimpleX" in the chat's large-file and badge alerts (Badges on the right): the alerts skip while Badges is open, on desktop only, as on Android the page covers the button;
- "+ Add profile" in Your chat profiles and "Create chat profile" in the picker (form in the center): skip while the form is on top, keeping what was typed, before asking for authentication; the picker row still hides the picker.
* desktop: replace a page of the same kind on top instead of stacking another
These buttons stay clickable on desktop while their page is shown in another pane, so each click pushed another copy:
- the chat banner's bio "Read more" (right pane);
- a markdown file clicked in a support chat (viewer in the center);
- message "Info" in the main chat while a support or reports chat is open on the right.
Their content depends on what was clicked and the pane can hold other pages (a support chat), so a page of the same kind on top is replaced. The new page is drawn where the old one was, so its content is keyed by its ModalData to start fresh. The markdown file and Info load on a background thread; their close and show now run on the main thread. The markdown check is desktop only, as on Android the viewer covers its file once it has loaded.
* plans: a page opens again on every click of its button (#6270)
* plans: D2 is valid at 80 ms only
|
||
|
|
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 |
||
|
|
1bbbad99cb | core, badge-service, ios, android: change badge tier in the store, and restore a subscription on another device (#7795) | ||
|
|
f8f64a3047 | core, ios, android: explain a failed badge renewal and stop retrying a subscription the store forgot; tests (#7788) | ||
|
|
fcef2ad008 | 7.1-beta.7: android 387, desktop 168, ios 363 | ||
|
|
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 |
||
|
+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> |
||
|
|
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 |
||
|
|
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 |
||
|
|
2d093d8c0a | ui wip | ||
|
|
ba9269a3ad |
desktop: fix race condition when searching for address (#7776)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> |
||
|
|
2058daf700 | ui | ||
|
|
b5b9b664dd | ios, android, desktop: smaller Restore purchases label | ||
|
|
9e62d09941 | ios, android, desktop: show the badge privacy policy in the app | ||
|
|
e2119cef14 | ios, android, desktop: restore purchases on the Support SimpleX screen | ||
|
|
140db8db88 | ios, android: hide Restore purchases on the order screen | ||
|
+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> |
||
|
|
a2e9456e6d | ios, android, desktop: use the dev badge page for testing (don't merge) | ||
|
|
ea359edb66 | ios, android, desktop: choose a badge in the app | ||
|
|
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> |
||
|
|
d50488460d |
Merge branch 'master' into f/badge-subscriptions
# Conflicts: # src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt |
||
|
|
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> |
||
|
|
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> |
||
|
|
19566b5274 | Merge branch 'master' into f/badge-subscriptions | ||
|
|
a356512645 | Merge branch 'master' into badge-in-app-checkout | ||
|
|
c998eb1fee | ios, android, desktop: use the production badge page | ||
|
|
898c6f1266 | ios, android, desktop: choose a badge on the website | ||
|
|
aaa388e570 |
desktop: add emoji picker (#7708)
* desktop: add emoji picker data and generator * desktop: emoji picker in compose field * desktop: document compose emoji picker |
||
|
|
ce7fed16b0 |
Merge branch 'badge-in-app-checkout' into f/badge-subscriptions
# Conflicts: # src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt |
||
|
|
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 |
||
|
|
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 |
||
|
|
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 |
||
|
|
7670357383 |
review: round 3 fixes
ios: a subscription refused because this Apple ID subscribed before has its own error, and Check your order says why Pay is disabled (R3-2). android: skip the subscriptions query only when Play does not support subscriptions, so a disconnected client fails the sweep or Restore rather than reading as no subscriptions (R3-1). Run: 003-badge-subscriptions-ui, review round 3 |
||
|
|
2c83d0fe45 |
review: run 003 round 2 and run 004 round 1 app fixes
ios: buy a subscription only while it is still for sale, after re-reading the Apple ID's transactions, and disable Pay once it is not, so a Check your order screen opened before another profile or device subscribed cannot buy one Apple folds into the earlier subscription (run 003 R2-1, run 004 R1-4). android: skip the subscriptions query only on a device whose Play does not support subscriptions, so Restore no longer says "Nothing to restore" when the query failed (run 003 R2-2). Run: 003-badge-subscriptions-ui round 2; 004-badge-subscriptions-review round 1 |
||
|
|
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 |
||
|
|
1b336bc23d |
docs: describe the one badge alert banner in the apps' chat-list specs
Both chat-list specs described two hand-written badge banners (expired, renewal failed); the chat list now has one banner for the current badge alert of any kind. Also moves the line links this run shifted. Run: 003-badge-subscriptions-ui, slice 13 |