国际化开发

您创建的所有文件都应使用 UTF-8 编码。

Harbor 门户有多种翻译版本。请参阅可用的翻译文件以获取可用语言的完整列表。

Harbor 仅正式支持英语和中文翻译,并且每个版本都会验证这两种语言。如果您计划使用其他翻译,建议您在实施之前验证翻译对于您的 Harbor 版本是否正确。

使用以下步骤为 Harbor 门户添加新语言的翻译。

  1. src/portal/src/i18n/lang 文件夹中,将 json 文件 en-us-lang.json 复制到一个新文件,并将其重命名为 <language>-<locale>-lang.json

    该文件包含一个 JSON 对象,其中包括 UI 字符串的所有键值对

    {
      "APP_TITLE": {
        "VMW_HARBOR": "Harbor",
        "HARBOR": "Harbor",
        // ...
      },
      // ...
    }
    

    在文件 <language>-<locale>-lang.json 中,将所有值翻译成您的语言。不要更改任何键。

  2. src/portal/src/app/shared/entities/shared.const.ts 中将该语言添加到受支持语言的集合中

    export const LANGUAGES = {
        'en-us': ['English', locale_en],
        'zh-cn': ['中文简体', locale_zh_CN],
        '<language>-<locale>': ['<DISPLAY_NAME>', '<LOCALE_DATA>'],
    } as const;
    

对于 LOCALE_DATA,您需要正确导入它

import locale_en 
  from '@angular/common/locales/en';
import locale_zh_CN 
  from '@angular/common/locales/zh-Hans';
  1. 接下来,请参阅从源代码构建 Harbor 以重建并重启 Harbor。

为 Harbor 贡献本地化

如果您想将您的本地化文件贡献给 Harbor 项目,请提交包含上述说明更改的拉取请求。请尽力确保您的翻译正确且易于该语言使用者理解。

为翻译 PR 寻找审阅者是尽力而为,维护人员可能无法审阅拉取请求,因为他们不会说或读您的贡献语言。如果您认识可以帮助审阅拉取请求的其他社区成员,请在打开 PR 时标记他们。您还应该计划参加社区会议,以提高对您的拉取请求的认识,并请求社区帮助审阅。

即使我们无法找到人来审阅您的拉取请求中的翻译,您的贡献仍然可能被接受,而无需额外的审阅。