You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2026/04/21 15:28:48 UTC
(airflow) branch v3-2-test updated: [v3-2-test] Define translation agent skill guidelines for Hebrew (he) locale (#65122) (#65596)
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-2-test by this push:
new 9dd62450533 [v3-2-test] Define translation agent skill guidelines for Hebrew (he) locale (#65122) (#65596)
9dd62450533 is described below
commit 9dd62450533859f0d39c7f5f87a30560ac8de581
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Tue Apr 21 17:28:41 2026 +0200
[v3-2-test] Define translation agent skill guidelines for Hebrew (he) locale (#65122) (#65596)
(cherry picked from commit 7e01004596a98bfc3bd7a45328d68ad0ef06923a)
Co-authored-by: Ali Asghar <98...@users.noreply.github.com>
---
.github/skills/airflow-translations/locales/he.md | 206 ++++++++++++++++++++++
1 file changed, 206 insertions(+)
diff --git a/.github/skills/airflow-translations/locales/he.md b/.github/skills/airflow-translations/locales/he.md
new file mode 100644
index 00000000000..385d0f5c0de
--- /dev/null
+++ b/.github/skills/airflow-translations/locales/he.md
@@ -0,0 +1,206 @@
+<!-- SPDX-License-Identifier: Apache-2.0
+ https://www.apache.org/licenses/LICENSE-2.0 -->
+
+# Hebrew (he) Translation Agent Skill
+
+**Locale code:** `he`
+**Preferred variant:** Modern Hebrew (he), consistent with existing translations in `airflow-core/src/airflow/ui/public/i18n/locales/he/`
+
+This file contains locale-specific guidelines so AI translation agents produce
+new Hebrew strings that stay fully consistent with the existing translations.
+
+## 1. Core Airflow Terminology
+
+### Global Airflow terms (never translate)
+
+These terms are defined as untranslatable across **all** Airflow locales.
+Do not translate them regardless of language:
+
+- `Airflow` — Product name
+- `Dag` / `Dags` — Airflow concept; never write "DAG"
+- `XCom` / `XComs` — Airflow cross-communication mechanism
+- `UTC` — Time standard
+- `JSON` — Standard technical format name
+- `REST API` — Standard technical term
+- `Unix` — Operating system name
+- Log levels: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`
+
+### Translated by convention (Hebrew-specific)
+
+The existing Hebrew translations translate most Airflow terms into native Hebrew.
+These established translations **must be used consistently**:
+
+- `Asset` / `Assets` → `נכס` / `נכסים`
+- `Backfill` → `השלמה למפרע` / `השלמות למפרע`
+- `Plugin` / `Plugins` → `תוסף` / `תוספים`
+- `Pool` / `Pools` → `מאגר משאבים`
+- `Provider` / `Providers` → `חבילות עזר`
+- `Trigger` / `Triggerer` → `מפעיל` (component noun)
+- `Executor` → `מבצע`
+- `Heartbeat` → `עדכון חיים` (e.g., "עדכון חיים אחרון" for "Latest Heartbeat")
+
+## 2. Standard Translations
+
+| English Term | Hebrew Translation | Notes |
+| --------------------- | ----------------------------- | ---------------------------------------------- |
+| Task | משימה | |
+| Task Instance | מופע משימה | |
+| Task Group | קבוצת משימות | |
+| Dag Run | הרצת Dag | |
+| Trigger (verb) | הפעלה | "מופעל על-ידי" for "Triggered by" |
+| Trigger Rule | כלל הפעלה | |
+| Scheduler | מתזמן | |
+| Schedule (noun) | תזמון | |
+| Operator | אופרטור | |
+| Connection | חיבור | |
+| Variable | משתנה | |
+| Configuration | הגדרות | |
+| Audit Log | יומן ביקורת | |
+| State | מצב | |
+| Queue (noun) | בתור | "תור" for "queued" |
+| Duration | משך זמן | |
+| Owner | בעלים | |
+| Tags | תגיות | |
+| Description | תיאור | |
+| Documentation | תיעוד | |
+| Timezone | אזור זמן | |
+| Dark Mode | מצב כהה | |
+| Light Mode | מצב בהיר | |
+| Asset Event | אירוע נכס | |
+| Dag Processor | מעבד Dag | |
+| Try Number | מספר נסיון | |
+
+## 3. Task/Run States
+
+| English State | Hebrew Translation |
+| ------------------- | ----------------------------- |
+| running | בריצה |
+| failed | נכשלו |
+| success | הצליחו |
+| queued | בתור |
+| scheduled | בתזמון |
+| skipped | דולגו |
+| deferred | בהשהייה |
+| removed | הוסרו |
+| restarting | בהפעלה מחדש |
+| up_for_retry | בהמתנה לניסיון חוזר |
+| up_for_reschedule | בהמתנה לתזמון מחדש |
+| upstream_failed | משימות קודמות נכשלו |
+| no_status / none | ללא סטטוס |
+| planned | בתכנון |
+
+## 4. Hebrew-Specific Guidelines
+
+### Tone and Register
+
+- Use a **neutral, professional Hebrew** tone suitable for technical software UIs.
+- The existing translations use masculine forms for imperatives and general references. Follow this established convention for consistency.
+- Keep UI strings concise — they appear in buttons, labels, and tooltips.
+
+### Right-to-Left (RTL) Considerations
+
+- Hebrew is an RTL language. UI layout should flip accordingly.
+- When mixing Hebrew and English (e.g., "הרצת Dag"), the LTR English term will naturally appear in the correct reading order within an RTL context.
+- Preserve all i18next placeholders exactly as-is: `{{count}}`, `{{dagName}}`, etc.
+
+### Plural Forms
+
+- Hebrew uses i18next plural suffixes `_one`, `_two`, and `_other`. For most Airflow UI strings `_two` will be identical to `_other`, but check existing translations and keep the `_two` key when it is present.
+- Note: colloquial Hebrew has a true dual form for things that come in pairs (e.g. one sock = גרב, two socks = גרביים, not "2 גרבים"). This rarely applies to Airflow UI terminology but is worth being aware of.
+
+ ```json
+ "task_one": "משימה",
+ "task_other": "משימות"
+ ```
+
+ ```json
+ "dagRun_one": "הרצת Dag",
+ "dagRun_other": "הרצת Dags"
+ ```
+
+### Capitalization of English terms
+
+- For English terms embedded in Hebrew strings, preserve their original casing (e.g., "Dag", "XCom", "Dags").
+
+## 5. Examples from Existing Translations
+
+**Terms translated to Hebrew:**
+
+```
+Asset → "נכס"
+Backfill → "השלמה למפרע"
+Pool → "מאגר משאבים"
+Plugin → "תוסף"
+Provider → "חבילות עזר"
+Executor → "מבצע"
+Trigger → "מפעיל"
+Heartbeat → "עדכון חיים"
+```
+
+**Common translation patterns:**
+
+```
+task_one → "משימה"
+task_other → "משימות"
+dagRun_one → "הרצת Dag"
+dagRun_other → "הרצת Dags"
+backfill_one → "השלמה למפרע"
+backfill_other → "השלמות למפרע"
+taskInstance_one → "מופע משימה"
+taskInstance_other → "מופעי משימות"
+running → "בריצה"
+failed → "נכשלו"
+success → "הצליחו"
+queued → "בתור"
+scheduled → "בתזמון"
+```
+
+**Action verbs (buttons):**
+
+```
+Add → "הוסף"
+Delete → "מחק"
+Save → "שמור"
+Reset → "אתחל"
+Cancel → "בטל"
+Confirm → "אשר"
+Download → "הורד"
+Expand → "הרחב"
+Collapse → "צמצם"
+Filter → "סנן"
+```
+
+**Triggerer compound nouns:**
+
+```
+triggerer.class → "סוג מפעיל"
+triggerer.id → "מזהה מפעיל"
+triggerer.createdAt → "זמן יצירת מפעיל"
+triggerer.assigned → "מפעיל מוקצה"
+triggerer.latestHeartbeat → "עדכון חיים אחרון"
+triggerer.title → "פרטי מפעיל"
+```
+
+## 6. Agent Instructions (DO / DON'T)
+
+**DO:**
+
+- Match tone, style, and terminology from existing `he/*.json` files
+- Use professional, neutral Hebrew
+- Preserve all i18next placeholders: `{{count}}`, `{{dagName}}`, `{{hotkey}}`, etc.
+- Use construct state (סמיכות) for compound nouns as established
+- Provide all needed plural suffixes (`_one`, `_other`) for each plural key
+- Check existing translations before adding new ones to maintain consistency
+
+**DON'T:**
+
+- Write "DAG" — always write "Dag"
+- Use colloquial or slang Hebrew
+- Invent new vocabulary when an equivalent already exists in the current translations
+- Change hotkey values (e.g., `"hotkey": "e"` must stay `"e"`)
+- Translate variable names or placeholders inside `{{...}}`
+- Add Hebrew prefixed prepositions to English terms (e.g., don't write "ב-Dag", use "ב-Dag" only if established)
+
+---
+
+**Version:** 1.0 — derived from existing `he/*.json` locale files (April 2026)