国际化
控制台支持中文和英文。实现刻意保持简单:中文原文就是翻译键。
后端与模板
python
from .i18n import _
_("已删除 {} 个账号", n) # 中文原文 + 位置参数jinja
{{ _('上传转写') }}- 当前语言由
LangMiddleware按请求设置:优先读langcookie,没有时按Accept-Language(以en开头为英文,其它为中文)。 - 英文模式下在
app/i18n_en.py的EN字典里查找原文,找不到时显示中文原文。 /admin/lang?to=en&next=/admin/jobs切换语言并跳回原页面。
前端脚本
app/static/hub.js 里的动态文字用 T('中文原文', 参数)。需要翻译的键要加到 app/i18n.py 的 JS_KEYS 列表,页面会把它们的英文注入给脚本。
新增文字的步骤
- 用中文写原文并包进
_()或T()。 - 在
app/i18n_en.py添加"中文原文": "English text",占位符{}数量保持一致。 - 前端文字同时加入
JS_KEYS。 - 切到英文界面检查页面。
已知限制
运行时写入数据库的文字(如代理节点的原始报错、AI 结果的标题)保存的是写入当时的语言,切换界面语言后不会改变。