Skip to content

fix(app): complete translation coverage - #40981

Merged
Hona merged 2 commits into
devfrom
weekly-i18n-audit
Aug 7, 2026
Merged

fix(app): complete translation coverage#40981
Hona merged 2 commits into
devfrom
weekly-i18n-audit

Conversation

@opencode-agent

@opencode-agent opencode-agent Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add the eight missing session-export strings to all 27 non-English app locales
  • localize the usage-limit “Don't show again” action across every supported locale
  • render the titlebar update label from the existing translation key instead of hardcoded English
  • run full dictionary and placeholder parity in CI instead of skipping the suite when CI is set
  • document the invariant that product code stays locale/plural unaware behind typed t / plural / native-bundle APIs

Audit evidence

The audit compared all app, UI, and desktop dictionaries against English on dev at b7f9363393c4 and scanned production TS/TSX for user-visible literals.

Before this change:

  • all 27 non-English app dictionaries were missing the same eight session-export keys, producing 216 English fallbacks
  • DialogUsageExceeded rendered “Don't show again” directly in English
  • the titlebar update pill computed translated titlebar.update / titlebar.updateVersion values but still rendered a literal Update
  • the comprehensive parity suite used describe.skipIf(!!process.env.CI), allowing dictionary drift through CI

After this change:

  • all supported app, UI, and desktop locales have key parity with their English source dictionaries
  • placeholders and locale-specific plural variants remain aligned
  • the usage-limit action and update pill use locale dictionaries
  • parity now executes with CI=true

Translation method

Translations were researched in independent locale groups and reconciled against:

  • existing OpenCode locale dictionaries and established terminology for session, export, save, and errors
  • Unicode CLDR locale and plural guidance
  • Microsoft, Apple, and Mozilla localization guidance and terminology
  • Mozilla Pontoon and the Firefox localization corpus
  • relevant language authorities, including Duden, RAE/Fundéu, FranceTerme/Académie française, Dansk Sprognævn, Språkrådet, Nederlandse Taalunie, Accademia della Crusca, Kotus, Institutet för språk och folkminnen, PWN/Rada Języka Polskiego, Russian and Arabic language references, Ukrainian academic guidance, Taiwan MOE conventions, Royal Society-oriented Thai terminology, and TDK

The English source remains unchanged except for the new key that captures the existing hardcoded “Don't show again” copy. {{filename}} is preserved exactly in every locale. Arabic, Urdu, and Shahmukhi Punjabi wrap the interpolated filename with Unicode FSI/PDI isolates to keep unknown-direction filenames readable in RTL sentences.

Locale coverage

Updated ar, az, br (pt-BR), bs, da, de, es, fi, fr, hi, id, it, ja, ko, nl, no (nb-NO), pa (Shahmukhi Punjabi), pl, ru, sv, th, tr, uk, ur, vi, zh, and zht (Traditional Chinese/Taiwan).

Checks

  • CI=true bun test ./src/i18n/parity.test.ts ./src/i18n/desktop-native.test.ts — 8 passed, 0 failed, 442 assertions
  • bun typecheck from packages/app — passed
  • scoped oxlint — 0 errors (existing warnings remain outside this change)
  • git diff --check — passed
  • post-fix production-string scan — targeted hardcoded usage action and update label no longer present

Requested by: @Hona (Hona via Slack)

@Hona
Hona enabled auto-merge (squash) August 7, 2026 02:55
@Hona
Hona merged commit 8d65dbd into dev Aug 7, 2026
11 checks passed
@Hona
Hona deleted the weekly-i18n-audit branch August 7, 2026 03:06
HQ123-BOOP pushed a commit to HQ123-BOOP/LibreCode that referenced this pull request Aug 7, 2026
Co-authored-by: Hona <10430890+Hona@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant