Локализация
Интеграционные аддоны работают в изолированном воркере и не должны использовать языковую систему приложения StreamKit+ (src/shared/lang/). Не используйте ключи переводов, не импортируйте языковые файлы приложения и не копируйте из них строки.
Локаль UI приложения (LANG)
Песочница предоставляет доступ только для чтения к локали UI пользователя в настройках:
| Член | Описание |
|---|---|
LANG.current |
'en', 'ru' или 'uk' — соответствует языку приложения |
LANG.onChangeLanguage(cb) |
Вызывается при смене языка; возвращает { Destroy } для отписки |
Разрешение не требуется. Используйте LANG.current, чтобы выбрать нужную строку из собственных объектов по локалям (см. ниже). Это не даёт доступа к ключам переводов или JSON-файлам приложения.
const labels = {
en: 'Connected',
ru: 'Подключено',
uk: 'Підключено',
};
status.Update({ current: 'online', message: { [LANG.current]: labels[LANG.current] } });
const sub = LANG.onChangeLanguage((lang) => {
console.log('UI locale:', lang);
});
// позже: sub.Destroy();
Объекты по локалям
Пользовательский текст передавайте объектами с ключами локали:
{
en: 'Connected',
ru: 'Подключено',
uk: 'Підключено',
}
en обязателен там, где API ожидает DashboardLocalizedText. UI подставляет en, если локаль пользователя отсутствует.
Где это применяется
| API | Локализуемые поля |
|---|---|
manifest.name / description |
en, ru, uk |
GenerateConfig — label, description, placeholder в editor |
en, ru, uk |
status.Update({ message }) |
en, ru, uk |
notify.Send({ title, message }) |
по локалям или обычная строка |
dashboard.registerPlatform({ name }) |
по локалям |
dashboard.addRecord({ message }) |
строка, объект по локалям или кортеж LangData приложения* |
dashboard.addChatMessage({ content }) |
как у message |
подписи dashboard.registerTriggers |
по локалям |
* Кортежи LangData в сообщениях дашборда разрешаются UI приложения, а не файлами переводов аддона. В сторонних аддонах предпочтительны явные объекты { en, ru?, uk? } для самодостаточной локализации.
Обычные строки
Многие API также принимают простую string, если несколько локалей не нужны.