i18n — 语言包贡献

注册自定义语言翻译包。

self.i18n 提供语言包贡献能力。Ui、Service、Data 插件均可用(贡献写入通常需要 data.write 权限,读取需要 data.read)。

方法

contribute(locale, messages, callback?)

注册语言包。

from pyrite_sdk.api.data import I18nKey

self.i18n.contribute("en", {
    I18nKey.NAV_FILES.key: "Files",
    I18nKey.NAV_DEVICES.key: "Devices",
    I18nKey.NAV_GIT.key: "Git",
})

参数:

  • locale (str) — 语言代码(如 "en""ja""zh"
  • messages (dict) — 翻译消息字典

register_runtime(locale, messages, callback?)

注册运行时语言包(可动态更新)。

self.i18n.register_runtime("ja", {
    I18nKey.NAV_FILES.key: "ファイル",
})

revoke(locale, callback?)

撤销已注册的语言包。

self.i18n.revoke("en")

参数:

  • locale (str) — 语言代码

get(locale, callback?)

查询已注册的语言包。

self.i18n.get("en",
    lambda **cb: print(cb)
)

list(callback?)

列出所有已注册语言包。

self.i18n.list(
    lambda **cb: print(cb)
)

使用 I18nKey

I18nKey 枚举包含 IDE 中所有可翻译的键。每个键有:

  • .key — 字符串键名
  • .fallback — 默认文本
from pyrite_sdk.api.data import I18nKey

# 获取键名
key_name = I18nKey.NAV_FILES.key  # "NAV_FILES"

# 获取默认文本
fallback = I18nKey.NAV_FILES.fallback  # "文件"

完整示例

from pyrite_sdk.core.plugin import DataPlugin
from pyrite_sdk.api.data import I18nKey


class JapaneseLangPack(DataPlugin):
    def on_contribute(self):
        self.i18n.contribute("ja", {
            I18nKey.NAV_FILES.key: "ファイル",
            I18nKey.NAV_DEVICES.key: "デバイス",
            I18nKey.NAV_GIT.key: "Git",
            I18nKey.NAV_PLUGINS.key: "プラグイン",
            I18nKey.NAV_SETTINGS.key: "設定",
            I18nKey.SETTINGS_TITLE.key: "設定",
            I18nKey.PLUGINS_TITLE.key: "プラグイン",
            I18nKey.GIT_COMMIT.key: "コミット",
        })


plugin = JapaneseLangPack()
plugin.run_once()

On this page