feat(i18n): 新增中英文国际化支持,语言下拉框即时切换
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 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` |
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user