Skip to content

插件国际化进阶 ​

当插件面向全球用户,把界面文案抽离为可翻译资源是必要的一步。进阶方案支持动态切换与社区贡献翻译。

核心要点 ​

设计文案 ​

  • 建立 lang/ 目录,按语言存 JSON(如 en.json / zh.json),键名统一
  • 用辅助函数取文案,避免硬编码字符串:
ts
const t = (key: string) => locale[app.language]?.[key] ?? locale.en[key];
new Setting(el).setName(t("enable-feature"));

进阶技巧 ​

  • 动态切换:监听 app.workspace.on("css-change") 或语言设置变更,重绘设置面板
  • 复数/插值:复杂文案用模板函数处理变量与单复数
  • 社区贡献:把 lang/ 放在仓库,鼓励 PR 补充翻译,降低维护成本
  • RTL 支持:阿拉伯语等需额外处理布局方向

注意事项 ​

  • 默认回退到 en,缺失键不报错
  • Obsidian 内置 app.language 已是用户语言代码(如 zh-cn),直接复用

相关阅读 ​