You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by pi...@apache.org on 2025/07/02 09:05:06 UTC
(airflow) branch main updated: Fix missing translations (#52670)
This is an automated email from the ASF dual-hosted git repository.
pierrejeambrun 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 953378b044e Fix missing translations (#52670)
953378b044e is described below
commit 953378b044e79f75c11f485b83913cb7825bd2c8
Author: Brent Bovenzi <br...@astronomer.io>
AuthorDate: Wed Jul 2 05:04:58 2025 -0400
Fix missing translations (#52670)
---
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 14 ++++++--------
.../src/airflow/ui/public/i18n/locales/de/dag.json | 14 ++++++--------
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../ui/public/i18n/locales/en/components.json | 3 +++
.../src/airflow/ui/public/i18n/locales/en/dag.json | 21 ++++++++++++---------
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 14 ++++++--------
.../src/airflow/ui/public/i18n/locales/he/dag.json | 14 ++++++--------
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 14 ++++++--------
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 14 ++++++--------
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 14 ++++++--------
.../src/components/DagActions/RunBackfillForm.tsx | 2 +-
.../ui/src/constants/reprocessBehaviourParams.ts | 6 +++---
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 10 +++++-----
.../pages/GroupTaskInstance/GroupTaskInstance.tsx | 5 +++--
.../ui/src/pages/GroupTaskInstance/Header.tsx | 10 ++++++----
.../ui/src/pages/MappedTaskInstance/Header.tsx | 15 +++++++++++----
.../pages/MappedTaskInstance/MappedTaskInstance.tsx | 7 +++++--
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 16 +++++++++-------
airflow-core/src/airflow/ui/src/utils/logs.ts | 12 ++++++------
19 files changed, 107 insertions(+), 99 deletions(-)
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ar/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/ar/dag.json
index ab0354d2373..5bca291459c 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ar/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ar/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "جميع مستويات السجل",
+ "allSources": "جميع المصادر",
+ "fullscreen": {
+ "button": "ملء الشاشة",
+ "tooltip": "اضغط على {{hotkey}} للدخول إلى وضع ملء الشاشة"
+ },
"noTryNumber": "لا يوجد رقم محاولة",
"viewInExternal": "عرض السجلات في {{name}} (المحاولة {{attempt}})"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "طي جميع مجموعات المهام",
"expandAll": "توسيع جميع مجموعات المهام"
- },
- "taskLogs": {
- "allLogLevels": "جميع مستويات السجل",
- "allSources": "جميع المصادر",
- "fullscreen": {
- "button": "ملء الشاشة",
- "tooltip": "اضغط على {{hotkey}} للدخول إلى وضع ملء الشاشة"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/de/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/de/dag.json
index 8a2968922bc..3a6a8ce3104 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/de/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/de/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "Alle Protokoll-Stufen",
+ "allSources": "Alle Quellen",
+ "fullscreen": {
+ "button": "Vollbild",
+ "tooltip": "Taste {{hotkey}} für Vollbildmodus"
+ },
"noTryNumber": "Keine Versuchsnummer",
"viewInExternal": "Protokoll in {{name}} (Versuch {{attempt}}) ansehen"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "Alle Task-Gruppen einklappen",
"expandAll": "Alle Task-Gruppen aufklappen"
- },
- "taskLogs": {
- "allLogLevels": "Alle Protokoll-Stufen",
- "allSources": "Alle Quellen",
- "fullscreen": {
- "button": "Vollbild",
- "tooltip": "Taste {{hotkey}} für Vollbildmodus"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/en/common.json b/airflow-core/src/airflow/ui/public/i18n/locales/en/common.json
index abfb36caba8..9e0b78500f6 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/en/common.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/en/common.json
@@ -270,6 +270,7 @@
}
}
},
+ "total": "Total {{state}}",
"triggered": "Triggered",
"tryNumber": "Try Number",
"user": "User",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json b/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
index 1db16d00dca..dff01bc665c 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/en/components.json
@@ -3,12 +3,15 @@
"affected_one": "1 run will be triggered.",
"affected_other": "{{count}} runs will be triggered.",
"affectedNone": "No runs matching selected criteria.",
+ "allRuns": "All Runs",
"backwards": "Run Backwards",
"dateRange": "Date Range",
"dateRangeFrom": "From",
"dateRangeTo": "To",
"errorStartDateBeforeEndDate": "Start Date must be before the End Date",
"maxRuns": "Max Active Runs",
+ "missingAndErroredRuns": "Missing and Errored Runs",
+ "missingRuns": "Missing Runs",
"reprocessBehavior": "Reprocess Behavior",
"run": "Run Backfill",
"selectDescription": "Run this Dag for a range of dates",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/en/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/en/dag.json
index 314a6861dbd..92b8e59496c 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/en/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/en/dag.json
@@ -23,8 +23,19 @@
}
},
"logs": {
+ "allLevels": "All Log Levels",
+ "allSources": "All Sources",
+ "critical": "CRITICAL",
+ "debug": "DEBUG",
+ "error": "ERROR",
+ "fullscreen": {
+ "button": "Full screen",
+ "tooltip": "Press {{hotkey}} for fullscreen"
+ },
+ "info": "INFO",
"noTryNumber": "No try number",
- "viewInExternal": "View logs in {{name}} (attempt {{attempt}})"
+ "viewInExternal": "View logs in {{name}} (attempt {{attempt}})",
+ "warning": "WARNING"
},
"overview": {
"buttons": {
@@ -98,13 +109,5 @@
"taskGroups": {
"collapseAll": "Collapse all task groups",
"expandAll": "Expand all task groups"
- },
- "taskLogs": {
- "allLogLevels": "All Log Levels",
- "allSources": "All Sources",
- "fullscreen": {
- "button": "Full screen",
- "tooltip": "Press {{hotkey}} for fullscreen"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dag.json
index 5b23cc8a86b..4dbf66eb3dd 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "Tous les niveaux de journalisation",
+ "allSources": "Toutes les sources",
+ "fullscreen": {
+ "button": "Plein écran",
+ "tooltip": "Appuyez sur {{hotkey}} pour le plein écran"
+ },
"noTryNumber": "Aucun essai",
"viewInExternal": "Voir les journaux dans {{name}} (tentative {{attempt}})"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "Réduire tous les groupes de tâches",
"expandAll": "Développer tous les groupes de tâches"
- },
- "taskLogs": {
- "allLogLevels": "Tous les niveaux de journalisation",
- "allSources": "Toutes les sources",
- "fullscreen": {
- "button": "Plein écran",
- "tooltip": "Appuyez sur {{hotkey}} pour le plein écran"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/he/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/he/dag.json
index 205d2a67a32..a05313b1352 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/he/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/he/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "כל רמות הרישום",
+ "allSources": "כל המקורות",
+ "fullscreen": {
+ "button": "מסך מלא",
+ "tooltip": "לחץ {{hotkey}} למסך מלא"
+ },
"noTryNumber": "אין מספר ניסיון",
"viewInExternal": "צפה ברישומים ב-{{name}} (ניסיון {{attempt}})"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "כווץ את כל קבוצות המשימות",
"expandAll": "הרחב את כל קבוצות המשימות"
- },
- "taskLogs": {
- "allLogLevels": "כל רמות הרישום",
- "allSources": "כל המקורות",
- "fullscreen": {
- "button": "מסך מלא",
- "tooltip": "לחץ {{hotkey}} למסך מלא"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json
index a8a295e8872..49a5f616125 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "모든 로그 레벨",
+ "allSources": "모든 소스",
+ "fullscreen": {
+ "button": "전체 화면",
+ "tooltip": "전체 화면을 보려면 {{hotkey}}를 누르세요."
+ },
"noTryNumber": "시도 횟수 없음",
"viewInExternal": "{{name}}에서 로그 보기 (시도 {{attempt}})"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "모든 작업 그룹 접기",
"expandAll": "모든 작업 그룹 확장"
- },
- "taskLogs": {
- "allLogLevels": "모든 로그 레벨",
- "allSources": "모든 소스",
- "fullscreen": {
- "button": "전체 화면",
- "tooltip": "전체 화면을 보려면 {{hotkey}}를 누르세요."
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pl/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/pl/dag.json
index 8e271d98356..8a146731c12 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pl/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pl/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "Wszystkie poziomy logów",
+ "allSources": "Wszystkie źródła",
+ "fullscreen": {
+ "button": "Pełny ekran",
+ "tooltip": "Naciśnij {{hotkey}}, aby przejść do pełnego ekranu"
+ },
"noTryNumber": "Brak numeru próby",
"viewInExternal": "Zobacz logi w {{name}} (próba {{attempt}})"
},
@@ -108,13 +114,5 @@
"taskGroups": {
"collapseAll": "Zwiń wszystkie grupy zadań",
"expandAll": "Rozwiń wszystkie grupy zadań"
- },
- "taskLogs": {
- "allLogLevels": "Wszystkie poziomy logów",
- "allSources": "Wszystkie źródła",
- "fullscreen": {
- "button": "Pełny ekran",
- "tooltip": "Naciśnij {{hotkey}}, aby przejść do pełnego ekranu"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/dag.json b/airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/dag.json
index 63311ed48dd..b72231c71bc 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/dag.json
@@ -23,6 +23,12 @@
}
},
"logs": {
+ "allLevels": "所有日誌等級",
+ "allSources": "所有來源",
+ "fullscreen": {
+ "button": "全螢幕",
+ "tooltip": "按下 {{hotkey}} 進入全螢幕"
+ },
"noTryNumber": "沒有嘗試次數",
"viewInExternal": "在 {{name}} 中檢視日誌(嘗試 {{attempt}})"
},
@@ -98,13 +104,5 @@
"taskGroups": {
"collapseAll": "收合所有任務群組",
"expandAll": "展開所有任務群組"
- },
- "taskLogs": {
- "allLogLevels": "所有日誌等級",
- "allSources": "所有來源",
- "fullscreen": {
- "button": "全螢幕",
- "tooltip": "按下 {{hotkey}} 進入全螢幕"
- }
}
}
diff --git a/airflow-core/src/airflow/ui/src/components/DagActions/RunBackfillForm.tsx b/airflow-core/src/airflow/ui/src/components/DagActions/RunBackfillForm.tsx
index dd3f7bbfc04..cb50113ec82 100644
--- a/airflow-core/src/airflow/ui/src/components/DagActions/RunBackfillForm.tsx
+++ b/airflow-core/src/airflow/ui/src/components/DagActions/RunBackfillForm.tsx
@@ -193,7 +193,7 @@ const RunBackfillForm = ({ dag, onClose }: RunBackfillFormProps) => {
colorPalette="blue"
indicatorPlacement="start"
key={item.value}
- label={item.label}
+ label={translate(item.label)}
value={item.value}
/>
))}
diff --git a/airflow-core/src/airflow/ui/src/constants/reprocessBehaviourParams.ts b/airflow-core/src/airflow/ui/src/constants/reprocessBehaviourParams.ts
index 015898bbc7e..d19f435fdeb 100644
--- a/airflow-core/src/airflow/ui/src/constants/reprocessBehaviourParams.ts
+++ b/airflow-core/src/airflow/ui/src/constants/reprocessBehaviourParams.ts
@@ -17,7 +17,7 @@
* under the License.
*/
export const reprocessBehaviors = [
- { label: "Missing Runs", value: "none" },
- { label: "Missing and Errored Runs", value: "failed" },
- { label: "All Runs", value: "completed" },
+ { label: "backfill.missingRuns", value: "none" },
+ { label: "backfill.missingAndErroredRuns", value: "failed" },
+ { label: "backfill.allRuns", value: "completed" },
];
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.tsx b/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.tsx
index 9b9ec34ab0d..649f3b5d4fe 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.tsx
@@ -27,7 +27,6 @@ import { DataTable } from "src/components/DataTable";
import { useTableURLState } from "src/components/DataTable/useTableUrlState";
import { ErrorAlert } from "src/components/ErrorAlert";
import Time from "src/components/Time";
-import { reprocessBehaviors } from "src/constants/reprocessBehaviourParams";
import { getDuration } from "src/utils";
const getColumns = (translate: (key: string) => string): Array<ColumnDef<BackfillResponse>> => [
@@ -55,10 +54,11 @@ const getColumns = (translate: (key: string) => string): Array<ColumnDef<Backfil
accessorKey: "reprocess_behavior",
cell: ({ row }) => (
<Text>
- {
- reprocessBehaviors.find((rb: { value: string }) => rb.value === row.original.reprocess_behavior)
- ?.label
- }
+ {row.original.reprocess_behavior === "none"
+ ? translate("backfill.missingRuns")
+ : row.original.reprocess_behavior === "failed"
+ ? translate("backfill.missingAndErroredRuns")
+ : translate("backfill.allRuns")}
</Text>
),
enableSorting: false,
diff --git a/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstance.tsx b/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstance.tsx
index 30411848851..25dc8bccf06 100644
--- a/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstance.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstance.tsx
@@ -17,6 +17,7 @@
* under the License.
*/
import { ReactFlowProvider } from "@xyflow/react";
+import { useTranslation } from "react-i18next";
import { MdOutlineTask } from "react-icons/md";
import { useParams } from "react-router-dom";
@@ -28,13 +29,13 @@ import { Header } from "./Header";
export const GroupTaskInstance = () => {
const { dagId = "", runId = "", taskId = "" } = useParams();
-
+ const { t: translate } = useTranslation();
const { data: gridTISummaries } = useGridTiSummaries({ dagId, runId });
const taskInstance = gridTISummaries?.task_instances.find((ti) => ti.task_id === taskId);
const refetchInterval = useAutoRefresh({ dagId });
- const tabs = [{ icon: <MdOutlineTask />, label: "Task Instances", value: "" }];
+ const tabs = [{ icon: <MdOutlineTask />, label: translate("taskInstances_other"), value: "" }];
return (
<ReactFlowProvider>
diff --git a/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/Header.tsx b/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/Header.tsx
index 4c9bd90f39d..9bfd54bfda4 100644
--- a/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/Header.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/Header.tsx
@@ -18,6 +18,7 @@
*/
import { Box } from "@chakra-ui/react";
import type { ReactNode } from "react";
+import { useTranslation } from "react-i18next";
import { MdOutlineTask } from "react-icons/md";
import type { LightGridTaskInstanceSummary } from "openapi/requests/types.gen";
@@ -32,19 +33,20 @@ export const Header = ({
readonly isRefreshing?: boolean;
readonly taskInstance: LightGridTaskInstanceSummary;
}) => {
+ const { t: translate } = useTranslation();
const entries: Array<{ label: string; value: number | ReactNode | string }> = [];
Object.entries(taskInstance.child_states ?? {}).forEach(([state, count]) => {
- entries.push({ label: `Total ${state}`, value: count });
+ entries.push({ label: translate("total", { state }), value: count });
});
const stats = [
...entries,
- { label: "Earliest Start", value: <Time datetime={taskInstance.min_start_date} /> },
- { label: "Latest End", value: <Time datetime={taskInstance.max_end_date} /> },
+ { label: translate("startDate"), value: <Time datetime={taskInstance.min_start_date} /> },
+ { label: translate("endDate"), value: <Time datetime={taskInstance.max_end_date} /> },
...(Boolean(taskInstance.max_end_date)
? [
{
- label: "Total Duration",
+ label: translate("duration"),
value: getDuration(taskInstance.min_start_date, taskInstance.max_end_date),
},
]
diff --git a/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Header.tsx b/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Header.tsx
index fc98b1a7806..dd00399a8ed 100644
--- a/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Header.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Header.tsx
@@ -18,6 +18,7 @@
*/
import { Box } from "@chakra-ui/react";
import type { ReactNode } from "react";
+import { useTranslation } from "react-i18next";
import { MdOutlineTask } from "react-icons/md";
import type { LightGridTaskInstanceSummary } from "openapi/requests/types.gen";
@@ -32,19 +33,25 @@ export const Header = ({
readonly isRefreshing?: boolean;
readonly taskInstance: LightGridTaskInstanceSummary;
}) => {
+ const { t: translate } = useTranslation();
const entries: Array<{ label: string; value: number | ReactNode | string }> = [];
let taskCount: number = 0;
Object.entries(taskInstance.child_states ?? {}).forEach(([state, count]) => {
- entries.push({ label: `Total ${state}`, value: count });
+ entries.push({ label: translate("total", { state }), value: count });
taskCount += count;
});
const stats = [
...entries,
- { label: "Start", value: <Time datetime={taskInstance.min_start_date} /> },
- { label: "End", value: <Time datetime={taskInstance.max_end_date} /> },
+ { label: translate("startDate"), value: <Time datetime={taskInstance.min_start_date} /> },
+ { label: translate("endDate"), value: <Time datetime={taskInstance.max_end_date} /> },
...(Boolean(taskInstance.max_end_date)
- ? [{ label: "Duration", value: getDuration(taskInstance.min_start_date, taskInstance.max_end_date) }]
+ ? [
+ {
+ label: translate("duration"),
+ value: getDuration(taskInstance.min_start_date, taskInstance.max_end_date),
+ },
+ ]
: []),
];
diff --git a/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/MappedTaskInstance.tsx b/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/MappedTaskInstance.tsx
index 005ca58a051..57a5c68a591 100644
--- a/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/MappedTaskInstance.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/MappedTaskInstance.tsx
@@ -17,6 +17,7 @@
* under the License.
*/
import { ReactFlowProvider } from "@xyflow/react";
+import { useTranslation } from "react-i18next";
import { MdOutlineTask } from "react-icons/md";
import { useParams } from "react-router-dom";
@@ -29,7 +30,7 @@ import { Header } from "./Header";
export const MappedTaskInstance = () => {
const { dagId = "", runId = "", taskId = "" } = useParams();
const refetchInterval = useAutoRefresh({ dagId });
-
+ const { t: translate } = useTranslation();
const { data: gridTISummaries } = useGridTiSummaries({ dagId, runId });
const taskInstance = gridTISummaries?.task_instances.find((ti) => ti.task_id === taskId);
@@ -39,7 +40,9 @@ export const MappedTaskInstance = () => {
taskCount += count;
});
- const tabs = [{ icon: <MdOutlineTask />, label: `Task Instances [${taskCount}]`, value: "" }];
+ const tabs = [
+ { icon: <MdOutlineTask />, label: `${translate("taskInstances_other")} [${taskCount}]`, value: "" },
+ ];
return (
<ReactFlowProvider>
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/TaskLogHeader.tsx b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/TaskLogHeader.tsx
index fac4a8082ec..44613a5b1a3 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/TaskLogHeader.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/TaskLogHeader.tsx
@@ -74,7 +74,7 @@ export const TaskLogHeader = ({
value: string;
}>({
items: [
- { label: translate("dag:taskLogs.allSources"), value: "all" },
+ { label: translate("dag:logs.allSources"), value: "all" },
...(sourceOptions ?? []).map((source) => ({ label: source, value: source })),
],
});
@@ -143,7 +143,7 @@ export const TaskLogHeader = ({
))}
</HStack>
) : (
- translate("dag:taskLogs.allLogLevels")
+ translate("dag:logs.allLevels")
)
}
</Select.ValueText>
@@ -152,9 +152,11 @@ export const TaskLogHeader = ({
{logLevelOptions.items.map((option) => (
<Select.Item item={option} key={option.label}>
{option.value === "all" ? (
- option.label
+ translate(option.label)
) : (
- <Badge colorPalette={logLevelColorMapping[option.value as LogLevel]}>{option.label}</Badge>
+ <Badge colorPalette={logLevelColorMapping[option.value as LogLevel]}>
+ {translate(option.label)}
+ </Badge>
)}
</Select.Item>
))}
@@ -169,7 +171,7 @@ export const TaskLogHeader = ({
value={sources}
>
<Select.Trigger clearable>
- <Select.ValueText placeholder={translate("dag:taskLogs.allSources")} />
+ <Select.ValueText placeholder={translate("dag:logs.allSources")} />
</Select.Trigger>
<Select.Content>
{sourceOptionList.items.map((option) => (
@@ -194,11 +196,11 @@ export const TaskLogHeader = ({
{!isFullscreen && (
<Tooltip
closeDelay={100}
- content={translate("dag:taskLogs.fullscreen.tooltip", { hotkey: "f" })}
+ content={translate("dag:logs.fullscreen.tooltip", { hotkey: "f" })}
openDelay={100}
>
<IconButton
- aria-label={translate("dag:taskLogs.fullscreen.button")}
+ aria-label={translate("dag:logs.fullscreen.button")}
bg="bg.panel"
onClick={toggleFullscreen}
variant="outline"
diff --git a/airflow-core/src/airflow/ui/src/utils/logs.ts b/airflow-core/src/airflow/ui/src/utils/logs.ts
index f0557e21f33..d03eedb8803 100644
--- a/airflow-core/src/airflow/ui/src/utils/logs.ts
+++ b/airflow-core/src/airflow/ui/src/utils/logs.ts
@@ -43,11 +43,11 @@ export const logLevelOptions = createListCollection<{
value: string;
}>({
items: [
- { label: "All Levels", value: "all" },
- { label: LogLevel.DEBUG.toUpperCase(), value: LogLevel.DEBUG },
- { label: LogLevel.INFO.toUpperCase(), value: LogLevel.INFO },
- { label: LogLevel.WARNING.toUpperCase(), value: LogLevel.WARNING },
- { label: LogLevel.ERROR.toUpperCase(), value: LogLevel.ERROR },
- { label: LogLevel.CRITICAL.toUpperCase(), value: LogLevel.CRITICAL },
+ { label: "dag:logs.allLevels", value: "all" },
+ { label: "dag:logs.debug", value: LogLevel.DEBUG },
+ { label: "dag:logs.info", value: LogLevel.INFO },
+ { label: "dag:logs.warning", value: LogLevel.WARNING },
+ { label: "dag:logs.error", value: LogLevel.ERROR },
+ { label: "dag:logs.critical", value: LogLevel.CRITICAL },
],
});