airflow-translations

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

Add or update translations for the Apache Airflow UI. Guides through setting up locales, scaffolding translation files, translating with locale-specific guidelines, and validating results. Use when working with i18n tasks in airflow-core/src/airflow/ui/public/i18n/locales/.

.agents/skills/airflow-translations/SKILL.md

Download bundle ↓
main · 2aca1aa20 bundle filesScanned 2026-09-14

locales/de.md

3,309 tokens · o200k_base · 15,041 bytes

Source excerpt starting at line 1.
<!-- SPDX-License-Identifier: Apache-2.0     https://www.apache.org/licenses/LICENSE-2.0 --> # German (de) Translation Agent Skill **Locale code:** `de`**Preferred variant:** Standard German (de), using formal "Sie" register, consistent with existing translations in `airflow-core/src/airflow/ui/public/i18n/locales/de/` This file contains locale-specific guidelines so AI translation agents producenew German strings that stay 100% 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". Use neuter form (not male, female).- `PID` — Unix process identifier- `ID` — Universal abbreviation- `UTC` — Time standard- `JSON` — Standard technical format name- `REST API` — Standard technical term- Log levels: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG` ### Translated by convention (German-specific) The existing German translations translate many Airflow terms into native German.These established translations **must be used consistently**: - `Asset` / `Assets` → `Datenset (Asset)` / `Datensets (Assets)` — includes English term in parentheses- `XCom` / `XComs` → `Task Kommunikation (XComs)` — descriptive with English in parentheses- `Backfill` → `Auffüllung` / `Auffüllungen`- `Catchup` → `Nachgeholt`- `Plugin` / `Plugins` → `Plug-in` / `Plug-ins` — hyphenated German spelling- `Pool` / `Pools` → `Pool` / `Pools` — kept in English- `Provider` / `Providers` → `Provider` / `Providers` — kept in English- `Executor` → `Ausführungsumgebung`- `Trigger` / `Triggerer` → `Abrufumgebung` / `Abrufumgebungs-Information` (component); translated in context ## 2. Standard Translations The following Airflow-specific terms have established German translationsthat **must be used consistently**: | English Term          | German Translation                    | Notes                                          || --------------------- | ------------------------------------- | ---------------------------------------------- || Task                  | Task                                  | Kept in English; plural: "Tasks"               || Task Instance         | Task Instanz                          | Plural: "Task Instanzen"                       || Task Group            | Task Gruppe                           |                                                || Dag Run               | Dag Lauf                              | Plural: "Dag Läufe"                            || Trigger (verb)        | Auslösen                              | "Ausgelöst durch" for "Triggered by"           || Trigger Rule          | Auslöse-Regel                         |                                                || Scheduler             | Zeitplaner                            |                                                || Schedule (noun)       | Zeitplan                              |                                                || Operator              | Operator                              | Plural: "Operatoren"                           || Connection            | Verbindung                            | Plural: "Verbindungen"                         || Variable              | Variable                              | Plural: "Variablen"                            || Configuration         | Konfiguration                         |                                                || Audit Log             | Prüf-Log                              |                                                || State                 | Status                                |                                                || Queue (noun)          | Warteschlange                         | "Wartend" for "queued"                         || Duration              | Laufzeit                              |                                                || Owner                 | Eigentümer                            |                                                || Tags                  | Markierungen                          |                                                || Description           | Beschreibung                          |                                                || Documentation         | Dokumentation                         | Short form in nav: "Doku"                      || Timezone              | Zeitzone                              |                                                || Dark Mode             | Dunkelmodus                           |                                                || Light Mode            | Hellmodus                             |                                                || Asset Event           | Ereignis zu Datenset (Asset)          | Plural: "Ereignisse zu Datensets (Asset)"      || Dag Processor         | Dag Prozessor                         |                                                || Heartbeat             | Lebenszeichen                         | e.g., "Letztes Lebenszeichen"                  || Upstream / Downstream | Vorgelagert / Nachgelagert            |                                                || Deadline              | Frist                                 |                                                | ## 3. Task/Run States | English State       | German Translation            || ------------------- | ----------------------------- || running             | Laufend                       || failed              | Fehlgeschlagen                || success             | Erfolgreich                   || queued              | Wartend                       || scheduled           | Geplant                       || skipped             | Übersprungen                  || deferred            | Delegiert                     || removed             | Entfernt                      || restarting          | Im Neustart                   || up_for_retry        | Wartet auf neuen Versuch      || up_for_reschedule   | Wartet auf Neuplanung         || upstream_failed     | Vorgelagerte fehlgeschlagen   || no_status / none    | Kein Status                   || planned             | Geplant                       | ## 4. German-Specific Guidelines ### Tone and Register - Use **formal German** ("Sie" form). Do not use "du".- Use a professional, precise tone suitable for technical software UIs.- Keep UI strings concise — they appear in buttons, labels, and tooltips. ### Gender and Articles - German nouns have grammatical gender; match articles and adjectives accordingly:  - "Dag" is treated as **neuter**: "das Dag", "ein Dag"  - "Task" is treated as **masculine**: "der Task"  - "Lauf" (Run) is **masculine**: "der Lauf", plural: "die Läufe"  - "Verbindung" is **feminine**: "die Verbindung"  - "Variable" is **feminine**: "die Variable"  - "Datenset" is **neuter**: "das Datenset" ### Compound Nouns - German forms compound nouns. The existing translations use spaces between Airflow terms  for readability: "Dag Lauf" (not "Daglauf"), "Task Instanz" (not "Taskinstanz").- Follow this established pattern for consistency. ### Plural Forms - German uses i18next plural suffixes `_one` and `_other` only:   ```json  "task_one": "Task",  "task_other": "Tasks"  ```   ```json  "dagRun_one": "Dag Lauf",  "dagRun_other": "Dag Läufe"  ``` ### Capitalization - All German **nouns** are capitalized (standard German orthography).- Use **title case** for UI headers and navigation items.- Use **sentence case** for descriptions and longer messages. ### Parenthetical English Terms - The German locale uses a unique pattern of including the English term in parentheses  after the German translation for clarity:  - "Datenset (Asset)" — helps users recognize the Airflow concept  - "Task Kommunikation (XComs)"  - "Durch Datenset (Asset) ausgelöst" for "Asset triggered"- Follow this pattern for any new terms that have well-known English equivalents in Airflow. ## 5. Examples from Existing Translations **Terms with parenthetical English:** ```Asset          → "Datenset (Asset)"Assets         → "Datensets (Assets)"XCom           → "Task Kommunikation (XComs)"Asset Event    → "Ereignis zu Datenset (Asset)"``` **Common translation patterns:** ```task_one              → "Task"task_other            → "Tasks"dagRun_one            → "Dag Lauf"dagRun_other          → "Dag Läufe"backfill_one          → "Auffüllung"backfill_other        → "Auffüllungen"taskInstance_one      → "Task Instanz"taskInstance_other    → "Task Instanzen"allRuns               → "Alle Läufe"running               → "Laufend"failed                → "Fehlgeschlagen"success               → "Erfolgreich"queued                → "Wartend"scheduled             → "Geplant"``` **Triggerer compound nouns — translated to German:** ```triggerer.class           → "Abruf-Klasse"triggerer.id              → "Abrufungs ID"triggerer.createdAt       → "Zeitpunkt der Erstellung"triggerer.assigned        → "Zugewiesene Abrufumgebung"triggerer.latestHeartbeat → "Letztes Lebenszeichen"triggerer.title           → "Abrufumgebungs-Information"``` **Action verbs (buttons):** ```Add      → "Hinzufügen"Delete   → "Löschen"Edit     → "Bearbeiten"Save     → "Speichern"Reset    → "Zurücksetzen"Cancel   → "Abbrechen"Confirm  → "Bestätigen"Import   → "Importieren"Search   → "Suche"Filter   → "Filter"Download → "Herunterladen"Expand   → "Ausblenden"Collapse → "Einblenden"``` **Health/status labels:** ```Healthy   → "Gesund"Unhealthy → "Fehlerhaft"``` ## 6. Agent Instructions (DO / DON'T) **DO:** - Match tone, style, gender agreement, and casing from existing `de/*.json` files- Use formal German ("Sie" form) throughout- Preserve all i18next placeholders: `{{count}}`, `{{dagName}}`, `{{hotkey}}`, etc.- Capitalize all nouns (standard German orthography)- Include English terms in parentheses for Airflow-specific concepts where the existing translations do so- 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 informal "du" — always use "Sie" register- Use colloquial or regional German expressions- 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 `{{...}}`- Omit parenthetical English terms where the pattern has been established ## 7. Rationale for Translation Choices ### Formal register ("Sie") German distinguishes formal from informal address. Because the user group isunknown, the formal "Sie" register was chosen throughout. ### Why certain terms are not translated - **Dag / Dags** — Following the devlist discussion  ["Airflow should deprecate the term 'DAG' for end users"](https://lists.apache.org/thread/lktrzqkzrpvc1cyctxz7zxfmc0fwtq2j)  and the global rename to `Dag`, this brand-like term is retained. Translating  it as "Workflow" would be misleading for experienced Airflow users. `Dag` is  treated as neuter in German ("der Dag").- **Log levels (CRITICAL, ERROR, WARNING, INFO, DEBUG)** — These strings also  appear verbatim in log output, so they must not be translated.- **Pool / Pools** — Directly understood in German; "Schwimmbad" (swimming pool)  would be absurd, and "Ressourcen-Pool" is too verbose.- **Provider / Providers** — Translating this does not improve comprehension;  the English term is well understood in German.- **Operator / Operatoren** — Mathematical/technical term that also appears in  code; alternatives like "Betreiber-Implementierung" are too cumbersome. ### Why specific translations were chosen - **`Asset` → `Datenset (Asset)`** — New term in Airflow 3, so a meaningful  German translation is appropriate. The English original is kept in  parentheses so new users can recognise the Airflow concept. Exception: in  the navigation bar the shorter form "Datensets" is used without the  parenthetical to save space.- **`Asset Event` → `Ereignis zu Datenset (Asset)`** — Logical consequence of  the Asset translation; avoids the clumsy "Datensatz-Ereignis".- **`Backfill` → `Auffüllen` / `Auffüllung`** — The technical meaning (filling  gaps in historical runs) maps well to the German concept of "auffüllen".- **`Bundle` → `Bündel`** — Direct translation that matches the intended meaning.- **`Catchup` → `Nachholen`** — Direct translation.- **`Connection` → `Verbindung`** — Although a technical Airflow construct, the  direct translation is immediately accessible to new users.- **`Dag ID`**: No translation. `ID` should be favored to be upper case following German Duden.- **`Task ID`**: No translation. `ID` should be favored to be upper case following German Duden.- **`Dag Run` → `Dag Lauf`** — While "Run" appears in code and logs, a German  equivalent improves the overall UI experience. "Dag" is kept untranslated.- **`Deferred` → `Delegiert`** — The closest German equivalent: a task is  handed off ("delegiert") to the Triggerer component.- **`Docs` → `Doku`** — "Dokumentation" is correct but too wide for the  navigation bar without a line break; "Doku" is a common German abbreviation.- **`Map Index` → `Planungs-Index`** — No direct equivalent exists; referring  to the planning/scheduling aspect is the most accurate option.- **`Plugins` → `Plug-ins`** — Hyphenated form recommended by Duden.- **`Scheduled` → `Geplant`** — Used for cyclically scheduled Dag runs.- **`Tag` → `Markierung`** — Describes the purpose (marking/tagging Dags for  organisation) without the English loanword.- **`Task Instance` → `Task Instanz`** — "Task" is kept because it appears in  code and logs; "Aufgabe" would be the purist choice but less recognisable in  context.- **`Trigger` (verb) → `Auslösen`** — Most natural German equivalent. "Triggern"  exists colloquially but "Auslösen" is more formal and consistent with  "Auslöse-Regel" (Trigger Rule).- **`Trigger Rule` → `Auslöse-Regel`** — Consistent with the verb choice above;  describes the condition that starts a task within a Dag Run.- **`Try Number` → `Versuch Nummer`**: direct translation is matching.- **`XCom` → `Task Kommunikation (XCom)`** — Translating the concept improves  navigation for new users; the original `XCom` is kept in parentheses because  it appears frequently in code and logs. --- **Version:** 1.1 — rationale consolidated from`airflow-core/src/airflow/ui/public/i18n/locales/de/README.md` (April 2026) 
Referenced from SKILL.md