Skip to content

Localization ​

Localization

The interface ships in Traditional Chinese, English and Japanese.

How it is built ​

Traditional Chinese is the source language — the keys in the front end are the Chinese strings. English and Japanese ship as dictionaries in the bundle, and at load time the app overlays any overrides stored on the server.

A consequence worth knowing: an untranslated string falls back to displaying the Chinese original rather than a blank or a key name. Missing translations look like mixed-language UI, not broken UI.

Progress ​

Each language shows translated-of-total. Traditional Chinese is always complete by definition. The count moves when the app gains new strings, so a language that was at 100% can drop after an upgrade.

The translation editor ​

Filter by group — the screens the strings belong to — search text, or show only untranslated entries. Typing a translation applies it to the interface immediately; there is no publish step.

ControlDoes
Import JSONBulk-load translations.
Export JSONTake them away for translation elsewhere.
Clear overridesDrop server-side overrides and fall back to the shipped dictionaries.
Auto-translate missing entriesFills the gaps using the configured AI provider.

Auto-translation is a starting point, not a result — it does not know your product vocabulary. Review before shipping to users.

Adding strings ​

New interface text is added to Source/Walis.Admin/src/i18n/messages.ts alongside the screen that uses it. Overrides set here are stored on the server and survive upgrades; shipped dictionary entries are replaced by the upgrade.

Released under the MIT License.