Overview¶
The goal of this appjar is to manage the supported languages and their translations at runtime, enabling applications to be internationalised without redeployments.
All AppJars are built with internationalisation support, using translation keys that can be overridden by providing additional .properties files. However, maintaining translations solely through files requires developer access and a deployment cycle for every change. The I18N Manager appjar extends this capability by storing translations in the database and providing a dedicated administration interface to manage them directly.
Languages¶
An administrator can register any language using its ISO 639-1 code, optionally combined with a regional variant code to create locale-specific configurations such as Brazilian Portuguese or Argentine Spanish. One language is designated as the default, which serves as the fallback when a translation key is not available in another language. The default language cannot be deleted.
Translations¶
Each language contains a set of translation keys paired with their translated values. Keys follow the reverse-domain convention used across AppJars (for example, appjars.mymodule.myview.label). Translations can be managed individually through the interface or in bulk by uploading a standard Java .properties file. They can also be exported to a file for backup or offline editing.
When adding a new language, the Scan missing keys feature compares the keys already registered in the database against those found in the application's bundled .properties files and offers to import the missing ones. This makes it straightforward to bootstrap a new language from existing translations.