Localization

1 minute read

HyPrism supports 12 languages with runtime switching.

Locale Files

Location: Assets/Locales/{code}.json

Supported languages:

CodeLanguage
en-USEnglish
ru-RURussian
de-DEGerman
es-ESSpanish
fr-FRFrench
ja-JPJapanese
ko-KRKorean
pt-BRPortuguese (Brazil)
tr-TRTurkish
uk-UAUkrainian
zh-CNChinese (Simplified)
be-BYBelarusian

File Format

{
  "_langName": "English",
  "_langCode": "en-US",
  "button": {
    "play": "Play",
    "settings": "Settings"
  },
  "dashboard": {
    "welcome": "Welcome, {0}!"
  }
}

Rules:

IPC Channels

ChannelTypeDescription
hyprism:i18n:getinvokeGet all translations for current language
hyprism:i18n:currentinvokeGet current language code
hyprism:i18n:setinvokeChange language (accepts { language: "code" })
hyprism:i18n:languagesinvokeGet list of available languages

Backend Usage

// Get translation
var text = LocalizationService.Instance.Translate("button.play");

// Change language
_configService.Configuration.Language = "ru-RU";
LocalizationService.Instance.LoadLanguage("ru-RU");

Frontend Usage

import { ipc } from "../lib/ipc";

// Get all translations
const translations = await ipc.i18n.get();

// Change language
await ipc.i18n.set({ language: "ru-RU" });

// Get available languages
const langs = await ipc.i18n.languages();
// → [{ code: 'en-US', name: 'English' }, ...]