Skip to content

Add i18n support with en, zh-CN, and partial ja translations - #438

Open
MrQLEO wants to merge 6 commits into
tareqimbasher:mainfrom
MrQLEO:feat/ui-i18n
Open

MrQLEO wants to merge 6 commits into
tareqimbasher:mainfrom
MrQLEO:feat/ui-i18n

Conversation

@MrQLEO

@MrQLEO MrQLEO commented Sep 18, 2026

Copy link
Copy Markdown

Add i18n support with en, zh-CN, and ja translations
This adds localization support to the Aurelia frontend:

  • New TranslationService (ITranslationService) with language resource files for English, Simplified Chinese.
  • New t value converter; UI templates and dialogs migrated to translated strings.
  • Language is persisted as an app setting (Settings / UpdateSettingsCommand) and applied at startup.
  • Localized user-facing strings in services (script errors, dialogs, pane names, menus).

Verified with tsc --noEmit and running the app in Electron dev mode.

Add a TranslationService (ITranslationService) to the Aurelia frontend with language resource files for English, Simplified Chinese, and Japanese. A language setting is persisted in app settings (Settings/UpdateSettingsCommand) and applied at startup in main.ts after the shell is configured. Migrate UI templates and dialogs to use a t value converter, and localize user-facing strings in services (script errors, dialogs, pane names, menus).
@MrQLEO MrQLEO changed the title Add i18n support with en, zh-CN, and ja translations Add i18n support with en, zh-CN, and partial ja translations Sep 18, 2026
MrQLEO and others added 5 commits September 20, 2026 10:13
Applying settings called TranslationService.setLanguage which persisted the language by cloning the singleton Settings and updating it wholesale. Because the SettingsUpdatedEvent broadcast had not been applied to the singleton yet, the clone carried stale values and immediately overwrote the just-saved settings on the server (e.g. theme change reverted). Language now switches locally via the non-persisting applyLanguage; persistence and cross-window sync happen through the single settings update and its broadcast.
Removed redundant help note regarding partial translations.
Flex items shrink to min-content width when space is tight. For Latin text the min-content width is the longest word, but CJK text can break between any two characters, so translated labels like the theme and port labels collapsed to one character per line. Mark them as nowrap so they shrink as a whole.

This branch has not been deployed

No deployments
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