Skip to content

chore: add translations for strings added after the 3.0.0 pass - #1509

Merged
piotr-iohk merged 4 commits into
masterfrom
chore/translations-after-3.0.0-pass
Oct 16, 2026
Merged

piotr-iohk merged 4 commits into
masterfrom
chore/translations-after-3.0.0-pass

Conversation

@ovitrif

@ovitrif ovitrif commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #1508
Twin: synonymdev/bitkit-ios#953
Refs: #1492

Description

  • Adds AI-assisted translations for every string the app references that was still English after the 3.0.0 pass, in all 15 shipped locales. Most are the USDT screens (send, receive, cross-network deposits, refunds, activity details), which reached master just before the pass merged; the rest are payment request, subscription and Pubky auth labels added since.
  • Reuses the iOS translation where iOS has the same key with identical English.
  • New keys are inserted in English key order; existing translations and English are unchanged.
  • values-pt gets European Portuguese, as in the pass and iOS pt; values-pt-rBR gets Brazilian Portuguese.
  • Updates the 3.0.0 translations changelog entry to name the USDT screens.
  • Per locale, added strings (AI-translated + copied from iOS):
    • ar, ca, cs, de, el, es, es-419, fr, it, nl, pl, pt, pt-BR, ru: 136 each (133 + 3)
    • es-ES: 136 (136 + 0)
USDT terms per locale

Register and the existing terms follow the 3.0.0 pass glossary. New USDT concepts:

Locale deposit refund bridge network delivering
ar إيداع استرداد الجسر الشبكة جارٍ التسليم
ca dipòsit devolució pont xarxa En lliurament
cs vklad vrácení prostředků most síť Doručování
de Einzahlung Rückerstattung Bridge Netzwerk Wird zugestellt
el κατάθεση επιστροφή γέφυρα δίκτυο Σε παράδοση
es / es-419 depósito reembolso puente red Entregando
fr dépôt remboursement pont réseau En livraison
it deposito rimborso bridge rete In consegna
nl storting terugbetaling bridge netwerk Wordt geleverd
pl wpłata zwrot most sieć Dostarczanie
pt (pt-PT) depósito reembolso ponte rede A entregar
pt-BR depósito reembolso ponte rede Entregando
ru депозит возврат мост сеть Доставка

Out of Scope

  • Native review: payment, security and recovery copy needs a native speaker before release. 75 of the added keys fall in these groups:
    • 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 (11)
    • wallet__payment_request_* (6)
    • subscriptions__accepted_payments, subscriptions__payment_methods
  • Known doubts for native reviewers:
    • 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.
    • Refund buttons run longer than English in fr, de, nl and el ("Confirmer le remboursement", "Rückerstattung bestätigen"); they are full-width buttons.
    • ar: استرداد for refund also appears in the recovery phrase term (عبارة الاسترداد).
    • USDT number agreement differs by language: plural in de and ru, singular in nl and pl.
    • pt: new strings are European Portuguese, while older pt strings mix in Brazilian forms (câmera, contato).
    • de: the existing auth title uses "Sie" while the rest of German uses "du"; left unchanged.
  • Transifex: not used; these strings exist only in the repo.

Design

N/A — no UI changes.

Preview

N/A — translation-only change.

QA Notes

Journeys

  • new usdt-german-labels.xml

Manual Tests

  • Set the app language to Arabic and open the USDT intro → text reads right to left and the accent on the headline holds

Automated Checks

  • ran processDevDebugResources (all locales compile)

@ovitrif ovitrif self-assigned this Oct 15, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T23:44:06.781578Z 52019d8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable defects were found.

Summary

Adds 136 translations in each of 15 locales for USDT screens, payment requests, activity groups, subscriptions, and Pubky address sharing.

  • USDT screens show translated labels and messages in 15 locales.
  • Activity date groups have translated headings in 15 locales.
  • Paykit authorization explains USDT address sharing in 15 locales.
  • Subscription payment labels are translated where locales were missing them.
  • Payment requests show translated status and payment details in 15 locales.

Acknowledgments from ovitrif in the PR description:

  • Native review of payment, security, and recovery copy is deferred until release.
  • Literal batch wording, shortened maximum-debit labels, and freely translated headlines are intentional.
  • Longer refund buttons, Arabic refund/recovery vocabulary, and language-specific USDT agreement are known.
  • Older Portuguese wording and the existing formal German auth title are intentionally unchanged.

Reviews (1) · Last reviewed commit: "chore: add translations for strings adde..." · Reviewed by Greptile

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Regtest APK

Built from 5e55fd8 (run).

Download bitkit-dev-debug universal APK (expires in 30 days).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 52019d88d0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/src/main/res/values-ar/strings.xml
Comment thread changelog.d/next/1492.added.md
@ovitrif

ovitrif commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed bb151cb: adds the usdt-german-labels.xml journey, which checks the USDT screens in German for English fallbacks and cut-off labels. It answers the Codex journey finding. The description lists it under Journeys.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings. Adds the translations still missing after the 3.0.0 pass to all 15 Android locales, plus the changelog wording. Reviewed 52019d8, light tier: I read the strings with a script and did not judge them as a native speaker.

What I checked, and 3 candidates I ruled out

Checked mechanically on every added entry (2,040 across 15 files): each key exists in values/strings.xml; %n$d/%s and {name} placeholders match English per key; no unescaped apostrophe; no key defined twice in a file; every file parses as XML
CI: build, build-local, lint, detekt and Greptile green; local e2e still running at review time

Ruled out

  • Placeholder mismatch in wallet__payment_requests_pending_count: the script flags it only because the plural has more quantity items than English (ar 6, cs/pl/ru 4, the rest 3). Each item carries the same single %1$d.
  • Referenced strings left in English: 26 to 31 translatable keys per locale are still English-only (for example usdt__deposit_create, profile__create_success). None of them is referenced from app/src/main/java, so the description's "every string the app references" holds.
  • English or existing translations touched: the only removed line is the changelog sentence that was rewritten.

Merge confidence: 5/5, CI green and the change is copy that a test would not apply to. The native-speaker pass the description lists under Out of Scope is still the real gate.

@piotr-iohk piotr-iohk mentioned this pull request Oct 16, 2026
6 of 9 tasks

@piotr-iohk piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA review

Scope: Reviewed the full PR diff against its merge base, at bb151cbc. This is a full review; no saved assessment baseline was available.

1 actionable finding — resolve or provide an evidence-backed rebuttal.

The 136 added strings in each of 15 locales keep the English format placeholders, {name} tokens, accent tags, and apostrophe escaping. The wrong-network warning, fee-direction errors, refund confirmation, and Paykit spend restriction match the English meaning in the locales read here. The German journey added after the Codex request uses receive and send labels, and UsdtNetworkPicker, that differ from these Android screens, so that journey cannot be completed as written.

Compared with bitkit-ios#953 at 926016fd: the journey file is the same. iOS wraps the receive network list in UsdtNetworkPicker. Android’s receive list is NetworkSelector without that tag. Shared copy matches aside from Android %1$s versus iOS {amount} on the deposit limits.

The resource build for this revision completed. This review did not run the journey or a device. It is not a native-speaker pass of all 15 locales; that check remains the one the PR description leaves open.

Device testing: not performed in this review.

Suggested additional test cases

  • Android, dev build, fresh onboarded wallet with USDT and cross-network deposits configured, language Deutsch. On the Receive USDT tab, expect the title “Dollar empfangen” and the network control “Netzwerk: Arbitrum One”. Open the network list and expect the title “USDT-Netzwerk”, the German receive-network note, and the button “Einzahlungen anderer Netze” on that same page. Tap it and expect the title “Einzahlungen anderer Netze” and the empty state “Noch keine Einzahlungen.”
  • On that wallet, open the USDT wallet and Send. Expect the title “USDT senden” and the network caption “Netzwerk”.

Findings

  • [MEDIUM] Match the German USDT journey to the Android screens — inline at journeys/usdt-german-labels.xml:16.

Comment thread journeys/usdt-german-labels.xml Outdated
@ovitrif

ovitrif commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed 502b2d1: usdt-german-labels.xml now names the labels the Android receive and send screens show (network control, network list with note and deposits button, send network caption), answering @piotr-iohk's QA finding.

@ovitrif
ovitrif requested a review from piotr-iohk October 16, 2026 06:22

@piotr-iohk piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA review

Scope: Re-reviewed changes since bb151cbc, including the German USDT journey and the receive, network-list, deposits, and send paths it names, at 502b2d16. Inherited the previous QA review for the 136 added keys in all 15 locales, the high-risk copy, the changelog wording, and the de/ar/fr/es/pt/ru copies of those keys on bitkit-ios#953 at 926016fd.

No new actionable code findings.

The updated journey matches these Android screens: Receive shows “Dollar empfangen” and “Netzwerk: Arbitrum One”; the network list is titled “USDT-Netzwerk”, its note is the German receive-network note, and “Einzahlungen anderer Netze” is on that list; Send is titled “USDT senden” with the network caption “Netzwerk”. The same file on iOS at d41f428a matches that receive and send structure. iOS still wraps the receive list in UsdtNetworkPicker and Android’s list does not; the journey no longer asserts that tag. The journey mismatch from the previous review is resolved on this revision.

The dev build for this revision succeeded. This review parsed the journey XML and did not run the journey or a device. Local end-to-end jobs on this revision were still in progress. Native-speaker review of the payment and recovery copy remains the check the PR description leaves open.

Device testing: not performed in this review.

Ready for device testing.

@ovitrif

ovitrif commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed 5e55fd8: the German USDT journey quotes the send network caption as rendered, "NETZWERK", the same fix @piotr-iohk raised on the iOS twin.

@ovitrif
ovitrif requested a review from piotr-iohk October 16, 2026 06:35

@piotr-iohk piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA review

Scope: Follow-up since 502b2d16, at 5e55fd86. Inherited the previous QA review for the 136 added keys in all 15 locales, the high-risk copy, the changelog wording, and the de/ar/fr/es/pt/ru copies of those keys on bitkit-ios#953 (those locale files remain unchanged through 4488114c). This pass checked the German USDT send caption in journeys/usdt-german-labels.xml and the send screen that renders it.

No new actionable code findings.

The send step now expects the network row caption "NETZWERK". Opening Send from the USDT wallet lands on the recipient page, titled "USDT senden" through SheetTopBar, and the network row caption is usdt__network ("Netzwerk") drawn by Caption13Up, which uppercases the string before display. German, root, and English uppercase of that word is NETZWERK. The other journey lines are unchanged from 502b2d1. The journey file matches bitkit-ios#953 at 4488114c, where SendSectionView draws the same German key with CaptionMText's uppercase text case. Android locale files and changelog.d/next/1492.added.md are unchanged since 502b2d1.

This review parsed the journey XML and checked the uppercase transform locally. It did not run the journey or a device. The dev build for this revision succeeded. Native-speaker review of the payment and recovery copy remains the check the PR description leaves open.

Device testing: not performed in this review.

Ready for device testing.

@piotr-iohk piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved at 5e55fd86c599d12d3770a4649eb8f050a8f731f0 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.

@piotr-iohk
piotr-iohk merged commit ba346e9 into master Oct 16, 2026
21 checks passed
@piotr-iohk
piotr-iohk deleted the chore/translations-after-3.0.0-pass branch October 16, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: usdt screens show english in other languages

3 participants