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

eladkal 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 d43ae2017c3 AIP-38 feat: add Hebrew language to the UI (#51038)
d43ae2017c3 is described below

commit d43ae2017c344977674b63497927fb1e54187703
Author: Elad Kalif <45845474+elad...@users.noreply.github.com>
AuthorDate: Mon Jun 9 19:47:53 2025 +0300

    AIP-38 feat: add Hebrew language to the UI (#51038)
    
    * AIP-38 feat: add Hebrew language UI
    
    * fix pre commit
---
 .github/CODEOWNERS                                 |  3 +-
 .pre-commit-config.yaml                            |  1 +
 airflow-core/src/airflow/ui/src/i18n/config.ts     |  7 ++
 .../src/airflow/ui/src/i18n/locales/he/common.json | 79 ++++++++++++++++++++++
 .../airflow/ui/src/i18n/locales/he/dashboard.json  | 38 +++++++++++
 5 files changed, 127 insertions(+), 1 deletion(-)

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 8d20dfecd96..4d460c0fd92 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -35,11 +35,12 @@
 # UI
 /airflow-core/src/airflow/ui/ @bbovenzi @pierrejeambrun @ryanahamilton 
@jscheffl @shubhamraj-git
 
-# Translations
+# Translations (i18n)
 airflow-core/src/airflow/ui/src/i18n/locales/de/ @jscheffl
 airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/ @Lee-W
 airflow-core/src/airflow/ui/src/i18n/locales/nl/ @BasPH # not codeowner but 
engaged: @DjVinnii
 airflow-core/src/airflow/ui/src/i18n/locales/pl/ @potiuk @mobuchowski # not 
codeowner but engaged: @kacpermuda
+airflow-core/src/airflow/ui/src/i18n/locales/he/ @eladkal @shahar1 @romsharon98
 
 # Security/Permissions
 /airflow-core/src/airflow/security/permissions.py @vincbeck
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e1ba9c4ab07..117e10c6284 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -629,6 +629,7 @@ repos:
         pass_filenames: true
         exclude: >
           (?x)
+          ^airflow-core/src/airflow/ui/src/i18n/config\.ts$|
           ^airflow-core/src/airflow/ui/openapi-gen/|
           ^airflow-core/src/airflow/ui/src/i18n/locales/de/README\.md$|
           
^airflow-core/src/airflow/cli/commands/local_commands/fastapi_api_command\.py$|
diff --git a/airflow-core/src/airflow/ui/src/i18n/config.ts 
b/airflow-core/src/airflow/ui/src/i18n/config.ts
index 7ad9fabf561..32bd05950f5 100644
--- a/airflow-core/src/airflow/ui/src/i18n/config.ts
+++ b/airflow-core/src/airflow/ui/src/i18n/config.ts
@@ -32,6 +32,8 @@ import enConnections from "./locales/en/connections.json";
 import enDag from "./locales/en/dag.json";
 import enDags from "./locales/en/dags.json";
 import enDashboard from "./locales/en/dashboard.json";
+import heCommon from "./locales/he/common.json";
+import heDashboard from "./locales/he/dashboard.json";
 import koCommon from "./locales/ko/common.json";
 import koDashboard from "./locales/ko/dashboard.json";
 import nlCommon from "./locales/nl/common.json";
@@ -52,6 +54,7 @@ import zhTWDashboard from "./locales/zh-TW/dashboard.json";
 export const supportedLanguages = [
   { code: "de", name: "Deutsch" },
   { code: "en", name: "English" },
+  { code: "he", name: "עברית" },
   { code: "ko", name: "한국어" },
   { code: "nl", name: "Nederlands" },
   { code: "pl", name: "Polski" },
@@ -78,6 +81,10 @@ const resources = {
     dags: enDags,
     dashboard: enDashboard,
   },
+  he: {
+    common: heCommon,
+    dashboard: heDashboard,
+  },
   ko: {
     common: koCommon,
     dashboard: koDashboard,
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/he/common.json 
b/airflow-core/src/airflow/ui/src/i18n/locales/he/common.json
new file mode 100644
index 00000000000..02008ac9a72
--- /dev/null
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/he/common.json
@@ -0,0 +1,79 @@
+{
+  "admin": {
+    "Config": "קונפיגורציות",
+    "Connections": "חיבורים",
+    "Plugins": "תוספים",
+    "Pools": "מאגר משאבים",
+    "Providers": "חבילות עזר",
+    "Variables": "משתנים"
+  },
+  "assetEvent_one": "אירוע בנכס בודד (Asset)",
+  "assetEvent_other": "אירוע בנכס אחר (Asset)",
+  "browse": {
+    "auditLog": "יומן מערכת",
+    "xcoms": "(XComs) אקסקום"
+  },
+  "dagRun_one": "Dag בודד",
+  "dagRun_other": "Dag אחר",
+  "defaultToGraphView": "תצוגת גרף כברירת מחדל",
+  "defaultToGridView": "תצוגת רשת כברירת מחדל",
+  "docs": {
+    "documentation": "דוקומנטציה",
+    "githubRepo": "GitHub Repo",
+    "restApiReference": "REST API תיעוד"
+  },
+  "language": {
+    "chinese": "סינית מסורתית",
+    "english": "אנגלית",
+    "german": "גרמנית",
+    "korean": "קוריאנית",
+    "select": "בחר"
+  },
+  "logout": "התנתק",
+  "nav": {
+    "admin": "ניהול",
+    "assets": "נכסים (Assets)",
+    "browse": "עיון",
+    "docs": "תיעוד",
+    "home": "דף הבית",
+    "plugins": "תוספים"
+  },
+  "pools": {
+    "deferred": "בהמתנה עד קיום תנאי",
+    "open": "פתוח",
+    "pools_one": "מאגר",
+    "pools_other": "מאגרים",
+    "queued": "בהמתנה למשאבים",
+    "running": "בריצה",
+    "scheduled": "בתזמון"
+  },
+  "states": {
+    "deferred": "בהמתנה עד קיום תנאי",
+    "failed": "כשלון",
+    "no_status": "ללא סטאטוס",
+    "queued": "בהמתנה למשאבי ריצה",
+    "removed": "הוסר",
+    "restarting": "בהפעלה מחדש",
+    "running": "בריצה",
+    "scheduled": "בהמתנה לתזמון",
+    "skipped": "דולג",
+    "success": "הצלחה",
+    "up_for_reschedule": "בהמתנה לתזמון פנימי",
+    "up_for_retry": "בהמתנה לניסיון נוסף",
+    "upstream_failed": "תלויות נכשלו"
+  },
+  "switchToDarkMode": "החלף למצב כהה",
+  "switchToLightMode": "החלף למצב בהיר",
+  "taskInstance_one": "משימה בודדת",
+  "taskInstance_other": "משימה אחרת",
+  "timeRange": {
+    "duration": "משך זמן",
+    "last12Hours": "12 השעות האחרונות",
+    "last24Hours": "24 השעות האחרונות",
+    "lastHour": "השעה האחרונה",
+    "pastWeek": "השבוע האחרון"
+  },
+  "timezone": "איזור זמן",
+  "triggered": "טריגרר",
+  "user": "משתמש"
+}
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/he/dashboard.json 
b/airflow-core/src/airflow/ui/src/i18n/locales/he/dashboard.json
new file mode 100644
index 00000000000..1ec8153551a
--- /dev/null
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/he/dashboard.json
@@ -0,0 +1,38 @@
+{
+    "group": "קבוצה",
+    "health": {
+        "dagProcessor": "Dag מנתח",
+        "health": "תקינות",
+        "healthy": "תקין",
+        "lastHeartbeat": "פעימה אחרונה",
+        "metaDatabase": "מטא מסד-נתונים",
+        "scheduler": "מתזמן",
+        "status": "סטאטוס",
+        "triggerer": "מנהל תהליכים בהמתנה",
+        "unhealthy": "לא תקין"
+    },
+    "history": "היסטוריה",
+    "importErrors": {
+        "dagImportError_one": "שגיאות בטעינת Dags",
+        "dagImportError_other": "שגיאות בטעינת Dags",
+        "searchByFile": "חפש לפי קובץ",
+        "timestamp": "חותמת זמן"
+    },
+    "managePools": "ניהול מאגרים",
+    "noAssetEvents": "אין אירועים בנכסים",
+    "poolSlots": "סטאטוס מאגרים",
+    "sortBy": {
+        "newestFirst": "חדש קודם",
+        "oldestFirst": "ישן קודם"
+    },
+    "source": "מקור",
+    "stats": {
+        "activeDags": "Dags פעיל",
+        "failedDags": "Dags בכשלון",
+        "queuedDags": "Dags בתור",
+        "runningDags": "Dags בריצה",
+        "stats": "סטטיסטיקות"
+    },
+    "uri": "URI",
+    "welcome": "ברוכים הבאים"
+}

Reply via email to