国际化 (i18n) 指南¶
本指南说明如何为 SSH 隧道管理器 Web 面板添加新语言支持。
如何添加新语言¶
步骤 1:创建语言资源文件¶
-
导航到
web/static/locales/目录 -
创建一个以语言代码命名的新 JSON 文件(例如,法语用
fr.json,德语用de.json) -
复制
en.json的结构并翻译所有值
步骤 2:语言文件结构¶
语言文件应遵循以下结构:
{
"app": {
"title": "您的翻译",
"name": "您的翻译",
"help_title": "您的翻译"
},
"navigation": {
"help": "您的翻译",
"docker_hub": "Docker Hub",
"github": "GitHub",
"back": "您的翻译"
}
// ... 继续所有部分
}
步骤 3:更新语言支持¶
-
打开
web/static/i18n.js -
找到
getSupportedLanguages()方法 -
将您的语言添加到数组中:
getSupportedLanguages() {
return [
{ code: 'en', name: 'English' },
{ code: 'zh', name: '中文' },
{ code: 'fr', name: 'Français' }, // 在这里添加您的语言
// ... 其他语言
];
}
- 在
switchLanguage()方法中更新语言验证:
if (!["en", "zh", "fr"].includes(lang)) {
// 在这里添加您的语言代码
console.error(`Unsupported language: ${lang}`);
return false;
}
步骤 4:测试您的翻译¶
-
启动应用程序
-
使用语言切换按钮切换到您的新语言
-
验证所有文本都已正确翻译
-
检查主页面和帮助页面
翻译指南¶
一致性¶
在整个翻译中使用一致的术语。如有需要,创建关键术语词汇表。
上下文¶
考虑文本出现的上下文:
- 按钮:保持文本简短且面向操作
- 标签:描述性但简洁
- 消息:向用户提供清晰的反馈
- 帮助文本:详尽且有帮助
长度¶
保持翻译长度合理相似,避免 UI 布局问题。如果翻译明显较长,考虑:
- 使用缩写
- 重新措辞使其更简洁
- 测试 UI 确保仍然美观
技术术语¶
一些技术术语应保持英文:
- SSH
- Docker
- YAML
- API
- CLI
- Hash
占位符¶
在翻译中保留占位符格式:
{{name}} 占位符必须保持不变。
常见翻译键¶
| 键模式 | 描述 |
|---|---|
app.* |
应用程序标题和名称 |
navigation.* |
导航元素和链接 |
table.* |
表格标题、占位符和内容 |
buttons.* |
按钮标签和工具提示 |
messages.* |
用户反馈消息 |
validation.* |
表单验证错误消息 |
help.* |
帮助文档内容 |
当前支持的语言¶
| 语言 | 代码 | 状态 |
|---|---|---|
| English | en | 完成 |
| 简体中文 | zh | 完成 |
| 繁體中文 | zh-hant | 完成 |
| 日本語 | ja | 完成 |
| 한국어 | ko | 完成 |
| Español | es | 完成 |
| Français | fr | 完成 |
| Русский | ru | 完成 |
| العربية | ar | 完成 |
提交您的翻译¶
-
Fork 仓库
-
为您的翻译创建新分支:
-
将您的语言文件添加到
web/static/locales/ -
更新
web/static/i18n.js以包含您的语言 -
彻底测试您的翻译
-
提交拉取请求,包含:
- 添加的语言的清晰描述
- 确认所有字符串都已翻译
- 关于翻译选择的任何说明
测试翻译¶
手动测试清单¶
- [ ] 主页面上的所有文本都已翻译
- [ ] 帮助页面上的所有文本都已翻译
- [ ] 按钮工具提示已翻译
- [ ] 错误消息已翻译
- [ ] 成功消息已翻译
- [ ] 占位符文本已翻译
- [ ] 页面刷新后语言保持不变
- [ ] 翻译文本没有布局问题
浏览器测试¶
在多个浏览器中测试:
- Chrome
- Firefox
- Safari
- Edge
移动端测试¶
验证翻译在移动设备上正确显示。
更新现有翻译¶
如果您发现错误或想改进现有翻译:
-
编辑
web/static/locales/中相应的语言文件 -
测试您的更改
-
提交拉取请求,描述更改了什么以及为什么
问题¶
如果您对翻译有疑问:
- 在 GitHub 上开启 issue
- 联系维护者
感谢您帮助让 SSH 隧道管理器能够被全球更多用户使用!