资讯动态

Kubernetes Dashboard 日语国际化(ja i18n)团队指南:翻译规范、XLIFF 流程与源码级实践

发布时间:2026/9/21 16:31:30 来源:尧图企业网站定制
前端后端云原生【免费下载链接】dashboardGeneral-purpose web UI for Kubernetes clusters项目地址https://gitcode.com/gh_mirrors/da/dashboard点击查看免费下载导读本文以仓库中 modules/web/i18n/ja/README.md 为核心骨架系统介绍 Kubernetes Dashboard 日语ja国际化团队的职责划分、翻译规范、XLIFF 文件操作流程、原文修正方法以及团队协作与沟通机制并结合 modules/web/i18n/ja/messages.ja.xlf、modules/web/i18n/locale_conf.json、modules/web/src/index.config.ts 等源码与配置文件从 Angular i18n 底层机制上印证整套翻译工作流的实现原理。读完本文你将能够独立完成一份合规的日语翻译 Pull Request、正确使用yarn fix:i18n与npm run fix更新翻译文件并理解 Dashboard 国际化管线的完整链路。一、背景Dashboard 的多语言架构与日语团队定位Kubernetes Dashboard 是基于 Angular 构建的通用型 Kubernetes 集群 Web UI。它通过浏览器发送的 HTTPAccept-Language头来确定界面语言目前支持 9 种语言见 docs/common/internationalization.md语言代码备注英语默认en-西班牙语es-法语fr-德语de-日语ja-韩语ko-简体中文zh-Hans-繁体中文zh-Hant-繁体中文香港zh-Hant-HK-所有翻译数据统一存放在modules/web/i18n/目录下包含三部分配置modules/web/i18n/locale_conf.json其内容为{translations: [ de, en, es, fr, ja, ko, zh-Hans, zh-Hant, zh-Hant-HK ]}按字母序登记全部语言原文词典modules/web/i18n/messages.xlf约 1972 行trans-unit只含source元素各语言翻译文件如modules/web/i18n/ja/messages.ja.xlf约 2661 行每个trans-unit同时含source与target元素。日语团队Kubernetes Dashboard Japanese i18n Team由modules/web/i18n/ja/OWNERS文件管理当前 approvers 为 shu-mutou、atoato88reviewers 为 ziyi-xie并挂有language/ja标签。该团队独立管理i18n/ja/目录下的资源其成员同时出现在仓库根目录 OWNERS_ALIASES 的sig-ui-leads、dashboard-maintainers组中体现了 Dashboard 官方把翻译文件审核权下放给各语言社区的一贯模式参见 docs/common/internationalization.md 中Introducing new language一节。翻译团队的四类贡献日语团队将贡献划分为四类这一划分实际上与国际化管线的各个环节一一对应和訳への貢献翻译贡献编辑modules/web/i18n/ja/messages.ja.xlf并提交 Pull Request或参与评审——对应翻译环节原文修正源文修正发现英文原文有误、需要修改 html 模板时向kubernetes/dashboard仓库提出修正——对应源文环节翻訳関連ツールへの貢献翻译工具贡献当新增页面或修正源文时由 Angular i18n 相关工具自动更新messages.xlf与messages.ja.xlf改进这些工具与工作流——对应工具链环节その他の貢献其他贡献团队治理governance、与上游仓库的协调等。二、日语翻译规范全解可与仓库证据对照日语团队在长期实践中沉淀了一套相当细致的翻译规范其总原则是大致参照云厂商 Web UI 与文档的译法。以下规范并非凭空约定而是可以从翻译文件中逐一找到对应实例。2.1 用词与语体用词统一性优先正文基本使用ですます调敬体但术语表使用である调简体翻译策略优先级广泛使用的术语 尽可能日语化汉字、平假名 片假名 保留英文如不可翻译的专有名词、外部站点引文。2.2 片假名长音规则外来语片假名原则上必须加长音符ー且不设例外原文强调混乱の元なので例外は作りません-er/or系アーキテクチャー、ユーザー、セレクター-y系セキュリティー、バイナリー、ユーティリティー词中同样使用长音インターフェース这一点可以在翻译文件中得到印证Parameter → パラメーターmodules/web/i18n/ja/messages.ja.xlf中 id 为 1183601349925746054 的条目、Logs from → ログ、Ingresses → イングレス、Daemon Sets → デーモンセット等均遵循长音标注。2.3 标点与排版句读点使用「、。」不使用「」句中的「?」「!」译为全角「」「」纯装饰用途则保留半角不使用中黒・如 カスタムスクリプト而非 カスタム・スクリプト英文字母一律半角数字使用半角阿拉伯数字成语类如一部一方四捨五入除外冒号:、斜杠/、连字符-及括号一律半角强调/引用用的双引号 原则上替换为「」英数字与日语之间插入半角空格但句首、句读点紧邻处不插。2.4 假名与表记细节「ください」类表述统一为「○○を下さい」「○○してください」不用「押下ください」这类生硬说法「〜なし」「〜のため」「〜すること」一律用平假名避免「〜無し」「〜の為」「〜する事」。2.5 Dashboard 界面特有约束布局优先译文不得破坏 UI 布局。若译文过长导致左侧菜单浪费空间或表格列过宽需重新斟酌用词甚至使用省略语。典型例子カスタムリソースデフィニション 缩略为 カスタムリソース定義保留变量与标签原文含变量插值或标签时必须在译文target中整体移动对应x .../标签不可拆散。README 给出了删除确认对话框的完整示例英文源文将 3 个INTERPOLATION插值标签按顺序排列日文译文则重排为「ネームスペース {namespace} の {displayName} {name} を本当に削除しますか」标签整体搬迁体言止め动词的处置面向终端用户的说明/对话框如 Confirm译为句子「確認してください」作为按钮/菜单动作时译为体言止め「確認」。三、XLIFF 翻译文件的结构与未翻译标记机制翻译工作直接操作的是 XLIFF 1.2 格式文件modules/web/i18n/ja/messages.ja.xlf。其基本单元是trans-unit结构如下摘自该文件实际内容trans-unit id1000282742611934867 datatypehtml sourceCreate from file/source targetファイルから作成/target /trans-unitsource英文原文对应modules/web/i18n/messages.xlf中的条目id 完全一致target日语译文statenew未翻译标记。当xliffmerge从源文词典复制新条目到语言文件时会自动生成空target并带上statenew属性。翻译完成后必须删除该属性作为已翻译的标记。仓库当前文件中也存在大量statenew的待翻译条目例如trans-unit id8432216995899653457 datatypehtml source Resource Information /source target statenewリソース情報/target /trans-unit这正说明该文件是进行时的活文档随着上游新增页面如 Ingress Class Name、Endpoints、Mount Option(s)、Read Only Filesystem 等新字段xliffmerge会不断把新条目复制进来并标记为statenew等待日语团队成员翻译并移除标记。任何翻译 PR 都应检查并清理这类标记。四、翻译贡献的完整操作流程4.1 环境准备与工具链参考 DEVELOPMENT.md 的 Getting started 章节搭建运行/验证环境通读 docs/common/internationalization.md 确认翻译方法编辑modules/web/i18n/ja/messages.ja.xlf的target内容并删除已翻译条目的statenew属性。4.2 本地验证kind 集群 开发容器README 推荐的验证路径是使用 Dashboard 开发环境容器配合 kind 构建本地 Kubernetes 集群然后构建并启动 Dashboardhack/develop/run-dev-container.sh该脚本hack/develop/run-dev-container.sh会拉起 hack/develop/Dockerfile 定义的开发容器容器内通过 hack/develop/run-command.sh 与 hack/develop/gosu-command.sh 以非 root 用户执行命令。集群准备可参考 hack/scripts/start-cluster.sh 与 hack/include/kind.mkkind 集群配置见 hack/include/kind.config.yml。启动后通过浏览器访问https://localhost:4443检查翻译效果——注意这是HTTPS端点。4.3 提交与后续跟踪向kubernetes/dashboard仓库提交 Pull Request通过监控带有language/ja标签的 Pull Request 来跟进是否有新的待翻译原文。4.4 与国际化管线的衔接需要说明的是开发环境npm start不会编译本地化版本只有执行npm run build或npm run start:prod才会构建本地化产物见 docs/common/internationalization.md 的 Building localized dashboard 一节。因此验证日语界面时务必使用构建命令而不是普通 dev server。五、原文修正source fix流程当英文原文存在错误、需要修改 html 模板时走原文修正路线定位源文modules/web/i18n/ja/messages.ja.xlf中每个trans-unit的context context-typesourcefile标签记录了源文件位置修正对象是 modules/web 下的 Angular html 模板文件修改模板并验证布局修改原文后需构建、启动并在浏览器中确认——不仅日语译文显示正常英文原文显示下布局也不得破坏同步更新词典与语言文件在按 DEVELOPMENT.md 搭建的环境中git commit时会自动触发更新modules/web/i18n/messages.xlf与各语言文件也可以手动执行npm run fix显式刷新。npm run fix在 modules/web/package.json 中定义为yarn fix:i18n yarn fix:html yarn fix:scss yarn fix:ts其中fix:i18n执行ng run kubernetes-dashboard:extract-i18n-merge即 xliffmerge它会从带i18n属性的 Angular 模板中提取可翻译文本更新i18n/messages.xlf原文词典把新增条目复制进i18n/[locale]/messages.[locale].xlf并标记statenew。提交内容完整性PR 中必须同时包含修改后的 html 文件、messages.xlf以及各语言文件不能只提交 html。六、从源码印证一条翻译如何变成界面语言日语团队的翻译最终能否生效取决于整个国际化管线的配置以下仓库文件共同构成这条链路modules/web/angular.jsonL10-L48i18n.sourceLocale.code为eni18n.locales中登记了全部 8 个目标语言其中ja的配置为ja: { translation: i18n/ja/messages.ja.xlf, baseHref: }modules/web/src/index.config.tsL19-L56前端声明支持语言列表supportedLanguages日语条目为{ label: Japanese, value: ja }同时defaultLanguage: en、languageCookieName: lang定义了默认语言与语言 Cookie 名modules/web/i18n/locale_conf.json{translations: [ de, en, es, fr, ja, ko, zh-Hans, zh-Hant, zh-Hant-HK ]}控制make build产物中包含哪些语言版本。也就是说**语言文件messages.ja.xlf→ 构建配置angular.json→ 运行时语言表index.config.ts→ 构建产物locale_conf.json**四者缺一不可。日语团队修改翻译文件后正是通过这条管线将译文编译进日语版本的 Dashboard 中。若未来要新增一种语言按 docs/common/internationalization.md 的Introducing new language一节需在以上四处逐一登记并为本语言目录添加 OWNERS 文件含labels: - language/[locale]便于跟踪带该标签的 PR。七、翻译工具与团队治理7.1 协作工具的选型标准日语团队正在寻找适合团队规模的协作翻译工具其筛选标准相当具体可作为评估任何 i18n 协作平台的需求清单支持 XLIFF 格式文件提供 WebUI、支持多人协同编辑可显示/编辑原文中的变量占位 html 标签因为x .../插值标签必须整体移动不能损坏适合 Kubernetes Dashboard 乃至 Kubernetes 社区规模使用。7.2 团队治理与其他贡献持续改进翻译方针、整备翻译术语表团队目录下的资源更新由modules/web/i18n/ja/OWNERS中的成员以及根目录OWNERS_ALIASES中的相关组批准日常管理基本由 OWNERS 成员自治完成。八、沟通与 Issue 规范讨论通过 GitHub Issue 进行目前没有日语团队专属 Slack 频道或邮件列表但 OWNERS 中列出的贡献者可在 Kubernetes Slack 工作区的#sig-ui频道找到Issue 标题必须用英语书写例如Which translation is appropriate for Container, コンテナ or コンテナー ?属于团队内部讨论事项如译法争议的 Issue 加language/ja标签可用日语讨论涉及原文修正、工具改进等需要上游仓库成员参与的事项不加标签且必须用英语讨论因为上游成员也会参与。九、实操速查一次合规的日语翻译贡献 Checklist搭建环境按 DEVELOPMENT.md 完成开发环境用hack/develop/run-dev-container.sh启动开发容器并准备 kind 集群打开modules/web/i18n/ja/messages.ja.xlf按第二节的翻译规范填写/修正target内容删除已翻译条目的statenew属性这是已翻译的官方标记机制变量与标签整体移动切勿拆散x .../插值节点执行npm run build或npm run start:prod构建本地化版本dev server 不编译本地化浏览器访问https://localhost:4443验证日语界面与布局修改原文时同步更新 html 模板与messages.xlf、各语言文件可用npm run fix显式刷新提交包含翻译文件必要时含 html 与词典文件的 PRIssue 标题用英文团队内部争议加language/ja标签。十、参考资源日语团队章程modules/web/i18n/ja/README.md日语翻译文件modules/web/i18n/ja/messages.ja.xlf原文词典modules/web/i18n/messages.xlf语言配置modules/web/i18n/locale_conf.json国际化总览docs/common/internationalization.md语言表与默认语言modules/web/src/index.config.ts构建语言配置modules/web/angular.jsoni18n 相关脚本modules/web/package.json开发环境容器hack/develop/run-dev-container.sh、hack/develop/Dockerfile开发指南DEVELOPMENT.md赞分享前端后端云原生【免费下载链接】dashboardGeneral-purpose web UI for Kubernetes clusters项目地址https://gitcode.com/gh_mirrors/da/dashboard点击查看免费下载相关推荐Kubernetes Dashboard 国际化i18n完整指南语言检测、翻译流程与新语言接入Kubernetes Dashboard 国际化i18n完整指南语言检测、翻译流程与新语言接入 本指南以 Kubernetes Dashboard 仓库中前端后端云原生Apache Airflow UI 日语本地化指南ja 翻译 Agent Skill 的术语规范与 i18n 实现机制Apache Airflow UI 日语本地化指南ja 翻译 Agent Skill 的术语规范与 i18n 实现机制 本文解析 Apache Airflow后端任务调度工作流自动化数据编排批处理数据工程流程编排3大技术突破OpenHantek如何为开源示波器软件定义新标准3大技术突破OpenHantek如何为开源示波器软件定义新标准 你是否曾经面对昂贵的专业示波器软件而感到无力或者在使用闭源硬件时受限于厂商提供的有限功能O桌面应用智能硬件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价