You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ba...@apache.org on 2026/04/22 13:40:50 UTC

(airflow) branch main updated: Add Dutch (nl) translation agent skill guidelines (#62763)

This is an automated email from the ASF dual-hosted git repository.

BasPH pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new deb9948d049 Add Dutch (nl) translation agent skill guidelines (#62763)
deb9948d049 is described below

commit deb9948d0499f227c491724967713382de0fc3f6
Author: subhash-0000 <12...@users.noreply.github.com>
AuthorDate: Wed Apr 22 19:10:41 2026 +0530

    Add Dutch (nl) translation agent skill guidelines (#62763)
    
    * Add Dutch (nl) translation agent skill guidelines
    
    * Fix license headers and formatting for Dutch translation skill
    
    * Address PR feedback: consistently translate Task to taak
---
 .github/skills/airflow-translations/locales/nl.md  | 147 +++++++++++++++++++++
 .../airflow/ui/public/i18n/locales/nl/README.md    |  40 ++++++
 2 files changed, 187 insertions(+)

diff --git a/.github/skills/airflow-translations/locales/nl.md b/.github/skills/airflow-translations/locales/nl.md
new file mode 100644
index 00000000000..fe10cb9da58
--- /dev/null
+++ b/.github/skills/airflow-translations/locales/nl.md
@@ -0,0 +1,147 @@
+<!-- SPDX-License-Identifier: Apache-2.0
+     https://www.apache.org/licenses/LICENSE-2.0 -->
+
+# Dutch (nl) Translation Agent Skill
+
+**Locale code:** `nl`
+**Preferred variant:** Standard Dutch (Netherlands), consistent with existing translations in `airflow-core/src/airflow/ui/public/i18n/locales/nl/`
+
+This file contains locale-specific guidelines so AI translation agents produce
+new Dutch strings that stay 100% consistent with the existing translations.
+
+## 1. Core Airflow Terminology
+
+The following terms **must remain in English unchanged** (case-sensitive):
+
+- `Dag` / `Dags` — Airflow concept; never write "DAG"
+- `XCom` / `XComs` — Airflow cross-communication mechanism
+- `Asset` / `Assets` — Data dependency tracked by Airflow
+- `Plugin` / `Plugins` — Airflow extensibility mechanism
+- `Pool` / `Pools` — Resource constraint mechanism
+- `Provider` / `Providers` — Airflow extension package name
+- `Run` / `Runs` — When used standalone (e.g., "Laatste Run")
+- `Map Index` — Task mapping index
+- `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`
+
+## 2. Standard Translations
+
+The following Airflow-specific terms have established Dutch translations
+that **must be used consistently**:
+
+| English Term          | Dutch Translation          | Notes                                      |
+| --------------------- | -------------------------- | ------------------------------------------ |
+| Task                  | Taak                       | Always translate Task to "taak" / "Taak"   |
+| Task Instance         | Taak Instance              | Plural: "Taak Instances"                   |
+| Task Group            | Taak Groep                 | Plural: "Taak Groepen"                     |
+| Dag Run               | Dag Run                    | Plural: "Dag Runs"                         |
+| Backfill              | Backfill                   |                                            |
+| Trigger (noun)        | Trigger                    | e.g. "Asset Triggered"                     |
+| Trigger Rule          | Trigger regel              |                                            |
+| Triggerer             | Triggerer                  | Component name                             |
+| Scheduler             | Scheduler                  |                                            |
+| Schedule (noun)       | Planning                   |                                            |
+| Executor              | Executor                   |                                            |
+| Connection            | Connectie                  | Plural: "Connecties"                       |
+| Variable              | Variabele                  | Plural: "Variabelen"                       |
+| Audit Log             | Audit Log                  |                                            |
+| Log                   | Log                        | Plural: "Logs"                             |
+| State                 | Status                     | e.g. "Totaal {{state}}" -> "Totaal Status" |
+| Queue (noun)          | Wachtrij                   |                                            |
+| Config / Configuration| Configuratie               |                                            |
+| Operator              | Operator                   | Plural: "Operators"                        |
+| Asset Event           | Asset Event                | Keep as in English                         |
+| Catchup               | Catchup                    | Keep as in English                         |
+
+## 3. Task/Run States
+
+| English State       | Dutch Translation     |
+| ------------------- | --------------------- |
+| running             | Lopend                |
+| failed              | Mislukt               |
+| success             | Succesvol             |
+| queued              | Wachtend              |
+| scheduled           | Gepland               |
+| skipped             | Overgeslagen          |
+| deferred            | Uitgesteld            |
+| removed             | Verwijderd            |
+| restarting          | Herstartend           |
+| up_for_retry        | Wachtend op een nieuwe poging |
+| up_for_reschedule   | Wachtend op herplanning |
+| upstream_failed     | Upstream mislukt      |
+| no_status / none    | Geen status           |
+| planned             | Gepland               |
+
+## 4. Dutch-Specific Guidelines
+
+### Tone and Register
+
+- Use **informal Dutch** ("je/jouw" form). Avoid the formal "u" unless specifically requested.
+- Use a professional yet accessible tone.
+- Keep UI strings concise — they appear in buttons, labels, and tooltips.
+
+### Gender and Number
+
+- Dutch nouns have grammatical gender, but for technical terms, focus on common usage:
+  - "Taak" is generally **de-word**: "de taak"
+  - "Run" is **de-word**: "de run"
+  - "Process" is **het-word**: "het proces"
+
+### Plural Forms
+
+- Dutch uses i18next plural suffixes `_one` and `_other`.
+  Most technical terms add "s" or "en":
+  - "Connectie" -> "Connecties"
+  - "Variabele" -> "Variabelen"
+  - "Taak" -> "Taken"
+
+### Capitalization
+
+- Use **Sentence case** (Zinvallende hoofdletters) for descriptions.
+- Use **Title Case** or **Initial Capital** for labels and buttons if the English source does so.
+- Always capitalize "Dag", "Taak" (when referring to the object), "Asset", "XCom", etc.
+
+## 5. Examples from Existing Translations
+
+**Common UI Patterns:**
+
+```
+Add    → "Toevoegen"
+Delete → "Verwijderen" (or "Verwijder" on buttons)
+Edit   → "Wijzigen" / "Bewerken"
+Save   → "Opslaan"
+Cancel → "Annuleer"
+Search → "Zoeken"
+Filter → "Filter"
+```
+
+**Interpolation:**
+
+```json
+"delete_confirmation": "Weet je zeker dat je {{resourceName}} wilt verwijderen?"
+```
+
+## 6. Agent Instructions (DO / DON'T)
+
+**DO:**
+
+- Maintain the "je" (informal) address style.
+- Preserve all i18next placeholders: `{{count}}`, `{{dagId}}`, etc.
+- Use "Wachtrij" for technical queues.
+- Use "Planning" for schedules.
+- Provide both `_one` and `_other` plural forms.
+
+**DON'T:**
+
+- Use "u" (formal).
+- Translate "Dag" as "DAG".
+- Translate terms listed in Section 1.
+- Use inconsistent terms for "State" (always use "Status").
+
+---
+
+**Version:** 1.0 — derived from existing `nl/*.json` locale files (March 2026)
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/nl/README.md b/airflow-core/src/airflow/ui/public/i18n/locales/nl/README.md
new file mode 100644
index 00000000000..ef477fd73ca
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/nl/README.md
@@ -0,0 +1,40 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+# Dutch (nl) Translation Guidelines
+
+This directory contains the Dutch translation files for the Airflow UI.
+
+## Terminology Selection
+
+The Dutch translation follows these core principles:
+
+1.  **Airflow Specific Terms**: Terms like `Dag`, `XCom`, and `Asset` are kept in English as they are widely recognized technical objects within the Airflow ecosystem. We use `Dag` (not `DAG`) to align with Airflow conventions.
+2.  **User Address**: We use the informal **"je/jouw"** register. This makes the UI feel more modern and accessible, which is a common trend in technical software localized for the Dutch market.
+3.  **Consistency in Translation**:
+    - Based on maintainer consensus, `Task` is consistently translated to `taak` (or `Taak`) everywhere, rather than keeping the English term for technical objects.
+4.  **Established UI Mappings**:
+    - `Schedule` -> `Planning`
+    - `Queue` -> `Wachtrij`
+    - `State` -> `Status`
+    - `Run` -> `Run` (kept in English as it's a standard term in data engineering)
+
+## Consistency
+
+All new translations should be verified against `common.json` to ensure they use the standard Dutch terms for buttons (e.g., `Opslaan`, `Annuleren`, `Verwijderen`) and states (e.g., `Lopend`, `Mislukt`, `Succesvol`).