Локализация плагинов (i18n)
PotokSDK.i18n — строки хоста и свои словари. Язык синхронизируется с хостом.
PotokSDK.i18n.t
Заголовок раздела «PotokSDK.i18n.t»Возвращает перевод по ключу namespace:path для текущего языка. Поддерживает интерполяцию {{var}} и множественное число через { count }.
const { i18n, ui } = PotokSDK;
// Read host UI stringsconst closeLabel = i18n.t("common:actions.close");
// Plugin-owned namespacei18n.addResourceBundle("en", "myplugin", { greeting: "Hello, {{name}}!"});
ui.render(Text(i18n.t("myplugin:greeting", { name: "Potok" })));addResourceBundle
Заголовок раздела «addResourceBundle»Регистрирует словарь плагина для языка и пространства имён. Пример: addResourceBundle(“en”, “myplugin”, { greeting: “Hi {{name}}” }).
registerTranslations
Заголовок раздела «registerTranslations»Массовая регистрация: { en: { myplugin: {…} }, ru: { myplugin: {…} } }. Также уведомляет хост для сохранения переводов плагина.
PotokSDK.i18n.registerTranslations({ en: { myplugin: { title: "My Plugin" } }, ru: { myplugin: { title: "Мой плагин" } }});onLanguageChange
Заголовок раздела «onLanguageChange»Подписка на смену языка интерфейса. Возвращает функцию отписки. Перерисуйте UI плагина при смене языка хоста.
const { i18n } = PotokSDK;
const unsubscribe = i18n.onLanguageChange((lng) => { console.log("Language changed:", lng); redraw();});Текущий язык доступен как PotokSDK.i18n.language (например, “en”, “ru”).