Skip to content

chore(strings): translate 150 missing keys across 12 locales#530

Merged
rainxchzed merged 1 commit into
mainfrom
chore/translate-missing-strings
May 6, 2026
Merged

chore(strings): translate 150 missing keys across 12 locales#530
rainxchzed merged 1 commit into
mainfrom
chore/translate-missing-strings

Conversation

@rainxchzed
Copy link
Copy Markdown
Member

@rainxchzed rainxchzed commented May 6, 2026

Summary

Audited string-key parity between the default `values/strings.xml` and every non-English locale. Found 150 keys present in EN but missing from every other locale — backlog accumulated from the past several feature ships (APK Inspect, Announcements, Sectioned Apps screen, Dhizuku, Add from starred, Installer attribution, etc.).

This PR fills the gap. 150 entries × 12 locales = 1818 new lines.

Validation

  • ✅ Per-locale gap re-checked post-PR: every locale now matches EN's 863 keys exactly.
  • ✅ All 12 files parse with `xmllint --noout`.
  • ✅ Format placeholders (`%1$s`, `%1$d`, etc.) preserved verbatim.
  • ✅ Latin-script locales escape apostrophes as `\'` (Android XML convention).
  • ✅ CJK / Arabic locales use native punctuation (no escapes needed).
  • ✅ Proper nouns (Shizuku, Dhizuku, Obtainium, Magisk, Xiaomi, OPPO, vivo, Huawei, GitHub, Watt Toolkit, FastGithub, Fiddler, MITM, OAuth, ADB, APK, MSI, EXE, DMG, AppImage, DEB, RPM, GitHub Store) kept verbatim.

Translation choices

Inserted as a labelled block at the end of each locale file, just before the closing `` tag:
```

...
...
```

Tone matches the surrounding existing entries per locale. Technical terms (variant, fingerprint, attribution, abuse detector, parked file, monorepo) handled with locale-appropriate conventions established in earlier feature ships.

Test plan

  • Spot-check one locale (e.g. RU) on device/emulator: open APK Inspect sheet, Announcements feed, Apps section headers, Add-from-starred picker, Installer attribution settings — all strings render in target language without `@string/...` placeholders.
  • Switch language via Tweaks → Appearance → Language picker, verify what's-new sheet refresh fires (fix(whatsnew): re-load entries when app language changes #526) and displays in the new locale.
  • Regression: existing translations unchanged in any locale.

Summary by CodeRabbit

  • New Features
    • Added multi-language localization for announcements system with support for news, security, privacy, and status updates.
    • Added APK inspection tool UI translations across Arabic, Bengali, Spanish, French, Hindi, Italian, Japanese, Korean, Polish, Russian, Turkish, and Simplified Chinese.
    • Expanded localization for app management, external imports, installation methods, and release notes display.

…ements, APK Inspect, Apps sections, Dhizuku, error states, import summary, installer attribution, starred picker, what's new)
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 6, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 75f37416-8981-40b0-868f-18427bd08841

📥 Commits

Reviewing files that changed from the base of the PR and between 0368e72 and 52bbd44.

📒 Files selected for processing (12)
  • core/presentation/src/commonMain/composeResources/values-ar/strings-ar.xml
  • core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml
  • core/presentation/src/commonMain/composeResources/values-es/strings-es.xml
  • core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml
  • core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml
  • core/presentation/src/commonMain/composeResources/values-it/strings-it.xml
  • core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml
  • core/presentation/src/commonMain/composeResources/values-ko/strings-ko.xml
  • core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml
  • core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml
  • core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml
  • core/presentation/src/commonMain/composeResources/values-zh-rCN/strings-zh-rCN.xml

Walkthrough

This PR expands localization coverage across 12 language files (Arabic, Bengali, Spanish, French, Hindi, Italian, Japanese, Korean, Polish, Russian, Turkish, and Chinese) by adding approximately 1.8.1 backlog string resources. New keys cover announcements, APK inspection, external imports, Dhizuku installer support, "What's New" release notes, and related UI labels. Italian removes 5 legacy mirror auto-suggest strings. No functional code changes introduced.

Changes

Localization Expansion for 1.8.1 Backlog

Layer / File(s) Summary
New String Resources
core/presentation/src/commonMain/composeResources/values-*/strings-*.xml (ar, bn, es, fr, hi, it, ja, ko, pl, ru, tr, zh-rCN)
Added ~150 new localized string keys per language file across announcements, APK inspection, external imports, app management, installer attribution, error states, and "What's New" features. Keys include announcements_*, apk_inspect_*, apps_compact_*, dhizuku_*, import_summary_*, installer_attribution_*, starred_picker_*, and whats_new_* patterns consistently across all locales.
Cleanup
core/presentation/src/commonMain/composeResources/values-it/strings-it.xml
Removed 5 obsolete Italian mirror auto-suggest strings (mirror_auto_suggest_title, mirror_auto_suggest_body, mirror_auto_suggest_pick_one, mirror_auto_suggest_maybe_later, mirror_auto_suggest_dont_ask_again) as part of the backlog integration.

Poem

🐰 Strings in a chorus, worldwide spread,
From Arabic to Red,
Announcements echo, APK shines,
Dhizuku whispers through the lines,
Twelve tongues now sing the 1.8.1 tale! 🌍

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~15 minutes

The changes are highly homogeneous—identical XML structure and key patterns repeated across 12 language files with no functional logic. Reviewers can spot-check a few languages for consistency and verify that no keys were inadvertently duplicated or misspelled, given the straightforward additive nature and the one removal in Italian.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/translate-missing-strings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rainxchzed rainxchzed merged commit 51bccf9 into main May 6, 2026
1 check was pending
@rainxchzed rainxchzed deleted the chore/translate-missing-strings branch May 6, 2026 18:06
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.

1 participant