hussein-awala commented on code in PR #51258:
URL: https://github.com/apache/airflow/pull/51258#discussion_r2145341865


##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dags.json:
##########
@@ -0,0 +1,147 @@
+{
+  "assetSchedule": "تم تحديث {{count}} من أصل {{total}}",
+  "dagActions": {
+    "delete": {
+      "button": "حذف الDag",
+      "warning": "سيؤدي هذا إلى إزالة جميع البيانات الوصفية المرتبطة بالDag، 
بما في ذلك التشغيلات والمهام."
+    },
+    "trigger": {
+      "button": "تشغيل",
+      "triggerDag": "تشغيل الDag"
+    }
+  },
+  "filters": {
+    "paused": {
+      "active": "مفعّل",
+      "all": "الكل",
+      "paused": "متوقف"
+    }
+  },
+  "list": {
+    "advancedSearch": "بحث متقدم",
+    "clearSearch": "مسح البحث",
+    "columns": {
+      "dagId": "معرّف الDag",
+      "lastDagRun": "آخر تشغيل لـDag",
+      "nextDagRun": "التشغيل التالي لـDag",
+      "schedule": "الجدولة",
+      "tags": "العلامات"
+    },
+    "ownerLink": "رابط المالك لـ{{owner}}",
+    "searchPlaceholder": "البحث في الDags"
+  },
+  "runAndTaskActions": {
+    "clear": {
+      "button": "مسح {{type}}",
+      "buttonTooltip": "اضغط shift+c للمسح",
+      "dialog": {
+        "affectedTasks": {
+          "columns": {
+            "mapIndex": "فهرس الخريطة",
+            "runId": "معرف التشغيل",
+            "state": "الحالة",
+            "taskId": "معرف المهمة"
+          },
+          "noItemsFound": "لم يتم العثور على مهام.",
+          "title": "المهام المتأثرة: {{count}}"
+        },
+        "confirm": "تأكيد",
+        "note": {
+          "placeholder": "أضف ملاحظة...",
+          "title": "ملاحظة"
+        },
+        "options": {
+          "downstream": "المهام التابعة",

Review Comment:
   same here



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dags.json:
##########
@@ -0,0 +1,147 @@
+{
+  "assetSchedule": "تم تحديث {{count}} من أصل {{total}}",
+  "dagActions": {
+    "delete": {
+      "button": "حذف الDag",
+      "warning": "سيؤدي هذا إلى إزالة جميع البيانات الوصفية المرتبطة بالDag، 
بما في ذلك التشغيلات والمهام."
+    },
+    "trigger": {
+      "button": "تشغيل",
+      "triggerDag": "تشغيل الDag"
+    }
+  },
+  "filters": {
+    "paused": {
+      "active": "مفعّل",
+      "all": "الكل",
+      "paused": "متوقف"
+    }
+  },
+  "list": {
+    "advancedSearch": "بحث متقدم",
+    "clearSearch": "مسح البحث",
+    "columns": {
+      "dagId": "معرّف الDag",
+      "lastDagRun": "آخر تشغيل لـDag",
+      "nextDagRun": "التشغيل التالي لـDag",
+      "schedule": "الجدولة",
+      "tags": "العلامات"
+    },
+    "ownerLink": "رابط المالك لـ{{owner}}",
+    "searchPlaceholder": "البحث في الDags"
+  },
+  "runAndTaskActions": {
+    "clear": {
+      "button": "مسح {{type}}",
+      "buttonTooltip": "اضغط shift+c للمسح",
+      "dialog": {
+        "affectedTasks": {
+          "columns": {
+            "mapIndex": "فهرس الخريطة",
+            "runId": "معرف التشغيل",
+            "state": "الحالة",
+            "taskId": "معرف المهمة"
+          },
+          "noItemsFound": "لم يتم العثور على مهام.",
+          "title": "المهام المتأثرة: {{count}}"
+        },
+        "confirm": "تأكيد",
+        "note": {
+          "placeholder": "أضف ملاحظة...",
+          "title": "ملاحظة"
+        },
+        "options": {
+          "downstream": "المهام التابعة",
+          "existingTasks": "مسح المهام الحالية",
+          "future": "المستقبل",
+          "onlyFailed": "مسح المهام الفاشلة فقط",
+          "past": "الماضي",
+          "queueNew": "إضافة مهام جديدة للانتظار",
+          "upstream": "المهام السابقة"
+        },
+        "title": "مسح {{type}}"
+      }
+    },
+    "delete": {
+      "button": "حذف {{type}}",
+      "dialog": {
+        "resourceName": "{{type}} {{id}}",
+        "title": "حذف {{type}}",
+        "warning": "سيؤدي هذا إلى إزالة جميع البيانات الوصفية المرتبطة 
بـ{{type}}."
+      },
+      "error": "حدث خطأ اثناء الحذف {{type}}",
+      "success": {
+        "description": "تم تنفيذ طلب الحذف {{type}} بنجاح.",
+        "title": "{{type}} حُذف بنجاح"
+      }
+    },
+    "markAs": {
+      "button": "تمييز {{type}} كـ...",
+      "buttonTooltip": {
+        "failed": "اضغط shift+f لتمييز كفاشل",
+        "success": "اضغط shift+s لتمييز كناجح"
+      },
+      "dialog": {
+        "confirm": "تأكيد",
+        "options": {
+          "downstream": "المهام التابعة",

Review Comment:
   ```suggestion
             "downstream": "المهام اللاحقة",
   ```
   you can use `اللاحقة` as the opposite of `السابقة`



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dags.json:
##########
@@ -0,0 +1,147 @@
+{
+  "assetSchedule": "تم تحديث {{count}} من أصل {{total}} عنصر",
+  "dagActions": {
+    "delete": {
+      "button": "حذف الـDag",
+      "warning": "سيؤدي هذا إلى إزالة جميع البيانات الوصفية المرتبطة بـالـDag، 
بما في ذلك التشغيلات والمهام."
+    },
+    "trigger": {
+      "button": "تشغيل",
+      "triggerDag": "تشغيل الـDag"
+    }
+  },
+  "filters": {
+    "paused": {
+      "active": "مفعّل",
+      "all": "الكل",
+      "paused": "متوقف"
+    }
+  },
+  "list": {
+    "advancedSearch": "بحث متقدم",
+    "clearSearch": "مسح البحث",
+    "columns": {
+      "dagId": "معرّف الـDag",
+      "lastDagRun": "آخر تشغيل لـDag",
+      "nextDagRun": "التشغيل التالي لـDag",
+      "schedule": "الجدولة",
+      "tags": "العلامات"
+    },
+    "ownerLink": "رابط المالك لـ{{owner}}",
+    "searchPlaceholder": "البحث في الـDags"
+  },
+  "runAndTaskActions": {
+    "clear": {
+      "button": "إعادة تعيين {{type}}",
+      "buttonTooltip": "اضغط shift+c لإعادة التعيين",
+      "dialog": {
+        "affectedTasks": {
+          "columns": {
+            "mapIndex": "فهرس الخريطة",
+            "runId": "معرِّف التشغيل",
+            "state": "الحالة",
+            "taskId": "معرِّف المهمة"
+          },
+          "noItemsFound": "لم يتم العثور على مهام.",
+          "title": "المهام المتأثرة: {{count}}"
+        },
+        "confirm": "تأكيد",
+        "note": {
+          "placeholder": "أضف ملاحظة...",
+          "title": "ملاحظة"
+        },
+        "options": {
+          "downstream": "المهام التابعة",
+          "existingTasks": "إعادة تعيين المهام الموجودة",
+          "future": "المستقبل",
+          "onlyFailed": "إعادة تعيين المهام الفاشلة فقط",
+          "past": "الماضي",
+          "queueNew": "إضافة مهام جديدة للانتظار",
+          "upstream": "المهام السابقة"
+        },
+        "title": "إعادة تعيين {{type}}"
+      }
+    },
+    "delete": {
+      "button": "حذف {{type}}",
+      "dialog": {
+        "resourceName": "{{type}} {{id}}",
+        "title": "حذف {{type}}",
+        "warning": "سيؤدي هذا إلى إزالة جميع البيانات الوصفية المرتبطة 
بـ{{type}}."
+      },
+      "error": "حدث خطأ أثناء حذف {{type}}",
+      "success": {
+        "description": "تم تنفيذ طلب حذف {{type}} بنجاح.",
+        "title": "{{type}} حُذف بنجاح"
+      }
+    },
+    "markAs": {
+      "button": "تمييز {{type}} كـ...",

Review Comment:
   as a one-word translation for `marking`, I think `وسم` is much better than 
`تعيين`, and it's valid for `tagging` too.



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/common.json:
##########
@@ -0,0 +1,122 @@
+{
+  "admin": {
+    "Config": "تكوينات",
+    "Connections": "وصلات",
+    "Plugins": "إضافات",
+    "Pools": "مجموعة موارد",
+    "Providers": "حُزم",
+    "Variables": "متغيرات"
+  },
+  "assetEvent_one": "واقعة اصل",
+  "assetEvent_other": "واقعات اصل",
+  "browse": {
+    "auditLog": "سجل المراجعة",
+    "xcoms": "(XComs) إكس كوم"
+  },
+  "dag_one": "Dag",
+  "dag_other": "Dags",
+  "dagRun_one": "تشغيل Dag",
+  "dagRun_other": "تشغيلات Dag",
+  "defaultToGraphView": "عرض الرسم البياني تلقائياً",
+  "defaultToGridView": "عرض الشبكة تلقائياً",
+  "docs": {
+    "documentation": "توثيق",
+    "githubRepo": "مستودع GitHub",
+    "restApiReference": "مرجع REST API"
+  },
+  "logout": "تسجيل الخروج",
+  "logoutConfirmation": "أنت على وشك تسجيل الخروج.",
+  "modal": {
+    "cancel": "إلغاء",
+    "confirm": "تأكيد",
+    "delete": {
+      "button": "حذف",
+      "confirmation": "هل أنت متأكد من أنك تريد حذف {{resourceName}}؟ لا يمكن 
التراجع عن هذا الإجراء."
+    }
+  },
+  "nav": {
+    "admin": "إدارة",
+    "assets": "أصول",
+    "browse": "تصفح",
+    "dags": "Dags",
+    "docs": "وثائق",
+    "home": "الصفحة الرئيسية",
+    "plugins": "إضافات",
+    "security": "الأمان"
+  },
+  "noItemsFound": "لم يتم العثور على {{modelName}}",
+  "pools": {
+    "deferred": "مؤجل",
+    "open": "مفتوح",
+    "pools_one": "مجمع",
+    "pools_other": "مجمعات",
+    "queued": "في الانتظار",
+    "running": "قيد التشغيل",
+    "scheduled": "مجدول"
+  },
+  "runTypes": {
+    "asset_triggered": "مُشغل بواسطة الأصل",
+    "backfill": "تعبئة رجعية",
+    "manual": "يدوي",
+    "scheduled": "مجدول"
+  },
+  "security": {
+    "actions": "إجراءات",
+    "permissions": "صلاحيات",
+    "resources": "موارد",
+    "roles": "أدوار",
+    "users": "مستخدمون"
+  },
+  "selectLanguage": "اختيار اللغة",
+  "states": {
+    "deferred": "مؤجل",
+    "failed": "فشِل",
+    "no_status": "بلا حالة",
+    "none": "لا شيء",
+    "queued": "في الانتظار",
+    "removed": "محذوف",
+    "restarting": "إعادة التشغيل",
+    "running": "قيد التشغيل",
+    "scheduled": "مجدول",
+    "skipped": "متجاوز",
+    "success": "ناجح",
+    "up_for_reschedule": "جاهز لإعادة الجدولة",
+    "up_for_retry": "جاهز للمحاولة مرة أخرى",
+    "upstream_failed": "فشِل في المهام السابقة"
+  },
+  "switchToDarkMode": "تبديل إلى الوضع الداكن",
+  "switchToLightMode": "تبديل إلى الوضع الفاتح",
+  "table": {
+    "filterByTag": "تصفية الDags حسب الوسم",
+    "filterColumns": "تصفية أعمدة الجدول",
+    "filters": {
+      "filter_one": "فلتر",
+      "filter_other": "فلاتر",
+      "reset": "مسح الفلاتر"
+    },
+    "noTagsFound": "لم يتم العثور على وسوم",
+    "tagMode": {
+      "all": "الكل",
+      "any": "اي شيء"
+    },
+    "tagPlaceholder": "تصفية حسب الوسم"
+  },
+  "taskInstance_one": "مثيل المهمة",
+  "taskInstance_other": "مثيلات المهام",
+  "timeRange": {
+    "duration": "المدة",
+    "last12Hours": "آخر 12 ساعة",
+    "last24Hours": "آخر 24 ساعة",
+    "lastHour": "الساعة الماضية",
+    "pastWeek": "الأسبوع الماضي"
+  },
+  "timezone": "المنطقة الزمنية",
+  "timezoneModal": {
+    "current-timezone": "المنطقة الزمنية الحالية في",

Review Comment:
   ```suggestion
       "current-timezone": "المنطقة الزمنية الحالية",
   ```



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dashboard.json:
##########
@@ -0,0 +1,38 @@
+{
+  "group": "المجموعة",
+  "health": {
+    "dagProcessor": "معالج الDag",
+    "health": "الصحة",
+    "healthy": "سليم",
+    "lastHeartbeat": "آخر نبضة",
+    "metaDatabase": "قاعدة البيانات الوصفية",
+    "scheduler": "المجدول",
+    "status": "الحالة",
+    "triggerer": "القادح",

Review Comment:
   `triggered` was translated as `مُشغل` in the other files, I wonder if we can 
find a better translation here and unify the usage, like `المُشغِّل` for 
triggerer and `مُشغَّل` for triggered.
   And anyway, `المُطلِق` is much better than `القادح` if it is ok to not unify 
their translation



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/common.json:
##########
@@ -0,0 +1,122 @@
+{
+  "admin": {
+    "Config": "تكوينات",
+    "Connections": "اتصالات",
+    "Plugins": "إضافات",
+    "Pools": "مجمعات موارد",
+    "Providers": "حزم",
+    "Variables": "متغيرات"
+  },
+  "assetEvent_one": "حدث الأصل",
+  "assetEvent_other": "أحداث الأصل",
+  "browse": {
+    "auditLog": "سجل المراجعة",
+    "xcoms": "(XComs) إكس كوم"
+  },
+  "dag_one": "Dag",
+  "dag_other": "Dags",
+  "dagRun_one": "تشغيل Dag",

Review Comment:
   I agree with @ahmadtfarhan that `تشغيل` here is more for action, if you want 
to translate it, and since the difference between DagRun and Dag is almost the 
same as the difference between Task and Task Instance, you can use the 
translation of DagRun instance, which is `مثيل تشغيل لـ DAG`



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/common.json:
##########
@@ -0,0 +1,122 @@
+{
+  "admin": {
+    "Config": "تكوينات",
+    "Connections": "اتصالات",
+    "Plugins": "إضافات",
+    "Pools": "مجمعات موارد",
+    "Providers": "حزم",
+    "Variables": "متغيرات"
+  },
+  "assetEvent_one": "حدث الأصل",
+  "assetEvent_other": "أحداث الأصل",
+  "browse": {
+    "auditLog": "سجل المراجعة",
+    "xcoms": "(XComs) إكس كوم"
+  },
+  "dag_one": "Dag",
+  "dag_other": "Dags",
+  "dagRun_one": "تشغيل Dag",
+  "dagRun_other": "تشغيلات Dag",
+  "defaultToGraphView": "افتراضي لعرض الرسم البياني",
+  "defaultToGridView": "افتراضي لعرض الشبكة",
+  "docs": {
+    "documentation": "توثيق",
+    "githubRepo": "مستودع GitHub",
+    "restApiReference": "مرجع REST API"
+  },
+  "logout": "خروج",
+  "logoutConfirmation": "أنت على وشك تسجيل الخروج.",
+  "modal": {
+    "cancel": "إلغاء",
+    "confirm": "تأكيد",
+    "delete": {
+      "button": "حذف",
+      "confirmation": "هل أنت متأكد من أنك تريد حذف {{resourceName}}؟ لا يمكن 
التراجع عن هذا الإجراء."
+    }
+  },
+  "nav": {
+    "admin": "إدارة",
+    "assets": "أصول",
+    "browse": "تصفح",
+    "dags": "Dags",
+    "docs": "وثائق",
+    "home": "صفحة رئيسية",
+    "plugins": "إضافات",
+    "security": "أمان"
+  },
+  "noItemsFound": "لم يتم العثور على {{modelName}}",
+  "pools": {
+    "deferred": "مؤجل",
+    "open": "مفتوح",
+    "pools_one": "مجمع",
+    "pools_other": "مجمعات",
+    "queued": "في الانتظار",
+    "running": "قيد التشغيل",
+    "scheduled": "مجدول"
+  },
+  "runTypes": {
+    "asset_triggered": "مُشغل بواسطة الأصل",
+    "backfill": "تعبئة رجعية",
+    "manual": "يدوي",
+    "scheduled": "مجدول"
+  },
+  "security": {
+    "actions": "إجراءات",

Review Comment:
   Actions here are used to configure what the user can to some resource 
(action + resource = permission):
   ![Screenshot 2025-06-13 at 17 18 
37](https://github.com/user-attachments/assets/21a4dcfd-6293-4e11-898c-35f14b3b38da)
   
   For the translation, `إجراءات` or `أفعال` should both be accepted



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dashboard.json:
##########
@@ -0,0 +1,38 @@
+{
+  "group": "المجموعة",
+  "health": {
+    "dagProcessor": "معالج الDag",
+    "health": "الصحة",
+    "healthy": "سليم",
+    "lastHeartbeat": "آخر نبضة",
+    "metaDatabase": "قاعدة البيانات الوصفية",
+    "scheduler": "المجدول",

Review Comment:
   ```suggestion
       "scheduler": "المُجَدْوِل",
   ```
   otherwise it could be read as `scheduled` 



##########
airflow-core/src/airflow/ui/src/i18n/locales/ar/dashboard.json:
##########
@@ -0,0 +1,38 @@
+{
+  "group": "المجموعة",
+  "health": {
+    "dagProcessor": "معالج الDag",
+    "health": "الصحة",
+    "healthy": "سليم",
+    "lastHeartbeat": "آخر نبضة",
+    "metaDatabase": "قاعدة البيانات الوصفية",
+    "scheduler": "المجدول",
+    "status": "الحالة",
+    "triggerer": "القادح",
+    "unhealthy": "غير سليم"
+  },
+  "history": "التاريخ",
+  "importErrors": {
+    "dagImportError_one": "خطأ في استيراد Dag",
+    "dagImportError_other": "أخطاء في استيراد Dag",

Review Comment:
   import here is more like `load`, so you can also use `تحميل`, but `استيراد` 
is ok too



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to