Перейти к содержимому

Локализация плагинов (i18n)

PotokSDK.i18n — строки хоста и свои словари. Язык синхронизируется с хостом.

Возвращает перевод по ключу namespace:path для текущего языка. Поддерживает интерполяцию {{var}} и множественное число через { count }.

const { i18n, ui } = PotokSDK;
// Read host UI strings
const closeLabel = i18n.t("common:actions.close");
// Plugin-owned namespace
i18n.addResourceBundle("en", "myplugin", {
greeting: "Hello, {{name}}!"
});
ui.render(Text(i18n.t("myplugin:greeting", { name: "Potok" })));

Регистрирует словарь плагина для языка и пространства имён. Пример: addResourceBundle(“en”, “myplugin”, { greeting: “Hi {{name}}” }).

Массовая регистрация: { en: { myplugin: {…} }, ru: { myplugin: {…} } }. Также уведомляет хост для сохранения переводов плагина.

PotokSDK.i18n.registerTranslations({
en: { myplugin: { title: "My Plugin" } },
ru: { myplugin: { title: "Мой плагин" } }
});

Подписка на смену языка интерфейса. Возвращает функцию отписки. Перерисуйте UI плагина при смене языка хоста.

const { i18n } = PotokSDK;
const unsubscribe = i18n.onLanguageChange((lng) => {
console.log("Language changed:", lng);
redraw();
});

Текущий язык доступен как PotokSDK.i18n.language (например, “en”, “ru”).