跳转至

国际化 (i18n) 指南

本指南说明如何为 SSH 隧道管理器 Web 面板添加新语言支持。

如何添加新语言

步骤 1:创建语言资源文件

  1. 导航到 web/static/locales/ 目录

  2. 创建一个以语言代码命名的新 JSON 文件(例如,法语用 fr.json,德语用 de.json

  3. 复制 en.json 的结构并翻译所有值

步骤 2:语言文件结构

语言文件应遵循以下结构:

{
  "app": {
    "title": "您的翻译",
    "name": "您的翻译",
    "help_title": "您的翻译"
  },
  "navigation": {
    "help": "您的翻译",
    "docker_hub": "Docker Hub",
    "github": "GitHub",
    "back": "您的翻译"
  }
  // ... 继续所有部分
}

步骤 3:更新语言支持

  1. 打开 web/static/i18n.js

  2. 找到 getSupportedLanguages() 方法

  3. 将您的语言添加到数组中:

getSupportedLanguages() {
    return [
        { code: 'en', name: 'English' },
        { code: 'zh', name: '中文' },
        { code: 'fr', name: 'Français' }, // 在这里添加您的语言
        // ... 其他语言
    ];
}
  1. switchLanguage() 方法中更新语言验证:
if (!["en", "zh", "fr"].includes(lang)) {
  // 在这里添加您的语言代码
  console.error(`Unsupported language: ${lang}`);
  return false;
}

步骤 4:测试您的翻译

  1. 启动应用程序

  2. 使用语言切换按钮切换到您的新语言

  3. 验证所有文本都已正确翻译

  4. 检查主页面和帮助页面

翻译指南

一致性

在整个翻译中使用一致的术语。如有需要,创建关键术语词汇表。

上下文

考虑文本出现的上下文:

  • 按钮:保持文本简短且面向操作
  • 标签:描述性但简洁
  • 消息:向用户提供清晰的反馈
  • 帮助文本:详尽且有帮助

长度

保持翻译长度合理相似,避免 UI 布局问题。如果翻译明显较长,考虑:

  • 使用缩写
  • 重新措辞使其更简洁
  • 测试 UI 确保仍然美观

技术术语

一些技术术语应保持英文:

  • SSH
  • Docker
  • YAML
  • API
  • CLI
  • Hash

占位符

在翻译中保留占位符格式:

{
  "messages": {
    "tunnel_started": "隧道 {{name}} 启动成功"
  }
}

{{name}} 占位符必须保持不变。

常见翻译键

键模式 描述
app.* 应用程序标题和名称
navigation.* 导航元素和链接
table.* 表格标题、占位符和内容
buttons.* 按钮标签和工具提示
messages.* 用户反馈消息
validation.* 表单验证错误消息
help.* 帮助文档内容

当前支持的语言

语言 代码 状态
English en 完成
简体中文 zh 完成
繁體中文 zh-hant 完成
日本語 ja 完成
한국어 ko 完成
Español es 完成
Français fr 完成
Русский ru 完成
العربية ar 完成

提交您的翻译

  1. Fork 仓库

  2. 为您的翻译创建新分支:

    git checkout -b add-german-translation
    

  3. 将您的语言文件添加到 web/static/locales/

  4. 更新 web/static/i18n.js 以包含您的语言

  5. 彻底测试您的翻译

  6. 提交拉取请求,包含:

  7. 添加的语言的清晰描述
  8. 确认所有字符串都已翻译
  9. 关于翻译选择的任何说明

测试翻译

手动测试清单

  • [ ] 主页面上的所有文本都已翻译
  • [ ] 帮助页面上的所有文本都已翻译
  • [ ] 按钮工具提示已翻译
  • [ ] 错误消息已翻译
  • [ ] 成功消息已翻译
  • [ ] 占位符文本已翻译
  • [ ] 页面刷新后语言保持不变
  • [ ] 翻译文本没有布局问题

浏览器测试

在多个浏览器中测试:

  • Chrome
  • Firefox
  • Safari
  • Edge

移动端测试

验证翻译在移动设备上正确显示。

更新现有翻译

如果您发现错误或想改进现有翻译:

  1. 编辑 web/static/locales/ 中相应的语言文件

  2. 测试您的更改

  3. 提交拉取请求,描述更改了什么以及为什么

问题

如果您对翻译有疑问:

  • 在 GitHub 上开启 issue
  • 联系维护者

感谢您帮助让 SSH 隧道管理器能够被全球更多用户使用!