Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
/airflow-core/src/airflow/ui/ @bbovenzi @pierrejeambrun @ryanahamilton @jscheffl @shubhamraj-git

# Translations
airflow-core/src/airflow/ui/src/i18n/locales/de/ @jscheffl
airflow-core/src/airflow/ui/src/i18n/locales/zh_TW/ @Lee-W

# Security/Permissions
Expand Down
11 changes: 10 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,16 @@ repos:
The word(s) should be in lowercase." && exec codespell "$@"' --
language: python
types: [text]
exclude: material-icons\.css$|^images/.*$|^RELEASE_NOTES\.txt$|^.*package-lock\.json$|^.*/kinglear\.txt$|^.*pnpm-lock\.yaml$|.*/dist/.*
exclude: >
(?x)
material-icons\.css$|
^images/.*$|
^RELEASE_NOTES\.txt$|
^.*package-lock\.json$|
^.*/kinglear\.txt$|
^.*pnpm-lock\.yaml$|
.*/dist/.*|
^airflow-core/src/airflow/ui/src/i18n/locales/de/
args:
- --ignore-words=docs/spelling_wordlist.txt
- --skip=providers/.*/src/airflow/providers/*/*.rst,providers/*/docs/changelog.rst,docs/*/commits.rst,providers/*/docs/commits.rst,providers/*/*/docs/commits.rst,docs/apache-airflow/tutorial/pipeline_example.csv,*.min.js,*.lock,INTHEWILD.md,*.svg
Expand Down
7 changes: 7 additions & 0 deletions airflow-core/src/airflow/ui/src/i18n/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import i18n from "i18next";
import LanguageDetector from "i18next-browser-languagedetector";
import { initReactI18next } from "react-i18next";

import deCommon from "./locales/de/common.json";
import deDashboard from "./locales/de/dashboard.json";
import enCommon from "./locales/en/common.json";
import enDashboard from "./locales/en/dashboard.json";
import zhTWCommon from "./locales/zh_TW/common.json";
Expand All @@ -29,6 +31,7 @@ import zhTWDashboard from "./locales/zh_TW/dashboard.json";
// import Backend from 'i18next-http-backend';

export const supportedLanguages = [
{ code: "de", name: "Deutsch" },
{ code: "en", name: "English" },
{ code: "zh_TW", name: "繁體中文" },
] as const;
Expand All @@ -37,6 +40,10 @@ export const defaultLanguage = "en";
export const namespaces = ["common", "dashboard"] as const;

const resources = {
de: {
common: deCommon,
dashboard: deDashboard,
},
en: {
common: enCommon,
dashboard: enDashboard,
Expand Down
78 changes: 78 additions & 0 deletions airflow-core/src/airflow/ui/src/i18n/locales/de/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"defaultToGraphView": "Graph-Ansicht als Standard",
"defaultToGridView": "Gitter-Ansicht als Standard",
"logout": "Abmelden",
"switchToDarkMode": "Zum Dunkelmodus wechseln",
"switchToLightMode": "Zum Hellmodus wechseln",
"timezone": "Zeitzone",
"user": "Benutzer",
"language": {
"chinese": "Traditionelles Chinesisch",
"english": "Englisch",
"german": "Deutsch",
"select": "Sprache wählen"
},
"nav": {
"home": "Start",
"assets": "Datensets (Assets)",
"browse": "Browsen",
"admin": "Verwaltung",
"docs": "Dokumentation",
"plugins": "Plug-ins"
},
"browse": {
"auditLog": "Prüf-Log",
"xcoms": "Task Kommunikation (XComs)"
},
"admin": {
"Variables": "Variablen",
"Pools": "Pools",
"Providers": "Providers",
"Plugins": "Plug-ins",
"Connections": "Verbindungen",
"Config": "Konfiguration"
},
"timeRange": {
"duration": "Laufzeit",
"lastHour": "Letzte Stunde",
"last12Hours": "Letzte 12 Stunden",
"last24Hours": "Letzte 24 Stunden",
"pastWeek": "Letzte Woche"
},
"docs": {
"documentation": "Dokumentation",
"githubRepo": "GitHub Ablage",
"restApiReference": "REST API Referenz"
},
"states": {
"queued": "Wartend",
"running": "Laufend",
"success": "Erfolgreich",
"failed": "Fehlgeschlagen",
"skipped": "Übersprungen",
"removed": "Entfernt",
"scheduled": "Geplant",
"restarting": "Im Neustart",
"up_for_retry": "Wartet auf neuen Versuch",
"up_for_reschedule": "Wartet auf Neuplanung",
"upstream_failed": "Vorgelagerte fehlgeschlagen",
"deferred": "Delegiert",
"no_status": "Kein Status"
},
"dagRun_one": "Dag Lauf",
"dagRun_other": "Dag Läufe",
"taskInstance_one": "Task Instanz",
"taskInstance_other": "Task Instanzen",
"assetEvent_one": "Ereignis zu Datensets (Asset)",
"assetEvent_other": "Ereignisse zu Datensets (Asset)",
"triggered": "Angestoßen",
"pools": {
"open": "Frei",
"running": "Laufend",
"queued": "Wartend",
"scheduled": "Geplant",
"deferred": "Delegiert",
"pools_one": "Pool",
"pools_other": "Pools"
}
}
38 changes: 38 additions & 0 deletions airflow-core/src/airflow/ui/src/i18n/locales/de/dashboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"welcome": "Willkommen",
"stats": {
"stats": "Statistiken",
"failedDags": "Fehlgeschlagene Dags",
"runningDags": "Laufende Dags",
"activeDags": "Aktive Dags",
"queuedDags": "Dags in Warteschlange"
},
"health": {
"health": "System-Gesundheit",
"metaDatabase": "Meta-Datenbank",
"scheduler": "Planer",
"triggerer": "Triggerer",
"dagProcessor": "Dag Prozessor",
"status": "Status",
"lastHeartbeat": "Letztes Lebenszeichen",
"healthy": "Gut",
"unhealthy": "Nicht in Ordnung"
},
"importErrors": {
"searchByFile": "Nach Datei suchen",
"dagImportError_one": "Fehler beim Laden des Dags",
"dagImportError_other": "Fehler beim Laden der Dags",
"timestamp": "Zeitstempel"
},
"poolSlots": "Pool Belegung",
"managePools": "Pools verwalten",
"history": "Historie",
"sortBy": {
"newestFirst": "Neueste zuerst",
"oldestFirst": "Älteste zuerst"
},
"source": "Quellcode",
"group": "Gruppe",
"uri": "Uri",
"noAssetEvents": "Keine Ereignisse zu Datensets vorliegend."
}