Repository navigation
chore: add translations for strings added after the 3.0.0 pass - #953
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryAdds translations across 14 locales, mainly for USDT screens.
Review scope acknowledged by Checks were based on source review. iOS tests and visual checks were not run; native iOS rendering is unavailable in this Linux environment. Reviews (1) · Last reviewed commit: "chore: add translations for strings adde..." · Reviewed by Greptile |
|
Pushed 54c8e18: the new Greek strings now use the informal register (εσύ), the same text as Android. The 3.0.0 pass uses εσύ for strings both apps share; the first commit had them in εσείς. |
|
Pushed 926016f: adds the |
There was a problem hiding this comment.
No findings. Adds the translations still missing after the 3.0.0 pass to all 14 iOS locales, replaces the two German strings in nl with Dutch, and moves the English-fallback plural test to a key that is still untranslated in ar and pt. Reviewed 54c8e18, light tier: I read the strings with a script, not as a native speaker. iOS does not build here.
What I checked, and 3 candidates I ruled out
Checked mechanically on every added entry (1,863 across 14 files): each line parses as "key" = "value";; no duplicate keys; each key exists in en.lproj; {name} and %@/%d placeholders match English per key
Ran: node scripts/validate-translations.js at the head: 0 errors
CI: validate green; Run Tests and Run Integration Tests still running at review time
Ruled out
- The new fallback test asserts on a key the PR translates:
wallet__reorg_msg_beginhas noarorptentry at the head, so both still fall back to English. Theentext, plural#included, matches the three expected strings exactly. - Lost Dutch strings: the only removed localisation lines are the two German values in
nl.lproj, which come back as Dutch. - A referenced key missed by the ternary blind spot the description names: the validator now reports nothing missing at the head.
Merge confidence: 4/5, the plural test change has not run yet: CI's test jobs were still going and I cannot run XCTest on this box.
piotr-iohk
left a comment
There was a problem hiding this comment.
QA review
Scope: Reviewed the full PR diff against its merge base, at 926016fd.
1 actionable finding — resolve or provide an evidence-backed rebuttal.
The added strings in all 14 locales keep the English placeholders, <accent> markup, and plural templates. Refund confirmation substitutes amount, network, address, and shortNetwork, matching the deposit refund caller. Pubky auth copy checked in German, Dutch, French, Spanish, Italian, and Portuguese still says Paykit can see sales activity and cannot spend funds. The two Dutch QR strings that were German are now Dutch. wallet__reorg_msg_begin is still absent for Arabic and Portuguese, so the moved English plural fallback matches the lookup. Shared keys with the same English match bitkit-android#1509 at bb151cb; iOS-only Pubky USDT sharing labels have no Android string. The new German journey names labels from other controls and leaves the network page before the cross-network deposits button.
Validation: node scripts/validate-translations.js --warnings at this revision reported 0 errors and 0 warnings. On this SHA, validate, Run Tests, Run Integration Tests, and build-local passed. Run Tests uses the Bitkit scheme and does not skip LocalizationPluralTests. This review did not run XCTest or a device. Native-speaker review of the payment, security, and recovery copy remains the release check described in the PR. Correct the German journey label steps before treating that journey as the pass condition.
Suggested additional test cases
- iOS. Fresh onboarded wallet, German, USDT services and cross-network deposits configured, no USDT balance. On Receive, open the USDT tab, read the network control, open the selector, and open cross-network deposits from that page. The control reads "Netzwerk: Arbitrum One", the selector title reads "USDT-Netzwerk" with a German explanation, and the deposits screen is titled "Einzahlungen anderer Netze" with empty state "Noch keine Einzahlungen."
- iOS. Same German wallet. Open Send from the USDT wallet with no recipient. The title reads "USDT senden" and the network caption reads "Netzwerk".
- iOS. German, a cross-network deposit that can be refunded. Enter a refund address and open the confirmation. The dialog shows the amount, network, and that address, with no
{amount},{network},{address}, or{shortNetwork}left in the text. The button "Rückerstattung bestätigen" is fully visible.
Device testing: not performed in this review.
Findings
- [LOW] Point the German USDT journey at the labels those screens show — inline at
journeys/usdt-german-labels.xml:15.
|
Pushed d41f428: |
piotr-iohk
left a comment
There was a problem hiding this comment.
QA review
Scope: Follow-up of the changes since 926016fd, including the affected journey and the prior label finding, at d41f428. Inherited baseline: QA review. Locale catalogs, the plural-test fallback, payment and Pubky wording, and the Android string-catalog comparison at bb151cb are unchanged and inherited. This pass rechecked journeys/usdt-german-labels.xml against the receive, network, deposit, and send screens, and compared the same journey in bitkit-android#1509 at 502b2d1.
1 actionable finding — resolve or provide an evidence-backed rebuttal.
The earlier control-routing comment (discussion) matches the current receive control, selector title and note, and the deposits button on that list. The send step still quotes the resource text "Netzwerk"; both platforms render that caption in uppercase.
Device testing: not performed in this review. This pass did not run XCTest. CI does not execute journeys.
Findings
- [LOW] Quote the uppercased USDT send caption — inline at
journeys/usdt-german-labels.xml:19.
|
Pushed 4488114: the German USDT journey quotes the send network caption as rendered, "NETZWERK", answering @piotr-iohk's QA finding. |
piotr-iohk
left a comment
There was a problem hiding this comment.
QA review
Scope: Follow-up of the changes since d41f428, including the affected German USDT journey and the prior send-caption finding, at 4488114. Inherited baseline: QA review. Locale catalogs, the plural-test fallback, payment and Pubky wording, and the Android string-catalog comparison at bb151cb are unchanged and inherited. This pass rechecked journeys/usdt-german-labels.xml against the receive, network, deposit, and send screens, and compared the same journey in bitkit-android#1509 at 5e55fd8.
No new actionable code findings.
The send step now quotes "NETZWERK". UsdtSendView passes German usdt__network ("Netzwerk") through SendSectionView and CaptionMText, which applies .textCase(.uppercase), so that caption is rendered as "NETZWERK". The receive control still reads "Netzwerk: Arbitrum One", and the selector title, note, deposits title, and empty state still match the other quoted steps. Android Caption13Up uppercases the same German string, and the twin journey quotes the same word. The earlier caption comment (discussion) is addressed at this revision.
validate passed on this revision. Run Tests and Run Integration Tests were still running; this commit changes only the journey quote. This review did not run XCTest. CI does not execute journeys.
Suggested additional test cases
- iOS. German, a cross-network deposit that can be refunded. Enter a refund address and open the confirmation. The dialog shows the amount, network, and that address, with no
{amount},{network},{address}, or{shortNetwork}left in the text. The button "Rückerstattung bestätigen" is fully visible.
Ready for device testing.
Device testing: not performed in this review.
piotr-iohk
left a comment
There was a problem hiding this comment.
Approved at 4488114c18ffd3382ee1a30a2bed57e3fab7e6a0 following the current-head code review and Piotr’s report that the requested German and Arabic manual translation checks look good. The USB test build matches this PR head.
This covers the unfunded translation smoke-check scope; funded payment, refund and populated-history flows are not claimed as tested.
Closes #952
Twin: synonymdev/bitkit-android#1509
Refs: #938
Description
pubky_auth__share_usdt_optionaland others), whichvalidate-translations.jsdoes not detect; the validator now reports no missing translations.other__qr_error_no_data_header,other__qr_error_no_data_text) with Dutch.wallet__reorg_msg_begin, sincesettings__addr__spend_allnow has Arabic and Portuguese translations.USDT terms per locale
Register and the existing terms follow the 3.0.0 pass glossary. New USDT concepts:
Out of Scope
usdt__send*,usdt__recipient*,usdt__bridge_*, fee and network notes (25)usdt__error_*(19)usdt__deposit_refund*and other refund strings (12)profile__auth_approval_*/pubky_auth__*USDT address sharing (9)wallet__payment_request_*(7)subscriptions__accepted_payments,subscriptions__payment_methodshardware__send_onchain_only_*(2)usdt__deposit_batch("Converted batch") has no clear counterpart; each locale renders it literally.usdt__maximum_total("Max total debit") is abbreviated in most locales to fit, e.g. "Max. Abbuchung", "Cargo total máx.", "Макс. списание".usdt__intro_headline("DOLLARS? YOUR CALL") is a free rendering per locale.ptstrings mix in Brazilian forms (câmera, contato).Design
N/A — no UI changes.
Preview
N/A — translation-only change.
QA Notes
Journeys
usdt-german-labels.xmlManual Tests
Automated Checks
validate-translations.js(0 errors, 0 warnings)LocalizationPluralTests.swift