You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by bu...@apache.org on 2025/08/21 16:07:55 UTC

(airflow) branch main updated: feat(ui): Add Turkish Translation for the UI and CODEOWNER (#51266)

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

bugraoz 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 9652ed94413 feat(ui): Add Turkish Translation for the UI and CODEOWNER (#51266)
9652ed94413 is described below

commit 9652ed9441398f2e09f681be21860a4172034d79
Author: Bugra Ozturk <bu...@users.noreply.github.com>
AuthorDate: Thu Aug 21 18:07:49 2025 +0200

    feat(ui): Add Turkish Translation for the UI and CODEOWNER (#51266)
    
    * feat(ui): Add Turkish Translation
    
    * feat(i18n): Update according to comments and fill missing parts
    
    * feat(i18n): Fill Gaps and Fix Drifts
    
    * Update airflow-core/src/airflow/ui/src/i18n/config.ts
    
    Co-authored-by: Jens Scheffler <95...@users.noreply.github.com>
    
    * Update .github/CODEOWNERS
    
    Co-authored-by: Jens Scheffler <95...@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Jens Scheffler <95...@users.noreply.github.com>
---
 .github/CODEOWNERS                                 |   1 +
 .github/boring-cyborg.yml                          |   3 +
 .../airflow/ui/public/i18n/locales/tr/admin.json   | 167 +++++++++++
 .../airflow/ui/public/i18n/locales/tr/assets.json  |  30 ++
 .../airflow/ui/public/i18n/locales/tr/browse.json  |  26 ++
 .../airflow/ui/public/i18n/locales/tr/common.json  | 314 +++++++++++++++++++++
 .../ui/public/i18n/locales/tr/components.json      | 136 +++++++++
 .../src/airflow/ui/public/i18n/locales/tr/dag.json | 122 ++++++++
 .../airflow/ui/public/i18n/locales/tr/dags.json    |  97 +++++++
 .../ui/public/i18n/locales/tr/dashboard.json       |  45 +++
 .../airflow/ui/public/i18n/locales/tr/hitl.json    |  24 ++
 airflow-core/src/airflow/ui/src/i18n/config.ts     |   1 +
 12 files changed, 966 insertions(+)

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e42a7f52d16..a45d79e07b8 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -47,6 +47,7 @@ airflow-core/src/airflow/ui/public/i18n/locales/nl/ @BasPH # + @DjVinnii
 airflow-core/src/airflow/ui/public/i18n/locales/pl/ @potiuk @mobuchowski # + @kacpermuda
 airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/ @Lee-W @jason810496 # + @RoyLee1224 @guan404ming
 airflow-core/src/airflow/ui/public/i18n/locales/fr/ @pierrejeambrun @vincbeck
+airflow-core/src/airflow/ui/public/i18n/locales/tr/ @bugraoz93 # +@hasancatalgol
 
 # Security/Permissions
 /airflow-core/src/airflow/security/permissions.py @vincbeck
diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml
index 351ad3c98e8..954ec6a9ac5 100644
--- a/.github/boring-cyborg.yml
+++ b/.github/boring-cyborg.yml
@@ -395,6 +395,9 @@ labelPRBasedOnFilePath:
   translation:pl:
     - airflow-core/src/airflow/ui/public/i18n/locales/pl/*
 
+  translation:tr:
+    - airflow-core/src/airflow/ui/public/i18n/locales/tr/*
+
   translation:zh-TW:
     - airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/*
 
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/admin.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/admin.json
new file mode 100644
index 00000000000..6298c9f2b29
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/admin.json
@@ -0,0 +1,167 @@
+{
+  "columns": {
+    "description": "Açıklama",
+    "key": "Anahtar",
+    "name": "Ad",
+    "value": "Değer"
+  },
+  "config": {
+    "columns": {
+      "section": "Bölüm"
+    },
+    "title": "Airflow Yapılandırması"
+  },
+  "connections": {
+    "add": "Bağlantı Ekle",
+    "columns": {
+      "connectionId": "Bağlantı Kimliği",
+      "connectionType": "Bağlantı Tipi",
+      "host": "Host",
+      "port": "Port"
+    },
+    "connection_one": "Bağlantı",
+    "connection_other": "Bağlantılar",
+    "delete": {
+      "deleteConnection_one": "1 bağlantıyı sil",
+      "deleteConnection_other": "{{count}} bağlantıyı sil",
+      "firstConfirmMessage_one": "Aşağıdaki bağlantıyı silmek üzeresiniz:",
+      "firstConfirmMessage_other": "Aşağıdaki bağlantıları silmek üzeresiniz:",
+      "title": "Bağlantıyı Sil"
+    },
+    "edit": "Bağlantıyı Düzenle",
+    "form": {
+      "connectionIdRequired": "Bağlantı Kimliği gerekli",
+      "connectionIdRequirement": "Bağlantı Kimliği sadece boşluklardan oluşamaz",
+      "connectionTypeRequired": "Bağlantı Tipi gerekli",
+      "extraFields": "Ek Alanlar",
+      "extraFieldsJson": "Ek Alanlar JSON",
+      "helperText": "Bağlantı tipi eksik mi? İlgili Airflow Providers paketini yüklediğinizden emin olun.",
+      "helperTextForRedactedFields": "Gizlenmiş alanlar ('***') değiştirilmedikçe kaydedilmeyecektir.",
+      "selectConnectionType": "Bağlantı Tipi Seçin",
+      "standardFields": "Standart Alanlar"
+    },
+    "nothingFound": {
+      "description": "Sistem Ortam değişkenleri veya gizli sır yönetimi ile tanımlanan bağlantılar burada listelenmez.",
+      "documentationLink": "Airflow dokümantasyonuna daha fazla bilgi edinin.",
+      "learnMore": "Bunlar çalışma zamanında çözümlenir ve arayüzde görünmez.",
+      "title": "Bağlantı bulunamadı!"
+    },
+    "searchPlaceholder": "Bağlantıları Ara",
+    "test": "Bağlantıyı Test Et",
+    "testDisabled": "Bağlantı test özelliği devre dışı. Etkinleştirmek için lütfen bir yönetici ile iletişime geçin.",
+    "typeMeta": {
+      "error": "Bağlantı Tipi Meta verileri alınamadı",
+      "standardFields": {
+        "description": "Açıklama",
+        "host": "Host",
+        "login": "Giriş",
+        "password": "Şifre",
+        "port": "Port",
+        "url_schema": "Şema"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Sil",
+    "modal": {
+      "confirmButton": "Evet, Sil",
+      "secondConfirmMessage": "Bu işlem kalıcıdır ve geri alınamaz.",
+      "thirdConfirmMessage": "Devam etmek istediğinizden emin misiniz?"
+    },
+    "selected": "Seçili",
+    "tooltip": "Seçilen bağlantıları sil"
+  },
+  "formActions": {
+    "reset": "Sıfırla",
+    "save": "Kaydet"
+  },
+  "plugins": {
+    "columns": {
+      "source": "Kaynak"
+    },
+    "importError_one": "Eklenti İçe Aktarma Hatası",
+    "importError_other": "Eklenti İçe Aktarma Hataları",
+    "searchPlaceholder": "Dosyaya göre ara"
+  },
+  "pools": {
+    "add": "Havuz Ekle",
+    "deferredSlotsIncluded": "Ertelenmiş Slotlar Dahil",
+    "delete": {
+      "title": "Havuzu Sil",
+      "warning": "Bu, havuzla ilgili tüm meta verileri kaldıracak ve bu havuzu kullanan görevleri etkileyebilir."
+    },
+    "edit": "Havuzu Düzenle",
+    "form": {
+      "checkbox": "Açık havuz işlem yuvası hesaplanırken ertelenmiş görevleri dahil etmek için işaretleyin",
+      "description": "Açıklama",
+      "includeDeferred": "Ertelenmişleri Dahil Et",
+      "nameMaxLength": "Ad en fazla 256 karakter içerebilir",
+      "nameRequired": "Ad gerekli",
+      "slots": "İşlem yuvaları"
+    },
+    "noPoolsFound": "Havuz bulunamadı",
+    "pool_one": "Havuz",
+    "pool_other": "Havuzlar",
+    "searchPlaceholder": "Havuzları Ara",
+    "sort": {
+      "asc": "Ad (A-Z)",
+      "desc": "Ad (Z-A)",
+      "placeholder": "Sıralama kriteri"
+    }
+  },
+  "providers": {
+    "columns": {
+      "packageName": "Paket Adı",
+      "version": "Versiyon"
+    }
+  },
+  "variables": {
+    "add": "Değişken Ekle",
+    "columns": {
+      "isEncrypted": "Şifrelenmiş"
+    },
+    "delete": {
+      "deleteVariable_one": "1 Değişkeni Sil",
+      "deleteVariable_other": "{{count}} Değişkeni Sil",
+      "firstConfirmMessage_one": "Aşağıdaki değişkeni silmek üzeresiniz:",
+      "firstConfirmMessage_other": "Aşağıdaki değişkenleri silmek üzeresiniz:",
+      "title": "Değişkeni Sil",
+      "tooltip": "Seçili değişkenleri sil"
+    },
+    "edit": "Değişkeni Düzenle",
+    "export": "Dışa Aktar",
+    "exportTooltip": "Seçili değişkenleri dışa aktar",
+    "form": {
+      "invalidJson": "Geçersiz JSON",
+      "keyMaxLength": "Anahtar en fazla 250 karakter içerebilir",
+      "keyRequired": "Anahtar gerekli",
+      "valueRequired": "Değer gerekli"
+    },
+    "import": {
+      "button": "İçe Aktar",
+      "conflictResolution": "Değişken Çakışma Çözümünü Seçin",
+      "errorParsingJsonFile": "JSON Dosyası Ayrıştırma Hatası: Değişkenler içeren bir JSON dosyası yükleyin (örn. {\"key\": \"value\", ...}).",
+      "options": {
+        "fail": {
+          "description": "Mevcut değişkenler tespit edilirse içe aktarma başarısız olur.",
+          "title": "Başarısız"
+        },
+        "overwrite": {
+          "description": "Çakışma durumunda değişkenin üzerine yazar.",
+          "title": "Üzerine Yaz"
+        },
+        "skip": {
+          "description": "Zaten var olan değişkenlerin içe aktarılmasını atlar.",
+          "title": "Atla"
+        }
+      },
+      "title": "Değişkenleri İçe Aktar",
+      "upload": "JSON Dosyası Yükle",
+      "uploadPlaceholder": "Değişkenler içeren bir JSON dosyası yükleyin (örn. {\"key\": \"value\", ...})"
+    },
+    "noRowsMessage": "Değişken bulunamadı",
+    "searchPlaceholder": "Anahtarları Ara",
+    "variable_one": "Değişken",
+    "variable_other": "Değişkenler"
+  }
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/assets.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/assets.json
new file mode 100644
index 00000000000..3999d970008
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/assets.json
@@ -0,0 +1,30 @@
+{
+  "consumingDags": "Tüketen Dag'ler",
+  "createEvent": {
+    "button": "Olay oluştur",
+    "manual": {
+      "description": "Kaynak olayı elle oluştur",
+      "extra": "Kaynak olayı hakkında ek bilgiler",
+      "label": "Manuel"
+    },
+    "materialize": {
+      "description": "Bu kaynağa bağlı olan Dag'ı çalıştır",
+      "descriptionWithDag": "Bu kaynağa bağlı olan Dag'ı çalıştır: {{dagName}}",
+      "label": "Gerçekleştir",
+      "unpauseDag": "Çağrıldığında {{dagName}} Dag'ını devam ettir"
+    },
+    "success": {
+      "manualDescription": "Kaynak olayı manuel olarak başarıyla oluşturuldu.",
+      "manualTitle": "Kaynak olayı oluşturuldu",
+      "materializeDescription": "Bağlı Dag {{dagId}} başarıyla çağrıldı.",
+      "materializeTitle": "Kaynağı gerçekleştirme"
+    },
+    "title": "{{name}} için kaynak olayı oluştur"
+  },
+  "group": "Grup",
+  "lastAssetEvent": "Son kaynak olayı",
+  "name": "Ad",
+  "producingTasks": "Üreten görevler",
+  "scheduledDags": "Planlanan Dag'ler",
+  "searchPlaceholder": "Kaynakları ara"
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/browse.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/browse.json
new file mode 100644
index 00000000000..ef6b5c91852
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/browse.json
@@ -0,0 +1,26 @@
+{
+  "auditLog": {
+    "actions": {
+      "collapseAllExtra": "Tüm ek JSON'ları daralt",
+      "expandAllExtra": "Tüm ek JSON'ları genişlet"
+    },
+    "columns": {
+      "event": "Etkinlik",
+      "extra": "Ek Bilgi",
+      "user": "Kullanıcı",
+      "when": "Zaman"
+    },
+    "filters": {
+      "eventType": "Etkinlik Türü"
+    },
+    "title": "Denetim Günlüğü"
+  },
+  "xcom": {
+    "columns": {
+      "dag": "Dag",
+      "key": "Anahtar",
+      "value": "Değer"
+    },
+    "title": "XCom"
+  }
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/common.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/common.json
new file mode 100644
index 00000000000..42d2f847c24
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/common.json
@@ -0,0 +1,314 @@
+{
+  "admin": {
+    "Config": "Yapılandırma",
+    "Connections": "Bağlantılar",
+    "Plugins": "Eklentiler",
+    "Pools": "Havuzlar",
+    "Providers": "Sağlayıcılar",
+    "Variables": "Değişkenler"
+  },
+  "asset_one": "Varlık",
+  "asset_other": "Varlıklar",
+  "assetEvent_one": "Varlık Etkinliği",
+  "assetEvent_other": "Varlık Etkinlikleri",
+  "backfill_one": "Geriye Dönük Çalıştırma",
+  "backfill_other": "Geriye Dönük Çalıştırmalar",
+  "browse": {
+    "auditLog": "Denetim Günlüğü",
+    "requiredActions": "Gerekli Eylemler",
+    "xcoms": "XCom'lar"
+  },
+  "collapseDetailsPanel": "Detay Panelini Daralt",
+  "createdAssetEvent_one": "Oluşturulan Varlık Etkinliği",
+  "createdAssetEvent_other": "Oluşturulan Varlık Etkinlikleri",
+  "dag_one": "Dag",
+  "dag_other": "Dag'ler",
+  "dagDetails": {
+    "catchup": "Yakalama",
+    "concurrency": "Eş Zamanlılık",
+    "dagRunTimeout": "Dag Çalıştırma Zaman Aşımı",
+    "defaultArgs": "Varsayılan Argümanlar",
+    "description": "Açıklama",
+    "documentation": "Dag Dokümantasyonu",
+    "fileLocation": "Dosya Konumu",
+    "hasTaskConcurrencyLimits": "Görev Eş Zamanlılık Limitleri Var",
+    "lastExpired": "Son Süresi Dolan",
+    "lastParsed": "Son Ayrıştırılan",
+    "latestDagVersion": "En Son Dag Versiyonu",
+    "latestRun": "En Son Çalışma",
+    "maxActiveRuns": "Maksimum Aktif Çalışma",
+    "maxActiveTasks": "Maksimum Aktif Görev",
+    "maxConsecutiveFailedDagRuns": "Maksimum Ardışık Başarısız Dag Çalıştırmaları",
+    "nextRun": "Sonraki Çalışma",
+    "owner": "Sahip",
+    "params": "Parametreler",
+    "schedule": "Zamanlama",
+    "tags": "Etiketler"
+  },
+  "dagId": "Eşsiz Dag Kimliği",
+  "dagRun": {
+    "conf": "Yapılandırma",
+    "dagVersions": "Dag Versiyonu(ları)",
+    "dataIntervalEnd": "Veri Aralığı Sonu",
+    "dataIntervalStart": "Veri Aralığı Başlangıcı",
+    "lastSchedulingDecision": "Son Zamanlama Kararı",
+    "queuedAt": "Kuyruğa Alınma Zamanı",
+    "runAfter": "Sonra Çalıştır",
+    "runType": "Çalıştırma Tipi",
+    "sourceAssetEvent": "Kaynak Varlık Etkinliği",
+    "triggeredBy": "Tetikleyen",
+    "triggeringUser": "Çalıştıran Kullanıcı"
+  },
+  "dagRun_one": "Dag Çalıştırması",
+  "dagRun_other": "Dag Çalıştırmaları",
+  "dagRunId": "Eşsiz Dag Çalıştırma Kimliği",
+  "dagWarnings": "Dag Uyarıları/Hataları",
+  "defaultToGraphView": "Varsayılan olarak grafik görünümü",
+  "defaultToGridView": "Varsayılan olarak ızgara görünümü",
+  "direction": "Yön",
+  "docs": {
+    "documentation": "Dokümantasyon",
+    "githubRepo": "GitHub Deposu",
+    "restApiReference": "REST API Referansı"
+  },
+  "duration": "Süre",
+  "endDate": "Bitiş Tarihi",
+  "error": {
+    "back": "Geri",
+    "defaultMessage": "Beklenmeyen bir hata oluştu",
+    "home": "Ana Sayfa",
+    "notFound": "Sayfa Bulunamadı",
+    "title": "Hata"
+  },
+  "expand": {
+    "collapse": "Daralt",
+    "expand": "Genişlet",
+    "hotkey": "e",
+    "tooltip": "{{hotkey}} tuşuna basarak genişletmeyi değiştir"
+  },
+  "expression": {
+    "all": "Tümü",
+    "and": "VE",
+    "any": "Herhangi",
+    "or": "VEYA"
+  },
+  "filters": {
+    "dagDisplayNamePlaceholder": "Dag adına göre filtrele",
+    "keyPlaceholder": "XCom anahtarına göre filtrele",
+    "logicalDateFromPlaceholder": "Mantıksal tarih başlangıcı",
+    "logicalDateToPlaceholder": "Mantıksal tarih bitişi",
+    "mapIndexPlaceholder": "Harita indeksine göre filtrele",
+    "runAfterFromPlaceholder": "Şu tarihten sonra çalıştır (başlangıç)",
+    "runAfterToPlaceholder": "Şu tarihten sonra çalıştır (bitiş)",
+    "runIdPlaceholder": "Çalıştırma kimliğine göre filtrele",
+    "taskIdPlaceholder": "Görev kimliğine göre filtrele"
+  },
+  "logicalDate": "Mantıksal Tarih",
+  "logout": "Çıkış",
+  "logoutConfirmation": "Uygulamadan çıkış yapmak üzeresiniz.",
+  "mapIndex": "Harita İndeksi",
+  "modal": {
+    "cancel": "İptal",
+    "confirm": "Onayla",
+    "delete": {
+      "button": "Sil",
+      "confirmation": "{{resourceName}} öğesini silmek istediğinizden emin misiniz? Bu işlem geri alınamaz."
+    }
+  },
+  "nav": {
+    "admin": "Yönetici",
+    "assets": "Varlıklar",
+    "browse": "Göz At",
+    "dags": "Dag'ler",
+    "docs": "Dokümantasyon",
+    "home": "Ana Sayfa",
+    "legacyFabViews": "Airflow 2 Fab Görünümleri",
+    "plugins": "Eklentiler",
+    "security": "Güvenlik"
+  },
+  "noItemsFound": "Hiç {{modelName}} bulunamadı",
+  "note": {
+    "add": "Not ekle",
+    "dagRun": "Dag Çalıştırma Notu",
+    "label": "Not",
+    "placeholder": "Not ekle...",
+    "taskInstance": "Görev Örneği Notu"
+  },
+  "pools": {
+    "deferred": "Ertelenmiş",
+    "open": "Açık",
+    "pools_one": "Havuz",
+    "pools_other": "Havuzlar",
+    "queued": "Kuyrukta",
+    "running": "Çalışıyor",
+    "scheduled": "Planlanmış"
+  },
+  "runId": "Çalıştırma Kimliği",
+  "runTypes": {
+    "asset_triggered": "Varlık Tetiklemeli",
+    "backfill": "Geriye Dönük Çalıştırma",
+    "manual": "Manuel",
+    "scheduled": "Planlanmış"
+  },
+  "scroll": {
+    "direction": {
+      "bottom": "alt",
+      "top": "üst"
+    },
+    "tooltip": "{{direction}} kaydırmak için {{hotkey}} tuşuna basın"
+  },
+  "seconds": "{{count}}sn",
+  "security": {
+    "actions": "Eylemler",
+    "permissions": "İzinler",
+    "resources": "Kaynaklar",
+    "roles": "Roller",
+    "users": "Kullanıcılar"
+  },
+  "selectLanguage": "Dil Seçin",
+  "showDetailsPanel": "Detay Panelini Göster",
+  "source": {
+    "hide": "Kaynağı Gizle",
+    "hotkey": "s",
+    "show": "Kaynağı Göster"
+  },
+  "sourceAssetEvent_one": "Kaynak Varlık Etkinliği",
+  "sourceAssetEvent_other": "Kaynak Varlık Etkinlikleri",
+  "startDate": "Başlangıç Tarihi",
+  "state": "Durum",
+  "states": {
+    "deferred": "Ertelenmiş",
+    "failed": "Başarısız",
+    "no_status": "Durum Yok",
+    "none": "Durum Yok",
+    "queued": "Kuyrukta",
+    "removed": "Kaldırılmış",
+    "restarting": "Yeniden Başlatılıyor",
+    "running": "Çalışıyor",
+    "scheduled": "Planlanmış",
+    "skipped": "Atlanmış",
+    "success": "Başarılı",
+    "up_for_reschedule": "Yeniden Zamanlanacak",
+    "up_for_retry": "Yeniden Denenecek",
+    "upstream_failed": "Yukarı Akış Başarısız"
+  },
+  "switchToDarkMode": "Karanlık Moda Geç",
+  "switchToLightMode": "Aydınlık Moda Geç",
+  "table": {
+    "completedAt": "Tamamlanma Tarihi",
+    "createdAt": "Oluşturulma Tarihi",
+    "filterByTag": "Dag'ları etikete göre filtrele",
+    "filterColumns": "Tablo sütunlarını filtrele",
+    "filterReset_one": "Filtreyi sıfırla",
+    "filterReset_other": "Filtreleri sıfırla",
+    "from": "Başlangıç",
+    "maxActiveRuns": "Maksimum Aktif Dag Çalıştırmaları",
+    "noTagsFound": "Etiket bulunamadı",
+    "tagMode": {
+      "all": "Tümü",
+      "any": "Herhangi"
+    },
+    "tagPlaceholder": "Etikete göre filtrele",
+    "to": "Bitiş"
+  },
+  "task": {
+    "documentation": "Görev Dokümantasyonu",
+    "lastInstance": "Son Örnek",
+    "operator": "Operatör",
+    "triggerRule": "Tetikleme Kuralı"
+  },
+  "task_one": "Görev",
+  "task_other": "Görevler",
+  "taskGroup": "Görev Grubu",
+  "taskId": "Görev Kimliği",
+  "taskInstance": {
+    "dagVersion": "Dag Versiyonu",
+    "executor": "Yürütücü",
+    "executorConfig": "Yürütücü Yapılandırması",
+    "hostname": "Sunucu Adı",
+    "maxTries": "Maksimum Deneme",
+    "pid": "PID",
+    "pool": "İşlem Havuzu",
+    "poolSlots": "İşlem Havuz Kotaları",
+    "priorityWeight": "Öncelik Ağırlığı",
+    "queue": "Kuyruk",
+    "queuedWhen": "Kuyruğa Alınma",
+    "scheduledWhen": "Planlanma",
+    "triggerer": {
+      "assigned": "Atanmış tetikleyici",
+      "class": "Tetikleyici sınıfı",
+      "createdAt": "Tetikleyici oluşturma zamanı",
+      "id": "Tetikleyici Kimliği",
+      "latestHeartbeat": "En son tetikleyici kalp atışı",
+      "title": "Tetikleyici Bilgisi"
+    },
+    "unixname": "Unix Adı"
+  },
+  "taskInstance_one": "Görev Örneği",
+  "taskInstance_other": "Görev Örnekleri",
+  "timeRange": {
+    "last12Hours": "Son 12 Saat",
+    "last24Hours": "Son 24 Saat",
+    "lastHour": "Son Saat",
+    "pastWeek": "Geçen Hafta"
+  },
+  "timestamp": {
+    "hide": "Zaman damgalarını gizle",
+    "hotkey": "t",
+    "show": "Zaman damgalarını göster"
+  },
+  "timezone": "Saat Dilimi",
+  "timezoneModal": {
+    "current-timezone": "Şu andaki saat",
+    "placeholder": "Bir saat dilimi seçin",
+    "title": "Saat Dilimi Seçin",
+    "utc": "UTC (Koordineli Evrensel Saat)"
+  },
+  "toaster": {
+    "bulkDelete": {
+      "error": "Toplu {{resourceName}} Silme İsteği Başarısız",
+      "success": {
+        "description": "{{count}} {{resourceName}} başarıyla silindi. Anahtarlar: {{keys}}",
+        "title": "Toplu {{resourceName}} Silme İsteği Gönderildi"
+      }
+    },
+    "create": {
+      "error": "{{resourceName}} Oluşturma İsteği Başarısız",
+      "success": {
+        "description": "{{resourceName}} başarıyla oluşturuldu.",
+        "title": "{{resourceName}} Oluşturma İsteği Gönderildi"
+      }
+    },
+    "delete": {
+      "error": "{{resourceName}} Silme İsteği Başarısız",
+      "success": {
+        "description": "{{resourceName}} başarıyla silindi.",
+        "title": "{{resourceName}} Silme İsteği Gönderildi"
+      }
+    },
+    "import": {
+      "error": "{{resourceName}} İçe Aktarma İsteği Başarısız",
+      "success": {
+        "description": "{{count}} {{resourceName}} başarıyla içe aktarıldı.",
+        "title": "{{resourceName}} İçe Aktarma İsteği Gönderildi"
+      }
+    },
+    "update": {
+      "error": "{{resourceName}} Güncelleme İsteği Başarısız",
+      "success": {
+        "description": "{{resourceName}} başarıyla güncellendi.",
+        "title": "{{resourceName}} Güncelleme İsteği Gönderildi"
+      }
+    }
+  },
+  "total": "Tümü {{state}}",
+  "triggered": "Tetiklendi",
+  "tryNumber": "Deneme Sayısı",
+  "user": "Kullanıcı",
+  "wrap": {
+    "hotkey": "w",
+    "tooltip": "Kaydırmayı açıp kapatmak için {{hotkey}} tuşuna basın",
+    "unwrap": "Kaydırmayı Kapat",
+    "wrap": "Kaydır"
+  }
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/components.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/components.json
new file mode 100644
index 00000000000..c2733b504e2
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/components.json
@@ -0,0 +1,136 @@
+{
+  "backfill": {
+    "affected_one": "1 çalıştırma tetiklenecek.",
+    "affected_other": "{{count}} çalıştırma tetiklenecek.",
+    "affectedNone": "Seçilen kriterlere uygun çalıştırma bulunamadı.",
+    "allRuns": "Bütün Dag Çalıştırmaları",
+    "backwards": "Geriye Dönük Çalıştır",
+    "dateRange": "Tarih Aralığı",
+    "dateRangeFrom": "Başlangıç",
+    "dateRangeTo": "Bitiş",
+    "errorStartDateBeforeEndDate": "Başlangıç Tarihi, Bitiş Tarihinden önce olmalıdır",
+    "maxRuns": "Maksimum Aktif Çalıştırma",
+    "missingAndErroredRuns": "Eksik ve Hata Almış Dag Çalıştırmaları",
+    "missingRuns": "Eksik Dag Çalıştırmaları",
+    "reprocessBehavior": "Yeniden İşleme Davranışı",
+    "run": "Geriye Dönük Çalıştır",
+    "selectDescription": "Bu Dag'ı bir tarih aralığı için çalıştır",
+    "selectLabel": "Geriye Dönük Çalıştırma",
+    "title": "Geriye Doldurma Çalıştır",
+    "toaster": {
+      "success": {
+        "description": "Geriye dönük çalıştırma işlemleri başarıyla tetiklendi.",
+        "title": "Geriye dönük çalıştırma oluşturuldu"
+      }
+    },
+    "tooltip": "Geriye dönük çalıştırma için bir zamanlama gereklidir",
+    "unpause": "Tetiklendiğinde {{dag_display_name}} duraklatmasını kaldır",
+    "validation": {
+      "datesRequired": "Hem Veri Aralığı Başlangıç Tarihi hem de Bitiş Tarihi sağlanmalıdır.",
+      "startBeforeEnd": "Veri Aralığı Başlangıç Tarihi, Veri Aralığı Bitiş Tarihine eşit veya daha küçük olmalıdır."
+    }
+  },
+  "banner": {
+    "backfillInProgress": "Geriye dönük çalıştırma devam ediyor",
+    "cancel": "Geriye dönük çalıştırmayı iptal et",
+    "pause": "Geriye dönük çalıştırmayı duraklat",
+    "unpause": "Geriye dönük çalıştırmayı devam ettir"
+  },
+  "clipboard": {
+    "copy": "Kopyala"
+  },
+  "close": "Kapat",
+  "configForm": {
+    "advancedOptions": "Gelişmiş Seçenekler",
+    "configJson": "Yapılandırma JSON",
+    "invalidJson": "Geçersiz JSON formatı: {{errorMessage}}"
+  },
+  "dagWarnings": {
+    "error_one": "1 Hata",
+    "error_other": "{{count}} Hata(lar)",
+    "errorAndWarning": "1 Hata ve {{warningText}}",
+    "warning_one": "1 Uyarı",
+    "warning_other": "{{count}} Uyarı"
+  },
+  "durationChart": {
+    "duration": "Süre (saniye)",
+    "lastDagRun_one": "Son Dag Çalıştırması",
+    "lastDagRun_other": "Son {{count}} Dag Çalıştırması",
+    "lastTaskInstance_one": "Son Görev Örneği",
+    "lastTaskInstance_other": "Son {{count}} Görev Örneği",
+    "queuedDuration": "Kuyrukta Kalma Süresi",
+    "runAfter": "Sonra Çalıştır",
+    "runDuration": "Çalışma Süresi"
+  },
+  "fileUpload": {
+    "files_one": "{{count}} dosya(lar)",
+    "files_other": "{{count}} dosya"
+  },
+  "flexibleForm": {
+    "placeholder": "Değer Seçin",
+    "placeholderArray": "Metinleri yeni satır olarak girin",
+    "placeholderExamples": "Seçenekleri görmek için yazmaya başlayın",
+    "placeholderMulti": "Bir veya birden fazla değer seçin",
+    "validationErrorArrayNotArray": "Değer bir dizi olmalıdır.",
+    "validationErrorArrayNotNumbers": "Dizideki tüm öğeler sayı olmalıdır.",
+    "validationErrorArrayNotObject": "Dizideki tüm öğeler nesne olmalıdır.",
+    "validationErrorRequired": "Bu alan zorunludur"
+  },
+  "graph": {
+    "directionDown": "Yukarıdan Aşağıya",
+    "directionLeft": "Sağdan Sola",
+    "directionRight": "Soldan Sağa",
+    "directionUp": "Aşağıdan Yukarıya",
+    "downloadImage": "Grafik görselini indir",
+    "downloadImageError": "Grafik görseli indirilemedi.",
+    "downloadImageErrorTitle": "İndirme Başarısız",
+    "otherDagRuns": "+Diğer Dag Çalıştırmaları",
+    "taskCount_one": "{{count}} Görev",
+    "taskCount_other": "{{count}} Görev",
+    "taskGroup": "Görev Grubu"
+  },
+  "limitedList": "+{{count}} daha",
+  "logs": {
+    "file": "Dosya",
+    "location": "{{name}} içinde satır {{line}}"
+  },
+  "reparseDag": "Dag'ı Yeniden Ayrıştır",
+  "sortedAscending": "artan sıralı",
+  "sortedDescending": "azalan sıralı",
+  "sortedUnsorted": "sıralanmamış",
+  "taskTries": "Görev Denemeleri",
+  "toggleCardView": "Kart görünümünü göster",
+  "toggleTableView": "Tablo görünümünü göster",
+  "triggerDag": {
+    "button": "Tetikle",
+    "loading": "Dag bilgisi yükleniyor...",
+    "loadingFailed": "Dag bilgisi yüklenemedi. Lütfen tekrar deneyin.",
+    "runIdHelp": "İsteğe bağlı - sağlanmazsa oluşturulacaktır",
+    "selectDescription": "Bu Dag'ın tek bir çalıştırmasını tetikle",
+    "selectLabel": "Tek Çalıştırma",
+    "title": "Dag Tetikle",
+    "toaster": {
+      "success": {
+        "description": "Dag çalıştırması başarıyla tetiklendi.",
+        "title": "Dag Çalıştırması Tetiklendi"
+      }
+    },
+    "unpause": "Tetiklendiğinde {{dagDisplayName}} duraklatmasını kaldır"
+  },
+  "trimText": {
+    "details": "Detaylar",
+    "empty": "Boş",
+    "noContent": "İçerik bulunamadı."
+  },
+  "versionDetails": {
+    "bundleLink": "Paket Bağlantısı",
+    "bundleName": "Paket Adı",
+    "bundleVersion": "Paket Versiyonu",
+    "createdAt": "Oluşturulma",
+    "versionId": "Versiyon Kimliği"
+  },
+  "versionSelect": {
+    "dagVersion": "Dag Versiyonu",
+    "versionCode": "v{{versionCode}}"
+  }
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dag.json
new file mode 100644
index 00000000000..ab14e119fcd
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dag.json
@@ -0,0 +1,122 @@
+{
+  "allRuns": "Tüm Çalıştırmalar",
+  "blockingDeps": {
+    "dependency": "Bağımlılık",
+    "reason": "Sebep",
+    "title": "Görevin Zamanlanmasını Engelleyen Bağımlılıklar"
+  },
+  "code": {
+    "bundleUrl": "Paket URL'i",
+    "noCode": "Kod Bulunamadı",
+    "parsedAt": "Ayrıştırılma zamanı:"
+  },
+  "extraLinks": "Ek Bağlantılar",
+  "grid": {
+    "buttons": {
+      "resetToLatest": "En son haline sıfırla",
+      "toggleGroup": "Grubu aç/kapat"
+    }
+  },
+  "header": {
+    "buttons": {
+      "advanced": "Gelişmiş",
+      "dagDocs": "Dag Belgeleri"
+    }
+  },
+  "logs": {
+    "allLevels": "Tüm Günlük Seviyeleri",
+    "allSources": "Tüm Kaynaklar",
+    "critical": "KRİTİK",
+    "debug": "HATA AYIKLAMA",
+    "error": "HATA",
+    "fullscreen": {
+      "button": "Tam ekran",
+      "tooltip": "Tam ekran için {{hotkey}} tuşuna basın"
+    },
+    "info": "BİLGİ",
+    "noTryNumber": "Tekrar Deneme numarası yok",
+    "settings": "Günlük Ayarları",
+    "viewInExternal": "Günlükleri {{name}} içinde görüntüle (deneme {{attempt}})",
+    "warning": "UYARI"
+  },
+  "navigation": {
+    "jump": "Atla: Shift+{{arrow}}",
+    "navigation": "Gezin: {{arrow}}",
+    "toggleGroup": "Grubu aç/kapat: Space"
+  },
+  "overview": {
+    "buttons": {
+      "failedRun_one": "Başarısız Çalıştırma",
+      "failedRun_other": "Başarısız Çalıştırmalar",
+      "failedTask_one": "Başarısız Görev",
+      "failedTask_other": "Başarısız Görevler",
+      "failedTaskInstance_one": "Başarısız Görev Örneği",
+      "failedTaskInstance_other": "Başarısız Görev Örnekleri"
+    },
+    "charts": {
+      "assetEvent_one": "Oluşturulan Varlık Etkinliği",
+      "assetEvent_other": "Oluşturulan Varlık Etkinlikleri"
+    },
+    "failedLogs": {
+      "title": "Son Başarısız Görev Günlükleri",
+      "viewFullLogs": "Tam günlükleri görüntüle"
+    }
+  },
+  "panel": {
+    "buttons": {
+      "options": "Seçenekler",
+      "showGantt": "Gantt Grafiğini Göster",
+      "showGraph": "Grafiği Göster",
+      "showGrid": "Izgarayı Göster"
+    },
+    "dagRuns": {
+      "label": "Dag Çalıştırma Sayısı"
+    },
+    "dependencies": {
+      "label": "Bağımlılıklar",
+      "options": {
+        "allDagDependencies": "Tüm Dag Bağımlılıkları",
+        "externalConditions": "Dış koşullar",
+        "onlyTasks": "Sadece görevler"
+      },
+      "placeholder": "Bağımlılıklar"
+    },
+    "graphDirection": {
+      "label": "Grafik Yönü"
+    }
+  },
+  "paramsFailed": "Parametreler yüklenemedi",
+  "parse": {
+    "toaster": {
+      "error": {
+        "description": "Dag ayrıştırma isteği başarısız oldu. Henüz işlenmemiş bekleyen ayrıştırma istekleri olabilir.",
+        "title": "Dag Yeniden Ayrıştırılamadı"
+      },
+      "success": {
+        "description": "Dag yakında yeniden ayrıştırılacak.",
+        "title": "Yeniden ayrıştırma isteği başarıyla gönderildi"
+      }
+    }
+  },
+  "tabs": {
+    "assetEvents": "Varlık Etkinlikleri",
+    "auditLog": "Denetim Günlüğü",
+    "backfills": "Geriye Dönük Çalıştırma İşlemleri",
+    "code": "Kod",
+    "details": "Detaylar",
+    "logs": "Günlükler",
+    "mappedTaskInstances_one": "Görev Örneği [{{count}}]",
+    "mappedTaskInstances_other": "Görev Örnekleri [{{count}}]",
+    "overview": "Genel Bakış",
+    "renderedTemplates": "İşlenmiş Şablonlar",
+    "requiredActions": "Gerekli Eylemler",
+    "runs": "Çalıştırmalar",
+    "taskInstances": "Görev Örnekleri",
+    "tasks": "Görevler",
+    "xcom": "XCom"
+  },
+  "taskGroups": {
+    "collapseAll": "Tüm görev gruplarını daralt",
+    "expandAll": "Tüm görev gruplarını genişlet"
+  }
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/dags.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dags.json
new file mode 100644
index 00000000000..2974a4d4f48
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dags.json
@@ -0,0 +1,97 @@
+{
+  "assetSchedule": "{{total}} varlıktan {{count}} tanesi güncellendi",
+  "dagActions": {
+    "delete": {
+      "button": "Dag'ı Sil",
+      "warning": "Bu işlem, Çalıştırmalar ve Görevler dahil olmak üzere Dag ile ilgili tüm meta verileri kaldıracaktır."
+    }
+  },
+  "favoriteDag": "Favori Dag",
+  "filters": {
+    "allRunTypes": "Tüm Çalıştırma Tipleri",
+    "allStates": "Tüm Durumlar",
+    "favorite": {
+      "all": "Tümü",
+      "favorite": "Favori",
+      "unfavorite": "Favoriden Çıkar"
+    },
+    "paused": {
+      "active": "Aktif",
+      "all": "Tümü",
+      "paused": "Duraklatılmış"
+    },
+    "runIdPatternFilter": "Dag Çalıştırmalarında Ara",
+    "triggeringUserNameFilter": "Tetikleyen Kullanıcıya Göre Ara"
+  },
+  "ownerLink": "{{owner}} için sahip bağlantısı",
+  "runAndTaskActions": {
+    "affectedTasks": {
+      "noItemsFound": "Görev bulunamadı.",
+      "title": "Etkilenen Görevler: {{count}}"
+    },
+    "clear": {
+      "button": "{{type}} Temizle",
+      "buttonTooltip": "Temizlemek için shift+c tuşuna basın",
+      "error": "{{type}} temizlenemedi",
+      "title": "{{type}} Temizle"
+    },
+    "delete": {
+      "button": "{{type}} Sil",
+      "dialog": {
+        "resourceName": "{{type}} {{id}}",
+        "title": "{{type}} Sil",
+        "warning": "Bu işlem, {{type}} ile ilgili tüm meta verileri kaldıracaktır."
+      },
+      "error": "{{type}} silinirken hata oluştu",
+      "success": {
+        "description": "{{type}} silme isteği başarılı oldu.",
+        "title": "{{type}} Başarıyla Silindi"
+      }
+    },
+    "markAs": {
+      "button": "{{type}} şu şekilde işaretle...",
+      "buttonTooltip": {
+        "failed": "Başarısız olarak işaretlemek için shift+f tuşuna basın",
+        "success": "Başarılı olarak işaretlemek için shift+s tuşuna basın"
+      },
+      "title": "{{type}} {{state}} olarak işaretle"
+    },
+    "options": {
+      "downstream": "Aşağı Akış",
+      "existingTasks": "Mevcut görevleri temizle",
+      "future": "Gelecek",
+      "onlyFailed": "Sadece başarısız görevleri temizle",
+      "past": "Geçmiş",
+      "queueNew": "Yeni görevleri kuyruğa al",
+      "runOnLatestVersion": "En son paket sürümü ile çalıştır",
+      "upstream": "Yukarı Akış"
+    }
+  },
+  "search": {
+    "advanced": "Gelişmiş Arama",
+    "clear": "Aramayı temizle",
+    "dags": "Dag'larda Ara",
+    "hotkey": "+K",
+    "tasks": "Görevlerde Ara"
+  },
+  "sort": {
+    "displayName": {
+      "asc": "Görünen Ada Göre Sırala (A-Z)",
+      "desc": "Görünen Ada Göre Sırala (Z-A)"
+    },
+    "lastRunStartDate": {
+      "asc": "Son Çalıştırma Başlangıç Tarihine Göre Sırala (Erken-Geç)",
+      "desc": "Son Çalıştırma Başlangıç Tarihine Göre Sırala (Geç-Erken)"
+    },
+    "lastRunState": {
+      "asc": "Son Çalıştırma Durumuna Göre Sırala (A-Z)",
+      "desc": "Son Çalıştırma Durumuna Göre Sırala (Z-A)"
+    },
+    "nextDagRun": {
+      "asc": "Sonraki Dag Çalıştırmasına Göre Sırala (Erken-Geç)",
+      "desc": "Sonraki Dag Çalıştırmasına Göre Sırala (Geç-Erken)"
+    },
+    "placeholder": "Sıralama kriteri"
+  },
+  "unfavoriteDag": "Favoriden Çıkar"
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/dashboard.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dashboard.json
new file mode 100644
index 00000000000..6c3ae98765c
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/dashboard.json
@@ -0,0 +1,45 @@
+{
+  "favorite": {
+    "favoriteDags_one": "İlk {{count}} favori Dag(lar)",
+    "favoriteDags_other": "İlk {{count}} favori Dag(lar)",
+    "noDagRuns": "Bu dag için henüz Dag Çalıştırması yok.",
+    "noFavoriteDags": "Henüz favori yok. Favorilere eklemek için listede bir Dag'ın yanındaki yıldız simgesine tıklayın."
+  },
+  "group": "Grup",
+  "health": {
+    "dagProcessor": "Dag İşlemcisi",
+    "health": "Sağlık",
+    "healthy": "Sağlıklı",
+    "lastHeartbeat": "Son Kalp Atışı",
+    "metaDatabase": "Meta Veritabanı",
+    "scheduler": "Zamanlayıcı",
+    "status": "Durum",
+    "triggerer": "Tetikleyici",
+    "unhealthy": "Sağlıksız"
+  },
+  "history": "Geçmiş",
+  "importErrors": {
+    "dagImportError_one": "Dag İçe Aktarma Hatası",
+    "dagImportError_other": "Dag İçe Aktarma Hataları",
+    "searchByFile": "Dosyaya Göre Ara",
+    "timestamp": "Zaman Damgası"
+  },
+  "managePools": "Havuzları Yönet",
+  "noAssetEvents": "Varlık Etkinliği Bulunamadı",
+  "poolSlots": "Havuz Slotları",
+  "sortBy": {
+    "newestFirst": "Önce En Yeni",
+    "oldestFirst": "Önce En Eski"
+  },
+  "source": "Kaynak",
+  "stats": {
+    "activeDags": "Aktif Dag'ler",
+    "failedDags": "Başarısız Dag'ler",
+    "queuedDags": "Kuyruktaki Dag'ler",
+    "requiredActions": "Gerekli Eylemler",
+    "runningDags": "Çalışan Dag'ler",
+    "stats": "İstatistikler"
+  },
+  "uri": "URI",
+  "welcome": "Hoş Geldiniz"
+}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/tr/hitl.json b/airflow-core/src/airflow/ui/public/i18n/locales/tr/hitl.json
new file mode 100644
index 00000000000..5f97d817cb4
--- /dev/null
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/tr/hitl.json
@@ -0,0 +1,24 @@
+{
+  "requiredAction_one": "Gerekli işlem",
+  "requiredAction_other": "Gerekli işlemler",
+  "requiredActionState": "Gerekli işlemin durumu",
+  "response": {
+    "error": "Yanıt alınamadı",
+    "optionsDescription": "Bu görev örneği için seçenekleri seçin",
+    "optionsLabel": "Seçenekler",
+    "received": "Yanıt alındı: ",
+    "respond": "Yanıtla",
+    "success": "{{taskId}} için yanıt başarıyla gönderildi",
+    "title": "İnsan müdahalesi gerektiren görev örneği - {{taskId}}"
+  },
+  "state": {
+    "approvalReceived": "Onay alındı",
+    "approvalRequired": "Onay gerekli",
+    "choiceReceived": "Seçim alındı",
+    "choiceRequired": "Seçim gerekli",
+    "rejectionReceived": "Reddetme alındı",
+    "responseReceived": "Yanıt alındı",
+    "responseRequired": "Yanıt gerekli"
+  },
+  "subject": "Konu"
+}
diff --git a/airflow-core/src/airflow/ui/src/i18n/config.ts b/airflow-core/src/airflow/ui/src/i18n/config.ts
index bf2e4f78d2b..36d01005a47 100644
--- a/airflow-core/src/airflow/ui/src/i18n/config.ts
+++ b/airflow-core/src/airflow/ui/src/i18n/config.ts
@@ -32,6 +32,7 @@ export const supportedLanguages = [
   { code: "nl", name: "Nederlands" },
   { code: "pl", name: "Polski" },
   { code: "zh-TW", name: "繁體中文" },
+  { code: "tr", name: "Türkçe" },
 ] as const;
 
 export const defaultLanguage = "en";