Skip to content

Add Indonesian (id) locale + backfill missing hi/zh keys to full parity - #463

Merged
Chenglong Wang (Chenglong-MS) merged 2 commits into
microsoft:devfrom
fazelllyyy:feat/locale-id
Sep 28, 2026
Merged

Chenglong Wang (Chenglong-MS) merged 2 commits into
microsoft:devfrom
fazelllyyy:feat/locale-id

Conversation

@fazelllyyy

Copy link
Copy Markdown

Summary

Adds full Bahasa Indonesia (id) support for the frontend i18n system, following the same pattern as the Hindi locale in #436. While verifying, I found the hi and zh bundles had fallen behind en, so this PR also backfills those missing keys. Related to #337 (International Language Support).

Commits

  1. Add Indonesian (id) locale for frontend i18n — the new locale
  2. Backfill missing hi and zh locale keys to full parity with en — catch-up for existing locales

Changes

  • New locale bundle src/i18n/locales/id/ — all 10 domains translated (common, upload, chart, model, encoding, messages, navigation, dataLoading, loader, errors) plus the index.ts aggregator
  • Registered id in src/i18n/locales/index.ts and in the resources map in src/i18n/index.ts (it flows automatically into SUPPORTED_UI_LANGUAGES)
  • Added the Bahasa Indonesia label to LANGUAGE_LABELS in src/app/App.tsx
  • Extended tests/frontend/unit/app/i18nLocales.test.ts with an id-vs-en key-parity test
  • hi: +36 keys (chartRec quick actions/report/workflow, dataThread source-switching + import counts, 12 sidebar keys incl. the semantic* set, 15 upload keys incl. connectorGroups, operation.virtualSource)
  • zh: +5 keys (chartRec quick actions/report/workflow set, operation.virtualSource)

Translation notes

  • Indonesian: formal Indonesian ("Anda"), KBBI-consistent terminology (e.g. Simpan, Batal, Muat, Segarkan, Bagan, Utas Data)
  • Hindi backfill: follows the existing hi vocabulary (वर्कस्पेस, सिमेंटिक, वर्कफ़्लो, जोड़ें/नया/आयात करें); each key's meaning confirmed against its component usage (DataSourceSidebar.tsx, SimpleChartRecBox.tsx, SourceTableShelf.tsx, UnifiedDataUploadDialog.tsx, DataOperationCard.tsx)
  • Chinese backfill: follows existing zh vocabulary (工作流, 语义/度量/维度, 快捷操作)
  • Translation keys untouched; all {{interpolation}} placeholders, _plural forms, and inline HTML tags (<refreshAction>, <strong>) preserved verbatim
  • Untranslatable identifiers kept in English per TRANSLATION_GUIDE.md (chart types, channel keys, spec values); tooltips translated instead
  • Commands, code snippets, paths, and URLs in loader.json left literal
  • chart.vegaLocale localized for Indonesian (day/month names); no code change needed in vega-locale.ts
  • No backend change needed — "id" already exists in LANGUAGE_DISPLAY_NAMES (agent_language.py), so agent language instructions work out of the box

Verification

  • JSON validity: all locale files parse cleanly
  • Key parity across bundles (same spread-merge semantics as index.ts): en/hi/zh/id each resolve to exactly 1860 keys — 0 missing, 0 extra, 0 placeholder/tag mismatches
  • New unit test asserts id key alignment with en
  • Note: a full vitest/tsc run was not possible in this environment (no node_modules available); please rely on CI
    Base / head: base: microsoft/dev ← head: fazelllyyy/feat/locale-id

Translate all 10 frontend locale domains into Bahasa Indonesia (1860 keys, full parity with en). Register the bundle in locales/index.ts and i18n/index.ts, add the 'Bahasa Indonesia' language switcher label, and cover key parity with a unit test.
Add 36 missing Hindi keys and 5 missing Simplified Chinese keys introduced by newer features (semantic model sidebar, connector groups, chart quick actions, virtual sources). All four UI locales now share the same 1860-key set.
@fazelllyyy

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@Chenglong-MS
Chenglong Wang (Chenglong-MS) changed the base branch from main to dev September 28, 2026 17:01
@Chenglong-MS
Chenglong Wang (Chenglong-MS) merged commit abee9ac into microsoft:dev Sep 28, 2026
1 check passed
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.

2 participants