This is an automated email from the ASF dual-hosted git repository.
potiuk 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 bae2c27e3eb Add Catalan (ca) translation agent skill guidelines
(#63026)
bae2c27e3eb is described below
commit bae2c27e3ebf8a4368bd64cb7456fc360a2dd2f9
Author: Shubham Gondane <[email protected]>
AuthorDate: Sat Mar 7 04:40:00 2026 -0800
Add Catalan (ca) translation agent skill guidelines (#63026)
---
.github/skills/airflow-translations/locales/ca.md | 208 ++++++++++++++++++++++
1 file changed, 208 insertions(+)
diff --git a/.github/skills/airflow-translations/locales/ca.md
b/.github/skills/airflow-translations/locales/ca.md
new file mode 100644
index 00000000000..1563f3377cd
--- /dev/null
+++ b/.github/skills/airflow-translations/locales/ca.md
@@ -0,0 +1,208 @@
+<!-- SPDX-License-Identifier: Apache-2.0
+ https://www.apache.org/licenses/LICENSE-2.0 -->
+
+# Catalan (ca) Translation Agent Skill
+
+**Locale code:** `ca`
+**Preferred variant:** Standard Catalan (ca), consistent with existing
translations in `airflow-core/src/airflow/ui/public/i18n/locales/ca/`
+
+This file contains locale-specific guidelines so AI translation agents produce
+new Catalan 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 (translated as
"Extensió" in nav/labels — keep English in code references)
+- `Pool` / `Pools` — Resource constraint mechanism
+- `Provider` / `Providers` — Airflow extension package name
+- `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 Catalan translations
+that **must be used consistently**:
+
+| English Term | Catalan Translation | Notes
|
+| --------------------- | ------------------------------ |
---------------------------------------------- |
+| Task | Tasca / tasca | Lowercase in
compound contexts |
+| Task Instance | Instància de tasca | Plural: "Instàncies
de tasca" |
+| Task Group | Grup de tasques |
|
+| Dag Run | Execució de Dag | Plural: "Execucions
de Dag" |
+| Backfill | Reompliment | Plural:
"Reompliments" |
+| Trigger (noun) | Disparador |
|
+| Trigger Rule | Regla d'execució |
|
+| Triggerer | Triggerer | Component name;
keep English in technical refs |
+| Scheduler | Programador |
|
+| Schedule (noun) | Programació |
|
+| Executor | Executor |
|
+| Connection | Connexió | Plural:
"Connexions" |
+| Variable | Variable | Plural: "Variables"
|
+| Audit Log | Registre d'auditoria |
|
+| Log | Registre |
|
+| State | Estat |
|
+| Queue (noun) | Cua | e.g., "En cua" for
"queued" |
+| Config / Configuration| Configuració |
|
+| Operator | Operador | Plural: "Operadors"
|
+| Asset Event | Esdeveniment d'Asset | Keep "Asset" in
English |
+| Dag Processor | Dag Processor | Component name;
keep English |
+| Heartbeat | Batec |
|
+| Plugin | Extensió | In UI nav/labels
only |
+
+## 3. Task/Run States
+
+| English State | Catalan Translation |
+| ------------------- | ------------------------ |
+| running | Executant-se |
+| failed | Fallit |
+| success | Exitós |
+| queued | En cua |
+| scheduled | Programat |
+| skipped | Saltat |
+| deferred | Diferit |
+| removed | Eliminat |
+| restarting | Reiniciant |
+| up_for_retry | A reintentar |
+| up_for_reschedule | A reprogramar |
+| upstream_failed | Fallit aigües amunt |
+| no_status / none | Sense estat |
+| planned | Planificat |
+| open | Obert |
+
+## 4. Catalan-Specific Guidelines
+
+### Tone and Register
+
+- Use a **formal, professional register** suitable for technical software UIs.
+- Avoid colloquialisms; prefer neutral and precise language.
+- Keep UI strings concise — they appear in buttons, labels, and tooltips.
+
+### Gender Agreement
+
+- Catalan nouns have grammatical gender; match adjectives and articles
accordingly:
+ - "Dag" is treated as **masculine**: "el Dag", "un Dag"
+ - "Tasca" is **feminine**: "la tasca", "una tasca"
+ - "Execució" is **feminine**: "una execució", "l'execució"
+ - "Connexió" is **feminine**: "la connexió"
+ - "Variable" is **feminine**: "la variable"
+ - "Instància" is **feminine**: "la instància"
+
+### Plural Forms
+
+- Catalan uses i18next plural suffixes `_one` and `_other`.
+ Add `-s` or `-es` according to standard Catalan rules, or use the established
+ glossary form:
+
+ ```json
+ "task_one": "Tasca",
+ "task_other": "Tasques"
+ ```
+
+ ```json
+ "dagRun_one": "Execució de Dag",
+ "dagRun_other": "Execucions de Dag"
+ ```
+
+### Capitalization
+
+- Use **sentence case** for descriptions and longer strings.
+- Use **title-like capitalization** for headers, labels, and button text
+ (match the style of existing translations).
+- Capitalize proper terms: "Dag", "Asset", "XCom", "Pool", etc.
+- Do **not** capitalize common nouns mid-sentence.
+
+### Elision and Contractions
+
+- Apply standard Catalan elision and contraction rules:
+ - `de` + vowel → `d'` (e.g., "Registre d'auditoria", "ID d'execució")
+ - `el`/`la` + vowel → `l'` (e.g., "l'execució", "l'operador")
+- Prepositions `a` + `el` → `al`; `de` + `el` → `del`
+
+### Diacritics
+
+- Always preserve Catalan diacritics: `à`, `è`, `é`, `ï`, `ò`, `ó`, `ú`, `ü`,
`ç`, `·` (interpunct in `l·l`).
+- Never drop or substitute accents.
+
+### Word Order
+
+- Standard SVO word order — similar to English.
+- Adjectives typically follow nouns (e.g., "interval de dates", "execució
activa").
+
+## 5. Examples from Existing Translations
+
+**Always keep in English:**
+
+- "Dag" → "Dag"
+- "Asset" → "Asset"
+- "XCom" → "XCom"
+- "Pool" → "Pool"
+- "Provider" → "Provider"
+
+**Common translation patterns:**
+
+```
+task_one → "Tasca"
+task_other → "Tasques"
+dagRun_one → "Execució de Dag"
+dagRun_other → "Execucions de Dag"
+backfill_one → "Reompliment"
+backfill_other → "Reompliments"
+taskInstance_one → "Instància de tasca"
+taskInstance_other → "Instàncies de tasca"
+assetEvent_one → "Esdeveniment d'Asset"
+assetEvent_other → "Esdeveniments d'Asset"
+running → "Executant-se"
+failed → "Fallit"
+success → "Exitós"
+queued → "En cua"
+scheduled → "Programat"
+```
+
+**Action verbs (buttons):**
+
+```
+Add → "Afegir"
+Delete → "Eliminar"
+Edit → "Editar"
+Save → "Desar"
+Reset → "Restablir"
+Cancel → "Cancel·lar"
+Confirm → "Confirmar"
+Import → "Importar"
+Export → "Exportar"
+Search → "Cercar"
+Filter → "Filtrar"
+```
+
+## 6. Agent Instructions (DO / DON'T)
+
+**DO:**
+
+- Match tone, style, gender agreement, and casing from existing `ca/*.json`
files
+- Use formal Catalan register throughout
+- Preserve all i18next placeholders: `{{count}}`, `{{dagName}}`, `{{type}}`,
etc.
+- Apply correct Catalan elision (`d'`, `l'`, contractions `al`, `del`)
+- Preserve all diacritics (à, è, é, ï, ò, ó, ú, ü, ç, ·)
+- Provide all needed plural suffixes (`_one`, `_other`) for each key
+
+**DON'T:**
+
+- Translate Airflow-specific terms listed in section 1
+- Drop or substitute diacritics (e.g., never write "Execucio" for "Execució")
+- Change hotkey values (e.g., `"hotkey": "e"` must stay `"e"`)
+- Invent new vocabulary when an equivalent already exists in the current
translations
+- Use "DAG" — always write "Dag"
+- Capitalize common nouns mid-sentence
+
+---
+
+**Version:** 1.0 — derived from existing `ca/*.json` locale files (March 2026)