首页
/ Apache Airflow 希腊语(el)UI 翻译规范:术语表、语法规则与实现细节

Apache Airflow 希腊语(el)UI 翻译规范:术语表、语法规则与实现细节

2026-09-05 14:42:35作者:伍希望

本文基于仓库内的 Airflow UI 希腊语(el)翻译 Agent 技能文件 el.md,系统讲解 Apache Airflow 新 UI 国际化(i18n)体系中希腊语翻译的完整规范:哪些 Airflow 核心术语必须保留英文、哪些术语有既定希腊语译法、任务状态与日志级别如何映射,以及希腊语特有的语法要求(性数、所有格、变音符、问号等)如何在 i18next 翻译 JSON 中落地。读完后,你将能够为 Airflow UI 新增或维护希腊语翻译,并保证与现有译文 100% 一致。

1. 希腊语在 Airflow UI 国际化体系中的位置

Airflow 的 UI 翻译采用 i18next 方案,翻译文件以 namespace 为单位的 JSON 文件存放于 airflow-core/src/airflow/ui/public/i18n/locales/<locale>/ 目录下。希腊语对应的 locale code 为 el,现有 10 个 namespace 文件与英语 locale(en/,默认语言)一一对应:

airflow-core/src/airflow/ui/public/i18n/locales/el/
├── admin.json
├── assets.json
├── browse.json
├── common.json
├── components.json
├── dag.json
├── dags.json
├── dashboard.json
├── hitl.json
└── tasks.json

SKILL.md 中列出的 18 个受支持 locale 均配有 locale-specific guideline 文件,希腊语对应 locales/el.md(即本文主体)。该文件的定位是:locale 特定指南——当它与全局翻译规则冲突时,以它为准。

从仓库源码可以确认希腊语已被完整接入 UI:

  • config.tssupportedLanguages 数组中包含 { code: "el", name: "Ελληνικά" }
  • ui_commands.pyPLURAL_SUFFIXES 字典中 "el" 映射到 MOST_COMMON_PLURAL_SUFFIXES = ["_one", "_other"],即希腊语只需提供单数与复数两种形式——这一点与本文 §5.3 的复数规则直接对应。

2. 必须保留英文的核心术语(§1)

希腊语指南的第一条硬性规则:以下 Airflow 核心术语必须保持英文原样(区分大小写),不得翻译

术语 说明
Dag / Dags Airflow 约定,永远写作 "Dag",禁止写 "DAG"
XCom / XComs Airflow 跨任务通信机制
Backfill / Backfills 历史数据回补,作为可识别的技术术语保留
Pool / Pools 资源约束机制
Map Index 任务映射索引(注意:希腊语 UI 中有对应的希腊语译法 "Δείκτης Χάρτη",见 §3)
PID Unix 进程标识符
ID 通用缩写
UTC 时间标准
JSON 标准技术格式名
REST API 标准技术术语
URI 统一资源标识符
Gantt 图表类型名
Catchup Dag 的 catchup 调度设置
日志级别 INFODEBUG 保留英文(而 CRITICALERRORWARNING 需翻译,见 §4)

这条规则与全局术语表(SKILL.md 中的 "Terms Kept in English" 一节的 Dag/XCom/Provider/REST API/JSON/ID/PID/UTC/Schema)叠加生效:希腊语指南在 Dag 上进一步收紧了大小写约束(不得写 "DAG")。

common.json 中可以直接验证该规则的实际落地:"Pools": "Pools""dag_one": "Dag""backfill_one": "Backfill" 均保留了英文原文。

3. 标准术语译表(§2)

以下是 Airflow 专有术语的既定希腊语译法,必须一致使用

英文术语 希腊语译法 备注
Task Εργασία 复数:"Εργασίες"
Task Instance Εκτέλεση Εργασίας 复数:"Εκτελέσεις Εργασίας"
Task Group Ομάδα Εργασιών 所有格构词
Dag Run Εκτέλεση Dag 复数:"Εκτελέσεις Dag"
Run Εκτέλεση 复数:"Εκτελέσεις";可独立使用
Trigger(名词) Ενεργοποίηση
Trigger Rule Κανόνας Ενεργοποίησης
Triggerer Ενεργοποιητής 组件名
Scheduler Προγραμματιστής
Schedule(名词) Πρόγραμμα
Executor Εκτελεστής
Connection Σύνδεση 复数:"Συνδέσεις"
Variable Μεταβλητή 复数:"Μεταβλητές"
Audit Log Καταγραφή Ελέγχου 所有格构词
Log Καταγραφή
State Κατάσταση
Queue(名词) Ουρά 例如 "queued" 译为 "Σε Ουρά"
Config / Configuration Ρυθμίσεις
Operator Τελεστής 复数:"Τελεστές"
Asset Οντότητα 复数:"Οντότητες"——希腊语特有处理,做了翻译
Asset Event Συμβάν Οντότητας 复数:"Συμβάντα Οντοτήτων"
Plugin Πρόσθετο 复数:"Πρόσθετα"
Provider Πάροχος 复数:"Πάροχοι"
Dag Processor Επεξεργαστής Dag 组件名
Heartbeat Παλμός
Map Index Δείκτης Χάρτη
Upstream(依赖关系) Ανάντη 用于状态,如 "Αποτυχία Ανάντη"
Upstream(动作) Άνοδος 用于 clear-task 操作选项
Downstream(动作) Κάθοδος 用于 clear-task 操作选项
Job(进程) Διεργασία
Slot Θέση 复数:"Θέσεις";如 "Θέσεις Pool"

Asset 的希腊语特有处理

指南特别强调:与法语、加泰罗尼亚语等其他 locale("Asset" 保留英文)不同,希腊语将 "Asset" 翻译为 Οντότητα("实体"),且所有希腊语翻译中必须一致使用该译法。这一点在真实翻译文件中得到印证——assets.jsoncommon.json 中大量使用 "Οντότητα/Οντότητες":

"asset_one": "Οντότητα",
"asset_other": "Οντότητες",
"assetEvent_one": "Συμβάν Οντότητας",
"assetEvent_other": "Συμβάντα Οντοτήτων"

4. 任务/运行状态与日志级别映射(§3)

4.1 状态(States)

英文状态 希腊语译法
running Εκτελείται
failed Αποτυχία
success Επιτυχία
queued Σε Ουρά
scheduled Προγραμματισμένο
skipped Παραλείφθηκε
deferred Αναβληθέν
removed Αφαιρέθηκε
restarting Επανεκκίνηση
up_for_retry Προς Επανάληψη
up_for_reschedule Προς Επαναπρογραμματισμό
upstream_failed Αποτυχία Ανάντη
no_status / none Χωρίς Κατάσταση
planned Προγραμματισμένο

4.2 日志级别(Log Levels)

希腊语对日志级别采取混合策略——高级别翻译为希腊语,低级别保留英文:

英文级别 希腊语译法
CRITICAL ΚΡΙΣΙΜΟ
ERROR ΣΦΑΛΜΑ
WARNING ΠΡΟΕΙΔΟΠΟΙΗΣΗ
INFO INFO(保留)
DEBUG DEBUG(保留)

这与 §2 术语表中"日志级别 INFODEBUG 保留英文"的规定相互呼应。

5. 希腊语特有语言规范(§4)

这是本指南区别于其他 locale 的核心部分——希腊语的形态学要求在 UI 翻译中必须逐条落实。

5.1 语域与语气

  • 一律使用正式体("εσείς/σας" 第二人称复数/尊称形式),禁止使用非正式的 "εσύ/σου";
  • 使用中性、专业的语气,适合软件 UI;
  • UI 字符串保持简洁——它们出现在按钮、标签和 tooltip 中。

5.2 名词的性(Gender)

希腊语名词分阳性(αρσενικό)、阴性(θηλυκό)、中性(ουδέτερο),形容词与冠词须与之匹配。指南给出了核心术语的定性:

术语 示例
Dag 中性 "το Dag"、"ένα Dag"
Εργασία(Task) 阴性 "η εργασία"、"μια εργασία"
Εκτέλεση(Run/Execution) 阴性 "η εκτέλεση"、"μια εκτέλεση"
Σύνδεση(Connection) 阴性 "η σύνδεση"
Μεταβλητή(Variable) 阴性 "η μεταβλητή"
Οντότητα(Asset) 阴性 "η οντότητα"
Καταγραφή(Log) 阴性 "η καταγραφή"
Κατάσταση(State) 阴性 "η κατάσταση"

值得注意的技术细节:借入的英文词 "Dag" 在希腊语中被约定为中性名词(το Dag),而本土译出的概念名词(Εργασία、Εκτέλεση 等)几乎全部为阴性。翻译含冠词的短语时必须按此配性,否则会产生语法错误。

5.3 复数形式(i18next _one / _other 后缀)

希腊语使用 i18next 的 _one_other 两个复数后缀(与 ui_commands.py"el": MOST_COMMON_PLURAL_SUFFIXES 的配置一致),必须使用术语表中的既定复数形式:

"task_one": "Εργασία",
"task_other": "Εργασίες"
"dagRun_one": "Εκτέλεση Dag",
"dagRun_other": "Εκτελέσεις Dag"
"asset_one": "Οντότητα",
"asset_other": "Οντότητες"

每个复数 key 都必须同时提供 _one_other 两个变体,缺一不可。

5.4 所有格(Genitive Case)

希腊语用所有格表达 "of X" 关系,这对应英语中"名词作定语"的复合术语。常见模式示例:

"dagRunId":      "ID Εκτέλεσης Dag",   // "Dag 运行的 ID"
"taskGroup":     "Ομάδα Εργασιών",      // "任务组"
"auditLog":      "Καταγραφή Ελέγχου",   // "审计日志"
"assetEvent_one":"Συμβάν Οντότητας",    // "资产事件"
"triggerRule":   "Κανόνας Ενεργοποίησης" // "触发规则"

可以看到所有格通常体现为名词词尾变化(Εργασιών、Οντότητας),而非增加 "的" 字。

5.5 大小写

  • 描述性文字与长字符串使用句首大写(sentence case);
  • 标题、标签、按钮文本采用类标题式大写(与既有希腊语译文风格保持一致);
  • 专有技术词始终首字母大写:"Dag"、"XCom"、"Backfill"、"Pool" 等。

5.6 变音符(Diacritics)——tonos

希腊语使用重音符号 tonos(΄)。必须始终保留重音字符——缺失变音符会改变词义或导致文本不可读。禁止写出 "Εκτελεση"、"Συνδεση"、"Εργασια"、"Οντοτητα"、"Καταγραφη"、"Κατασταση" 等无重音形式,必须使用 §3 术语表中带重音的标准形式(Εκτέλεση、Σύνδεση、Εργασία……)。

5.7 问号:erotimatiko(;)

希腊语问号是 erotimatiko;),外观类似分号。翻译英文句子的 ? 时必须使用 ;

"confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε το {{resourceName}}; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."

5.8 占位符与变量

  • 所有 {{variable}} 占位符必须原样保留,占位符名称永不翻译;
  • 需要时可调整语序以符合自然的希腊语句法,但变量名大小写必须严格保持不变(如 {{dagDisplayName}})。

6. 按钮动作动词标准译法(§5)

常用动作按钮的既定译法如下,翻译按钮类 key 时应直接复用:

Add     → "Προσθήκη"
Delete  → "Διαγραφή"
Edit    → "Επεξεργασία"
Save    → "Αποθήκευση"
Reset   → "Επαναφορά"
Cancel  → "Ακύρωση"
Confirm → "Επιβεβαίωση"
Clear   → "Εκκαθάριση"
Search  → "Αναζήτηση"
Copy    → "Αντιγραφή"

这些译法在 tasks.json 等现有文件中均可验证,例如 "searchTasks": "Αναζήτηση εργασιών"(Search + Tasks 组合)、"selectOperator": "Επιλογή τελεστή"(复用了术语表中的 Τελεστής)。

7. Agent 工作守则:DO / DON'T(§6)

指南最后以清单形式给出 AI 翻译 Agent 的行为约束。

必须做(DO):

  • 全程使用正式希腊语("εσείς/σας" 形式);
  • 保留所有 i18next 占位符:{{count}}{{dagName}}{{type}} 等;
  • 对 "of X" 结构正确应用希腊语所有格;
  • 为每个复数 key 提供 _one_other 两个后缀;
  • 将 "Asset" 译为 "Οντότητα"(希腊语特有,不保留英文);
  • 翻译日志级别:CRITICAL→"ΚΡΙΣΙΜΟ"、ERROR→"ΣΦΑΛΜΑ"、WARNING→"ΠΡΟΕΙΔΟΠΟΙΗΣΗ";
  • 所有希腊语单词保留 tonos 重音;
  • 希腊语句中使用 ;(erotimatiko)作为问号。

禁止做(DON'T):

  • 写 "DAG"——必须用 "Dag";
  • 翻译 XComBackfillPoolIDJSONREST APIUTCPID
  • 翻译 {{variable}} 占位符名称;
  • 丢失希腊语变音符(例如绝不写 "Εκτελεση" 替代 "Εκτέλεση");
  • 使用非正式的 "εσύ" 形式;
  • 翻译 "INFO" 或 "DEBUG" 日志级别标签;
  • 在希腊语句中使用英文 ? 作为问号。

8. 翻译工作流:与 Breeze 校验命令的衔接

el.md 是"语言规则层",实际翻译作业还要配合 SKILL.md 定义的工程流程:

  1. 读取术语基准:翻译前先阅读现有 locale 文件 airflow-core/src/airflow/ui/public/i18n/locales/el/(el.md §5 明确将其列为权威术语表)。已存在的译法必须原样复用;未翻译过的术语参照 en/ 源文件并按本文规则处理。

  2. 补齐缺失 key

    breeze ui check-translation-completeness --language el
    breeze ui check-translation-completeness --language el --add-missing
    

    该命令会把英文 namespace 文件脚手架到 el/ 目录,每个 key 填充 TODO: translate: <英文原文> 占位符。

  3. 清理多余 key(英文 locale 中不存在、或该语言不需要的复数后缀):

    breeze ui check-translation-completeness --language el --remove-unused
    
  4. 翻译后验证:再次运行 completeness 检查,输出表应显示 0 missing、0 TODOs、0 unused、100% 覆盖率;随后运行 pre-commit 钩子(prek run --from-ref main --hook-stage pre-commit)修复格式、license 与 lint 问题。

从源码结构看,--add-missing / --remove-unused 的复数后缀判断正是依赖 ui_commands.pyPLURAL_SUFFIXES"el": ["_one", "_other"] 的登记——如果某个 locale 目录里出现 _few/_many 等希腊语不需要的后缀,就会被识别为 unused key 而清除。

9. 要点回顾

  • 希腊语(el)译文必须与 airflow-core/src/airflow/ui/public/i18n/locales/el/ 下 10 个 namespace 文件的既有术语 100% 一致,现有 JSON 文件就是权威术语表;
  • Dag(禁止 "DAG")、XComBackfillPool 等 14 类术语保留英文;而 INFO/DEBUG 之外,CRITICAL/ERROR/WARNING 须译为希腊语;
  • "Asset" 在希腊语中是少数派处理:译为 "Οντότητα" 而非保留英文,与法语等 locale 相反;
  • 语法上须落实:正式语气、名词配性(Dag 为中性)、_one/_other 双复数、所有格构词、tonos 重音、erotimatiko 问号 ;
  • 所有 {{placeholder}} 原样保留,只允许调序、不允许改名单元或大小写;
  • 工程上以 breeze ui check-translation-completeness --language el 系列命令闭环校验,PLURAL_SUFFIXES 配置保证复数后缀与语言规则一致。

遵循以上规范,即可在 Airflow UI 中产出与既有译文风格、术语、语法完全一致的希腊语翻译。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
588
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
906
1.83 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
891
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.53 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.34 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
987
506
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384