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