-
Notifications
You must be signed in to change notification settings - Fork 16.9k
docs: define translation agent skill guidelines for Hebrew (he) locale #65122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
alliasgher
wants to merge
2
commits into
apache:main
Choose a base branch
from
alliasgher:add-hebrew-translation-skill-guidelines
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+215
−0
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,215 @@ | ||
| <!-- 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 | ||
| - `PID` — Unix process identifier (translated as מזהה תהליך in context labels) | ||
| - `ID` — Universal abbreviation | ||
| - `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 | משימה | Plural: משימות | | ||
| | Task Instance | מופע משימה | Plural: מופעי משימות | | ||
| | Task Group | קבוצת משימות | | | ||
| | Dag Run | הרצת Dag | Plural: הרצת Dags | | ||
| | Trigger (verb) | הפעלה | "מופעל על-ידי" for "Triggered by" | | ||
| | Trigger Rule | כלל הפעלה | | | ||
| | Scheduler | מתזמן | | | ||
| | Schedule (noun) | תזמון | | | ||
| | Operator | אופרטור | | | ||
| | Connection | חיבור | Plural: חיבורים | | ||
| | Variable | משתנה | Plural: משתנים | | ||
| | Configuration | הגדרות | | | ||
| | Audit Log | יומן ביקורת | | | ||
| | State | מצב | | | ||
| | Queue (noun) | תור | "בתור" for "queued" | | ||
| | Duration | משך זמן | | | ||
| | Owner | בעלים | | | ||
| | Tags | תגיות | | | ||
| | Description | תיאור | | | ||
| | Documentation | תיעוד | | | ||
| | Timezone | אזור זמן | | | ||
| | Dark Mode | מצב כהה | | | ||
| | Light Mode | מצב בהיר | | | ||
| | Asset Event | אירוע נכס | Plural: אירועי נכסים | | ||
| | 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` and `_other`: | ||
|
|
||
| ```json | ||
| "task_one": "משימה", | ||
| "task_other": "משימות" | ||
| ``` | ||
|
|
||
| ```json | ||
| "dagRun_one": "הרצת Dag", | ||
| "dagRun_other": "הרצת Dags" | ||
| ``` | ||
|
|
||
| ### Construct State (סמיכות) | ||
|
|
||
| - Hebrew uses construct state for compound nouns: | ||
| - "מופע משימה" (instance of task) — not "מופע של משימה" | ||
| - "קבוצת משימות" (group of tasks) | ||
| - "מאגר משאבים" (pool of resources) | ||
| - "אזור זמן" (time zone) | ||
|
|
||
| ### Capitalization | ||
|
|
||
| - Hebrew has no uppercase/lowercase distinction. 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) | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we not make these consistent with the rest as ציווי? @shahar1 @eladkal
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch , happy to update it to the imperative form once @shahar1 or @eladkal confirms.