Skip to content

chore: pull 2.6.0 translations from transifex - #937

Closed
ovitrif wants to merge 4 commits into
masterfrom
chore/transifex-pull-2.6.0
Closed

ovitrif wants to merge 4 commits into
masterfrom
chore/transifex-pull-2.6.0

Conversation

@ovitrif

@ovitrif ovitrif commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Twin: synonymdev/bitkit-android#1491
Refs: #936

Description

  • Adds the translations Transifex already has for strings the app uses that the repo was missing (1,005 strings), merged key by key. No existing translation is changed or removed.
  • Restores Arabic from Transifex ar (734 strings). The February pull had cut it from about 1,240 strings to 29 because pull-translations.sh lets the near-empty Transifex arb locale overwrite ar.lproj; the script itself is unchanged here.
  • Adds the other locales' missing strings: ca 33, cs 34, de 33, el 22, es-419 24, es 24, fr 19, it 19, nl 19, pl 17, pt-BR 17, ru 10, pt 0 (Transifex has none for pt).
  • Keeps the repo's value wherever Transifex differs: about 8–11 strings per locale whose English changed after the last Transifex sync, plus 4 where the Transifex copy is worse (a broken plural keyword in Czech, a stale placeholder in French, two wording variants in Arabic).
  • Skips 2 Arabic plurals whose Transifex copy drops the {INPUT}/{OUTPUT} placeholder, and 75 keys no Swift code references.

Out of Scope

  • Pubky/Paykit and other 2.6.0 strings: Transifex has no translations for them yet. Of the 233 Pubky/Paykit strings (profile, contacts, subscriptions, Pubky auth), 229 are still missing in cs, de, es-419, fr, nl, pl, pt-BR and ru, and all 233 in ar, ca, el, es, it and pt. An AI-assisted PR will fill them; payment, security and recovery copy needs native review.
  • Strings still missing per locale, of 1,802 English keys: ar 994, ca 761, cs 602, de 607, el 906, es-419 600, es 741, fr 591, it 637, nl 597, pl 592, pt 1,750, pt-BR 591, ru 612.
  • scripts/pull-translations.sh: the arb → ar mapping that wiped Arabic.
  • Transifex source now carries the 2.6.0 English strings; translation memory filled none of the new iOS strings.

Design

N/A — no UI changes.

Preview

N/A — translation-only change.

QA Notes

Journeys

N/A — no user-visible behaviour change.

Manual Tests

N/A

Automated Checks

  • ran plutil -lint on every changed Localizable.strings — files are valid
  • ran generate-plural-localizations.swift on the localization folder — all 69 plural translations in 15 languages convert
  • ran key-level check of each added string — Transifex English matches the current English, placeholders and markup match, and the value differs from English

@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 d6ba4757, including localization lookup/fallback, plural conversion and remaining translation coverage. Feedback on this draft PR; this is a COMMENT review, not approval.

No new actionable code findings. This does not certify linguistic correctness across every imported language.

Validation performed: the 1,005 additions preserve existing resource values. All localization dictionaries parse with plutil; no added-key duplicate or placeholder/markup mismatch was detected. validate-translations.js reports 0 errors (1,902 warnings), and the plural generator successfully produces 69 native plural translations across 15 languages.

Remaining AI-assisted follow-up

Against 1,802 English source keys, missing nonempty values per locale are:

Locale Missing
ar 994
ca 761
cs 602
de 607
el 906
es-419 600
es 741
fr 591
it 637
nl 597
pl 592
pt 1,750
pt-BR 591
ru 612

The supported Pubky/Paykit flows remain the priority: every locale still misses all 62 profile__ keys, 53 contacts__ keys, 35 pubky_auth__ keys and 78 subscriptions__ keys; 54 of 55 payment-request keys are missing. These full namespace counts are broader than the release-feature subset in the PR description.

Arabic improves from 74 to 808 nonempty source keys, but still needs substantial work. Portuguese (pt) remains especially sparse at 52/1,802; Brazilian Portuguese is separate. Other shared backlogs include 71 hardware-wallet, 22 BTCPay and 19 watch-only-account keys per locale.

The raw backlog includes potentially unused English keys; establish usage before bulk translation. Preserve existing values and native plural/placeholder rules, and retain native-speaker review for payment, security and recovery wording. Arabic needs focused RTL, amount/placeholder and long-text UI checks.

The pre-existing whole-file overwrite risk and arb → ar collision in pull-translations.sh are unchanged here and should be fixed separately to protect the restored translations. Follow-up: #936. Companion: synonymdev/bitkit-android#1491.

Device/layout testing and native-speaker approval were not performed in this review. Build/unit/integration/E2E jobs are skipped on this draft; translation validation and plural generation are not a full app test pass.

@ovitrif
ovitrif marked this pull request as ready for review October 14, 2026 20:54
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 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-14T20:57:48.630386Z 98854b4 Draft marked ready
ℹ️ 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 14, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The translation changes appear safe to merge.

Summary

Restores Arabic translations and fills translation gaps across the supported languages.

  • Arabic users see translations across more of the app.
  • More app messages appear in other selected languages.
  • Spanish passphrase prompts use the correct spelling.

Acknowledged scope from ovitrif: missing Pubky/Paykit translations and the arb → ar overwrite in pull-translations.sh are explicitly deferred.

Reviews (1) · Last reviewed commit: "chore: correct spanish spelling of passp..." · Reviewed by Greptile

@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. Merges 1,005 Transifex translations into 13 iOS locales, including restoring 734 Arabic strings lost in the February pull. Reviewed 98854b4, full tier. Reasoned from the diff and CI; iOS does not build on this reviewer's Linux host.

What I checked, and 2 candidates I ruled out

Checked mechanically, every added or changed string: the file parses (Android: XML; iOS: every line is a "key" = "value"; entry), no duplicate keys, every key exists in English, and each value carries the same %1$s / {name} placeholders and the same markup tags as its English source. All 13 files come out clean against en.lproj at the head, including the 734 Arabic lines.

Ran: node scripts/validate-translations.js at 98854b4: 0 errors.
CI: validate green; Run Tests, Run Integration Tests and build-local were still running.

Ruled out

  • The 13 removed es / es-419 lines: replacements of the same keys, so no key is lost.
  • Arabic plurals dropping {INPUT} / {OUTPUT}: the PR skips those two, and neither is in the diff.

Merge confidence: 4/5, every added string passes the placeholder and markup checks and the validator; the test jobs had not finished.

@ovitrif

ovitrif commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator Author

Folded into #938, which now targets master and carries this pull plus the AI-assisted translations and the review fixes, so 2.6.0 translations land in one PR per platform. @piotr-iohk your review here found nothing actionable; the same checks apply to #938.

@ovitrif ovitrif closed this Oct 14, 2026
@ovitrif ovitrif removed this from the 3.0.0 milestone Oct 15, 2026
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.

3 participants