跳转到内容

多语言支持

Switch to Zen Mode
语言代码文件
Englishenlocales/en.toml
中文 (简体)zhlocales/zh.toml
日本語jalocales/ja.toml
config.toml 设置 > $LANG 环境变量 > 回退到 en

具体逻辑:

  1. 如果 config.toml 中设置了 language = "zh",使用 zh
  2. 如果设置了 language = "auto",从 $LANG / $LC_ALL 环境变量检测
  3. 环境变量示例:zh_CN.UTF-8zhja_JPjaCen
  4. 无法检测时回退到 en
~/.config/mutsumi/config.toml
language = "zh" # "en" | "zh" | "ja" | "auto"
Terminal window
mutsumi init --lang zh
language = "auto"

Mutsumi 会从系统环境变量自动检测语言。

i18n 系统覆盖所有 TUI 界面文本:

区域示例键
标签页tabs.todaytabs.weektabs.monthtabs.inbox
状态栏status.tasksstatus.donestatus.pending
操作提示actions.new_taskactions.confirm_delete
优先级priority.highpriority.normalpriority.low

语言文件使用 TOML 格式,按区域分组:

locales/zh.toml
[tabs]
today = "今日"
week = "本周"
month = "本月"
inbox = "收件箱"
[status]
tasks = "{count} 个任务"
done = "{count} 已完成"
pending = "{count} 待处理"
[actions]
new_task = "新建任务"
confirm_delete = "确定删除这个任务吗?"

i18n 系统使用三级回退链:

当前语言翻译 → 英语翻译 → 原始键名

这意味着即使某个翻译缺失,也不会导致界面出错 —— 最差情况显示英语文本或键名。

  • 使用 Python 标准库 tomllib 解析 TOML
  • 全局单例模式,init_i18n() 初始化
  • 点号语法查找:t("tabs.today") → 在 [tabs] 分区下查找 today
  • 零外部依赖 —— 不使用 gettext 或其他 i18n 库