# i18n 国际化实施计划 > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 为 A1 Swap Mod Packer 添加中英文国际化支持,用户通过下拉框切换语言,切换即时生效并持久化。 **Architecture:** 新建 `i18n/` 模块,提供 `t(key, **kwargs)` 翻译函数。GUI 中所有硬编码中文替换为 `t("key")` 调用。在打包选项区添加语言下拉框,切换时重新加载翻译并刷新 UI。 **Tech Stack:** Python 标准库 json + PySide6 QComboBox ## Global Constraints - 所有翻译键命名遵循 `模块.区域.属性` 层级 - `t()` 在键缺失时返回键名本身作为回退 - 语言选择持久化到 `settings.json` 的 `locale` 字段,默认 `zh_CN` - 数值格式化(时间、耗材)保持不翻译,仅在 None 时返回翻译后的占位符 --- ## 文件结构 | 文件 | 操作 | 职责 | |------|------|------| | `a1_swap_mod_packer/i18n/__init__.py` | 新建 | 翻译加载器 + `t()` 函数 | | `a1_swap_mod_packer/i18n/zh_CN.json` | 新建 | 简体中文翻译表 | | `a1_swap_mod_packer/i18n/en.json` | 新建 | 英文翻译表 | | `a1_swap_mod_packer/gui.py` | 修改 | 字符串替换为 `t()` + 语言下拉框 | | `a1_swap_mod_packer/gcode.py` | 修改 | `format_duration`/`format_filament` 的 None 返回翻译 | | `a1_swap_mod_packer/core.py` | 修改 | 导出 `i18n` 模块的 `t` | ---