На этой страницеЯзык интерфейса
Локализация
Выбирайте строки по языку клиента и сохраняйте переводы в локальных модулях.
Язык интерфейса
SDK не требует отдельного формата переводов. Для небольшого плагина достаточно JavaScript-объекта со строками и языка из environment.get().
Получить язык
const environment = await api.environment.get();
const russian = environment.locale.toLowerCase().startsWith("ru");
const title = russian ? "Моя команда" : "My command";
environment содержит также версию клиента, оформление и режим энергосбережения. Это сведения об окружении, а не идентификатор аккаунта.
Словарь строк
Вынесите перевод в modules/strings.js:
const messages = {
ru: { command: "Моя команда", ready: "Готово" },
en: { command: "My command", ready: "Done" }
};
export function strings(locale) {
return messages[locale.toLowerCase().startsWith("ru") ? "ru" : "en"];
}
В activate загрузите окружение, выберите словарь и используйте его в командах и собственных страницах. Оставляйте запасной язык для неизвестной локали.
Смена языка
В перечне событий есть locale.changed. Если подписка доступна, используйте её для обновления собственных данных интерфейса. Наличие имени события в типах не заменяет проверку доступности и обработку отказа.
Манифест
Поля name, description и заголовки settingsSchema — обычные статические строки. YAML-локали и автоматические подстановки Elyx этим форматом не обрабатываются.
Проверка перевода
Проверьте длинные подписи, числа, переносы текста и разные размеры шрифта на устройстве. Перевод не должен менять id команды, ключ настройки или идентификатор узла страницы.