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

bugraoz93 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 58305d0c09c Define translation agent skill guidelines for Turkish (tr) 
locale (#69931)
58305d0c09c is described below

commit 58305d0c09c2a2838885d725585087615c693d47
Author: Mustafa Avcu <[email protected]>
AuthorDate: Thu Jul 23 16:47:38 2026 -0400

    Define translation agent skill guidelines for Turkish (tr) locale (#69931)
---
 .agents/skills/airflow-translations/locales/tr.md | 239 +++++++++++++++++++++-
 1 file changed, 234 insertions(+), 5 deletions(-)

diff --git a/.agents/skills/airflow-translations/locales/tr.md 
b/.agents/skills/airflow-translations/locales/tr.md
index 5a93679c674..3e7770f4655 100644
--- a/.agents/skills/airflow-translations/locales/tr.md
+++ b/.agents/skills/airflow-translations/locales/tr.md
@@ -1,9 +1,238 @@
 <!-- SPDX-License-Identifier: Apache-2.0
      https://www.apache.org/licenses/LICENSE-2.0 -->
 
-# Turkish (`tr`) translation guidelines
+# Turkish (tr) Translation Agent Skill
 
-No locale-specific guidance has been authored yet for Turkish. Until this file
-is filled in, follow the global rules in the parent
-[airflow-translations SKILL.md](../SKILL.md). Contributions to this guide are
-welcome.
+**Locale code:** `tr`
+**Preferred variant:** Standard Turkish (tr), consistent with existing 
translations in `airflow-core/src/airflow/ui/public/i18n/locales/tr/`
+
+This file contains locale-specific guidelines so AI translation agents produce
+new Turkish 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` / `Dag'ler` — Airflow concept; never write "DAG". Turkish plural uses 
apostrophe: `Dag'ler`
+- `JSON` — Standard technical format name
+- `ID` — Universal abbreviation
+- `PID` — Unix process identifier
+- `REST API` — Standard technical term
+- `Unix` — Operating system name
+- `UTC` — Time standard
+- `XCom` / `XCom'lar` — Airflow cross-communication mechanism
+- Log levels: `CRITICAL`, `ERROR`, `WARNING`, `INFO`, `DEBUG`
+
+### Translated by convention (Turkish-specific)
+
+Unlike some other locales, the existing Turkish translations translate many 
Airflow terms
+into native Turkish. These established translations **must be used 
consistently**:
+
+- `Asset` / `Assets` → `Varlık` / `Varlıklar`
+- `Backfill` → `Geriye Dönük Çalıştırma`
+- `Catchup` → `Yakalama`
+- `Plugin` / `Plugins` → `Eklenti` / `Eklentiler`
+- `Pool` / `Pools` → `Havuz` / `Havuzlar`
+- `Provider` / `Providers` → `Sağlayıcı` / `Sağlayıcılar`
+- `Trigger` / `Triggerer` → `Tetikleyici` (noun/component)
+- `Executor` → `Yürütücü`
+
+## 2. Standard Translations
+
+The following Airflow-specific terms have established Turkish translations
+that **must be used consistently**:
+
+| English Term          | Turkish Translation              | Notes             
                             |
+| --------------------- | -------------------------------- | 
---------------------------------------------- |
+| Task                  | Görev                            | Plural: 
"Görevler"                             |
+| Task Instance         | Görev Örneği                     | Plural: "Görev 
Örnekleri"                      |
+| Task Group            | Görev Grubu                      |                   
                             |
+| Dag Run               | Dag Çalıştırması                 | Plural: "Dag 
Çalıştırmaları"                   |
+| Trigger (verb)        | Tetiklemek                       | "Tetiklendi" for 
"Triggered"                   |
+| Trigger Rule          | Tetikleme Kuralı                 |                   
                             |
+| Scheduler             | Zamanlayıcı                      |                   
                             |
+| Schedule (noun)       | Zamanlama                        |                   
                             |
+| Operator              | Operatör                         | Plural: 
"Operatörler"                          |
+| Connection            | Bağlantı                         | Plural: 
"Bağlantılar"                          |
+| Variable              | Değişken                         | Plural: 
"Değişkenler"                          |
+| Configuration         | Yapılandırma                     |                   
                             |
+| Audit Log             | Denetim Günlüğü                  |                   
                             |
+| Log                   | Günlük                           | Plural: 
"Günlükler"                            |
+| State                 | Durum                            |                   
                             |
+| Queue (noun)          | Kuyruk                           | "Kuyrukta" for 
"queued"                        |
+| Duration              | Süre                             |                   
                             |
+| Owner                 | Sahip                            |                   
                             |
+| Tags                  | Etiketler                        |                   
                             |
+| Description           | Açıklama                         |                   
                             |
+| Documentation         | Dokümantasyon                    |                   
                             |
+| Timezone              | Saat Dilimi                      |                   
                             |
+| Dark Mode             | Karanlık Mod                     |                   
                             |
+| Light Mode            | Aydınlık Mod                     |                   
                             |
+| Asset Event           | Varlık Etkinliği                 | Plural: "Varlık 
Etkinlikleri"                  |
+| Dag Processor         | Dag İşlemcisi                    |                   
                             |
+| Try Number            | Deneme Sayısı                    |                   
                             |
+| Heartbeat             | Kalp Atışı                       | e.g., "Son Kalp 
Atışı" for "Last Heartbeat"   |
+| Upstream / Downstream | Yukarı Akış / Aşağı Akış        |                    
                            |
+
+## 3. Task/Run States
+
+| English State       | Turkish Translation       |
+| ------------------- | ------------------------- |
+| running             | Çalışıyor                 |
+| failed              | Başarısız                 |
+| success             | Başarılı                  |
+| queued              | Kuyrukta                  |
+| scheduled           | Planlanmış                |
+| skipped             | Atlanmış                  |
+| deferred            | Ertelenmiş                |
+| removed             | Kaldırılmış               |
+| restarting          | Yeniden Başlatılıyor      |
+| up_for_retry        | Yeniden Denenecek         |
+| up_for_reschedule   | Yeniden Zamanlanacak      |
+| upstream_failed     | Yukarı Akış Başarısız     |
+| no_status / none    | Durum Yok                 |
+| planned             | Planlanmış                |
+
+## 4. Turkish-Specific Guidelines
+
+### Tone and Register
+
+- Use a **neutral, formal Turkish** tone suitable for technical software UIs.
+- Use polite imperative forms for instructions (e.g., "tuşuna basın" for 
"press key").
+- Keep UI strings concise — they appear in buttons, labels, and tooltips.
+
+### Vowel Harmony and Suffixes
+
+- Turkish uses vowel harmony for suffixes. Match suffixes to the final vowel 
of the root word:
+  - "Dag'ler" (not "Dag'lar") — follows front vowel harmony
+  - "Bağlantılar" — follows back vowel harmony
+- Use apostrophe before suffixes on proper nouns and abbreviations: `Dag'ler`, 
`XCom'lar`
+
+### Plural Forms
+
+- Turkish uses i18next plural suffixes `_one` and `_other` only.
+  There is no `_many` or `_zero` in the existing translations:
+
+  ```json
+  "task_one": "Görev",
+  "task_other": "Görevler"
+  ```
+
+  ```json
+  "dagRun_one": "Dag Çalıştırması",
+  "dagRun_other": "Dag Çalıştırmaları"
+  ```
+
+### Capitalization
+
+- Use **title case** for UI headers, navigation items, and button labels 
(e.g., "Tüm Çalıştırmalar", "Genel Bakış").
+- Use **sentence case** for descriptions and longer messages.
+- Capitalize the first letter of each major word in compound terms: "Dag 
Çalıştırması", "Görev Örneği".
+
+### Possessive Constructions
+
+- Turkish uses possessive suffixes for compound nouns:
+  - "Dag Çalıştırması" (Dag's run) — possessive -ı/i suffix
+  - "Görev Grubu" (Task's group) — possessive -u/ü suffix
+  - "Bağlantı Kimliği" (Connection's ID) — possessive -ı/i suffix
+
+## 5. Examples from Existing Translations
+
+**Terms translated to Turkish (unlike some other locales):**
+
+```
+Asset          → "Varlık"
+Backfill       → "Geriye Dönük Çalıştırma"
+Pool           → "Havuz"
+Plugin         → "Eklenti"
+Provider       → "Sağlayıcı"
+Executor       → "Yürütücü"
+Trigger        → "Tetikleyici"
+Heartbeat      → "Kalp Atışı"
+Upstream       → "Yukarı Akış"
+Downstream     → "Aşağı Akış"
+```
+
+**Common translation patterns:**
+
+```
+task_one              → "Görev"
+task_other            → "Görevler"
+dagRun_one            → "Dag Çalıştırması"
+dagRun_other          → "Dag Çalıştırmaları"
+backfill_one          → "Geriye Dönük Çalıştırma"
+backfill_other        → "Geriye Dönük Çalıştırmalar"
+taskInstance_one      → "Görev Örneği"
+taskInstance_other    → "Görev Örnekleri"
+allRuns               → "Tüm Çalıştırmalar"
+running               → "Çalışıyor"
+failed                → "Başarısız"
+success               → "Başarılı"
+queued                → "Kuyrukta"
+scheduled             → "Planlanmış"
+```
+
+**Trigger compound nouns — translated to Turkish:**
+
+```
+triggerer.class           → "Tetikleyici sınıfı"
+triggerer.id              → "Tetikleyici Kimliği"
+triggerer.createdAt       → "Tetikleyici oluşturma zamanı"
+triggerer.assigned        → "Atanmış tetikleyici"
+triggerer.latestHeartbeat → "En son tetikleyici kalp atışı"
+triggerer.title           → "Tetikleyici Bilgisi"
+```
+
+**Action verbs (buttons):**
+
+```
+Add      → "Ekle"
+Delete   → "Sil"
+Edit     → "Düzenle" / "Güncelle"
+Save     → "Kaydet"
+Reset    → "Sıfırla"
+Cancel   → "İptal"
+Confirm  → "Onayla"
+Import   → "İçe Aktar"
+Search   → "Ara"
+Filter   → "Filtrele"
+Download → "İndir"
+Expand   → "Genişlet"
+Collapse → "Daralt"
+```
+
+**Health/status labels:**
+
+```
+Healthy   → "Sağlıklı"
+Unhealthy → "Sağlıksız"
+```
+
+## 6. Agent Instructions (DO / DON'T)
+
+**DO:**
+
+- Match tone, style, vowel harmony, and casing from existing `tr/*.json` files
+- Use formal, neutral Turkish suitable for professional UIs
+- Preserve all i18next placeholders: `{{count}}`, `{{dagName}}`, `{{hotkey}}`, 
etc.
+- Apply correct Turkish vowel harmony for suffixes
+- Use apostrophe before suffixes on proper nouns and abbreviations (Dag'ler, 
XCom'lar)
+- 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 or colloquial Turkish
+- Leave terms in English when the existing Turkish translations have 
established Turkish equivalents (unlike other locales, Turkish translates most 
terms)
+- 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 `{{...}}`
+
+---
+
+**Version:** 1.0 — derived from existing `tr/*.json` locale files (July 2026)

Reply via email to