spaced4ndy
6a7eae2751
ui: redeem code ( #7482 )
2026-09-15 14:23:13 +00:00
spaced4ndy
bac8d187ba
Merge branch 'master' into badges
2026-09-14 17:13:58 +04:00
Evgeny and Evgeny @ SimpleX Chat
5ffbe733a8
core: attach badge proofs to files over size limit ( #7455 )
...
* core: attach badge proofs to files over size limit
* types
* more types
* implement file badge proofs
* tests
* move file limits to config, add tests
* more tests, work correctly in "send as group" case
* fix races in tests
* group badge tests
* query plans
* add history support, fixes
* simplify
* refactor
* refactor
* type
* restructure schema for proofs
* rename, refactor
* refactor
* fix, refactor
* refactor
* ui
* comments
* alerts
* update nix, ios library
* updare sharing
* update simplexmq
* update text
* improve messages
* api types
* postgres schema
* fix
* test
* query plans
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-09-12 14:33:52 +01:00
spaced4ndy
db4b73962d
Merge branch 'master' into badges
2026-09-10 13:23:28 +04:00
Narasimha-sc
6e3c668fb9
ios, android, desktop: do not add loaded items of another chat to the opened chat ( #7450 )
...
* ios, android, desktop: do not add loaded items of another chat to the opened chat
apiLoadMessages could apply a loaded page to a chat it was not loaded for,
mixing messages of two chats in one list:
- the chat id was not checked at all for .last pagination, and the loading
coroutine is not cancelled when the chat is closed (PreloadItems wraps it
into NonCancellable, apiFindMessages runs in a scope of its own), so a .last
page loaded for the previously opened chat was appended to the items of the
chat opened while it was loading;
- for the other paginations the chat id was checked before the items were
loaded, but they are applied on the main thread after a dispatch, so the chat
could be switched in between.
Check the chat id (and the remote host id in kotlin) right before the items are
applied, in every pagination except .initial and opening around item that set
chat id themselves. Empty chatItems remain allowed for .last that is used for
searching.
* android, desktop: test that loaded items of another chat are not added to the opened chat
Reproduces the bug deterministically, without depending on the timing of the
race: processLoadedChat is called with a page loaded for another chat while the
opened chat has its own items.
Without the fix the items of the two chats end up in one list:
lastPageLoadedForAnotherChatIsNotAddedToOpenedChat
expected:<[101, 102]> but was:<[101, 102, 201, 202]>
beforePageLoadedForAnotherChatIsNotAddedToOpenedChat
expected:<[101, 102]> but was:<[201, 202, 101, 102]>
aroundPageLoadedForAnotherChatIsNotAddedToOpenedChat
expected:<[101, 102]> but was:<[101, 102, 201, 202]>
2026-09-05 15:28:00 +01:00
spaced4ndy
c623f4284c
Merge branch 'master' into badges
2026-09-02 13:53:35 +04:00
Evgeny and Evgeny @ SimpleX Chat
735662902f
core, ui: make badge expiration non-optional ( #7445 )
...
* core, ui: make badge expiration non-optional
* update
* update bot types
* fix to use non-optional badge expiry
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-09-02 08:14:09 +01:00
Evgeny and Evgeny @ SimpleX Chat
f99c474ca6
core: send badge ZK-proofs to XFTP servers, add file expiry time ( #7430 )
...
* core: send badge ZK-proofs to XFTP servers
* update simplexmq, use keys and header from simplexmq
* core: add file expiry time
* refactor
* remove posix module
* rename migrations
* bot api
* update UI
* import
* show item from loaded information
* ios: update core library
* text
* send entitlements in handshake
* simplexmq
* query plans
* update simplexmq
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-09-01 23:16:15 +01:00
Evgeny Poberezkin
ed2cf1d98f
Merge branch 'master' into badges
2026-08-29 19:14:04 +01:00
Evgeny Poberezkin
070cb366b0
Merge branch 'stable'
2026-08-29 19:13:15 +01:00
Evgeny Poberezkin
2961fecc35
ui: update strings
2026-08-29 19:12:40 +01:00
Evgeny Poberezkin
498d7da837
Merge branch 'stable'
2026-08-29 18:59:49 +01:00
Evgeny and Evgeny @ SimpleX Chat
d1c6a5717a
ui: show countdown until SimpleX domains sale launch ( #7434 )
...
* ui: show countdown until SimpleX domains sale launch
* list
* ios: update
* update kotlin, ios countdown
* kotlin countdown
* fix formats
* padding
* update
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-29 18:59:12 +01:00
Evgeny Poberezkin
78332d0c73
Merge branch 'master' into badges
2026-08-27 07:59:57 +01:00
Evgeny and Evgeny @ SimpleX Chat
10adabf5f7
ui: show role (if exists) and remove "new" in open channel/group alerts ( #7417 )
...
* ui: show role (if exists) and remove "new" in open channel/group alerts
* restore removed strings
* info color
* docs
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-26 11:43:36 +01:00
Evgeny and Evgeny @ SimpleX Chat
17cdef1692
core: include channel link and name when forwarding messages ( #7409 )
...
* core: include channel link and name when forwarding messages
* wip
* simplify
* add member ID
* refactor
* refactor
* refactor
* update api types
* store forward source group type
* rename
* api types
* simpler layout
* layout, translations
* refactor ios
* public
* simpler
* refactor kotlin
* padding
* padding
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-24 21:36:57 +01:00
Evgeny Poberezkin
02106833fb
Merge branch 'stable'
2026-08-20 12:00:43 +01:00
Evgeny and Evgeny @ SimpleX Chat
0ec028a668
ui: update post link in whats new ( #7400 )
...
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-20 11:59:52 +01:00
ecb008b792
core, ui: auto-accept group invitations per user profile ( #7377 )
...
* core, ui: auto-accept group invitations per user profile
Add a per-profile toggle for auto-accepting group invitations, and regroup it
with the existing contact-requests setting under a single Auto-accept section
in Privacy & Security, relabelled "Contact requests in groups".
The join is fully async. processGroupInvitation already had an async accept
path, used when the invitation matches a group link the user opened:
prepareAgentJoin + createMemberConnectionAsync + joinAgentConnectionAsync,
with the outcome reported later against the CFJoinConn command id. Auto-accept
takes that same path instead of going through APIJoinGroup, so it works while
the app is closed and never blocks message processing.
An auto-accepted invitation still records a CIRcvGroupInvitation item in the
chat with the inviting contact, so there is a record of who added the user to
which group.
Two details worth noting for review:
hostContact is reported to clients only for group links. Clients respond to it
by replacing the transient host connection view with the group and removing
that chat - correct for a group link, where the contact is a placeholder, but
wrong for a plain invitation, where it is a real contact.
A resent invitation returns the existing group, because createGroupInvitation
is idempotent on inv_queue_info. The join therefore only runs while the
membership is still GSMemInvited, so a resend cannot open a second connection.
* booldef
* order
* refactor
* update translation key
* query plans
* ios: export translations
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2026-08-19 00:10:54 +01:00
Evgeny
083fb0a705
ui: store country ( #7389 )
...
* ui: store country
* ios: 7.0.1 build 348
* update version
* android: update versions
* remove UK
2026-08-18 12:24:36 +01:00
spaced4ndy
9c845222e4
ui: badges app store integration ( #7374 )
2026-08-17 16:12:09 +00:00
Evgeny Poberezkin
491f244fdc
ios: fix store
2026-08-17 12:14:13 +01:00
Evgeny and Evgeny @ SimpleX Chat
a0c72200e8
ios: add CF page ( #7369 )
...
* ios: add cf page
* add cf images
* reduce image count
* different design
* button
* simplify
* texts
* layout
* update texts
* zoom
* add to settings
* update text
* more text
* settings
* remove translation
* only US
* update
* update link
* update
* padding
* update
* update
* safe area
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-17 12:12:12 +01:00
spaced4ndy
cd670548b9
ui: badges WIP views ( #7321 )
2026-08-14 07:36:02 +00:00
Narasimha-sc and Evgeny
486c2abf26
ui: connect when a SimpleX link is pasted as a markdown hyperlink ( #7348 )
...
* ui: connect when a SimpleX link is pasted as a markdown hyperlink
* remove comments
Co-authored-by: Evgeny <evgeny@poberezkin.com >
---------
Co-authored-by: Evgeny <evgeny@poberezkin.com >
2026-08-12 14:54:45 +01:00
Evgeny and Evgeny @ SimpleX Chat
ec6e975001
ios: update whats new ( #7359 )
...
* ios: update whats new
* custom view
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-08-10 13:00:38 +01:00
Narasimha-sc
bd298a1d4a
ios, android, desktop: fix draft in support chat appearing in group chat ( #7309 )
...
Group chat and its support chats have the same chat id, so a draft saved
in "chat with admins" was restored in the group chat and shown as its draft
in the chat list. Include chat scope in the draft chat id.
Also save the draft when support chat is closed without changing chat id -
in that case KeyChangeEffect that saves drafts doesn't run.
2026-07-28 13:55:49 +01:00
spaced4ndy
7c931d08ea
ui: show "connect to name" button starting with 5 characters; ios: show button in New chat view search ( #7318 )
...
* ui: show "connect to name" button starting with 5 characters
* show button in new chat view search
2026-07-28 12:03:42 +01:00
spaced4ndy
b414d7579a
ios: fix connection dialogue not shown if app is opened via link before onboarding ( #7301 )
...
* ios: fix connection dialogue not shown if app is opened via link before onboarding
* wip
* debug
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* comment
2026-07-27 18:00:32 +01:00
Evgeny Poberezkin
09254c5a53
ui: update whats new
2026-07-25 16:14:22 +01:00
spaced4ndy
5c196d0e2d
ui: rename "how to register name" button ( #7300 )
2026-07-24 15:25:52 +00:00
spaced4ndy
08711dbc33
ios: fix app crashing after onboarding ( #7299 )
2026-07-24 14:47:16 +00:00
spaced4ndy
3755dc43be
ios: fix receipts toggles in user settings ( #7298 )
2026-07-24 14:33:54 +00:00
spaced4ndy
53daafa675
ios: put "connect to name" button below search in top bar layout ( #7297 )
2026-07-24 14:19:52 +00:00
Narasimha-sc
9586c97439
ui: show XFTP servers used for a file in message info ( #7088 )
...
Surface the XFTP servers that hosted a file's chunks in the message info
screen (Android, desktop, iOS), so a user can see which servers they are
downloading from (or, for sent files, uploading to) whenever they want to know.
APIGetChatItemInfo now returns fileXftpServers, derived from the stored file
description (private snd descr for sent items, rcv descr for received items);
extraction is best-effort and never fails the call.
2026-07-22 08:28:54 +01:00
sh and Evgeny Poberezkin
2ea5940e81
core, ui: per-server roles for self-hosted servers ( #7254 )
...
* core, ui: plan per-server roles for self-hosted servers
* core: add per-server roles field to UserServer
* core: add nullable role columns to protocol_servers
* core: persist per-server roles
* core: validate server coverage using per-server roles
* test: cover per-server roles resolution and coverage
* multiplatform: per-server role toggles for self-hosted servers
* ios: per-server role toggles for self-hosted servers
* core: per-server role overrides with per-role defaults
* test: cover three-state per-server role resolution
* fix: derive Eq for ServerRolesOverride
* multiplatform: three-state role dropdowns on saved servers
* ios: three-state role pickers on saved servers
* test: per-server roles independent across two servers
* test: enable names role in name-resolution tests
* style: trim comments in per-server roles code
* chore: rename server_roles migration to 20260716 (last)
* core: per-server roles override operator roles, inherit when unset
* multiplatform: per-server role default inherits from operator
* ios: per-server role default inherits from operator
* refactor(servers): tidy per-server roles per review
- dedup no-operator default into ServerRoles.noOperatorDefault (Kotlin/Swift)
- iOS: move roles-section control flow to the call site via a named gate,
and parse the server address once instead of up to three times
- Kotlin: collapse redundant derivedState; revert defaultOn->default rename
for cross-platform parity
- drop unused Hashable conformance on Swift ServerRoles
- add agentServerCfgs test for names inheritance from an operator
- remove no-op enableNamesRole calls from dormant DirectoryTests
- fix ChatClient import ordering
* chore(migration): date server_roles migration 20260720
* only show roles when server is enabled, move section above QR code
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2026-07-20 16:35:13 +01:00
Evgeny and Evgeny @ SimpleX Chat
d95f924b73
ui: improve profile descriptions ( #7262 )
...
* ui: improve profile descriptions
* update
* fix
* improve layout
* fix alert
* more improvements
* recizable iOS field
* change max lines
* fixes
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-07-18 08:13:05 +01:00
spaced4ndy
d60da754dc
ui: what's new in 7.0 ( #7265 )
2026-07-17 18:36:45 +04:00
spaced4ndy
73b9127360
ui: add search to subscribers list view; android, desktop: lazy list ( #7264 )
...
* ui: add search to subscribers list view; android, desktop: lazy list
* wip
2026-07-16 12:17:38 +01:00
6375457685
core: add optional profile description ( #7256 )
...
* core: add optional profile description
* bot types
* kotlin ui
* query plans
* postgres schema
* fix ui
* fix UI
* refactor
* description in business chats
* share address
* sign address card when shared by owner
* from owner string
* remove unused string
* refactor
* fix
* ProfileDescriptionText
* refactor modals
* ios ui
* nix config
* correction
Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>
2026-07-15 17:54:21 +01:00
spaced4ndy
0fef34914d
core, ui: security code verification in channels (verify member key) ( #7255 )
2026-07-15 10:46:31 +00:00
spaced4ndy
e53508ecca
core, ui: make msgVerified optional ( #7247 )
2026-07-13 21:20:36 +00:00
spaced4ndy
d7af648d2a
ui: hide message signing preference, etc. ( #7246 )
2026-07-13 13:06:25 +00:00
Evgeny and Evgeny @ SimpleX Chat
414f4b6ce1
core, ui: show domain for business chat in CLI, test, improve UI ( #7235 )
...
* core: preserve domain during group handshake
* query plans
* ui changes
* remove unnecessary change
* improve ui
* name UI
* card layout
* fix footers, entry field
* error icon
* fix height
* fix layout
* fix layout
* remove unused string
* focus name field
* refactor, fix
* improve button
* refactor
* fix ios race
* core: add domain to channel /i output
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-07-12 09:41:05 +01:00
spaced4ndy
51ad366e8b
core, ui: message signing ( #7115 )
2026-07-10 19:55:10 +00:00
+53
ee51168374
core, ui: improve name resolution ( #7209 )
...
* ios: debug name resolution
* remove log
* ui: translations (#7210 )
* Translated using Weblate (French)
Currently translated at 84.1% (2390 of 2840 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 98.4% (2795 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/it/
* Translated using Weblate (Spanish)
Currently translated at 98.2% (2790 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Dutch)
Currently translated at 83.9% (2385 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/nl/
* Translated using Weblate (Hindi)
Currently translated at 9.6% (275 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hi/
* Translated using Weblate (Czech)
Currently translated at 95.4% (2710 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
* Translated using Weblate (Ukrainian)
Currently translated at 87.2% (2477 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Finnish)
Currently translated at 50.3% (1430 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/fi/
* Translated using Weblate (Korean)
Currently translated at 51.6% (1466 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ko/
* Translated using Weblate (Polish)
Currently translated at 88.7% (2520 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pl/
* Translated using Weblate (Portuguese)
Currently translated at 33.0% (939 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/pt/
* Translated using Weblate (Hebrew)
Currently translated at 72.6% (2062 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/he/
* Translated using Weblate (Thai)
Currently translated at 43.5% (1236 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/th/
* Translated using Weblate (Thai)
Currently translated at 43.5% (1236 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/th/
* Translated using Weblate (Bulgarian)
Currently translated at 87.2% (2479 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/bg/
* Translated using Weblate (Turkish)
Currently translated at 86.0% (2445 of 2840 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/
* Translated using Weblate (German)
Currently translated at 100.0% (2843 of 2843 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2843 of 2843 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 98.5% (2803 of 2843 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% (2843 of 2843 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/hu/
* Translated using Weblate (Arabic)
Currently translated at 100.0% (2843 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
* Translated using Weblate (Vietnamese)
Currently translated at 84.2% (2396 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
* Translated using Weblate (Italian)
Currently translated at 100.0% (2439 of 2439 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% (2842 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Vietnamese)
Currently translated at 85.5% (2433 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
* Translated using Weblate (German)
Currently translated at 100.0% (2843 of 2843 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/de/
* Translated using Weblate (Hindi)
Currently translated at 9.8% (281 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hi/
* Translated using Weblate (Indonesian)
Currently translated at 89.5% (2547 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 88.1% (2149 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/zh_Hans/
* Translated using Weblate (Russian)
Currently translated at 97.4% (2771 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
* Translated using Weblate (French)
Currently translated at 78.9% (1926 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/fr/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 89.3% (2180 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/zh_Hans/
* Translated using Weblate (Spanish)
Currently translated at 98.1% (2789 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Japanese)
Currently translated at 49.5% (1209 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ja/
* Translated using Weblate (Hindi)
Currently translated at 10.2% (292 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hi/
* Translated using Weblate (Czech)
Currently translated at 95.5% (2717 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/cs/
* Translated using Weblate (Romanian)
Currently translated at 88.3% (2511 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ro/
* Translated using Weblate (Vietnamese)
Currently translated at 86.1% (2449 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
* Translated using Weblate (Indonesian)
Currently translated at 94.3% (2683 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
* Translated using Weblate (Danish)
Currently translated at 30.7% (875 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/da/
* Translated using Weblate (Spanish)
Currently translated at 98.8% (2411 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Ukrainian)
Currently translated at 89.9% (2557 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 87.8% (2143 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/uk/
* Translated using Weblate (Vietnamese)
Currently translated at 87.4% (2485 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
* Translated using Weblate (Vietnamese)
Currently translated at 87.4% (2485 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/vi/
* Translated using Weblate (Ukrainian)
Currently translated at 90.0% (2559 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 93.7% (2664 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 93.7% (2664 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 93.7% (2664 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 88.0% (2148 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/uk/
* Translated using Weblate (Greek)
Currently translated at 1.0% (25 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/el/
* Translated using Weblate (Spanish)
Currently translated at 99.7% (2837 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/es/
* Translated using Weblate (Spanish)
Currently translated at 99.7% (2432 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 89.4% (2182 of 2439 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 47.0% (1148 of 2439 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 99.7% (2433 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Turkish)
Currently translated at 88.4% (2514 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/
* Translated using Weblate (Indonesian)
Currently translated at 94.4% (2686 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
* Translated using Weblate (Russian)
Currently translated at 97.5% (2774 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
* Translated using Weblate (Russian)
Currently translated at 97.6% (2382 of 2439 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 80.8% (1972 of 2439 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (2439 of 2439 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 98.7% (2808 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hant/
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (2439 of 2439 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% (2843 of 2843 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% (2843 of 2843 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% (2439 of 2439 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% (2439 of 2439 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Indonesian)
Currently translated at 94.7% (2694 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
* Update translation files
Updated by "Remove blank strings" hook in Weblate.
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/
* Translated using Weblate (German)
Currently translated at 100.0% (2439 of 2439 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 85.4% (2084 of 2439 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (2843 of 2843 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/es/
* Translated using Weblate (Japanese)
Currently translated at 99.0% (2815 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ja/
* Translated using Weblate (Indonesian)
Currently translated at 95.4% (2713 of 2843 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/id/
* Translated using Weblate (German)
Currently translated at 100.0% (2439 of 2439 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 87.5% (2136 of 2439 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 87.5% (2136 of 2439 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 88.0% (2147 of 2439 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 89.2% (2178 of 2439 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% (2439 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/it/
* Translated using Weblate (German)
Currently translated at 100.0% (2866 of 2866 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% (2439 of 2439 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% (2439 of 2439 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 94.9% (2316 of 2439 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% (2866 of 2866 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 99.9% (2865 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/zh_Hans/
* Translated using Weblate (Japanese)
Currently translated at 49.9% (1219 of 2439 strings)
Translation: SimpleX Chat/SimpleX Chat iOS
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/ios/ja/
* Translated using Weblate (Arabic)
Currently translated at 100.0% (2866 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ar/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (2866 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/hu/
* Translated using Weblate (Russian)
Currently translated at 97.9% (2807 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
* Translated using Weblate (Russian)
Currently translated at 97.9% (2807 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
* Translated using Weblate (Russian)
Currently translated at 97.9% (2807 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/ru/
* Translated using Weblate (Turkish)
Currently translated at 98.7% (2829 of 2866 strings)
Translation: SimpleX Chat/SimpleX Chat Android
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/android/tr/
* process localizations
* fix android translations
* ui: fix translation errors and revert Turkish vandalism (PR #7206 review)
Corrects issues found reviewing the incoming translations across 20 languages.
CRITICAL:
- Turkish: revert 8 vandalized strings to faithful translations — the
"Open external link?" security dialog, app-upgrade prompt, relay-status
labels, and the "Privacy: for owners and subscribers" line had been
replaced with joke/offensive text.
- Ukrainian: fix a files/media privacy toggle that showed an unrelated
"chat with admins" string.
HIGH/MEDIUM: badge voice/tense inversions (uk, vi, ro, de), meaning
mistranslations (fr, es, id, vi, zh-Hans, ja, nl, ru), the Danish relay-bar
"/" separator loss, re-added role-name quotes (de, es, it, ar, ru, zh-Hans,
zh-Hant), restored dropped \n line breaks and sentences (id), and typos
(hu, es, uk, ro, cs, bg).
Placeholders, XML well-formedness, and .strings validity verified intact.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* ui: revert residual Turkish vandalism (Owner→Emperor)
Second-pass review caught vandalized strings missed in the first fix round:
- member_info_section_title_owner: "İmparator" (Emperor) → "Sahip" (Owner)
- channel_members_section_owners: "İmparatorlar ve katkıda bulunanlar"
(Emperors and contributors) → "Sahipler ve katkıda bulunanlar"
- migrate: "Göç" (emigration) → "Taşı" (correct verb for the Migrate action)
Same vandal (mehmetksm@tuta.io ) as the strings reverted in 9b5486bfa .
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* ui: translate romanized Hindi connect-flow strings
Second-pass reconciliation caught 6 Hindi strings left as broken "Hinglish"
(English words in Devanagari / untranslated) that were missed in the first
fix round — now proper Hindi:
- connect_via_contact_link, connect_via_invitation_link,
connect_use_current_profile, connect_use_new_incognito_profile,
connect_use_incognito_profile, profile_will_be_sent_to_contact_sending_link
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com >
Co-authored-by: Deleted User <noreply+6980@weblate.org >
Co-authored-by: No name <usir.alerts@onionmail.org >
Co-authored-by: John m <jvanmanen@gmail.com >
Co-authored-by: Deleted User <noreply+59251@weblate.org >
Co-authored-by: zenobit <zenobit@disroot.org >
Co-authored-by: Maksym Lukashenko <livelmaxim@gmail.com >
Co-authored-by: petri <pkajander@gmail.com >
Co-authored-by: okmepro <ix28@proton.me >
Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com >
Co-authored-by: Paulo Alexandre Pereira <github@paapereira.com >
Co-authored-by: Roee Hershberg <roihershberg@protonmail.com >
Co-authored-by: Anonymous <noreply@weblate.org >
Co-authored-by: Titapa (PunPun) Chaiyakiturajai <titapapunne@gmail.com >
Co-authored-by: elgratea <weblate@fastmail.com >
Co-authored-by: xe1st <dnzkckali@gmail.com >
Co-authored-by: mlanp <github@lang.xyz >
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: summoner001 <summoner@disroot.org >
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org >
Co-authored-by: Thu Pham-Anh <satoneken@gmail.com >
Co-authored-by: SquiralDot...🖤 <siaspride@gmail.com >
Co-authored-by: andiasriefail <andiasriefail2004@gmail.com >
Co-authored-by: Frank Yang <yangchuanxu@live.cn >
Co-authored-by: Artemchik Dornikov <artemchikdornikov@gmail.com >
Co-authored-by: cedev-1 <cedevserver@gmail.com >
Co-authored-by: cllih <a1482007736@163.com >
Co-authored-by: Aliet Expósito García <disturbed.prayer@gmail.com >
Co-authored-by: koreirozzu <trueworldfacts+asjfsajfhajfh@proton.me >
Co-authored-by: Bharadwaj <saibharadwajreddy09@gmail.com >
Co-authored-by: slrslr <adm@prnet.info >
Co-authored-by: Filip Ionut <iiiff222@gmail.com >
Co-authored-by: Nguyễn Xuân Cảm <nguyenxuancamit@gmail.com >
Co-authored-by: Dimas Alfa Pratama <world.russia.soviet.russia@gmail.com >
Co-authored-by: Mathias Pedersen <mathias.k.pedersen@hotmail.com >
Co-authored-by: kudebug <joel.hazas@outlook.es >
Co-authored-by: rider of the storm <pukhnobg@gmail.com >
Co-authored-by: Nguyen Thanh Long <longnt121004@gmail.com >
Co-authored-by: Fill Vj <screen4fill@gmail.com >
Co-authored-by: Stonepilot <lojide7802@httpsu.com >
Co-authored-by: Bugatsinho <bugatsinho@protonmail.com >
Co-authored-by: Darío Hereñú <magallania@gmail.com >
Co-authored-by: Loping151 <wangkailing151@gmail.com >
Co-authored-by: pahiy <ayazdoruck@gmail.com >
Co-authored-by: M Yusup Hamdani <dani.webdev@gmail.com >
Co-authored-by: lazizkhalilov <ssilkavtaganrog@icloud.com >
Co-authored-by: Игорь Линчевский <insrtnqme@gmail.com >
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca >
Co-authored-by: Irnovi Albaweny <huiralb@gmail.com >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: SHE LINGZHAO <rottesya@gmail.com >
Co-authored-by: Rafi <rafimuhmad90@protonmail.com >
Co-authored-by: ryokky3 <ryoxnasan@outlook.jp >
Co-authored-by: Auri <serg_sarov@mail.ru >
Co-authored-by: kkpanfilov <kkpanfilov@outlook.com >
Co-authored-by: echoloji <mehmetksm@tuta.io >
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* website: translations (#7207 )
* Translated using Weblate (French)
Currently translated at 75.3% (281 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/
* Translated using Weblate (French)
Currently translated at 75.3% (281 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/
* Translated using Weblate (Czech)
Currently translated at 100.0% (373 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/cs/
* Translated using Weblate (Indonesian)
Currently translated at 94.1% (351 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/id/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (373 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/es/
* Translated using Weblate (French)
Currently translated at 75.3% (281 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/
* Translated using Weblate (French)
Currently translated at 75.3% (281 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/
* Translated using Weblate (Czech)
Currently translated at 100.0% (373 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/cs/
* Translated using Weblate (Indonesian)
Currently translated at 94.1% (351 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/id/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (373 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/es/
* Translated using Weblate (Japanese)
Currently translated at 79.6% (297 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/ja/
* Translated using Weblate (German)
Currently translated at 100.0% (373 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/de/
* Translated using Weblate (Russian)
Currently translated at 87.9% (328 of 373 strings)
Translation: SimpleX Chat/SimpleX Chat website
Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/ru/
* website: fix mistranslated security/feature terms (PR #7207 review)
- Japanese: "Repudiation" (deniability) was rendered as 否認防止
(non-repudiation, the opposite property) — corrected to 否認可能性;
"2-factor key exchange" was 2ファクタ認証 (authentication) — corrected
to 2ファクタ鍵交換.
- French: message padding ("Briar pads messages to ... bytes") was
translated as a size limit ("limite la taille") — corrected to padding
("complète les messages à une taille arrondie à ...").
- Simplified Chinese: the "Community Credits" feature name was rendered as
社区声望 (community reputation) — restored to "Community Credits".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: N4TH4NOT <n4th4not@gmail.com >
Co-authored-by: cedev-1 <cedevserver@gmail.com >
Co-authored-by: slrslr <adm@prnet.info >
Co-authored-by: huzaifah <huzaifahasif3@gmail.com >
Co-authored-by: kudebug <joel.hazas@outlook.es >
Co-authored-by: ryokky3 <ryoxnasan@outlook.jp >
Co-authored-by: mlanp <github@lang.xyz >
Co-authored-by: Auri <serg_sarov@mail.ru >
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* dont change font for unverified names
* better verified names view
* better layout for verified status
* shift icon
* move icon
* set domain on business chat
* change padding
* fix, test
* add params to log
* add domain to the usual group
* add domain to BusinessChatInfo
* bot types
* remove comment
* remove comment
Co-authored-by: Evgeny <evgeny@poberezkin.com >
* fix query
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com >
Co-authored-by: Deleted User <noreply+6980@weblate.org >
Co-authored-by: No name <usir.alerts@onionmail.org >
Co-authored-by: John m <jvanmanen@gmail.com >
Co-authored-by: Deleted User <noreply+59251@weblate.org >
Co-authored-by: zenobit <zenobit@disroot.org >
Co-authored-by: Maksym Lukashenko <livelmaxim@gmail.com >
Co-authored-by: petri <pkajander@gmail.com >
Co-authored-by: okmepro <ix28@proton.me >
Co-authored-by: B.O.S.S <BxOxSxS@protonmail.com >
Co-authored-by: Paulo Alexandre Pereira <github@paapereira.com >
Co-authored-by: Roee Hershberg <roihershberg@protonmail.com >
Co-authored-by: Anonymous <noreply@weblate.org >
Co-authored-by: Titapa (PunPun) Chaiyakiturajai <titapapunne@gmail.com >
Co-authored-by: elgratea <weblate@fastmail.com >
Co-authored-by: xe1st <dnzkckali@gmail.com >
Co-authored-by: mlanp <github@lang.xyz >
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: summoner001 <summoner@disroot.org >
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org >
Co-authored-by: Thu Pham-Anh <satoneken@gmail.com >
Co-authored-by: SquiralDot...🖤 <siaspride@gmail.com >
Co-authored-by: andiasriefail <andiasriefail2004@gmail.com >
Co-authored-by: Frank Yang <yangchuanxu@live.cn >
Co-authored-by: Artemchik Dornikov <artemchikdornikov@gmail.com >
Co-authored-by: cedev-1 <cedevserver@gmail.com >
Co-authored-by: cllih <a1482007736@163.com >
Co-authored-by: Aliet Expósito García <disturbed.prayer@gmail.com >
Co-authored-by: koreirozzu <trueworldfacts+asjfsajfhajfh@proton.me >
Co-authored-by: Bharadwaj <saibharadwajreddy09@gmail.com >
Co-authored-by: slrslr <adm@prnet.info >
Co-authored-by: Filip Ionut <iiiff222@gmail.com >
Co-authored-by: Nguyễn Xuân Cảm <nguyenxuancamit@gmail.com >
Co-authored-by: Dimas Alfa Pratama <world.russia.soviet.russia@gmail.com >
Co-authored-by: Mathias Pedersen <mathias.k.pedersen@hotmail.com >
Co-authored-by: kudebug <joel.hazas@outlook.es >
Co-authored-by: rider of the storm <pukhnobg@gmail.com >
Co-authored-by: Nguyen Thanh Long <longnt121004@gmail.com >
Co-authored-by: Fill Vj <screen4fill@gmail.com >
Co-authored-by: Stonepilot <lojide7802@httpsu.com >
Co-authored-by: Bugatsinho <bugatsinho@protonmail.com >
Co-authored-by: Darío Hereñú <magallania@gmail.com >
Co-authored-by: Loping151 <wangkailing151@gmail.com >
Co-authored-by: pahiy <ayazdoruck@gmail.com >
Co-authored-by: M Yusup Hamdani <dani.webdev@gmail.com >
Co-authored-by: lazizkhalilov <ssilkavtaganrog@icloud.com >
Co-authored-by: Игорь Линчевский <insrtnqme@gmail.com >
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca >
Co-authored-by: Irnovi Albaweny <huiralb@gmail.com >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: SHE LINGZHAO <rottesya@gmail.com >
Co-authored-by: Rafi <rafimuhmad90@protonmail.com >
Co-authored-by: ryokky3 <ryoxnasan@outlook.jp >
Co-authored-by: Auri <serg_sarov@mail.ru >
Co-authored-by: kkpanfilov <kkpanfilov@outlook.com >
Co-authored-by: echoloji <mehmetksm@tuta.io >
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: N4TH4NOT <n4th4not@gmail.com >
Co-authored-by: huzaifah <huzaifahasif3@gmail.com >
2026-07-10 20:53:14 +01:00
Narasimha-sc
41379907f2
ios: show spinner for database operations moved to sub-screen ( #7228 )
...
The settings reorganization (#7005 ) moved Export, Import and Start chat
into the pushed "Database passphrase & export" sub-screen, but the
progress spinner stayed as an overlay on the parent screen, hidden
behind it. Add the same overlay to the sub-screen so the spinner is
visible during these operations, matching DatabaseEncryptionView.
2026-07-09 23:36:32 +01:00
spaced4ndy
00f8adb461
core: don't create group-only feature items in channels ( #7220 )
2026-07-09 09:36:39 +00:00
Narasimha-sc
63eaf260a2
ui: fix SEInvalidMention when @mention is edited in place ( #7018 )
...
* android, desktop, ios: drop stale mention map entry when @name is edited in place
The compose-state mentions map was only pruned when fewer @name tokens were
parsed from the text than were in the map. Editing an inserted @Name token in
place (without re-picking from the picker) keeps the count at 1 while the
parsed name no longer matches the stored key, so the stale entry was sent and
the core rejected it with SEInvalidMention. Pruning now triggers whenever any
map key is absent from the parsed mention names; the modified token is then
sent as an unresolved formatted @ token.
* android, desktop, ios: filter mentions at send time so in-place edits round-trip
Treat the compose-state mentions map as a sticky cache of name -> memberId
bindings recorded by the picker. The previous removeUnusedMentions pruned
it on every text change, which dropped the binding the instant a letter was
removed from an inserted @name token. Now the map is no longer mutated by
text edits: memberMentions, the picker max-reached check, and the
mentionMemberName disambiguator all filter against the names currently
parsed from the message, so deleting and retyping the original characters
re-resolves the original member, and the SEInvalidMention error from an
in-place edit no longer occurs.
* android, desktop, ios: cap memberMentions at MAX so stale cache entries cannot overflow the server limit
With the sticky cache, manually typing an @name that happens to match a
stale cache entry could push memberMentions above maxSndMentions and have
the core reject the send with SEInvalidMention. The getter now walks
parsedMessage in text order and stops at MAX_NUMBER_OF_MENTIONS; later
@-tokens past the cap become visual-only formatting and the message still
goes through. Also hoists the iOS activeMentions computation out of the
per-row ForEach so it runs once per picker open rather than once per row.
* android, desktop, ios: simplify mention restoration to minimal surgical diff
Reverts the unnecessary mentionMemberName changes (the original
mentions.containsKey behaviour preserves bindings better than the
parsed-only variant), switches the picker checks to memberMentions.size
(no helper variable needed since the getter already caps at MAX), and
collapses the Kotlin memberMentions getter into a flat chain.
* android, desktop, ios: gate picker mention-id and max-reached banner by memberMentions
With the sticky cache, the picker's "currently bound member" highlight
and the showMaxReachedBox banner-suppression clause read mentions[name]
directly, so a stale cache entry made one row clickable (as a no-op) at
the MAX limit and could suppress the banner when the user is actually
adding a new mention. Both now gate the lookup by membership in the
capped memberMentions, restoring the pre-fix UX where at MAX all rows
are disabled and the banner shows when adding past the limit.
2026-07-06 14:45:45 +01:00
Evgeny and Evgeny @ SimpleX Chat
6150b35a2f
core, ui: resolve untyped domains ( #7198 )
...
* core: resolve untyped domains
* CPError
* only add domain when it has link of correct type
* resolve first
* handle errors
* remove CPError
* update UI types
* remove unused name
Co-authored-by: Evgeny <evgeny@poberezkin.com >
* refactor connection plan
* kotlin: show domain and alternative chat, haskell tests for dual domains
* view/tests
* update kotlin
* dual domains accounting for business chats
* refactor, fix
* fix kotlin
* remove comment
* search
* add resolve mode
* local resolution
* refactor, bot types
* search both contact and channel by name
* fix
* fix searching business chats by name
* fix ui
* ios
* fix ios
* fix icon
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com >
2026-07-06 08:50:03 +01:00