尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Apache Airflow 印地语(hi)UI 翻译规范:术语表、风格原则与源码实现对照

Apache Airflow 印地语(hi)UI 翻译规范:术语表、风格原则与源码实现对照 Apache Airflow 印地语hiUI 翻译规范术语表、风格原则与源码实现对照【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow本文以 Airflow 仓库中印地语Hindihi翻译 Agent Skill 规范文件 hi.md 为主体完整解读其中的语调风格、保留英语术语清单、20 项推荐术语对照表和五条翻译原则并结合 UI 国际化配置 config.ts、breeze 翻译校验工具 ui_commands.py 及已合并的印地语翻译文件airflow-core/src/airflow/ui/public/i18n/locales/hi/进行源码级佐证。读完后你将掌握Airflow UI 国际化体系中文案术语规范如何制定、如何落地到 JSON 命名空间文件、以及如何用 breeze 命令验证翻译完整性。一、定位hi 语言规范在 Airflow 翻译体系中的角色Airflow 的 UI 翻译工作由 SKILL.md 定义的翻译技能统一驱动。该文件规定了翻译任务的两种路径——新增语言Adding a Translation与更新已有语言Updating an Existing Translation——并给出全局翻译规则哪些术语必须保留英文如Airflow、Dag、XCom、Provider、REST API、JSON、ID、PID、UTC、Schema、i18next 的{{variable}}插值占位符不可翻译但可调整顺序、复数后缀_one、_other及语言需要的_zero/_two/_few/_many、热键值不翻译等。在 SKILL.md 的“Locale-Specific Guidelines语言特定规范”表格中hi指向本文章解读的文件 locales/hi.md。这类语言特定规范包含三个部分术语表glossary、语调规则tone rules与格式约定formatting conventions。SKILL.md 明确规定优先级规则“若语言特定规范与本文档的全局规则冲突遵循语言特定规范。”因此 hi.md 中的术语表和风格要求是印地语翻译的最高依据。从源码结构看hi已是正式受支持的语言前端语言注册表 config.ts 的supportedLanguages数组中包含{ code: hi, name: हिन्दी }该文件的convertDetectedLanguage函数config.ts会把浏览器区域码如hi-IN归一化到基础语言码hi保证印度用户访问时 UI 正确加载印地语文案翻译文件位于airflow-core/src/airflow/ui/public/i18n/locales/hi/包含 10 个与英文 locale 对应的命名空间 JSONadmin.json、assets.json、browse.json、common.json、components.json、dag.json、dags.json、dashboard.json、hitl.json、tasks.json。二、语调与风格Tone and Stylehi.md 对印地语文案的风格规定了三条硬性要求使用正式、尊敬的语言formal and respectful language以 “आप” 称呼用户——印地语有正式的“आप”与随意的“तुम/तू”之分UI 面向所有专业用户必须使用正式称谓句子结构清晰简洁优先清晰易懂的短句。这一风格在已合并的翻译文件中可以印证例如 hi/tasks.json 中selectOperator: ऑपरेटर चुनें请选择 Operator、searchTasks: टैस्क्स खोजें搜索任务均为祈使式正式表达。同目录下的 hi/README.md 也用印地语复述了这一决策“उपयोगकर्ता को आप कहकर संबोधित किया गया है और विनम्र भाषा का प्रयोग किया गया है”用户以“आप”称呼并使用恭敬的语言。三、必须保留英语的术语Keep in Englishhi.md 明确列出三类在印地语翻译中不得翻译的术语术语保留原因XComAirflow 特有机制名跨任务通信翻译会造成歧义ID通用技术缩写Log LevelsCRITICAL、ERROR、WARNING、INFO、DEBUG日志级别在日志输出中以英文原样出现翻译会与实际日志脱节这与 SKILL.md 的全局“保留英文术语”规则一致全局表还包括Airflow、Dag、Provider、REST API、JSON、PID、UTC、Schema。值得注意的是Airflow 的书写惯例是Dag而非DAG——这一约定在 dag.json 等文件中以音译डैग体现。四、推荐术语表Preferred Translations全解hi.md 的核心资产是一张 20 行的“英文术语 → 印地语”对照表。它是未来所有印地语翻译必须复用的既定术语。完整继承如下英文术语印地语DagडैगDag Runडैग रनTaskकार्यTask Instanceटास्क इंस्टेंसAssetएसेटAsset Eventएसेट इवेंटConfigurationविन्यासConnectionsकनेक्शनOperatorऑपरेटरVariableवेरिएबलPluginsप्लगइनPoolsपूलProviderप्रोवाइडरTriggerट्रिगरBackfillबैकफ़िलBundleबंडलScheduledनिर्धारितMap Indexमैप इंडेक्सTry Numberप्रयास संख्याKeyकुंजीHomeमुख्य पृष्ठ这些术语并非随意选定而是遵循“纯印地语 vs 音译”的权衡hi/README.md 对每项给出了决策理由音译transliterationDag→डैग、Task→टास्क、Asset→एसेट避免与“数据资产/财产”歧义、Trigger→ट्रिगर、Variable→वेरिएबल——这些都是 Airflow 特有概念或行业通用技术词音译对印地语读者更直观纯印地语词Configuration→विन्यास而非音译“कॉन्फ़िगरेशन”、Home→मुख्य पृष्ठ、Scheduled→निर्धारित、Try Number→प्रयास संख्या——这些是常见 UI 词汇用纯印地语词表达更专业细节取舍Key用कुंजी而非की后者是占有格介词会造成混淆Asset Event用एसेट इवेंट而非“घटना”“事件”因为技术语境下 event 指系统事件Backfill、Bundle、Map Index保持音译。一个值得注意的一致性事实hi.md 术语表中Task的推荐译法为कार्य而已合并的翻译文件实际采用的是音译टास्क见 hi/README.md 中 “Task→टास्क” 的说明以及 hi/common.json 中的maxActiveTasks: अधिकतम सक्रिय टास्क्स。SKILL.md 明确规定“若某术语已有既定译法必须原样复用”因此实际 JSON 文件是运行时一致性的最终来源维护翻译时应以 locale 目录下既有 JSON 为准。五、五条翻译原则Translation Principleshi.md 给出的五条原则构成了印地语翻译的决策框架正式的 UI 语言Formal UI language保持专业软件所需的礼貌与清晰常见 UI 词优先纯印地语Pure Hindi for common UI words在清晰度足够时用如विन्यास配置这类纯印地语词而非音译技术概念用音译Transliteration for technical conceptsAirflow 特有术语一律音译如डैग、टास्क避免歧义Avoid ambiguity若直译可能让用户困惑优先选择音译。例如Asset直译为“资产/财产”会与财务含义混淆故取एसेट语境感知Context awareness翻译要匹配技术含义而非词典字面义。原则 2 与 4 看似矛盾一个要求纯印地语、一个要求音译实际分工清晰判断标准是词汇的“领域属性”——通用界面词配置、首页、调度走原则 2Airflow 领域词Dag、Asset、Backfill、Trigger走原则 3/4。hi/common.json 开头几行即体现该分工Config: विन्यास纯印地语与Connections: कनेक्शन、Providers: प्रोवाइडर音译并存于同一 admin 命名空间。六、状态词的特殊约定states.none与states.no_statushi.md 的 Notes 一节规定了两组极易混淆的 UI 状态文案states.none→“कुछ नहीं”意为“什么都没有”states.no_status→“कोई स्थिति नहीं”意为“没有状态”这一区分在已合并的翻译文件中被精确落实hi/common.json 中no_status: कोई स्थिति नहीं, none: कुछ नहीं两者的语义差异在于none表示“空值/无内容”而no_status表示“实体存在但未设置状态”。若两者都译成“没有”用户将无法区分任务实例的这两种情形。该约定同样被 hi/README.md 记录为“特殊注释”。七、复数规则与源码实现hi 只需_one/_otherAirflow UI 使用 i18next 处理复数SKILL.md 要求为每种语言提供其所需的复数后缀集合。印地语的复数规则在后端校验工具 ui_commands.py 的PLURAL_SUFFIXES字典中定义MOST_COMMON_PLURAL_SUFFIXES [_one, _other] PLURAL_SUFFIXES { ar: [_zero, _one, _two, _few, _many, _other], # 阿拉伯语 6 种 pl: [_one, _few, _many, _other], # 波兰语 4 种 ... hi: MOST_COMMON_PLURAL_SUFFIXES, # 印地语只需 _one 与 _other ... }从源码结构看PLURAL_SUFFIXES决定 breeze 校验工具如何计算每个 locale 的“必需键集”——缺少任何一个后缀的键都会被判为 missing。印地语只需两种复数形式这直接反映在 hi/common.json 的实际键名中asset_one: एसेट, asset_other: एसेट्स, backfill_one: बैकफ़िल, backfill_other: बैकफ़िल्स, dag_one: डैग, dag_other: डैग्स, assetEvent_one: एसेट इवेंट, assetEvent_other: एसेट इवेंट्स可以看到单数/复数通过词尾-s音译变化区分如एसेट/एसेट्स符合 i18next 的{{count}}插值机制。八、翻译文件的结构、加载链路与完整性校验文件结构。所有翻译文件都是 JSON位于airflow-core/src/airflow/ui/public/i18n/locales/locale/每个 locale 目录包含与英文默认 localeen/镜像的命名空间文件。前端初始化时config.ts通过 i18next-http-backend 按${basePath}/static/i18n/locales/{{lng}}/{{ns}}.json?vversion的路径拉取对应语言的 JSON并以 Airflow 版本号做缓存破坏cache buster保证新键随版本发布即时生效。校验流程。按照 SKILL.md 的工作流完成或修改印地语翻译后应执行# 1. 检查完整性期望输出0 missing、0 TODO、0 unused、100% coverage breeze ui check-translation-completeness --language hi # 2. 如有缺失键生成带 TODO: translate: 桩的脚手架 breeze ui check-translation-completeness --language hi --add-missing # 3. 如有冗余键英文 locale 已删除的键、或多余的复数后缀移除 breeze ui check-translation-completeness --language hi --remove-unused # 4. 运行 pre-commit 钩子修复格式、许可证与 lint 问题 prek run --from-ref main --hook-stage pre-commit其中--add-missing生成的桩形如allRuns: TODO: translate: All Runs翻译时需连同前缀一并替换为目标文案--remove-unused移除的是“英文 locale 中不存在”或“该语言不需要的复数后缀”键——对hi而言若出现_few之类的键即属冗余。当前完成度。hi/README.md 记录该 locale 的翻译状态为100% 完整638/638 条翻译、9 个 JSON 文件、所有 linter 检查通过、无缺失键——hi.md 规范正是“从既有印地语 locale 指南中提炼而来”用于保障未来翻译迭代的一致性。九、小结维护印地语翻译的三条实操依据术语以既有 JSON 为准翻译新键时先读airflow-core/src/airflow/ui/public/i18n/locales/hi/下已用术语并原样复用其次参照 hi.md 术语表二者冲突时以 locale 实际文件为准风格三不变正式语气、以 “आप” 称呼用户、句子简短清晰XCom、ID、日志级别永不翻译交付前跑校验breeze ui check-translation-completeness --language hi必须达到 0 missing / 0 TODO / 0 unused / 100% coverage并用prek run --from-ref main --hook-stage pre-commit收尾。掌握以上内容即可在 Airflow 仓库中独立完成印地语 UI 翻译的新增键、修订与一致性维护工作。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表