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": "ברוכים הבאים" +}