This is an automated email from the ASF dual-hosted git repository.
bbovenzi 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 5a3257f7660 Move Dag, run and TI into common.json (#51622)
5a3257f7660 is described below
commit 5a3257f766086d79144680e90f714c043bfe4c70
Author: Brent Bovenzi <[email protected]>
AuthorDate: Thu Jun 12 09:33:11 2025 -0400
Move Dag, run and TI into common.json (#51622)
* Move Dag, run and TI into common.json
* Update more translation refs
* Consolidate a few more fields, fix german keys
* Extra consolidation plus refactor keys for all other languages
* Fix config
---
.../components/ActionAccordion/ActionAccordion.tsx | 12 +--
.../ui/src/components/ActionAccordion/columns.tsx | 8 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 11 +--
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 12 +--
.../airflow/ui/src/components/DurationChart.tsx | 6 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 4 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 12 +--
.../airflow/ui/src/components/SearchBar.test.tsx | 2 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 11 ++-
.../ui/src/components/SearchDags/SearchDags.tsx | 4 +-
.../src/components/SearchDags/SearchDagsButton.tsx | 6 +-
.../src/components/TriggerDag/TriggerDAGButton.tsx | 6 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 14 +--
.../src/airflow/ui/src/constants/stateOptions.ts | 6 +-
airflow-core/src/airflow/ui/src/i18n/config.ts | 2 +
.../src/airflow/ui/src/i18n/locales/de/common.json | 60 ++++++++++--
.../airflow/ui/src/i18n/locales/de/components.json | 11 +--
.../src/airflow/ui/src/i18n/locales/de/dag.json | 40 --------
.../src/airflow/ui/src/i18n/locales/de/dags.json | 108 +++++----------------
.../src/airflow/ui/src/i18n/locales/en/common.json | 73 ++++++++++++--
.../airflow/ui/src/i18n/locales/en/components.json | 11 +--
.../src/airflow/ui/src/i18n/locales/en/dag.json | 40 --------
.../src/airflow/ui/src/i18n/locales/en/dags.json | 108 +++++----------------
.../src/airflow/ui/src/i18n/locales/he/common.json | 2 +-
.../src/airflow/ui/src/i18n/locales/ko/common.json | 2 +-
.../src/airflow/ui/src/i18n/locales/nl/common.json | 2 +-
.../src/airflow/ui/src/i18n/locales/pl/common.json | 55 +++++++++--
.../airflow/ui/src/i18n/locales/pl/components.json | 9 --
.../src/airflow/ui/src/i18n/locales/pl/dag.json | 40 --------
.../src/airflow/ui/src/i18n/locales/pl/dags.json | 108 +++++----------------
.../airflow/ui/src/i18n/locales/zh-TW/common.json | 32 ++++--
.../ui/src/i18n/locales/zh-TW/components.json | 6 ++
.../airflow/ui/src/i18n/locales/zh-TW/dags.json | 106 +++++---------------
.../ui/src/layouts/Details/Grid/DurationTick.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 3 +-
.../src/airflow/ui/src/pages/Dag/Details.tsx | 44 ++++-----
.../src/airflow/ui/src/pages/Dag/Header.tsx | 18 ++--
.../airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx | 8 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 22 ++---
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 8 +-
.../airflow/ui/src/pages/DagsList/DagOwners.tsx | 2 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 18 ++--
.../airflow/ui/src/pages/DagsList/RecentRuns.tsx | 12 +--
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 24 ++---
.../pages/TaskInstances/TaskInstancesFilter.tsx | 4 +-
45 files changed, 434 insertions(+), 660 deletions(-)
diff --git
a/airflow-core/src/airflow/ui/src/components/ActionAccordion/ActionAccordion.tsx
b/airflow-core/src/airflow/ui/src/components/ActionAccordion/ActionAccordion.tsx
index af251a402e3..f9c6c42e706 100644
---
a/airflow-core/src/airflow/ui/src/components/ActionAccordion/ActionAccordion.tsx
+++
b/airflow-core/src/airflow/ui/src/components/ActionAccordion/ActionAccordion.tsx
@@ -50,7 +50,7 @@ const ActionAccordion = ({ affectedTasks, note, setNote }:
Props) => {
<Accordion.Item key="tasks" value="tasks">
<Accordion.ItemTrigger>
<Text fontWeight="bold">
-
{translate("dags:runAndTaskActions.clear.dialog.affectedTasks.title", {
+ {translate("dags:runAndTaskActions.affectedTasks.title", {
count: affectedTasks.total_entries,
})}
</Text>
@@ -62,7 +62,7 @@ const ActionAccordion = ({ affectedTasks, note, setNote }:
Props) => {
data={affectedTasks.task_instances}
displayMode="table"
modelName={translate("common:taskInstance_other")}
-
noRowsMessage={translate("dags:runAndTaskActions.clear.dialog.affectedTasks.noItemsFound")}
+
noRowsMessage={translate("dags:runAndTaskActions.affectedTasks.noItemsFound")}
total={affectedTasks.total_entries}
/>
</Box>
@@ -71,7 +71,7 @@ const ActionAccordion = ({ affectedTasks, note, setNote }:
Props) => {
) : undefined}
<Accordion.Item key="note" value="note">
<Accordion.ItemTrigger>
- <Text
fontWeight="bold">{translate("dags:runAndTaskActions.clear.dialog.note.title")}</Text>
+ <Text fontWeight="bold">{translate("note.label")}</Text>
</Accordion.ItemTrigger>
<Accordion.ItemContent>
<Editable.Root
@@ -90,16 +90,14 @@ const ActionAccordion = ({ affectedTasks, note, setNote }:
Props) => {
{Boolean(note) ? (
<ReactMarkdown>{note}</ReactMarkdown>
) : (
- <Text color="fg.subtle">
-
{translate("dags:runAndTaskActions.clear.dialog.note.placeholder")}
- </Text>
+ <Text color="fg.subtle">{translate("note.placeholder")}</Text>
)}
</Editable.Preview>
<Editable.Textarea
data-testid="notes-input"
height="200px"
overflowY="auto"
-
placeholder={translate("dags:runAndTaskActions.clear.dialog.note.placeholder")}
+ placeholder={translate("note.placeholder")}
resize="none"
/>
</Editable.Root>
diff --git
a/airflow-core/src/airflow/ui/src/components/ActionAccordion/columns.tsx
b/airflow-core/src/airflow/ui/src/components/ActionAccordion/columns.tsx
index f4faf32aff4..6eb55136a42 100644
--- a/airflow-core/src/airflow/ui/src/components/ActionAccordion/columns.tsx
+++ b/airflow-core/src/airflow/ui/src/components/ActionAccordion/columns.tsx
@@ -25,7 +25,7 @@ import { StateBadge } from "src/components/StateBadge";
export const getColumns = (translate: TFunction):
Array<MetaColumn<TaskInstanceResponse>> => [
{
accessorKey: "task_id",
- header:
translate("dags:runAndTaskActions.clear.dialog.affectedTasks.columns.taskId"),
+ header: translate("taskId"),
size: 200,
},
{
@@ -35,14 +35,14 @@ export const getColumns = (translate: TFunction):
Array<MetaColumn<TaskInstanceR
original: { state },
},
}) => <StateBadge
state={state}>{translate(`common:states.${state}`)}</StateBadge>,
- header:
translate("dags:runAndTaskActions.clear.dialog.affectedTasks.columns.state"),
+ header: translate("state"),
},
{
accessorKey: "map_index",
- header: translate("common:mapIndex"),
+ header: translate("mapIndex"),
},
{
accessorKey: "run_id",
- header:
translate("dags:runAndTaskActions.clear.dialog.affectedTasks.columns.runId"),
+ header: translate("runId"),
},
];
diff --git
a/airflow-core/src/airflow/ui/src/components/Clear/Run/ClearRunDialog.tsx
b/airflow-core/src/airflow/ui/src/components/Clear/Run/ClearRunDialog.tsx
index d1f2ec552b5..0dda538103e 100644
--- a/airflow-core/src/airflow/ui/src/components/Clear/Run/ClearRunDialog.tsx
+++ b/airflow-core/src/airflow/ui/src/components/Clear/Run/ClearRunDialog.tsx
@@ -68,8 +68,7 @@ const ClearRunDialog = ({ dagRun, onClose, open }: Props) => {
<Dialog.Header>
<VStack align="start" gap={4}>
<Heading size="xl">
- <strong>{translate("dags:runAndTaskActions.clear.dialog.title",
{ type: "Run" })}: </strong>{" "}
- {dagRunId}
+ <strong>{translate("dags:runAndTaskActions.clear.title", { type:
"Run" })}: </strong> {dagRunId}
</Heading>
</VStack>
</Dialog.Header>
@@ -83,16 +82,16 @@ const ClearRunDialog = ({ dagRun, onClose, open }: Props)
=> {
onChange={setSelectedOptions}
options={[
{
- label:
translate("dags:runAndTaskActions.clear.dialog.options.existingTasks"),
+ label:
translate("dags:runAndTaskActions.options.existingTasks"),
value: "existingTasks",
},
{
- label:
translate("dags:runAndTaskActions.clear.dialog.options.onlyFailed"),
+ label:
translate("dags:runAndTaskActions.options.onlyFailed"),
value: "onlyFailed",
},
{
disabled: true,
- label:
translate("dags:runAndTaskActions.clear.dialog.options.queueNew"),
+ label: translate("dags:runAndTaskActions.options.queueNew"),
value: "new_tasks",
},
]}
@@ -119,7 +118,7 @@ const ClearRunDialog = ({ dagRun, onClose, open }: Props)
=> {
}
}}
>
- <CgRedo />
{translate("dags:runAndTaskActions.clear.dialog.confirm")}
+ <CgRedo /> {translate("modal.confirm")}
</Button>
</Flex>
</Dialog.Body>
diff --git
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
index c64f3edfc96..6f53c07d647 100644
---
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
+++
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
@@ -112,24 +112,24 @@ const ClearTaskInstanceDialog = ({ onClose, open,
taskInstance }: Props) => {
options={[
{
disabled: taskInstance.logical_date === null,
- label:
translate("dags:runAndTaskActions.clear.dialog.options.past"),
+ label: translate("dags:runAndTaskActions.options.past"),
value: "past",
},
{
disabled: taskInstance.logical_date === null,
- label:
translate("dags:runAndTaskActions.clear.dialog.options.future"),
+ label: translate("dags:runAndTaskActions.options.future"),
value: "future",
},
{
- label:
translate("dags:runAndTaskActions.clear.dialog.options.upstream"),
+ label: translate("dags:runAndTaskActions.options.upstream"),
value: "upstream",
},
{
- label:
translate("dags:runAndTaskActions.clear.dialog.options.downstream"),
+ label:
translate("dags:runAndTaskActions.options.downstream"),
value: "downstream",
},
{
- label:
translate("dags:runAndTaskActions.clear.dialog.options.onlyFailed"),
+ label:
translate("dags:runAndTaskActions.options.onlyFailed"),
value: "onlyFailed",
},
]}
@@ -166,7 +166,7 @@ const ClearTaskInstanceDialog = ({ onClose, open,
taskInstance }: Props) => {
}
}}
>
- <CgRedo />
{translate("dags:runAndTaskActions.clear.dialog.confirm")}
+ <CgRedo /> {translate("modal.confirm")}
</Button>
</Flex>
</Dialog.Body>
diff --git a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
index b2fa15100fe..bf8fb803db7 100644
--- a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
+++ b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
@@ -65,7 +65,7 @@ export const DurationChart = ({
readonly entries: Array<RunResponse> | undefined;
readonly kind: "Dag Run" | "Task Instance";
}) => {
- const { t: translate } = useTranslation("components");
+ const { t: translate } = useTranslation(["components", "common"]);
const navigate = useNavigate();
if (!entries) {
@@ -193,10 +193,10 @@ export const DurationChart = ({
ticks: {
maxTicksLimit: 3,
},
- title: { align: "end", display: true, text:
translate("durationChart.runAfter") },
+ title: { align: "end", display: true, text:
translate("dagRun.runAfter") },
},
y: {
- title: { align: "end", display: true, text:
translate("durationChart.duration") },
+ title: { align: "end", display: true, text:
translate("duration") },
},
},
}}
diff --git
a/airflow-core/src/airflow/ui/src/components/MarkAs/Run/MarkRunAsDialog.tsx
b/airflow-core/src/airflow/ui/src/components/MarkAs/Run/MarkRunAsDialog.tsx
index 3abd8174a5b..48c4ac64fd7 100644
--- a/airflow-core/src/airflow/ui/src/components/MarkAs/Run/MarkRunAsDialog.tsx
+++ b/airflow-core/src/airflow/ui/src/components/MarkAs/Run/MarkRunAsDialog.tsx
@@ -47,7 +47,7 @@ const MarkRunAsDialog = ({ dagRun, onClose, open, state }:
Props) => {
<Dialog.Header>
<VStack align="start" gap={4}>
<Heading size="xl">
- {translate("dags:runAndTaskActions.markAs.dialog.title", {
state, type: "Run" })}: {dagRunId}{" "}
+ {translate("dags:runAndTaskActions.markAs.title", { state, type:
"Run" })}: {dagRunId}{" "}
<StateBadge state={state} />
</Heading>
</VStack>
@@ -69,7 +69,7 @@ const MarkRunAsDialog = ({ dagRun, onClose, open, state }:
Props) => {
});
}}
>
- {translate("dags:runAndTaskActions.markAs.dialog.confirm")}
+ {translate("modal.confirm")}
</Button>
</Flex>
</Dialog.Body>
diff --git
a/airflow-core/src/airflow/ui/src/components/MarkAs/TaskInstance/MarkTaskInstanceAsDialog.tsx
b/airflow-core/src/airflow/ui/src/components/MarkAs/TaskInstance/MarkTaskInstanceAsDialog.tsx
index 8f079331e17..21ebb1d12a6 100644
---
a/airflow-core/src/airflow/ui/src/components/MarkAs/TaskInstance/MarkTaskInstanceAsDialog.tsx
+++
b/airflow-core/src/airflow/ui/src/components/MarkAs/TaskInstance/MarkTaskInstanceAsDialog.tsx
@@ -90,7 +90,7 @@ const MarkTaskInstanceAsDialog = ({ onClose, open, state,
taskInstance }: Props)
<VStack align="start" gap={4}>
<Heading size="xl">
<strong>
- {translate("dags:runAndTaskActions.markAs.dialog.title", {
state, type: "Task Instance" })}:
+ {translate("dags:runAndTaskActions.markAs.title", { state,
type: "Task Instance" })}:
</strong>{" "}
{taskInstance.task_display_name} <Time
datetime={taskInstance.start_date} />{" "}
<StateBadge state={state} />
@@ -108,20 +108,20 @@ const MarkTaskInstanceAsDialog = ({ onClose, open, state,
taskInstance }: Props)
options={[
{
disabled: taskInstance.logical_date === null,
- label:
translate("dags:runAndTaskActions.markAs.dialog.options.past"),
+ label: translate("dags:runAndTaskActions.options.past"),
value: "past",
},
{
disabled: taskInstance.logical_date === null,
- label:
translate("dags:runAndTaskActions.markAs.dialog.options.future"),
+ label: translate("dags:runAndTaskActions.options.future"),
value: "future",
},
{
- label:
translate("dags:runAndTaskActions.markAs.dialog.options.upstream"),
+ label: translate("dags:runAndTaskActions.options.upstream"),
value: "upstream",
},
{
- label:
translate("dags:runAndTaskActions.markAs.dialog.options.downstream"),
+ label:
translate("dags:runAndTaskActions.options.downstream"),
value: "downstream",
},
]}
@@ -149,7 +149,7 @@ const MarkTaskInstanceAsDialog = ({ onClose, open, state,
taskInstance }: Props)
});
}}
>
- {translate("dags:runAndTaskActions.markAs.dialog.confirm")}
+ {translate("modal.confirm")}
</Button>
</Flex>
</Dialog.Body>
diff --git a/airflow-core/src/airflow/ui/src/components/SearchBar.test.tsx
b/airflow-core/src/airflow/ui/src/components/SearchBar.test.tsx
index 138421ae65d..629400ad6ee 100644
--- a/airflow-core/src/airflow/ui/src/components/SearchBar.test.tsx
+++ b/airflow-core/src/airflow/ui/src/components/SearchBar.test.tsx
@@ -31,7 +31,7 @@ describe("Test SearchBar", () => {
const input = screen.getByTestId("search-dags");
- expect(screen.getByText("list.advancedSearch")).toBeDefined();
+ expect(screen.getByText("search.advanced")).toBeDefined();
expect(screen.queryByTestId("clear-search")).toBeNull();
fireEvent.change(input, { target: { value: "search" } });
diff --git a/airflow-core/src/airflow/ui/src/components/SearchBar.tsx
b/airflow-core/src/airflow/ui/src/components/SearchBar.tsx
index 5ab1ab3144e..ca3d0b552cd 100644
--- a/airflow-core/src/airflow/ui/src/components/SearchBar.tsx
+++ b/airflow-core/src/airflow/ui/src/components/SearchBar.tsx
@@ -74,7 +74,7 @@ export const SearchBar = ({
<>
{Boolean(value) ? (
<CloseButton
- aria-label={translate("list.clearSearch")}
+ aria-label={translate("search.clear")}
colorPalette="gray"
data-testid="clear-search"
onClick={() => {
@@ -86,10 +86,15 @@ export const SearchBar = ({
) : undefined}
{Boolean(hideAdvanced) ? undefined : (
<Button fontWeight="normal" height="1.75rem" variant="ghost"
width={140} {...buttonProps}>
- {translate("list.advancedSearch")}
+ {translate("search.advanced")}
</Button>
)}
- {!hotkeyDisabled && <Kbd size="sm">{metaKey}+K</Kbd>}
+ {!hotkeyDisabled && (
+ <Kbd size="sm">
+ {metaKey}
+ {translate("search.hotkey")}
+ </Kbd>
+ )}
</>
}
startElement={<FiSearch />}
diff --git
a/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDags.tsx
b/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDags.tsx
index 025c9490aaf..bb0e0f37659 100644
--- a/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDags.tsx
+++ b/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDags.tsx
@@ -37,7 +37,7 @@ export const SearchDags = ({
}: {
readonly setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
}) => {
- const { t: translate } = useTranslation("components");
+ const { t: translate } = useTranslation("dags");
const queryClient = useQueryClient();
const navigate = useNavigate();
const SEARCH_LIMIT = 10;
@@ -86,7 +86,7 @@ export const SearchDags = ({
loadOptions={searchDagDebounced}
menuIsOpen
onChange={onSelect}
- placeholder={translate("searchDags.placeholder")}
+ placeholder={translate("search.dags")}
// eslint-disable-next-line unicorn/no-null
value={null} // null is required
https://github.com/JedWatson/react-select/issues/3066
/>
diff --git
a/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDagsButton.tsx
b/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDagsButton.tsx
index dd0d4df6b69..71ba1c35e7b 100644
--- a/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDagsButton.tsx
+++ b/airflow-core/src/airflow/ui/src/components/SearchDags/SearchDagsButton.tsx
@@ -28,7 +28,7 @@ import { getMetaKey } from "src/utils";
import { SearchDags } from "./SearchDags";
export const SearchDagsButton = () => {
- const { t: translate } = useTranslation("components");
+ const { t: translate } = useTranslation("dags");
const [isOpen, setIsOpen] = useState(false);
const metaKey = getMetaKey();
@@ -48,10 +48,10 @@ export const SearchDagsButton = () => {
return (
<Box>
<Button justifyContent="flex-start" onClick={() => setIsOpen(true)}
variant="subtle" w={200}>
- <MdSearch /> {translate("searchDags.button")}{" "}
+ <MdSearch /> {translate("search.dags")}{" "}
<Kbd size="sm">
{metaKey}
- {translate("searchDags.hotkey")}
+ {translate("search.hotkey")}
</Kbd>
</Button>
<Dialog.Root onOpenChange={onOpenChange} open={isOpen} size="sm">
diff --git
a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGButton.tsx
b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGButton.tsx
index 11b7db1c00f..bef75fe2336 100644
--- a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGButton.tsx
+++ b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGButton.tsx
@@ -33,16 +33,16 @@ type Props = {
const TriggerDAGButton: React.FC<Props> = ({ dag, withText = true }) => {
const { onClose, onOpen, open } = useDisclosure();
- const { t: translate } = useTranslation("dags");
+ const { t: translate } = useTranslation("components");
return (
<Box>
<ActionButton
- actionName={translate("dagActions.trigger.triggerDag")}
+ actionName={translate("triggerDag.title")}
colorPalette="blue"
icon={<FiPlay />}
onClick={onOpen}
- text={translate("dagActions.trigger.button")}
+ text={translate("triggerDag.button")}
variant="solid"
withText={withText}
/>
diff --git
a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
index 7ca866d5d69..9abc7bffe0c 100644
--- a/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
+++ b/airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
@@ -50,7 +50,7 @@ export type DagRunTriggerParams = {
};
const TriggerDAGForm = ({ dagDisplayName, dagId, isPaused, onClose, open }:
TriggerDAGFormProps) => {
- const { t: translate } = useTranslation("components");
+ const { t: translate } = useTranslation(["common", "components"]);
const [errors, setErrors] = useState<{ conf?: string; date?: unknown }>({});
const [formError, setFormError] = useState(false);
const initialParamsDict = useDagParams(dagId, open);
@@ -112,7 +112,7 @@ const TriggerDAGForm = ({ dagDisplayName, dagId, isPaused,
onClose, open }: Trig
<Field.Root invalid={Boolean(errors.date)}
orientation="horizontal">
<Stack>
<Field.Label fontSize="md" style={{ flexBasis: "30%" }}>
- {translate("triggerDag.logicalDate")}
+ {translate("logicalDate")}
</Field.Label>
</Stack>
<Stack css={{ flexBasis: "70%" }}>
@@ -129,12 +129,12 @@ const TriggerDAGForm = ({ dagDisplayName, dagId,
isPaused, onClose, open }: Trig
<Field.Root mt={6} orientation="horizontal">
<Stack>
<Field.Label fontSize="md" style={{ flexBasis: "30%" }}>
- {translate("triggerDag.runId")}
+ {translate("runId")}
</Field.Label>
</Stack>
<Stack css={{ flexBasis: "70%" }}>
<Input {...field} size="sm" />
-
<Field.HelperText>{translate("triggerDag.runIdHelp")}</Field.HelperText>
+
<Field.HelperText>{translate("components:triggerDag.runIdHelp")}</Field.HelperText>
</Stack>
</Field.Root>
)}
@@ -144,8 +144,8 @@ const TriggerDAGForm = ({ dagDisplayName, dagId, isPaused,
onClose, open }: Trig
name="note"
render={({ field }) => (
<Field.Root mt={6}>
- <Field.Label
fontSize="md">{translate("triggerDag.notes")}</Field.Label>
- <EditableMarkdown field={field}
placeholder={translate("triggerDag.notesPlaceholder")} />
+ <Field.Label
fontSize="md">{translate("note.dagRun")}</Field.Label>
+ <EditableMarkdown field={field}
placeholder={translate("note.placeholder")} />
</Field.Root>
)}
/>
@@ -169,7 +169,7 @@ const TriggerDAGForm = ({ dagDisplayName, dagId, isPaused,
onClose, open }: Trig
disabled={Boolean(errors.conf) || Boolean(errors.date) ||
formError || isPending}
onClick={() => void handleSubmit(onSubmit)()}
>
- <FiPlay /> {translate("triggerDag.trigger")}
+ <FiPlay /> {translate("components:triggerDag.button")}
</Button>
</HStack>
</Box>
diff --git a/airflow-core/src/airflow/ui/src/constants/stateOptions.ts
b/airflow-core/src/airflow/ui/src/constants/stateOptions.ts
index d66418bcfd1..eccb2be11be 100644
--- a/airflow-core/src/airflow/ui/src/constants/stateOptions.ts
+++ b/airflow-core/src/airflow/ui/src/constants/stateOptions.ts
@@ -25,7 +25,7 @@ export const taskInstanceStateOptions = createListCollection<{
value: TaskInstanceState | "all" | "none";
}>({
items: [
- { label: "dags:taskInstances.allStates", value: "all" },
+ { label: "dags:filters.allStates", value: "all" },
{ label: "common:states.scheduled", value: "scheduled" },
{ label: "common:states.queued", value: "queued" },
{ label: "common:states.running", value: "running" },
@@ -44,7 +44,7 @@ export const taskInstanceStateOptions = createListCollection<{
export const dagRunStateOptions = createListCollection({
items: [
- { label: "dags:runs.allStates", value: "all" },
+ { label: "dags:filters.allStates", value: "all" },
{ label: "common:states.queued", value: "queued" },
{ label: "common:states.running", value: "running" },
{ label: "common:states.failed", value: "failed" },
@@ -54,7 +54,7 @@ export const dagRunStateOptions = createListCollection({
export const dagRunTypeOptions = createListCollection({
items: [
- { label: "dags:runs.allRunTypes", value: "all" },
+ { label: "dags:filters.allRunTypes", value: "all" },
{ label: "common:runTypes.backfill", value: "backfill" },
{ label: "common:runTypes.manual", value: "manual" },
{ label: "common:runTypes.scheduled", value: "scheduled" },
diff --git a/airflow-core/src/airflow/ui/src/i18n/config.ts
b/airflow-core/src/airflow/ui/src/i18n/config.ts
index a8c93554d8a..0a89a7dd74f 100644
--- a/airflow-core/src/airflow/ui/src/i18n/config.ts
+++ b/airflow-core/src/airflow/ui/src/i18n/config.ts
@@ -50,6 +50,7 @@ import zhTWAdmin from "./locales/zh-TW/admin.json";
import zhTWAssets from "./locales/zh-TW/assets.json";
import zhTWBrowse from "./locales/zh-TW/browse.json";
import zhTWCommon from "./locales/zh-TW/common.json";
+import zhTWComponents from "./locales/zh-TW/components.json";
import zhTWDags from "./locales/zh-TW/dags.json";
import zhTWDashboard from "./locales/zh-TW/dashboard.json";
@@ -113,6 +114,7 @@ const resources = {
assets: zhTWAssets,
browse: zhTWBrowse,
common: zhTWCommon,
+ components: zhTWComponents,
dags: zhTWDags,
dashboard: zhTWDashboard,
},
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/de/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/de/common.json
index 82039404270..4ca9b4228d0 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/de/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/de/common.json
@@ -17,6 +17,39 @@
},
"dag_one": "Dag",
"dag_other": "Dags",
+ "dagDetails": {
+ "catchup": "Nachgeholt",
+ "concurrency": "Parallelität",
+ "dagRunTimeout": "Dag Lauf Zeitüberschreitung",
+ "defaultArgs": "Standard-Parameter",
+ "description": "Beschreibung",
+ "fileLocation": "Ablagepfad",
+ "hasTaskConcurrencyLimits": "Hat der Task Limitierungen zur Parallelität",
+ "lastExpired": "Letztmaliger Ablauf",
+ "lastParsed": "Letztmalig Eingelesen",
+ "latestDagVersion": "Letzte Dag Version",
+ "latestRun": "Letzter Lauf",
+ "maxActiveRuns": "Maximal aktive Läufe",
+ "maxActiveTasks": "Maximal aktive Tasks",
+ "maxConsecutiveFailedDagRuns": "Maximal fortlaufende fehlerhafte Dag
Läufe",
+ "nextRun": "Nächster Lauf",
+ "owner": "Eigentümer",
+ "params": "Parameter",
+ "schedule": "Zeitplan",
+ "tags": "Markierungen"
+ },
+ "dagId": "Dag ID",
+ "dagRun": {
+ "conf": "Konfiguration",
+ "dagVersions": "Dag Versionen",
+ "dataIntervalEnd": "Datenintervall Ende",
+ "dataIntervalStart": "Datenintervall Start",
+ "lastSchedulingDecision": "Letzte Planungsentscheidung",
+ "queuedAt": "Wartend seit",
+ "runAfter": "Gelaufen ab",
+ "runType": "Typ des Laufs",
+ "triggeredBy": "Angestoßen von"
+ },
"dagRun_one": "Dag Lauf",
"dagRun_other": "Dag Läufe",
"dagWarnings": "Dag Warnungen und Fehler",
@@ -28,10 +61,7 @@
"githubRepo": "GitHub Ablage",
"restApiReference": "REST API Referenz"
},
- "duration": {
- "label": "Laufzeit",
- "seconds": "{{count}}s"
- },
+ "duration": "Laufzeit",
"endDate": "Enddatum",
"expression": {
"all": "Alle",
@@ -62,7 +92,13 @@
"security": "Sicherheit"
},
"noItemsFound": "Kein Element vom Typ {{modelName}} gefunden",
- "operator": "Operator",
+ "note": {
+ "add": "Eine Notiz hinzufügen",
+ "dagRun": "Notizen zum Dag Lauf",
+ "label": "Notiz",
+ "placeholder": "Eine Notiz hinzufügen...",
+ "taskInstance": "Notizen zu Task Instanzen"
+ },
"pools": {
"deferred": "Delegiert",
"open": "Frei",
@@ -79,6 +115,7 @@
"manual": "Manuell",
"scheduled": "Geplant"
},
+ "seconds": "{{count}}s",
"security": {
"actions": "Aktionen",
"permissions": "Berechtigungen",
@@ -110,7 +147,6 @@
"table": {
"completedAt": "Abgeschlossen um",
"createdAt": "Erstellt um",
- "duration": "Laufzeit",
"filterByTag": "Dags nach Markierung filtern",
"filterColumns": "Tabellenspalten filtern",
"filterReset_one": "Filter zurücksetzen",
@@ -126,8 +162,19 @@
"tagPlaceholder": "Dags nach Markierung filtern",
"to": "Zu"
},
+ "task": {
+ "lastInstance": "Letzte Task Instanz",
+ "operator": "Operator",
+ "triggerRule": "Auslöse-Regel"
+ },
"task_one": "Task",
"task_other": "Tasks",
+ "taskInstance": {
+ "dagVersion": "Dag Version",
+ "pid": "PID",
+ "pool": "Pool",
+ "queuedAt": "Wartend seit"
+ },
"taskInstance_one": "Task Instanz",
"taskInstance_other": "Task Instanzen",
"timeRange": {
@@ -145,7 +192,6 @@
"utc": "UTC (Koordinierte Weltzeit)"
},
"triggered": "Angestoßen",
- "triggerRule": "Auslöse-Regel",
"tryNumber": "Versuch Nummer",
"user": "Benutzer",
"wrap": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/de/components.json
b/airflow-core/src/airflow/ui/src/i18n/locales/de/components.json
index 8e47944b9b0..57f2717f4b6 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/de/components.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/de/components.json
@@ -80,11 +80,6 @@
"line": "Zeile"
},
"reparseDag": "Dag neu parsen",
- "searchDags": {
- "button": "Dags suchen",
- "hotkey": "+K",
- "placeholder": "Dags suchen"
- },
"sortedAscending": "aufsteigend sortier",
"sortedDescending": "absteigend sortier",
"sortedUnsorted": "unsortiert",
@@ -92,17 +87,13 @@
"toggleCardView": "Kachelansicht anzeigen",
"toggleTableView": "Tabellenansicht anzeigen",
"triggerDag": {
+ "button": "Auslösen",
"loading": "Lade DAG Information...",
"loadingFailed": "Das Laden der DAG Information fehlgeschlagen. Bitt
versuchen Sie es noch einmal.",
- "logicalDate": "Logisches Datum",
- "notes": "Notizen zum Dag Lauf",
- "notesPlaceholder": "Klicken Sie hier um eine Notiz hinzuzufügen",
- "runId": "ID des Laufes (Run Id)",
"runIdHelp": "Optional - wird automatisch erzeugt wenn nicht angegeben",
"selectDescription": "Einen einzelnen Lauf dieses Dag auslösen",
"selectLabel": "Einzelner Lauf",
"title": "Dag Auslösen",
- "trigger": "Auslösen",
"unpause": "Dag {{dagDisplayName}} beim Auslösen des Laufes aktiv schalten"
},
"versionDetails": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/de/dag.json
b/airflow-core/src/airflow/ui/src/i18n/locales/de/dag.json
index 7334afe09e1..9d1cc90f077 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/de/dag.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/de/dag.json
@@ -2,33 +2,9 @@
"allRuns": "Alle Läufe",
"code": {
"bundleUrl": "Bündel Url",
- "bundleVersion": "Bündel Version:",
"noCode": "Kein Programmcode gefunden",
"parsedAt": "Eingelesen um:"
},
- "details": {
- "fields": {
- "bundleVersion": "Bündel Version",
- "catchup": "Nachgeholt",
- "concurrency": "Parallelität",
- "dagId": "Dag ID",
- "dagRunTimeout": "Dag Lauf Zeitüberschreitung",
- "defaultArgs": "Standard-Parameter",
- "description": "Beschreibung",
- "endDate": "Enddatum",
- "fileLocation": "Ablagepfad",
- "hasTaskConcurrencyLimits": "Hat der Task Limitierungen zur
Parallelität",
- "lastExpired": "Letztmaliger Ablauf",
- "lastParsed": "Letztmalig Eingelesen",
- "latestDagVersion": "Latzte Dag Version",
- "maxActiveRuns": "Maximal aktive Läufe",
- "maxActiveTasks": "Maximal aktive Tasks",
- "maxConsecutiveFailedDagRuns": "Maximal fortlaufende fehlerhafte Dag
Läufe",
- "params": "Parameter",
- "startDate": "Startdatum",
- "timezone": "Zeitzone"
- }
- },
"grid": {
"buttons": {
"resetToLatest": "Auf Letzten zurücksetzen",
@@ -38,17 +14,6 @@
"header": {
"buttons": {
"dagDocs": "Dag Dokumentation"
- },
- "modals": {
- "docTitle": "Dag Dokumentation"
- },
- "stats": {
- "latestDagVersion": "Letzte Dag Version",
- "latestRun": "Letzter Lauf",
- "nextRun": "Nächster Lauf",
- "owner": "Eigentümer",
- "schedule": "Zeitplan",
- "tags": "Markierungen"
}
},
"overview": {
@@ -97,11 +62,6 @@
"runs": "Läufe",
"tasks": "Tasks"
},
- "task": {
- "card": {
- "lastInstance": "Letzte Task Instanz"
- }
- },
"taskGroups": {
"collapseAll": "Alle Task-Gruppen einklappen",
"expandAll": "Alle Task-Gruppen aufklappen"
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/de/dags.json
b/airflow-core/src/airflow/ui/src/i18n/locales/de/dags.json
index 5eb4d8b1056..7519b880357 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/de/dags.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/de/dags.json
@@ -4,62 +4,27 @@
"delete": {
"button": "Dag löschen",
"warning": "Diese Aktion löscht alle Metadaten zu diesem Dag mit allen
Läufen und Task Instanzen."
- },
- "trigger": {
- "button": "Auslösen",
- "triggerDag": "Dag auslösen"
}
},
"filters": {
+ "allRunTypes": "Alle Arten von Läufen",
+ "allStates": "Alle Stati",
"paused": {
"active": "Aktiv",
"all": "Alle",
"paused": "Pausiert"
}
},
- "list": {
- "advancedSearch": "Erweiterte Suche",
- "clearSearch": "Suche zurücksetzen",
- "columns": {
- "dagId": "Dag ID",
- "lastDagRun": "Letzter Dag Lauf",
- "nextDagRun": "Nächster Dag Lauf",
- "schedule": "Zeitplan",
- "tags": "Markierungen"
- },
- "ownerLink": "Besitzer Verlinkungen zu {{owner}}",
- "searchPlaceholder": "Dags suchen"
- },
+ "ownerLink": "Besitzer Verlinkungen zu {{owner}}",
"runAndTaskActions": {
+ "affectedTasks": {
+ "noItemsFound": "Keine Tasks gefunden.",
+ "title": "Betroffene Tasks: {{count}}"
+ },
"clear": {
"button": "{{type}} zurücksetzen",
"buttonTooltip": "STRG+C zum Zurücksetzen tippen",
- "dialog": {
- "affectedTasks": {
- "columns": {
- "runId": "Lauf ID",
- "state": "Status",
- "taskId": "Task ID"
- },
- "noItemsFound": "Keine Tasks gefunden.",
- "title": "Betroffene Tasks: {{count}}"
- },
- "confirm": "Bestätigen",
- "note": {
- "placeholder": "Eine Notiz hinzufügen...",
- "title": "Notiz"
- },
- "options": {
- "downstream": "Nachfolgende",
- "existingTasks": "Bestehende Tasks bereinigen",
- "future": "Zukünftige",
- "onlyFailed": "Nur fehlgeschlagene Tasks bereinigen",
- "past": "Vergangene",
- "queueNew": "Neue Tasks einplanen",
- "upstream": "Vorangegangene"
- },
- "title": "{{type}} bereinigen und neu planen"
- }
+ "title": "{{type}} bereinigen und neu planen"
},
"delete": {
"button": "{{type}} löschen",
@@ -80,32 +45,24 @@
"failed": "STRG+F tippen um als fehlgeschlagen zu markieren",
"success": "STRG+S tippen um als erfolgreich zu markieren"
},
- "dialog": {
- "confirm": "Bestätigen",
- "options": {
- "downstream": "Nachfolgende",
- "future": "Zukünftige",
- "past": "Vergangene",
- "upstream": "Vorangegangene"
- },
- "title": "{{type}} auf den Status {{state}} setzen"
- }
+ "title": "{{type}} auf den Status {{state}} setzen"
+ },
+ "options": {
+ "downstream": "Nachfolgende",
+ "existingTasks": "Bestehende Tasks bereinigen",
+ "future": "Zukünftige",
+ "onlyFailed": "Nur fehlgeschlagene Tasks bereinigen",
+ "past": "Vergangene",
+ "queueNew": "Neue Tasks einplanen",
+ "upstream": "Vorangegangene"
}
},
- "runs": {
- "allRunTypes": "Alle Arten von Läufen",
- "allStates": "Alle Stati",
- "columns": {
- "conf": "Dag Konfiguration",
- "dagId": "Dag ID",
- "dagVersions": "Dag Version",
- "duration": "Laufzeit",
- "endDate": "Enddatum",
- "runAfter": "Gelaufen ab",
- "runType": "Typ des Laufs",
- "startDate": "Startdatum",
- "state": "Status"
- }
+ "search": {
+ "advanced": "Erweiterte Suche",
+ "clear": "Suche zurücksetzen",
+ "dags": "Dags suchen",
+ "hotkey": "+K",
+ "tasks": "Tasks suchen"
},
"sort": {
"displayName": {
@@ -125,22 +82,5 @@
"desc": "Sortiert nach nächstem Laufdatum (Letzter-Erster)"
},
"placeholder": "Sortieren nach"
- },
- "taskInstances": {
- "allStates": "Alle Stati",
- "columns": {
- "dagId": "Dag ID",
- "dagRun": "Dag Lauf",
- "dagVersion": "Dag Version",
- "duration": "Laufzeit",
- "endDate": "Enddatum",
- "operator": "Operator-Klasse",
- "pool": "Pool",
- "startDate": "Startdatum",
- "state": "Status",
- "taskId": "Task ID",
- "tryNumber": "Versuch Nummer"
- },
- "searchPlaceholder": "Tasks suchen"
}
}
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/en/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/en/common.json
index 31ca56d587e..cc6cd97fe12 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/en/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/en/common.json
@@ -19,7 +19,40 @@
},
"dag_one": "Dag",
"dag_other": "Dags",
+ "dagDetails": {
+ "catchup": "Catchup",
+ "concurrency": "Concurrency",
+ "dagRunTimeout": "Dag Run Timeout",
+ "defaultArgs": "Default Args",
+ "description": "Description",
+ "documentation": "Dag Documentation",
+ "fileLocation": "File Location",
+ "hasTaskConcurrencyLimits": "Has Task Concurrency Limits",
+ "lastExpired": "Last Expired",
+ "lastParsed": "Last Parsed",
+ "latestDagVersion": "Latest Dag Version",
+ "latestRun": "Latest Run",
+ "maxActiveRuns": "Max Active Runs",
+ "maxActiveTasks": "Max Active Tasks",
+ "maxConsecutiveFailedDagRuns": "Max Consecutive Failed Dag Runs",
+ "nextRun": "Next Run",
+ "owner": "Owner",
+ "params": "Params",
+ "schedule": "Schedule",
+ "tags": "Tags"
+ },
"dagId": "Dag ID",
+ "dagRun": {
+ "conf": "Conf",
+ "dagVersions": "Dag Version(s)",
+ "dataIntervalEnd": "Data Interval End",
+ "dataIntervalStart": "Data Interval Start",
+ "lastSchedulingDecision": "Last Scheduling Decision",
+ "queuedAt": "Queued At",
+ "runAfter": "Run After",
+ "runType": "Run Type",
+ "triggeredBy": "Triggered By"
+ },
"dagRun_one": "Dag Run",
"dagRun_other": "Dag Runs",
"dagWarnings": "Dag warnings/errors",
@@ -31,10 +64,7 @@
"githubRepo": "GitHub Repo",
"restApiReference": "REST API Reference"
},
- "duration": {
- "label": "Duration",
- "seconds": "{{count}}s"
- },
+ "duration": "Duration",
"endDate": "End Date",
"expression": {
"all": "All",
@@ -65,7 +95,13 @@
"security": "Security"
},
"noItemsFound": "No {{modelName}} found",
- "operator": "Operator",
+ "note": {
+ "add": "Add a note",
+ "dagRun": "Dag Run Note",
+ "label": "Note",
+ "placeholder": "Add a note...",
+ "taskInstance": "Task Instance Note"
+ },
"pools": {
"deferred": "Deferred",
"open": "Open",
@@ -82,6 +118,7 @@
"manual": "Manual",
"scheduled": "Scheduled"
},
+ "seconds": "{{count}}s",
"security": {
"actions": "Actions",
"permissions": "Permissions",
@@ -113,7 +150,6 @@
"table": {
"completedAt": "Completed at",
"createdAt": "Created at",
- "duration": "Duration",
"filterByTag": "Filter Dags by tag",
"filterColumns": "Filter table columns",
"filterReset_one": "Reset filter",
@@ -121,7 +157,6 @@
"from": "From",
"maxActiveRuns": "Max Active Runs",
"noTagsFound": "No tags found",
- "reprocessBehavior": "Reprocess Behavior",
"tagMode": {
"all": "All",
"any": "Any"
@@ -129,19 +164,38 @@
"tagPlaceholder": "Filter by tag",
"to": "To"
},
+ "task": {
+ "lastInstance": "Last Instance",
+ "operator": "Operator",
+ "triggerRule": "Trigger Rule"
+ },
"task_one": "Task",
"task_other": "Tasks",
"taskId": "Task ID",
+ "taskInstance": {
+ "dagVersion": "Dag Version",
+ "executor": "Executor",
+ "executorConfig": "Executor Config",
+ "hostname": "Hostname",
+ "maxTries": "Max Tries",
+ "pid": "PID",
+ "pool": "Pool",
+ "poolSlots": "Pool Slots",
+ "priorityWeight": "Priority Weight",
+ "queue": "Queue",
+ "queuedWhen": "Queued At",
+ "scheduledWhen": "Scheduled At",
+ "unixname": "Unix Name"
+ },
"taskInstance_one": "Task Instance",
"taskInstance_other": "Task Instances",
"timeRange": {
- "duration": "Duration",
"last12Hours": "Last 12 Hours",
"last24Hours": "Last 24 Hours",
"lastHour": "Last Hour",
"pastWeek": "Past Week"
},
- "timezone": "timezone",
+ "timezone": "Timezone",
"timezoneModal": {
"current-timezone": "Current time in",
"placeholder": "Select a timezone",
@@ -149,7 +203,6 @@
"utc": "UTC (Coordinated Universal Time)"
},
"triggered": "Triggered",
- "triggerRule": "Trigger Rule",
"tryNumber": "Try Number",
"user": "User",
"wrap": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/en/components.json
b/airflow-core/src/airflow/ui/src/i18n/locales/en/components.json
index d8fbb20f482..5e1b1abd9d7 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/en/components.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/en/components.json
@@ -80,11 +80,6 @@
"line": "line"
},
"reparseDag": "Reparse Dag",
- "searchDags": {
- "button": "Search Dags",
- "hotkey": "+K",
- "placeholder": "Search Dags"
- },
"sortedAscending": "sorted ascending",
"sortedDescending": "sorted descending",
"sortedUnsorted": "unsorted",
@@ -92,17 +87,13 @@
"toggleCardView": "Show card view",
"toggleTableView": "Show table view",
"triggerDag": {
+ "button": "Trigger",
"loading": "Loading DAG information...",
"loadingFailed": "Failed to load DAG information. Please try again.",
- "logicalDate": "Logical Date",
- "notes": "Dag Run Notes",
- "notesPlaceholder": "Click to add note",
- "runId": "Run ID",
"runIdHelp": "Optional - will be generated if not provided",
"selectDescription": "Trigger a single run of this Dag",
"selectLabel": "Single Run",
"title": "Trigger Dag",
- "trigger": "Trigger",
"unpause": "Unpause {{dagDisplayName}} on trigger"
},
"versionDetails": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/en/dag.json
b/airflow-core/src/airflow/ui/src/i18n/locales/en/dag.json
index 2433357772b..0c840d245cd 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/en/dag.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/en/dag.json
@@ -2,33 +2,9 @@
"allRuns": "All Runs",
"code": {
"bundleUrl": "Bundle Url",
- "bundleVersion": "Bundle Version:",
"noCode": "No Code Found",
"parsedAt": "Parsed at:"
},
- "details": {
- "fields": {
- "bundleVersion": "Bundle Version",
- "catchup": "Catchup",
- "concurrency": "Concurrency",
- "dagId": "Dag ID",
- "dagRunTimeout": "Dag Run Timeout",
- "defaultArgs": "Default Args",
- "description": "Description",
- "endDate": "End Date",
- "fileLocation": "File Location",
- "hasTaskConcurrencyLimits": "Has Task Concurrency Limits",
- "lastExpired": "Last Expired",
- "lastParsed": "Last Parsed",
- "latestDagVersion": "Latest Dag Version",
- "maxActiveRuns": "Max Active Runs",
- "maxActiveTasks": "Max Active Tasks",
- "maxConsecutiveFailedDagRuns": "Max Consecutive Failed Dag Runs",
- "params": "Params",
- "startDate": "Start Date",
- "timezone": "Timezone"
- }
- },
"grid": {
"buttons": {
"resetToLatest": "Reset to latest",
@@ -38,17 +14,6 @@
"header": {
"buttons": {
"dagDocs": "Dag Docs"
- },
- "modals": {
- "docTitle": "Dag Documentation"
- },
- "stats": {
- "latestDagVersion": "Latest Dag Version",
- "latestRun": "Latest Run",
- "nextRun": "Next Run",
- "owner": "Owner",
- "schedule": "Schedule",
- "tags": "Tags"
}
},
"overview": {
@@ -98,11 +63,6 @@
"runs": "Runs",
"tasks": "Tasks"
},
- "task": {
- "card": {
- "lastInstance": "Last Instance"
- }
- },
"taskGroups": {
"collapseAll": "Collapse all task groups",
"expandAll": "Expand all task groups"
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/en/dags.json
b/airflow-core/src/airflow/ui/src/i18n/locales/en/dags.json
index f2ae3f7812c..75dc4d692b8 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/en/dags.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/en/dags.json
@@ -4,62 +4,27 @@
"delete": {
"button": "Delete Dag",
"warning": "This will remove all metadata related to the Dag, including
Runs and Tasks."
- },
- "trigger": {
- "button": "Trigger",
- "triggerDag": "Trigger Dag"
}
},
"filters": {
+ "allRunTypes": "All Run Types",
+ "allStates": "All States",
"paused": {
"active": "Active",
"all": "All",
"paused": "Paused"
}
},
- "list": {
- "advancedSearch": "Advanced Search",
- "clearSearch": "Clear search",
- "columns": {
- "dagId": "Dag ID",
- "lastDagRun": "Last Dag Run",
- "nextDagRun": "Next Dag Run",
- "schedule": "Schedule",
- "tags": "Tags"
- },
- "ownerLink": "Owner link for {{owner}}",
- "searchPlaceholder": "Search Dags"
- },
+ "ownerLink": "Owner link for {{owner}}",
"runAndTaskActions": {
+ "affectedTasks": {
+ "noItemsFound": "No tasks found.",
+ "title": "Affected Tasks: {{count}}"
+ },
"clear": {
"button": "Clear {{type}}",
"buttonTooltip": "Press shift+c to clear",
- "dialog": {
- "affectedTasks": {
- "columns": {
- "runId": "Run ID",
- "state": "State",
- "taskId": "Task ID"
- },
- "noItemsFound": "No tasks found.",
- "title": "Affected Tasks: {{count}}"
- },
- "confirm": "Confirm",
- "note": {
- "placeholder": "Add a note...",
- "title": "Note"
- },
- "options": {
- "downstream": "Downstream",
- "existingTasks": "Clear existing tasks",
- "future": "Future",
- "onlyFailed": "Clear only failed tasks",
- "past": "Past",
- "queueNew": "Queue up new tasks",
- "upstream": "Upstream"
- },
- "title": "Clear {{type}}"
- }
+ "title": "Clear {{type}}"
},
"delete": {
"button": "Delete {{type}}",
@@ -80,32 +45,24 @@
"failed": "Press shift+f to mark as failed",
"success": "Press shift+s to mark as success"
},
- "dialog": {
- "confirm": "Confirm",
- "options": {
- "downstream": "Downstream",
- "future": "Future",
- "past": "Past",
- "upstream": "Upstream"
- },
- "title": "Mark {{type}} as {{state}}"
- }
+ "title": "Mark {{type}} as {{state}}"
+ },
+ "options": {
+ "downstream": "Downstream",
+ "existingTasks": "Clear existing tasks",
+ "future": "Future",
+ "onlyFailed": "Clear only failed tasks",
+ "past": "Past",
+ "queueNew": "Queue up new tasks",
+ "upstream": "Upstream"
}
},
- "runs": {
- "allRunTypes": "All Run Types",
- "allStates": "All States",
- "columns": {
- "conf": "Conf",
- "dagId": "Dag ID",
- "dagVersions": "Dag Versions",
- "duration": "Duration",
- "endDate": "End Date",
- "runAfter": "Run After",
- "runType": "Run Type",
- "startDate": "Start Date",
- "state": "State"
- }
+ "search": {
+ "advanced": "Advanced Search",
+ "clear": "Clear search",
+ "dags": "Search Dags",
+ "hotkey": "+K",
+ "tasks": "Search Tasks"
},
"sort": {
"displayName": {
@@ -125,22 +82,5 @@
"desc": "Sort by Next Dag Run (Latest-Earliest)"
},
"placeholder": "Sort by"
- },
- "taskInstances": {
- "allStates": "All States",
- "columns": {
- "dagId": "Dag ID",
- "dagRun": "Dag Run",
- "dagVersion": "Dag Version",
- "duration": "Duration",
- "endDate": "End Date",
- "operator": "Operator",
- "pool": "Pool",
- "startDate": "Start Date",
- "state": "State",
- "taskId": "Task ID",
- "tryNumber": "Try Number"
- },
- "searchPlaceholder": "Search Tasks"
}
}
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
index a95ef0664ea..af11c8c48d3 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/he/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/he/common.json
@@ -22,6 +22,7 @@
"githubRepo": "GitHub Repo",
"restApiReference": "REST API תיעוד"
},
+ "duration": "משך זמן",
"language": {
"chinese": "סינית מסורתית",
"english": "אנגלית",
@@ -67,7 +68,6 @@
"taskInstance_one": "משימה בודדת",
"taskInstance_other": "משימה אחרת",
"timeRange": {
- "duration": "משך זמן",
"last12Hours": "12 השעות האחרונות",
"last24Hours": "24 השעות האחרונות",
"lastHour": "השעה האחרונה",
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/ko/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/ko/common.json
index 4189a350acc..dc4217be1eb 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/ko/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/ko/common.json
@@ -22,6 +22,7 @@
"githubRepo": "GitHub 저장소",
"restApiReference": "REST API 참조"
},
+ "duration": "지속 시간",
"logout": "로그아웃",
"nav": {
"admin": "관리자",
@@ -62,7 +63,6 @@
"taskInstance_one": "작업 인스턴스",
"taskInstance_other": "작업 인스턴스들",
"timeRange": {
- "duration": "지속 시간",
"last12Hours": "지난 12 시간",
"last24Hours": "지난 24 시간",
"lastHour": "지난 1시간",
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/nl/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/nl/common.json
index a68a472f207..6562f9c686a 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/nl/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/nl/common.json
@@ -22,6 +22,7 @@
"githubRepo": "GitHub Repo",
"restApiReference": "REST API referentie"
},
+ "duration": "Duur",
"logout": "Uitloggen",
"nav": {
"admin": "Beheer",
@@ -61,7 +62,6 @@
"taskInstance_one": "Task Instance",
"taskInstance_other": "Task Instances",
"timeRange": {
- "duration": "Duur",
"last12Hours": "Laatste 12 uur",
"last24Hours": "Laatste 24 uur",
"lastHour": "Laatste uur",
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/pl/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/pl/common.json
index 04c9c047dbf..463a276c9f4 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/pl/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/pl/common.json
@@ -17,6 +17,35 @@
},
"dag_one": "Dag",
"dag_other": "Dagi",
+ "dagDetails": {
+ "catchup": "Nadrabianie zaległości",
+ "concurrency": "Współbieżność",
+ "dagRunTimeout": "Limit czasu wykonania Daga",
+ "defaultArgs": "Domyślne argumenty",
+ "description": "Opis",
+ "documentation": "Dokumentacja Daga",
+ "fileLocation": "Lokalizacja pliku",
+ "hasTaskConcurrencyLimits": "Posiada ograniczenia współbieżności zadań",
+ "lastExpired": "Ostatnio wygasły",
+ "lastParsed": "Ostatnia analiza",
+ "latestDagVersion": "Najnowsza wersja Daga",
+ "latestRun": "Ostatnie wykonanie",
+ "maxActiveRuns": "Maksymalna liczba aktywnych wykonań",
+ "maxActiveTasks": "Maksymalna liczba aktywnych zadań",
+ "maxConsecutiveFailedDagRuns": "Maksymalna liczba kolejnych nieudanych
wykonań Daga",
+ "nextRun": "Następne Wykonanie Daga",
+ "owner": "Właściciel",
+ "params": "Parametry",
+ "schedule": "Harmonogram",
+ "tags": "Etykiety"
+ },
+ "dagId": "Identyfikator Daga",
+ "dagRun": {
+ "conf": "Konfiguracja",
+ "dagVersions": "Wersje Daga",
+ "runAfter": "Wykonaj po",
+ "runType": "Typ wykonania"
+ },
"dagRun_one": "Wykonanie Daga",
"dagRun_other": "Wykonania Dagów",
"dagWarnings": "Ostrzeżenia/Błędy Daga",
@@ -28,10 +57,7 @@
"githubRepo": "Repozytorium GitHub",
"restApiReference": "Dokuentacja REST API"
},
- "duration": {
- "label": "Czas trwania",
- "seconds": "{{count}}s"
- },
+ "duration": "Czas trwania",
"endDate": "Data zakończenia",
"expression": {
"all": "Wszystkie",
@@ -62,7 +88,12 @@
"security": "Bezpieczeństwo"
},
"noItemsFound": "Nie znaleziono modelu {{modelName}}",
- "operator": "Operator",
+ "note": {
+ "add": "Dodać notatkę",
+ "dagRun": "Notatki wykonania Daga",
+ "label": "Notatka",
+ "placeholder": "Dodaj notatkę..."
+ },
"pools": {
"deferred": "Odłożone",
"open": "Otwarte",
@@ -79,6 +110,7 @@
"manual": "Ręcznie",
"scheduled": "Według harmonogramu"
},
+ "seconds": "{{count}}s",
"security": {
"actions": "Akcje",
"permissions": "Uprawnienia",
@@ -110,7 +142,6 @@
"table": {
"completedAt": "Zakończono o",
"createdAt": "Utworzono o",
- "duration": "Czas trwania",
"filterByTag": "Filtruj Dagi według tagu",
"filterColumns": "Filtruj kolumny tabeli",
"filterReset_one": "Resetuj filtr",
@@ -126,12 +157,21 @@
"tagPlaceholder": "Filtruj według etykiety",
"to": "Do"
},
+ "task": {
+ "lastInstance": "Ostatnia instancja",
+ "operator": "Operator",
+ "triggerRule": "Reguła wywołania"
+ },
"task_one": "Zadanie",
"task_other": "Zadania",
+ "taskId": "Identifikator Zadania",
+ "taskInstance": {
+ "dagVersion": "Wersja Daga",
+ "pool": "Pula"
+ },
"taskInstance_one": "Instancja Zadania",
"taskInstance_other": "Instancje Zadań",
"timeRange": {
- "duration": "Czas trwania",
"last12Hours": "Ostatnie 12 godzin",
"last24Hours": "Ostatnie 24 godziny",
"lastHour": "Ostatnia godzina",
@@ -145,7 +185,6 @@
"utc": "UTC (Uniwersalny Czas Koordynowany)"
},
"triggered": "Wywołany",
- "triggerRule": "Reguła wywołania",
"tryNumber": "Numer próby",
"user": "Użytkownik",
"wrap": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/pl/components.json
b/airflow-core/src/airflow/ui/src/i18n/locales/pl/components.json
index ae52b8d5d41..25526c053ae 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/pl/components.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/pl/components.json
@@ -80,11 +80,6 @@
"line": "linia"
},
"reparseDag": "Ponowne parsowanie Daga",
- "searchDags": {
- "button": "Szukaj Daga",
- "hotkey": "+K",
- "placeholder": "Szukaj Daga"
- },
"sortedAscending": "posortowane rosnąco",
"sortedDescending": "posortowane malejąco",
"sortedUnsorted": "nieposortowane",
@@ -94,10 +89,6 @@
"triggerDag": {
"loading": "Ładowanie informacji o Dagach...",
"loadingFailed": "Nie udało się załadować informacji o Dagach. Spróbuj
ponownie.",
- "logicalDate": "Data logiczna",
- "notes": "Notatki wykonania Daga",
- "notesPlaceholder": "Kliknij, aby dodać notatkę",
- "runId": "Identyfikator wykonania",
"runIdHelp": "Opcjonalne - zostanie wygenerowane, jeśli nie podano",
"selectDescription": "Wyzwól pojedyncze wykonanie tego Daga",
"selectLabel": "Pojedyncze wykonanie",
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/pl/dag.json
b/airflow-core/src/airflow/ui/src/i18n/locales/pl/dag.json
index b28a96eb7d1..c82f60de1e9 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/pl/dag.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/pl/dag.json
@@ -2,33 +2,9 @@
"allRuns": "Wszystkie wykonania",
"code": {
"bundleUrl": "Adres URL paczki Dagów",
- "bundleVersion": "Wersja paczki Dagów:",
"noCode": "Nie znaleziono kodu",
"parsedAt": "Przeanalizowano o:"
},
- "details": {
- "fields": {
- "bundleVersion": "Wersja paczki Dagów",
- "catchup": "Nadrabianie zaległości",
- "concurrency": "Współbieżność",
- "dagId": "Identyfikator Daga",
- "dagRunTimeout": "Limit czasu wykonania Daga",
- "defaultArgs": "Domyślne argumenty",
- "description": "Opis",
- "endDate": "Data zakończenia",
- "fileLocation": "Lokalizacja pliku",
- "hasTaskConcurrencyLimits": "Posiada ograniczenia współbieżności zadań",
- "lastExpired": "Ostatnio wygasły",
- "lastParsed": "Ostatnia analiza",
- "latestDagVersion": "Najnowsza wersja Daga",
- "maxActiveRuns": "Maksymalna liczba aktywnych wykonań",
- "maxActiveTasks": "Maksymalna liczba aktywnych zadań",
- "maxConsecutiveFailedDagRuns": "Maksymalna liczba kolejnych nieudanych
wykonań Daga",
- "params": "Parametry",
- "startDate": "Data rozpoczęcia",
- "timezone": "Strefa czasowa"
- }
- },
"grid": {
"buttons": {
"resetToLatest": "Przywróć do najnowszego",
@@ -38,17 +14,6 @@
"header": {
"buttons": {
"dagDocs": "Dokumentacja Daga"
- },
- "modals": {
- "docTitle": "Dokumentacja Daga"
- },
- "stats": {
- "latestDagVersion": "Najnowsza wersja Daga",
- "latestRun": "Ostatnie wykonanie",
- "nextRun": "Następne wykonanie",
- "owner": "Właściciel",
- "schedule": "Harmonogram",
- "tags": "Etykiety"
}
},
"overview": {
@@ -97,11 +62,6 @@
"runs": "Uruchomienia",
"tasks": "Zadania"
},
- "task": {
- "card": {
- "lastInstance": "Ostatnia instancja"
- }
- },
"taskGroups": {
"collapseAll": "Zwiń wszystkie grupy zadań",
"expandAll": "Rozwiń wszystkie grupy zadań"
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/pl/dags.json
b/airflow-core/src/airflow/ui/src/i18n/locales/pl/dags.json
index 60386fc0ae4..b86a82bbb94 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/pl/dags.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/pl/dags.json
@@ -4,62 +4,27 @@
"delete": {
"button": "Usuń Daga",
"warning": "Wszystkie metadane, włączając metadane Dagów, wykonań i
zadań zostaną usunięte."
- },
- "trigger": {
- "button": "Uruchom",
- "triggerDag": "Uruchom Daga"
}
},
"filters": {
+ "allRunTypes": "Wszystkie Typy Wykonań",
+ "allStates": "Wszystkie Stany",
"paused": {
"active": "Aktywne",
"all": "Wszystkie",
"paused": "Wstrzymane"
}
},
- "list": {
- "advancedSearch": "Wyszukiwanie zaawansowane",
- "clearSearch": "Wyczyść wyszukiwanie",
- "columns": {
- "dagId": "Identyfikator Daga",
- "lastDagRun": "Ostatnie Wykonanie Daga",
- "nextDagRun": "Następne Wykonanie Daga",
- "schedule": "Harmonogram",
- "tags": "Etykiety"
- },
- "ownerLink": "Link do właściciela {{owner}}",
- "searchPlaceholder": "Szukaj Dagów"
- },
+ "ownerLink": "Link do właściciela {{owner}}",
"runAndTaskActions": {
+ "affectedTasks": {
+ "noItemsFound": "Nie znaleziono zadań.",
+ "title": "Liczba wybranych zadań: {{count}}"
+ },
"clear": {
"button": "Wyczyść {{type}}",
"buttonTooltip": "Użyj shift+c żeby wyczyścić",
- "dialog": {
- "affectedTasks": {
- "columns": {
- "runId": "Identifikator Wykonania",
- "state": "Stan",
- "taskId": "Identifikator Zadania"
- },
- "noItemsFound": "Nie znaleziono zadań.",
- "title": "Liczba wybranych zadań: {{count}}"
- },
- "confirm": "Potwierdź",
- "note": {
- "placeholder": "Dodaj notatkę..",
- "title": "Notatka"
- },
- "options": {
- "downstream": "Taski podrzędne",
- "existingTasks": "Wyczyść istniejące zadania",
- "future": "Przyszłe zadania",
- "onlyFailed": "Wyczyść tylko nieudane zadania",
- "past": "Przeszłe zadania",
- "queueNew": "Kolejkuj nowe zadania",
- "upstream": "Taski nadrzędne"
- },
- "title": "Wyczyść {{type}}"
- }
+ "title": "Wyczyść {{type}}"
},
"delete": {
"button": "Usuń {{type}}",
@@ -80,32 +45,24 @@
"failed": "Użyj shift+f aby oznaczyć jako nieudane",
"success": "Użyj shift+s aby oznaczyć jako udane"
},
- "dialog": {
- "confirm": "Potwierdź",
- "options": {
- "downstream": "Podrzędne",
- "future": "Przyszłe",
- "past": "Przeszłe",
- "upstream": "Nadrzędne"
- },
- "title": "Ustaw {{type}} jako {{state}}"
- }
+ "title": "Ustaw {{type}} jako {{state}}"
+ },
+ "options": {
+ "downstream": "Taski podrzędne",
+ "existingTasks": "Wyczyść istniejące zadania",
+ "future": "Przyszłe zadania",
+ "onlyFailed": "Wyczyść tylko nieudane zadania",
+ "past": "Przeszłe zadania",
+ "queueNew": "Kolejkuj nowe zadania",
+ "upstream": "Taski nadrzędne"
}
},
- "runs": {
- "allRunTypes": "Wszystkie Typy Wykonań",
- "allStates": "Wszystkie Stany",
- "columns": {
- "conf": "Konfiguracja",
- "dagId": "Identyfikator Daga",
- "dagVersions": "Wersje Daga",
- "duration": "Czas trwania",
- "endDate": "Data zakończenia",
- "runAfter": "Wykonaj po",
- "runType": "Typ wykonania",
- "startDate": "Data rozpoczęcia",
- "state": "Stan"
- }
+ "search": {
+ "advanced": "Wyszukiwanie zaawansowane",
+ "clear": "Wyczyść wyszukiwanie",
+ "dags": "Szukaj Dagów",
+ "hotkey": "+K",
+ "tasks": "Szukaj instancji zadań"
},
"sort": {
"displayName": {
@@ -125,22 +82,5 @@
"desc": "Sortuj według Następnego Wykonania Daga
(Najnowsze-Najwcześniejsze)"
},
"placeholder": "Sortuj według"
- },
- "taskInstances": {
- "allStates": "Wszystkie Stany",
- "columns": {
- "dagId": "Identyfikator Daga",
- "dagRun": "Identifikator Wykonania Daga",
- "dagVersion": "Wersja Daga",
- "duration": "Czas trwania",
- "endDate": "Data zakończenia",
- "operator": "Operator",
- "pool": "Pula",
- "startDate": "Data rozpoczęcia",
- "state": "Stan",
- "taskId": "Identifikator Zadania",
- "tryNumber": "Numer próby"
- },
- "searchPlaceholder": "Szukaj instancji zadań"
}
}
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/common.json
b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/common.json
index 18c11dfbc02..612422256c5 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/common.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/common.json
@@ -19,7 +19,18 @@
},
"dag_one": "Dag",
"dag_other": "Dags",
+ "dagDetails": {
+ "latestRun": "上次 Dag 執行",
+ "nextRun": "下次 Dag 執行",
+ "schedule": "排程",
+ "tags": "標籤"
+ },
"dagId": "Dag ID",
+ "dagRun": {
+ "dagVersions": "Dag 版本",
+ "runAfter": "最早可執行時間",
+ "runType": "執行類型"
+ },
"dagRun_one": "Dag 執行",
"dagRun_other": "Dag 執行",
"dagWarnings": "Dag 警告 / 錯誤",
@@ -31,10 +42,7 @@
"githubRepo": "GitHub 倉庫",
"restApiReference": "REST API 參考"
},
- "duration": {
- "label": "持續時間",
- "seconds": "{{count}} 秒"
- },
+ "duration": "時間範圍",
"endDate": "結束日期",
"expression": {
"all": "全部",
@@ -65,7 +73,10 @@
"security": "安全"
},
"noItemsFound": "找不到 {{modelName}}",
- "operator": "運算子",
+ "note": {
+ "label": "備註",
+ "placeholder": "新增備註..."
+ },
"pools": {
"deferred": "已延後",
"open": "開放",
@@ -82,6 +93,7 @@
"manual": "手動觸發",
"scheduled": "已排程"
},
+ "seconds": "{{count}} 秒",
"security": {
"actions": "操作",
"permissions": "權限",
@@ -129,13 +141,20 @@
"tagPlaceholder": "依標籤篩選",
"to": "到"
},
+ "task": {
+ "operator": "運算子",
+ "triggerRule": "觸發規則"
+ },
"task_one": "任務",
"task_other": "任務",
"taskId": "任務 ID",
+ "taskInstance": {
+ "dagVersion": "Dag 版本",
+ "pool": "資源池"
+ },
"taskInstance_one": "任務實例",
"taskInstance_other": "任務實例",
"timeRange": {
- "duration": "時間範圍",
"last12Hours": "最近 12 小時",
"last24Hours": "最近 24 小時",
"lastHour": "最近 1 小時",
@@ -149,7 +168,6 @@
"utc": "UTC"
},
"triggered": "已觸發",
- "triggerRule": "觸發規則",
"tryNumber": "嘗試次數",
"user": "使用者",
"wrap": {
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/components.json
b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/components.json
new file mode 100644
index 00000000000..3d0112b1cab
--- /dev/null
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/components.json
@@ -0,0 +1,6 @@
+{
+ "triggerDag": {
+ "button": "觸發",
+ "title": "觸發 Dag"
+ }
+}
diff --git a/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/dags.json
b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/dags.json
index a11dc98fee8..2712c6d3aa3 100644
--- a/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/dags.json
+++ b/airflow-core/src/airflow/ui/src/i18n/locales/zh-TW/dags.json
@@ -4,62 +4,27 @@
"delete": {
"button": "刪除 Dag",
"warning": "這將會刪除所有與此 Dag 相關的系統資料,包括 Dag 執行與任務。"
- },
- "trigger": {
- "button": "觸發",
- "triggerDag": "觸發 Dag"
}
},
"filters": {
+ "allRunTypes": "全部執行類型",
+ "allStates": "全部狀態",
"paused": {
"active": "啟用中",
"all": "全部",
"paused": "暫停"
}
},
- "list": {
- "advancedSearch": "進階搜尋",
- "clearSearch": "清除搜尋",
- "columns": {
- "dagId": "Dag ID",
- "lastDagRun": "上次 Dag 執行",
- "nextDagRun": "下次 Dag 執行",
- "schedule": "排程",
- "tags": "標籤"
- },
- "ownerLink": "擁有者 {{owner}} 的連結",
- "searchPlaceholder": "搜尋 Dags"
- },
+ "ownerLink": "擁有者 {{owner}} 的連結",
"runAndTaskActions": {
+ "affectedTasks": {
+ "noItemsFound": "找不到任務。",
+ "title": "受影響的任務: {{count}}"
+ },
"clear": {
"button": "清除 {{type}}",
"buttonTooltip": "按下 shift+c 清除",
- "dialog": {
- "affectedTasks": {
- "columns": {
- "runId": "執行 ID",
- "state": "狀態",
- "taskId": "任務 ID"
- },
- "noItemsFound": "找不到任務。",
- "title": "受影響的任務: {{count}}"
- },
- "confirm": "確認",
- "note": {
- "placeholder": "新增備註...",
- "title": "備註"
- },
- "options": {
- "downstream": "下游",
- "existingTasks": "清除現有任務",
- "future": "未來",
- "onlyFailed": "清除失敗任務",
- "past": "過去",
- "queueNew": "排隊新任務",
- "upstream": "上游"
- },
- "title": "清除{{type}}"
- }
+ "title": "清除{{type}}"
},
"delete": {
"button": "刪除{{type}}",
@@ -80,31 +45,23 @@
"failed": "按下 shift+f 標記為失敗",
"success": "按下 shift+s 標記為成功"
},
- "dialog": {
- "confirm": "確認",
- "options": {
- "downstream": "下游",
- "future": "未來",
- "past": "過去",
- "upstream": "上游"
- },
- "title": "標記為{{type}}為{{state}}"
- }
+ "title": "標記為{{type}}為{{state}}"
+ },
+ "options": {
+ "downstream": "下游",
+ "existingTasks": "清除現有任務",
+ "future": "未來",
+ "onlyFailed": "清除失敗任務",
+ "past": "過去",
+ "queueNew": "排隊新任務",
+ "upstream": "上游"
}
},
- "runs": {
- "allRunTypes": "全部執行類型",
- "allStates": "全部狀態",
- "columns": {
- "dagId": "Dag ID",
- "dagVersions": "Dag 版本",
- "duration": "持續時間",
- "endDate": "結束日期",
- "runAfter": "最早可執行時間",
- "runType": "執行類型",
- "startDate": "開始日期",
- "state": "狀態"
- }
+ "search": {
+ "advanced": "進階搜尋",
+ "clear": "清除搜尋",
+ "dags": "搜尋 Dags",
+ "tasks": "搜尋任務"
},
"sort": {
"displayName": {
@@ -124,22 +81,5 @@
"desc": "依下次執行時間排序 (由遠而近)"
},
"placeholder": "排序方式"
- },
- "taskInstances": {
- "allStates": "全部狀態",
- "columns": {
- "dagId": "Dag ID",
- "dagRun": "Dag 執行",
- "dagVersion": "Dag 版本",
- "duration": "持續時間",
- "endDate": "結束日期",
- "operator": "運算子",
- "pool": "資源池",
- "startDate": "開始日期",
- "state": "狀態",
- "taskId": "任務 ID",
- "tryNumber": "嘗試次數"
- },
- "searchPlaceholder": "搜尋任務"
}
}
diff --git
a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/DurationTick.tsx
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/DurationTick.tsx
index 24958b706aa..199dc185d07 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/DurationTick.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/DurationTick.tsx
@@ -28,7 +28,7 @@ export const DurationTick = ({ duration, ...rest }: Props) =>
{
return (
<Text color="border.emphasized" fontSize="xs" position="absolute"
right={1} whiteSpace="nowrap" {...rest}>
- {translate("duration.seconds", { count: Math.floor(duration) })}
+ {translate("seconds", { count: Math.floor(duration) })}
</Text>
);
};
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Code/Code.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Code/Code.tsx
index 287609d416b..47ce1ad8629 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Code/Code.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Code/Code.tsx
@@ -105,7 +105,8 @@ export const Code = () => {
// eslint-disable-next-line
@typescript-eslint/prefer-optional-chain
dagVersion !== undefined && dagVersion.bundle_version !== null ? (
<Heading as="h4" fontSize="14px" size="md"
wordBreak="break-word">
- {translate("code.bundleVersion")}{" "}
+ {translate("dagDetails.bundleVersion")}
+ {": "}
{dagVersion.bundle_url === null ? (
dagVersion.bundle_version
) : (
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Details.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Details.tsx
index bc89371a675..a618568ed4c 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Details.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Details.tsx
@@ -27,7 +27,7 @@ import Time from "src/components/Time";
import { ClipboardRoot, ClipboardIconButton } from "src/components/ui";
export const Details = () => {
- const { t: translate } = useTranslation("dag");
+ const { t: translate } = useTranslation(["common", "dag"]);
const { dagId = "" } = useParams();
const { data: dag } = useDagServiceGetDagDetails({
@@ -42,7 +42,7 @@ export const Details = () => {
<Table.Root striped>
<Table.Body>
<Table.Row>
- <Table.Cell>{translate("details.fields.dagId")}</Table.Cell>
+ <Table.Cell>{translate("dagId")}</Table.Cell>
<Table.Cell>
<HStack>
{dag.dag_id}
@@ -53,86 +53,80 @@ export const Details = () => {
</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.description")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.description")}</Table.Cell>
<Table.Cell>{dag.description}</Table.Cell>
</Table.Row>
<Table.Row>
- <Table.Cell>{translate("details.fields.timezone")}</Table.Cell>
+ <Table.Cell>{translate("common:timezone")}</Table.Cell>
<Table.Cell>{dag.timezone}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.fileLocation")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.fileLocation")}</Table.Cell>
<Table.Cell>
<Code>{dag.fileloc}</Code>
</Table.Cell>
</Table.Row>
<Table.Row>
- <Table.Cell>{translate("details.fields.lastParsed")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.lastParsed")}</Table.Cell>
<Table.Cell>
<Time datetime={dag.last_parsed} />
</Table.Cell>
</Table.Row>
- {dag.bundle_version !== null && (
- <Table.Row>
-
<Table.Cell>{translate("details.fields.bundleVersion")}</Table.Cell>
- <Table.Cell>{dag.bundle_version}</Table.Cell>
- </Table.Row>
- )}
<Table.Row>
-
<Table.Cell>{translate("details.fields.latestDagVersion")}</Table.Cell>
+
<Table.Cell>{translate("dagDetails.latestDagVersion")}</Table.Cell>
<Table.Cell>
<DagVersionDetails dagVersion={dag.latest_dag_version} />
</Table.Cell>
</Table.Row>
<Table.Row>
- <Table.Cell>{translate("details.fields.startDate")}</Table.Cell>
+ <Table.Cell>{translate("startDate")}</Table.Cell>
<Table.Cell>
<Time datetime={dag.start_date} />
</Table.Cell>
</Table.Row>
<Table.Row>
- <Table.Cell>{translate("details.fields.endDate")}</Table.Cell>
+ <Table.Cell>{translate("endDate")}</Table.Cell>
<Table.Cell>
<Time datetime={dag.end_date} />
</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.lastExpired")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.lastExpired")}</Table.Cell>
<Table.Cell>
<Time datetime={dag.last_expired} />
</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.concurrency")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.concurrency")}</Table.Cell>
<Table.Cell>{dag.concurrency}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.hasTaskConcurrencyLimits")}</Table.Cell>
+
<Table.Cell>{translate("dagDetails.hasTaskConcurrencyLimits")}</Table.Cell>
<Table.Cell>{dag.has_task_concurrency_limits.toString()}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.dagRunTimeout")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.dagRunTimeout")}</Table.Cell>
<Table.Cell>{dag.dag_run_timeout}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.maxActiveRuns")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.maxActiveRuns")}</Table.Cell>
<Table.Cell>{dag.max_active_runs}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.maxActiveTasks")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.maxActiveTasks")}</Table.Cell>
<Table.Cell>{dag.max_active_tasks}</Table.Cell>
</Table.Row>
<Table.Row>
-
<Table.Cell>{translate("details.fields.maxConsecutiveFailedDagRuns")}</Table.Cell>
+
<Table.Cell>{translate("dagDetails.maxConsecutiveFailedDagRuns")}</Table.Cell>
<Table.Cell>{dag.max_consecutive_failed_dag_runs}</Table.Cell>
</Table.Row>
<Table.Row>
- <Table.Cell>{translate("details.fields.catchup")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.catchup")}</Table.Cell>
<Table.Cell>{dag.catchup.toString()}</Table.Cell>
</Table.Row>
{dag.default_args === null ? undefined : (
<Table.Row>
-
<Table.Cell>{translate("details.fields.defaultArgs")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.defaultArgs")}</Table.Cell>
<Table.Cell>
<RenderedJsonField content={dag.default_args} />
</Table.Cell>
@@ -140,7 +134,7 @@ export const Details = () => {
)}
{dag.params === null ? undefined : (
<Table.Row>
- <Table.Cell>{translate("details.fields.params")}</Table.Cell>
+ <Table.Cell>{translate("dagDetails.params")}</Table.Cell>
<Table.Cell>
<RenderedJsonField content={dag.params} />
</Table.Cell>
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Header.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Header.tsx
index 74f5b06ac07..8f4c0c86cec 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Header.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Header.tsx
@@ -43,18 +43,18 @@ export const Header = ({
readonly dagWithRuns?: DAGWithLatestDagRunsResponse;
readonly isRefreshing?: boolean;
}) => {
- const { t: translate } = useTranslation("dag");
+ const { t: translate } = useTranslation(["common", "dag"]);
// We would still like to show the dagId even if the dag object hasn't
loaded yet
const { dagId } = useParams();
const latestRun = dagWithRuns?.latest_dag_runs ?
dagWithRuns.latest_dag_runs[0] : undefined;
const stats = [
{
- label: translate("header.stats.schedule"),
+ label: translate("dagDetails.schedule"),
value: dagWithRuns === undefined ? undefined : <Schedule
dag={dagWithRuns} />,
},
{
- label: translate("header.stats.latestRun"),
+ label: translate("dagDetails.latestRun"),
value:
Boolean(latestRun) && latestRun !== undefined ? (
<Link asChild color="fg.info">
@@ -71,7 +71,7 @@ export const Header = ({
) : undefined,
},
{
- label: translate("header.stats.nextRun"),
+ label: translate("dagDetails.nextRun"),
value: Boolean(dagWithRuns?.next_dagrun_run_after) ? (
<DagRunInfo
logicalDate={dagWithRuns?.next_dagrun_logical_date}
@@ -80,15 +80,15 @@ export const Header = ({
) : undefined,
},
{
- label: translate("header.stats.owner"),
+ label: translate("dagDetails.owner"),
value: <DagOwners ownerLinks={dag?.owner_links ?? undefined}
owners={dag?.owners} />,
},
{
- label: translate("header.stats.tags"),
+ label: translate("dagDetails.tags"),
value: <DagTags tags={dag?.tags ?? []} />,
},
{
- label: translate("header.stats.latestDagVersion"),
+ label: translate("dagDetails.latestDagVersion"),
value: <DagVersion version={dag?.latest_dag_version} />,
},
];
@@ -100,10 +100,10 @@ export const Header = ({
<>
{dag.doc_md === null ? undefined : (
<DisplayMarkdownButton
- header={translate("header.modals.docTitle")}
+ header={translate("dagDetails.documentation")}
icon={<FiBookOpen />}
mdContent={dag.doc_md}
- text={translate("header.buttons.dagDocs")}
+ text={translate("dag:header.buttons.dagDocs")}
/>
)}
<ParseDag dagId={dag.dag_id} fileToken={dag.file_token} />
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx
index 3877105ea72..09f7de15f6e 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx
@@ -36,7 +36,7 @@ type Props = {
};
export const TaskCard = ({ dagId, task }: Props) => {
- const { t: translate } = useTranslation(["dag", "common"]);
+ const { t: translate } = useTranslation();
const refetchInterval = useAutoRefresh({ dagId });
const { data } = useTaskInstanceServiceGetTaskInstances(
@@ -66,19 +66,19 @@ export const TaskCard = ({ dagId, task }: Props) => {
<SimpleGrid columns={4} gap={4} height={20}>
<VStack align="flex-start" gap={1}>
<Heading color="fg.muted" fontSize="xs">
- {translate("common:operator")}
+ {translate("task.operator")}
</Heading>
<Text fontSize="sm">{task.operator_name}</Text>
</VStack>
<VStack align="flex-start" gap={1}>
<Heading color="fg.muted" fontSize="xs">
- {translate("common:triggerRule")}
+ {translate("task.triggerRule")}
</Heading>
<Text fontSize="sm">{task.trigger_rule}</Text>
</VStack>
<VStack align="flex-start" gap={1}>
<Heading color="fg.muted" fontSize="xs">
- {translate("task.card.lastInstance")}
+ {translate("task.lastInstance")}
</Heading>
{data?.task_instances[0] ? (
<TaskInstanceTooltip taskInstance={data.task_instances[0]}>
diff --git a/airflow-core/src/airflow/ui/src/pages/DagRuns.tsx
b/airflow-core/src/airflow/ui/src/pages/DagRuns.tsx
index 99e2a89855c..5bb722ecbd1 100644
--- a/airflow-core/src/airflow/ui/src/pages/DagRuns.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/DagRuns.tsx
@@ -59,7 +59,7 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
{
accessorKey: "dag_display_name",
enableSorting: false,
- header: translate("dags:runs.columns.dagId"),
+ header: translate("dagId"),
},
]),
{
@@ -71,7 +71,7 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
</RouterLink>
</Link>
),
- header: translate("dags:runs.columns.runAfter"),
+ header: translate("dagRun.runAfter"),
},
{
accessorKey: "state",
@@ -80,7 +80,7 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
original: { state },
},
}) => <StateBadge state={state}>{state}</StateBadge>,
- header: () => translate("dags:runs.columns.state"),
+ header: () => translate("state"),
},
{
accessorKey: "run_type",
@@ -91,22 +91,22 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
</HStack>
),
enableSorting: false,
- header: translate("dags:runs.columns.runType"),
+ header: translate("dagRun.runType"),
},
{
accessorKey: "start_date",
cell: ({ row: { original } }) => <Time datetime={original.start_date} />,
- header: translate("dags:runs.columns.startDate"),
+ header: translate("startDate"),
},
{
accessorKey: "end_date",
cell: ({ row: { original } }) => <Time datetime={original.end_date} />,
- header: translate("dags:runs.columns.endDate"),
+ header: translate("endDate"),
},
{
accessorKey: "duration",
cell: ({ row: { original } }) => renderDuration(original.duration),
- header: translate("dags:runs.columns.duration"),
+ header: translate("duration"),
},
{
accessorKey: "dag_versions",
@@ -119,7 +119,7 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
/>
),
enableSorting: false,
- header: translate("dags:runs.columns.dagVersions"),
+ header: translate("dagRun.dagVersions"),
},
{
accessorKey: "conf",
@@ -127,7 +127,7 @@ const runColumns = (translate: TFunction, dagId?: string):
Array<ColumnDef<DAGRu
original.conf && Object.keys(original.conf).length > 0 ? (
<RenderedJsonField content={original.conf} jsonProps={{ collapsed:
true }} />
) : undefined,
- header: translate("dags:runs.columns.conf"),
+ header: translate("dagRun.conf"),
},
{
accessorKey: "actions",
@@ -231,7 +231,7 @@ export const DagRuns = () => {
<Select.ValueText width="auto">
{() =>
filteredState === null ? (
- translate("dags:runs.allStates")
+ translate("dags:filters.allStates")
) : (
<StateBadge state={filteredState as DagRunState}>
{translate(`common:states.${filteredState}`)}
@@ -262,7 +262,7 @@ export const DagRuns = () => {
<Select.ValueText width="auto">
{() =>
filteredType === null ? (
- translate("dags:runs.allRunTypes")
+ translate("dags:filters.allRunTypes")
) : (
<Flex alignItems="center" gap={1}>
<RunTypeIcon runType={filteredType as DagRunType} />
diff --git a/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.tsx
b/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.tsx
index 46a9b362a72..35990017ec8 100644
--- a/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.tsx
@@ -38,7 +38,7 @@ type Props = {
};
export const DagCard = ({ dag }: Props) => {
- const { t: translate } = useTranslation(["dags", "common"]);
+ const { t: translate } = useTranslation(["common", "dag"]);
const [latestRun] = dag.latest_dag_runs;
const refetchInterval = useAutoRefresh({ isPaused: dag.is_paused });
@@ -66,10 +66,10 @@ export const DagCard = ({ dag }: Props) => {
</HStack>
</Flex>
<SimpleGrid columns={4} gap={1} height={20} px={3} py={1}>
- <Stat label={translate("list.columns.schedule")}>
+ <Stat label={translate("dagDetails.schedule")}>
<Schedule dag={dag} />
</Stat>
- <Stat label={translate("list.columns.lastDagRun")}>
+ <Stat label={translate("dagDetails.latestRun")}>
{latestRun ? (
<Link asChild color="fg.info">
<RouterLink
to={`/dags/${latestRun.dag_id}/runs/${latestRun.dag_run_id}`}>
@@ -85,7 +85,7 @@ export const DagCard = ({ dag }: Props) => {
</Link>
) : undefined}
</Stat>
- <Stat label={translate("list.columns.nextDagRun")}>
+ <Stat label={translate("dagDetails.nextRun")}>
{Boolean(dag.next_dagrun_run_after) ? (
<DagRunInfo
logicalDate={dag.next_dagrun_logical_date}
diff --git a/airflow-core/src/airflow/ui/src/pages/DagsList/DagOwners.tsx
b/airflow-core/src/airflow/ui/src/pages/DagsList/DagOwners.tsx
index 70fb6195c0a..303827cbcea 100644
--- a/airflow-core/src/airflow/ui/src/pages/DagsList/DagOwners.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/DagsList/DagOwners.tsx
@@ -38,7 +38,7 @@ export const DagOwners = ({
return hasOwnerLink ? (
<Link
- aria-label={translate("list.ownerLink", { owner })}
+ aria-label={translate("ownerLink", { owner })}
asChild
color="fg.info"
href={link}
diff --git a/airflow-core/src/airflow/ui/src/pages/DagsList/DagsList.tsx
b/airflow-core/src/airflow/ui/src/pages/DagsList/DagsList.tsx
index 4b711e9abad..046fe5d14ae 100644
--- a/airflow-core/src/airflow/ui/src/pages/DagsList/DagsList.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/DagsList/DagsList.tsx
@@ -79,13 +79,13 @@ const createColumns = (
<RouterLink
to={`/dags/${original.dag_id}`}>{original.dag_display_name}</RouterLink>
</Link>
),
- header: () => translate("list.columns.dagId"),
+ header: () => translate("dagId"),
},
{
accessorKey: "timetable_description",
cell: ({ row: { original } }) => <Schedule dag={original} />,
enableSorting: false,
- header: () => translate("list.columns.schedule"),
+ header: () => translate("dagDetails.schedule"),
},
{
accessorKey: "next_dagrun",
@@ -96,7 +96,7 @@ const createColumns = (
runAfter={original.next_dagrun_run_after as string}
/>
) : undefined,
- header: () => translate("list.columns.nextDagRun"),
+ header: () => translate("dagDetails.nextRun"),
},
{
accessorKey: "last_run_start_date",
@@ -114,7 +114,7 @@ const createColumns = (
</RouterLink>
</Link>
) : undefined,
- header: () => translate("list.columns.lastDagRun"),
+ header: () => translate("dagDetails.latestRun"),
},
{
accessorKey: "tags",
@@ -124,7 +124,7 @@ const createColumns = (
},
}) => <DagTags hideIcon tags={tags} />,
enableSorting: false,
- header: () => translate("list.columns.tags"),
+ header: () => translate("dagDetails.tags"),
},
{
accessorKey: "trigger",
@@ -160,7 +160,7 @@ const cardDef: CardDef<DAGWithLatestDagRunsResponse> = {
const DAGS_LIST_DISPLAY = "dags_list_display";
export const DagsList = () => {
- const { t: translate } = useTranslation(["dags", "common"]);
+ const { t: translate } = useTranslation();
const [searchParams, setSearchParams] = useSearchParams();
const [display, setDisplay] = useLocalStorage<"card" |
"table">(DAGS_LIST_DISPLAY, "card");
const dagRunsLimit = display === "card" ? 14 : 1;
@@ -242,13 +242,13 @@ export const DagsList = () => {
buttonProps={{ disabled: true }}
defaultValue={dagDisplayNamePattern ?? ""}
onChange={handleSearchChange}
- placeHolder={translate("list.searchPlaceholder")}
+ placeHolder={translate("dags:search.dags")}
/>
<DagsFilters />
<HStack justifyContent="space-between">
<HStack>
<Heading py={3} size="md">
- {`${data?.total_entries ?? 0} ${(data?.total_entries ?? 0) === 1
? translate("common:dag_one") : translate("common:dag_other")}`}
+ {`${data?.total_entries ?? 0} ${(data?.total_entries ?? 0) === 1
? translate("dag_one") : translate("dag_other")}`}
</Heading>
<DAGImportErrors iconOnly />
</HStack>
@@ -267,7 +267,7 @@ export const DagsList = () => {
errorMessage={<ErrorAlert error={error} />}
initialState={tableURLState}
isLoading={isLoading}
- modelName="Dag"
+ modelName={translate("dag_one")}
onStateChange={setTableURLState}
skeletonCount={display === "card" ? 5 : undefined}
total={data?.total_entries ?? 0}
diff --git a/airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.tsx
b/airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.tsx
index d4c11ab88ea..c53edaea44a 100644
--- a/airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.tsx
@@ -36,7 +36,7 @@ export const RecentRuns = ({
}: {
readonly latestRuns: DAGWithLatestDagRunsResponse["latest_dag_runs"];
}) => {
- const { t: translate } = useTranslation(["dags", "common"]);
+ const { t: translate } = useTranslation();
// Because of the styling (`row-reverse`), we need to reverse the runs so
that the most recent run is on the right.
const reversedRuns = [...latestRuns].reverse();
@@ -62,23 +62,23 @@ export const RecentRuns = ({
content={
<Box>
<Text>
- {translate("list.runs.state")}:
{translate(`common:states.${run.state}`)}
+ {translate("state")}: {translate(`common:states.${run.state}`)}
</Text>
<Text>
- {translate("list.runs.runAfter")}: <Time
datetime={run.run_after} />
+ {translate("dagRun.runAfter")}: <Time datetime={run.run_after}
/>
</Text>
{run.start_date === null ? undefined : (
<Text>
- {translate("list.runs.startDate")}: <Time
datetime={run.start_date} />
+ {translate("startDate")}: <Time datetime={run.start_date} />
</Text>
)}
{run.end_date === null ? undefined : (
<Text>
- {translate("list.runs.endDate")}: <Time
datetime={run.end_date} />
+ {translate("endDate")}: <Time datetime={run.end_date} />
</Text>
)}
<Text>
- {translate("list.runs.duration")}:
{getDuration(run.start_date, run.end_date)}
+ {translate("duration")}: {getDuration(run.start_date,
run.end_date)}
</Text>
</Box>
}
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstances.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstances.tsx
index e0a427cac64..13d084a5c74 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstances.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstances.tsx
@@ -68,7 +68,7 @@ const taskInstanceColumns = ({
{
accessorKey: "dag_display_name",
enableSorting: false,
- header: translate("dags:taskInstances.columns.dagId"),
+ header: translate("dagId"),
},
]),
...(Boolean(runId)
@@ -87,7 +87,7 @@ const taskInstanceColumns = ({
) : (
<Time datetime={original.run_after} />
),
- header: translate("dags:taskInstances.columns.dagRun"),
+ header: translate("dagRun_one"),
},
]),
...(Boolean(taskId)
@@ -103,12 +103,12 @@ const taskInstanceColumns = ({
</Link>
),
enableSorting: false,
- header: translate("dags:taskInstances.columns.taskId"),
+ header: translate("taskId"),
},
]),
{
accessorKey: "rendered_map_index",
- header: translate("common:mapIndex"),
+ header: translate("mapIndex"),
},
{
accessorKey: "state",
@@ -117,7 +117,7 @@ const taskInstanceColumns = ({
original: { state },
},
}) => <StateBadge
state={state}>{translate(`common:states.${state}`)}</StateBadge>,
- header: () => translate("dags:taskInstances.columns.state"),
+ header: () => translate("state"),
},
{
accessorKey: "start_date",
@@ -131,38 +131,38 @@ const taskInstanceColumns = ({
) : (
<Time datetime={original.start_date} />
),
- header: translate("dags:taskInstances.columns.startDate"),
+ header: translate("startDate"),
},
{
accessorKey: "end_date",
cell: ({ row: { original } }) => <Time datetime={original.end_date} />,
- header: translate("dags:taskInstances.columns.endDate"),
+ header: translate("endDate"),
},
{
accessorKey: "try_number",
enableSorting: false,
- header: translate("dags:taskInstances.columns.tryNumber"),
+ header: translate("tryNumber"),
},
{
accessorKey: "pool",
enableSorting: false,
- header: translate("dags:taskInstances.columns.pool"),
+ header: translate("taskInstance.pool"),
},
{
accessorKey: "operator",
enableSorting: false,
- header: translate("dags:taskInstances.columns.operator"),
+ header: translate("task.operator"),
},
{
cell: ({ row: { original } }) =>
Boolean(original.start_date) ? getDuration(original.start_date,
original.end_date) : "",
- header: translate("dags:taskInstances.columns.duration"),
+ header: translate("duration"),
},
{
accessorKey: "dag_version",
cell: ({ row: { original } }) => <DagVersion
version={original.dag_version} />,
enableSorting: false,
- header: translate("dags:taskInstances.columns.dagVersion"),
+ header: translate("taskInstance.dagVersion"),
},
{
accessorKey: "actions",
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstancesFilter.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstancesFilter.tsx
index 170486e4b65..4038df24fd9 100644
---
a/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstancesFilter.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstancesFilter.tsx
@@ -88,7 +88,7 @@ export const TaskInstancesFilter = ({
hideAdvanced
hotkeyDisabled={Boolean(runId)}
onChange={handleSearchChange}
- placeHolder={translate("dags:taskInstances.searchPlaceholder")}
+ placeHolder={translate("dags:search.tasks")}
/>
<Select.Root
collection={taskInstanceStateOptions}
@@ -113,7 +113,7 @@ export const TaskInstancesFilter = ({
))}
</HStack>
) : (
- translate("dags:taskInstances.allStates")
+ translate("dags:filters.allStates")
)
}
</Select.ValueText>