i18n API
Internationalization support for the application.
Language Operations
dmn.i18n.getLanguage(): Promise<string>
Returns current app language.
const lang = await dmn.i18n.getLanguage();
console.log(lang); // 'ko' | 'en' | 'ja' | ...dmn.i18n.setLanguage(lang: string): Promise<void>
Sets app language.
await dmn.i18n.setLanguage("en");dmn.i18n.getSupportedLanguages(): Promise<string[]>
Returns list of supported languages.
const langs = await dmn.i18n.getSupportedLanguages();
console.log(langs); // ['ko', 'en', 'ja', ...]Translation
dmn.i18n.t(key: string): Promise<string>
Returns translation for a key.
const text = await dmn.i18n.t("settings.theme");
console.log(text); // 'Theme' or '테마'Change Events
dmn.i18n.onLanguageChanged(callback): Unsubscribe
Subscribes to language changes.
interface LanguageEvent {
language: string;
}
const unsub = dmn.i18n.onLanguageChanged(({ language }) => {
console.log("Language changed to:", language);
});Plugin i18n
For plugin-specific translations, use defineSettings:
dmn.plugin.defineElement({
name: "Localized Panel",
messages: {
ko: {
greeting: "안녕하세요",
"settings.size": "크기",
},
en: {
greeting: "Hello",
"settings.size": "Size",
},
},
template: (state, settings, { html, t }) => html`
<div>${t("greeting")}</div>
`,
});The t function in template automatically uses the correct language based on app settings.