Repository navigation
i18n zh
laurel Lin edited this page Aug 22, 2026
·
2 revisions
翻译数据来自文件系统上的 JSON(lang/en.json、lang/zh.json),不硬编码在 TS 里。
加载方式:
- 构建时 esbuild 把
lang/*.json打包进插件(内置默认,保证单文件可独立使用); - 运行时
loadTranslationsFromDisk(pluginPath)从插件所在目录的lang/子文件夹重新读取 JSON 覆盖 内置默认(直接改lang/*.json即可,无需重新构建); - 无路径 / lang 目录缺失 / 读取失败时保持内置默认,保证不崩。
用法:
- 所有界面文字一律用
t('ctg.xxx.yyy', [占位0, 占位1], 兜底值?)查译。 - 占位符用 Blockbench 的
%0 / %1 …(0 基,与Language的 tl 语义一致)。 - 本模块顶层调用
registerTranslations()(在 esbuild 依赖求值顺序中早于任何调用t()的模块), 把词典写入 Blockbench 的Language数据。
环境兼容:
- Blockbench 运行时走全局
tl(当前语言数据 + 英文兜底)。 - Node 单测 / 逻辑层无 Blockbench 全局时,
t()回退英文词典(同样替换 %N),保证纯逻辑(logic/) 可独立单测。
export function t(key: string, vars?: string | number | (string | number)[], def?: string): string;把插件词典写入 Blockbench 的 Language 数据(addTranslations 按当前语言合并,始终保留 en 兜底)。
被所有用 t() 的模块 import,按依赖求值顺序,这里的顶层调用早于任何 t() 的执行。Node 无
Language 全局时安全跳过。
export function registerTranslations(): void;运行时从插件所在目录读取 lang/en.json、lang/zh.json,覆盖内置默认并重新注册。pluginPath 为插件
文件路径(index.ts onload 经 Plugins.registered[id].path 传入)。无路径 / 文件缺失 / 读取失败时保持
内置默认(打包进产物的 JSON),保证单文件也能用。
export function loadTranslationsFromDisk(pluginPath?: string): void;← 返回中文接口文档