This is an automated email from the ASF dual-hosted git repository.
eladkal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 4cae02cbee1 Update French (fr) UI translations to 100% coverage
(#74235)
4cae02cbee1 is described below
commit 4cae02cbee170558af4ef454c634b2acdcdf82da
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Tue Oct 6 12:13:16 2026 +0200
Update French (fr) UI translations to 100% coverage (#74235)
* Update French (fr) UI translations to 100% coverage
* Sort French (fr) keys and translate the merged trigger labels
The Static checks CI job runs the jsonc/sort-keys eslint rule over the
locale files, requiring natural-ascending key order; the keys scaffolded
by --add-missing landed out of order. Merging main into the branch also
introduced two new components keys (triggerDag.editConfigAndTrigger,
triggerDag.triggerOptions), now translated so fr stays at 100%.
---
.../airflow/ui/public/i18n/locales/fr/admin.json | 18 ++-
.../airflow/ui/public/i18n/locales/fr/assets.json | 14 ++-
.../airflow/ui/public/i18n/locales/fr/browse.json | 35 ++++++
.../airflow/ui/public/i18n/locales/fr/common.json | 123 ++++++++++++++++++++-
.../ui/public/i18n/locales/fr/components.json | 32 +++++-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 73 ++++++++++++
.../airflow/ui/public/i18n/locales/fr/dags.json | 35 ++++++
.../ui/public/i18n/locales/fr/dashboard.json | 18 ++-
8 files changed, 338 insertions(+), 10 deletions(-)
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/admin.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/admin.json
index bee891965d5..bd91a463c7c 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/admin.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/admin.json
@@ -9,7 +9,10 @@
"config": {
"columns": {
"section": "Section"
- }
+ },
+ "config_many": "Configurations",
+ "config_one": "Configuration",
+ "config_other": "Configurations"
},
"connections": {
"add": "Ajouter une connexion",
@@ -97,7 +100,10 @@
"dagProcessorJob": "DagProcessorJob",
"schedulerJob": "SchedulerJob",
"triggererJob": "TriggererJob"
- }
+ },
+ "job_many": "Jobs",
+ "job_one": "Job",
+ "job_other": "Jobs"
},
"plugins": {
"columns": {
@@ -106,6 +112,9 @@
"importError_many": "Erreurs d'importation de plugin",
"importError_one": "Erreur d'importation de plugin",
"importError_other": "Erreurs d'importation de plugins",
+ "plugin_many": "Plugins",
+ "plugin_one": "Plugin",
+ "plugin_other": "Plugins",
"searchPlaceholder": "Rechercher par fichier"
},
"pools": {
@@ -140,7 +149,10 @@
"columns": {
"packageName": "Nom du paquet",
"version": "Version"
- }
+ },
+ "provider_many": "Providers",
+ "provider_one": "Provider",
+ "provider_other": "Providers"
},
"variables": {
"add": "Ajouter une variable",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/assets.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/assets.json
index 8abf8a10b8a..f179c2cd6d8 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/assets.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/assets.json
@@ -1,5 +1,9 @@
{
"additional_data": "Données supplémentaires",
+ "alias_many": "Alias",
+ "alias_one": "Alias",
+ "alias_other": "Alias",
+ "aliases": "Alias",
"asset_many": "Assets",
"asset_one": "Asset",
"asset_other": "Assets",
@@ -14,6 +18,9 @@
"deleteWarning": "L'Asset perdra cette entrée de stockage d'état
persistée.",
"edit": "Modifier le stockage d'état d'Asset",
"emptyState": "Le stockage d'état d'Asset stocke des valeurs liées à
l'identité d'un Asset, partagées entre toutes les exécutions de Dag. Les
workers peuvent écrire dans le stockage d'état d'Asset via le Task SDK.",
+ "entry_many": "Entrées",
+ "entry_one": "Entrée",
+ "entry_other": "Entrées",
"lastUpdatedBy": "Dernière mise à jour par",
"lastUpdatedByApi": "API",
"lastUpdatedByWatcher": "Watcher",
@@ -45,6 +52,7 @@
"events": "Événements",
"filters": {
"groupPlaceholder": "Rechercher un groupe",
+ "hasEvents": "A des événements",
"lastEventDateRange": "Date du dernier événement"
},
"group": "Group",
@@ -54,5 +62,9 @@
"scheduledDags": "Dags planifiés",
"scheduling": "Planification",
"searchPlaceholder": "Rechercher des Assets",
- "taskDependencies": "Dépendances de tâches"
+ "taskDependencies": "Dépendances de tâches",
+ "watcher_many": "Observateurs",
+ "watcher_one": "Observateur",
+ "watcher_other": "Observateurs",
+ "watchers": "Observateurs"
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/browse.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/browse.json
index 9b8e4e9ca4d..efba93920bb 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/browse.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/browse.json
@@ -10,6 +10,38 @@
"eventType": "Type d'événement"
}
},
+ "dagBundles": {
+ "active": "Actif",
+ "columns": {
+ "active": "Actif",
+ "importErrors": "Erreurs d'import",
+ "lastRefreshed": "Dernier rafraîchissement",
+ "name": "Nom",
+ "version": "Version"
+ },
+ "detail": {
+ "status": "Statut"
+ },
+ "files": {
+ "columns": {
+ "file": "Fichier",
+ "lastParsed": "Dernière analyse",
+ "parseDuration": "Durée d'analyse"
+ },
+ "file_many": "Fichiers",
+ "file_one": "Fichier",
+ "file_other": "Fichiers",
+ "importErrorGone": "Cette erreur d'import n'est plus enregistrée. Elle a
probablement été corrigée par une nouvelle analyse.",
+ "neverParsed": "Jamais",
+ "showImportError_many": "Voir {{count}} erreurs",
+ "showImportError_one": "Voir {{count}} erreur",
+ "showImportError_other": "Voir {{count}} erreurs"
+ },
+ "inactive": "Inactif",
+ "neverRefreshed": "Jamais",
+ "notRefreshedYet": "Pas encore rafraîchi",
+ "notVersioned": "Non versionné"
+ },
"deadlines": {
"columns": {
"alertName": "Nom de l'alerte",
@@ -57,6 +89,9 @@
"successTitle": "XCom mis à jour",
"title": "Modifier le XCom"
},
+ "entry_many": "Entrées XCom",
+ "entry_one": "Entrée XCom",
+ "entry_other": "Entrées XCom",
"key": "Clé",
"title": "XCom",
"value": "Valeur"
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/common.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/common.json
index d7a2d3ad492..5b444ba361f 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/common.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/common.json
@@ -27,8 +27,10 @@
"backfill_many": "Rattrapages",
"backfill_one": "Rattrapage",
"backfill_other": "Rattrapages",
+ "breadcrumb": "Fil d'Ariane",
"browse": {
"auditLog": "Journal d'audit",
+ "dagBundles": "Dag Bundles",
"deadlines": "Échéances",
"jobs": "Travaux",
"requiredActions": "Actions requises",
@@ -43,6 +45,9 @@
"dag_many": "Dags",
"dag_one": "Dag",
"dag_other": "Dags",
+ "dagBundle_many": "Dag Bundles",
+ "dagBundle_one": "Dag Bundle",
+ "dagBundle_other": "Dag Bundles",
"dagDetails": {
"activeRuns": "Exécutions actives",
"catchup": "Rattrapage",
@@ -95,8 +100,6 @@
"dagRunId": "ID d'exécution du Dag",
"dagRunState": "État de l'exécution du Dag",
"dagWarnings": "Avertissements/erreurs du Dag",
- "defaultToGraphView": "Vue par défaut : graphe",
- "defaultToGridView": "Vue par défaut : grille",
"delete": "Supprimer",
"diff": "Différences",
"diffCompareWith": "Comparer avec",
@@ -130,6 +133,9 @@
"title": "Accès refusé"
}
},
+ "event_many": "Événements",
+ "event_one": "Événement",
+ "event_other": "Événements",
"expand": {
"collapse": "Réduire",
"expand": "Développer",
@@ -145,22 +151,36 @@
},
"filter": "Filtre",
"filters": {
+ "addFilter": "Ajouter un filtre",
+ "completedAt": "Terminé le",
+ "date": "Date",
"durationFrom": "Durée à partir de",
"durationTo": "Durée jusqu'à",
"endTime": "Heure de fin",
"logicalDateFrom": "Date logique de début",
"logicalDateTo": "Date logique de fin",
+ "maxActiveRunsFrom": "Runs actifs max. de",
+ "maxActiveRunsTo": "Runs actifs max. à",
+ "removeFilter": "Retirer le filtre",
"runAfterFrom": "Exécuté après - de",
"runAfterTo": "Exécuté après - à",
"searchAsset": "Rechercher un Asset",
"selectDateRange": "Sélectionner une plage de dates",
- "startTime": "Heure de début"
+ "selectDateTime": "Sélectionner la date et l'heure",
+ "startTime": "Heure de début",
+ "time": "Heure"
},
"fullscreen": {
"tooltip": "Appuyez sur {{hotkey}} pour le plein écran"
},
"generateToken": "Générer un jeton",
+ "includedIn": "Inclus dans",
"key": "Clé",
+ "logLevel": {
+ "hide": "Masquer les niveaux de journalisation",
+ "hotkey": "l",
+ "show": "Afficher les niveaux de journalisation"
+ },
"logicalDate": "Date logique",
"logout": "Déconnexion",
"logoutConfirmation": "Vous êtes sur le point de vous déconnecter de
l'application.",
@@ -180,12 +200,14 @@
"assets": "Assets",
"browse": "Parcourir",
"dags": "Dags",
+ "dashboard": "Tableau de bord",
"docs": "Docs",
"home": "Accueil",
"legacyFabViews": "Vues héritées",
"plugins": "Plugins",
"security": "Sécurité"
},
+ "no": "Non",
"noItemsFound": "Aucun {{modelName}} trouvé",
"note": {
"add": "Ajouter une note",
@@ -198,12 +220,16 @@
"write": "Écrire"
},
"overallStatus": "Statut global",
+ "partition_many": "Partitions",
+ "partition_one": "Partition",
+ "partition_other": "Partitions",
"partitionedDagRun_many": "Exécutions de Dag partitionnées",
"partitionedDagRun_one": "Exécution de Dag partitionnée",
"partitionedDagRun_other": "Exécutions de Dag partitionnées",
"partitionedDagRunDetail": {
"receivedAssetEvents": "Événements d'Asset reçus"
},
+ "pause": "Mettre en pause",
"pendingDagRun_many": "{{count}} exécutions de Dag en attente",
"pendingDagRun_one": "{{count}} exécution de Dag en attente",
"pendingDagRun_other": "{{count}} exécutions de Dag en attente",
@@ -255,6 +281,72 @@
},
"selectLanguage": "Choisir la langue",
"selected": "Sélectionné",
+ "settings": {
+ "clearing": {
+ "keepTaskState": {
+ "helper": "Conserver par défaut les entrées du magasin d'état des
tâches lors de l'effacement des instances de tâche, au lieu de les supprimer.",
+ "label": "Conserver l'état des tâches lors de l'effacement"
+ },
+ "preventRunningTask": {
+ "helper": "Ignorer les tâches en cours d'exécution lors de
l'effacement des instances de tâche.",
+ "label": "Empêcher l'effacement des tâches en cours"
+ },
+ "runSelection": {
+ "helper": "Options sélectionnées par défaut lors de l'effacement d'une
exécution de Dag.",
+ "label": "Sélection par défaut pour l'effacement d'exécution"
+ },
+ "taskSelection": {
+ "helper": "Options sélectionnées par défaut lors de l'effacement des
instances de tâche.",
+ "label": "Sélection par défaut pour l'effacement de tâche"
+ },
+ "title": "Effacement"
+ },
+ "description": "Ces préférences sont enregistrées uniquement dans ce
navigateur et s'appliquent à toute l'application.",
+ "general": {
+ "landingPage": {
+ "helper": "Page affichée à l'ouverture d'Airflow.",
+ "label": "Page d'accueil",
+ "options": {
+ "dags": "Dags",
+ "dashboard": "Tableau de bord"
+ }
+ },
+ "title": "Général"
+ },
+ "graph": {
+ "defaultDirection": {
+ "helper": "Direction de disposition pour les graphes de Dag et d'Asset
que vous n'avez pas définis individuellement.",
+ "label": "Direction du graphe par défaut"
+ },
+ "taskGroupsExpanded": {
+ "helper": "Développer les groupes de tâches dans les Dags où vous
n'avez pas enregistré de sélection de groupe. Les sélections existantes sont
conservées.",
+ "label": "Développer les groupes de tâches par défaut"
+ },
+ "title": "Graphe"
+ },
+ "marking": {
+ "taskSelection": {
+ "helper": "Options sélectionnées par défaut lors du marquage de l'état
d'une instance de tâche.",
+ "label": "Sélection par défaut pour le marquage"
+ },
+ "title": "Marquage"
+ },
+ "search": {
+ "matchAnywhere": {
+ "helper": "$t(search.advanced.description) Les choix par barre de
recherche et les liens partagés restent prioritaires.",
+ "label": "Rechercher partout par défaut"
+ },
+ "title": "Recherche"
+ },
+ "taskInstance": {
+ "defaultTab": {
+ "helper": "Onglet affiché en premier à l'ouverture d'une instance de
tâche. Les liens vers un onglet spécifique ouvrent toujours cet onglet.",
+ "label": "Onglet d'instance de tâche par défaut"
+ },
+ "title": "Instance de tâche"
+ },
+ "title": "Paramètres"
+ },
"shortcuts": {
"categories": {
"code": "Code",
@@ -288,6 +380,7 @@
"toggleExpand": "Développer ou réduire tous les groupes",
"toggleFullscreen": "Basculer le plein écran",
"toggleGraphGrid": "Basculer entre la vue graphe et grille",
+ "toggleLogLevel": "Afficher/masquer les niveaux de journalisation",
"toggleSource": "Basculer la source",
"toggleTaskGroup": "Développer ou réduire $t(taskGroup_one)",
"toggleTimestamp": "Basculer les horodatages",
@@ -331,6 +424,7 @@
"up_for_retry": "À réessayer",
"upstream_failed": "Échec en amont"
},
+ "switchDag": "Changer de $t(dag_one)",
"table": {
"completedAt": "Terminé à",
"createdAt": "Créé à",
@@ -341,8 +435,10 @@
"filterReset_other": "Réinitialiser les filtres",
"from": "De",
"maxActiveRuns": "Exécutions actives max.",
+ "noResultsFound": "Aucun résultat trouvé",
"noTagsFound": "Aucun tag trouvé",
"noTeamsFound": "Aucune équipe trouvée",
+ "ownerPlaceholder": "Filtrer par propriétaire",
"tagMode": {
"all": "Tous",
"any": "N'importe lequel"
@@ -386,6 +482,11 @@
"queuedWhen": "Mis en file à",
"renderedMapIndex": "Map Index rendu",
"scheduledWhen": "Planifié à",
+ "stateReason": "Raison de l'état",
+ "stateReasonSummary": {
+ "failed": "Arrêté à la tentative {{tryNumber}} sur {{totalTries}}",
+ "upForRetry": "Nouvelle tentative après la tentative {{tryNumber}} sur
{{totalTries}}"
+ },
"trigger": "Déclencheur",
"triggerer": {
"assigned": "Déclencheur assigné",
@@ -401,10 +502,22 @@
"taskInstance_many": "Instances de tâche",
"taskInstance_one": "Instance de tâche",
"taskInstance_other": "Instances de tâche",
+ "teams": {
+ "more_many": "et {{count}} de plus",
+ "more_one": "et {{count}} de plus",
+ "more_other": "et {{count}} de plus",
+ "none": "Aucune équipe",
+ "title": "Équipes"
+ },
"timeRange": {
+ "anyTime": "N'importe quand",
+ "in": "dans",
+ "last7Days": "7 derniers jours",
"last12Hours": "12 dernières heures",
"last24Hours": "24 dernières heures",
+ "last30Days": "30 derniers jours",
"lastHour": "Dernière heure",
+ "latestRun": "Dernier Run",
"pastWeek": "Dernière semaine"
},
"timestamp": {
@@ -485,6 +598,7 @@
"total": "Total {{state}}",
"triggered": "Déclenché",
"tryNumber": "Numéro de l'essai",
+ "unpause": "Reprendre",
"user": "Utilisateur",
"validation": {
"mustBeAtLeast": "Doit être au moins {{min}}.",
@@ -496,5 +610,6 @@
"tooltip": "Appuyez sur {{hotkey}} pour activer/désactiver le retour à la
ligne",
"unwrap": "Désactiver le retour à la ligne",
"wrap": "Activer le retour à la ligne"
- }
+ },
+ "yes": "Oui"
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/components.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/components.json
index f4a9f37a821..3f225bb4426 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/components.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/components.json
@@ -18,6 +18,11 @@
"missingRuns": "Exécutions manquantes",
"notCreatedReason": "Raison de non-création",
"overrideExistingParams": "Remplacer les paramètres sur les exécutions
existantes",
+ "partitionRange": "Plage de partitions",
+ "partitionsAffected_many": "{{count}} partitions seront rattrapées :",
+ "partitionsAffected_one": "{{count}} partition sera rattrapée :",
+ "partitionsAffected_other": "{{count}} partitions seront rattrapées :",
+ "partitionsNone": "Aucune partition ne correspond à la plage
sélectionnée.",
"permissionDenied": "Échec de l'exécution à blanc : l'utilisateur n'a pas
l'autorisation de créer des rattrapages.",
"reprocessBehavior": "Comportement de réexécution",
"run": "Lancer le rattrapage",
@@ -112,6 +117,11 @@
"taskGroup": "Groupe de tâches",
"zoomToTask": "Zoomer sur la tâche sélectionnée"
},
+ "jsonPreview": {
+ "items_many": "{{count}} éléments",
+ "items_one": "{{count}} élément",
+ "items_other": "{{count}} éléments"
+ },
"limitedList": "+{{count}} supplémentaires",
"limitedList.allItems": "Tous les {{count}} éléments :",
"limitedList.allTags_many": "Tous les éléments ({{count}}) :",
@@ -127,11 +137,28 @@
"file": "Fichier",
"location": "ligne {{line}} dans {{name}}"
},
+ "passwordToggle": {
+ "hide": "Masquer la valeur",
+ "show": "Afficher la valeur"
+ },
+ "pausedDag": {
+ "drain": "Drainer",
+ "drainDescription": "Les exécutions non terminées continuent, mais aucune
exécution planifiée n'est créée. Les Rattrapages en pause le restent. Le Dag se
remet en pause une fois que toutes les exécutions non terminées sont
terminées.",
+ "keepPaused": "Rester en pause",
+ "keepPausedDescription": "Les exécutions nouvelles et non terminées
attendent que le Dag soit réactivé.",
+ "title": "Le Dag est en pause",
+ "unfinishedRunsWillRun_many": "{{count}} exécutions de Dag non terminées
démarreront ou reprendront.",
+ "unfinishedRunsWillRun_one": "{{count}} exécution de Dag non terminée
démarrera ou reprendra.",
+ "unfinishedRunsWillRun_other": "{{count}} exécutions de Dag non terminées
démarreront ou reprendront.",
+ "unpause": "Reprendre",
+ "unpauseDescription": "Le Dag devient actif : les exécutions non terminées
continuent et la planification reprend. Les Rattrapages en pause le restent."
+ },
"reparseDag": "Analyser le Dag",
"slowestTaskInstances": {
"empty": "Aucune instance de tâche terminée dans cette période",
"title": "Instances de tâche les plus lentes"
},
+ "sortMultiColumnHint": "Maj+clic pour trier par plusieurs colonnes",
"sortedAscending": "tri croissant",
"sortedDescending": "tri décroissant",
"sortedUnsorted": "non trié",
@@ -151,6 +178,7 @@
"dataInterval": "Intervalle de données",
"dataIntervalAuto": "Déduit de la date logique et du calendrier",
"dataIntervalManual": "Spécifier manuellement",
+ "editConfigAndTrigger": "Modifier la configuration et déclencher",
"intervalEnd": "Fin",
"intervalStart": "Début",
"loading": "Chargement des informations du Dag...",
@@ -170,7 +198,8 @@
"title": "Dag déclenché"
}
},
- "triggerAgainWithConfig": "Déclencher à nouveau avec cette configuration"
+ "triggerAgainWithConfig": "Déclencher à nouveau avec cette configuration",
+ "triggerOptions": "Options de déclenchement"
},
"trimText": {
"details": "Détails",
@@ -187,6 +216,7 @@
"versionSelect": {
"allVersions": "Toutes les versions",
"dagVersion": "Version du Dag",
+ "placeholder": "Sélectionner une version",
"versionCode": "v{{versionCode}}"
}
}
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 536aaeb5726..b9d46ee18f3 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
@@ -6,6 +6,7 @@
"title": "Dépendances bloquant la planification de la tâche"
},
"calendar": {
+ "backfill": "Rattrapage",
"daily": "Quotidien",
"hourly": "Toutes les heures",
"legend": {
@@ -103,7 +104,11 @@
"placeholder": "Rechercher dans les journaux..."
},
"settings": "Paramètres des journaux",
+ "tryNotStarted": "Cette tentative n'a pas encore commencé.",
+ "viewFailedTry": "Voir les journaux de la tentative échouée {{tryNumber}}",
"viewInExternal": "Voir les journaux dans {{name}} (tentative
{{attempt}})",
+ "viewPreviousTry": "Voir les journaux de la tentative précédente
{{tryNumber}}",
+ "waitingToRetry": "La tentative {{tryNumber}} attend une nouvelle
tentative.",
"warning": "AVERTISSEMENT"
},
"notFound": {
@@ -227,6 +232,7 @@
"taskInstances": "Task Instances",
"taskStateStore": "Stockage d'état de tâche",
"tasks": "Tâches",
+ "versions": "Versions",
"xcom": "XCom"
},
"taskGroups": {
@@ -244,6 +250,9 @@
"deleteWarning": "La tâche perdra cette mémoire persistée. Si la tâche
utilise cette clé pour suivre un travail externe (par exemple un ID de job
externe), elle ne pourra pas le reprendre.",
"edit": "Modifier le stockage d'état de tâche",
"emptyStore": "Le stockage d'état de tâche stocke des valeurs qui
persistent entre les tentatives. Les workers peuvent écrire dans le stockage
d'état de tâche via le Task SDK.",
+ "entry_many": "Entrées",
+ "entry_one": "Entrée",
+ "entry_other": "Entrées",
"expiresAt": {
"column": "Expire le",
"custom": "Personnalisé",
@@ -252,5 +261,69 @@
"never": "Jamais"
},
"title": "Stockage d'état de tâche"
+ },
+ "versions": {
+ "aboutThisComparison": "À propos de cette comparaison",
+ "base": "Comparer depuis",
+ "categories": {
+ "asset": "Asset",
+ "authorization": "Autorisation",
+ "callback": "Callback",
+ "deadline": "Échéance",
+ "dependency": "Dépendance",
+ "metadata": "Métadonnées",
+ "param": "Param",
+ "provenance": "Provenance",
+ "schedule": "Planification",
+ "task": "Tâche",
+ "unknown": "Inconnu"
+ },
+ "codeAccess": "Les valeurs nécessitent l'accès au code du Dag",
+ "columns": {
+ "after": "Après",
+ "before": "Avant",
+ "category": "Catégorie",
+ "impact": "Impact",
+ "occurrences": "Occurrences",
+ "operation": "Opération",
+ "path": "Chemin"
+ },
+ "heading": "Version {{base}} → Version {{target}}",
+ "impacts": {
+ "authorization": "Autorisation",
+ "execution": "Exécution",
+ "metadata": "Métadonnées",
+ "provenance": "Provenance",
+ "unknown": "Inconnu"
+ },
+ "maxChanges": "Changements max.",
+ "maxChangesDefault": "Par défaut",
+ "noChanges": "Ces versions ont le même état.",
+ "observedState": "État observé",
+ "observedStateBoundary": "Compare l'état actuellement stocké, et non les
preuves au moment de la création. La comparaison des sources n'est pas
disponible pour les versions historiques ; utilisez l'onglet Code pour comparer
les sources.",
+ "operations": {
+ "added": "Ajouté",
+ "changed": "Modifié",
+ "removed": "Supprimé"
+ },
+ "record_many": "Enregistrements",
+ "record_one": "Enregistrement",
+ "record_other": "Enregistrements",
+ "selectPrompt": "Sélectionnez deux versions pour voir ce qui a changé
entre elles.",
+ "summary_many": "{{count}} changements · schéma sérialisé {{baseSchema}} →
{{targetSchema}}",
+ "summary_one": "{{count}} changement · schéma sérialisé {{baseSchema}} →
{{targetSchema}}",
+ "summary_other": "{{count}} changements · schéma sérialisé {{baseSchema}}
→ {{targetSchema}}",
+ "target": "Comparer avec",
+ "truncated": {
+ "description": "Les changements aux chemins non affichés ont été
supprimés pour rester dans la limite, donc le nombre est une borne inférieure.",
+ "title": "Certains changements n'ont pas été renvoyés"
+ },
+ "unavailable": {
+ "description": "Ces versions n'ont pas pu être comparées. Raison :",
+ "title": "Comparaison indisponible",
+ "withoutReason": "Ces versions n'ont pas pu être comparées."
+ },
+ "valuesHidden": "Valeurs masquées",
+ "valuesShown": "Valeurs affichées"
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dags.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dags.json
index 258bc2fa336..adcb4bf2126 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dags.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dags.json
@@ -15,15 +15,29 @@
"favorite": "Favoris",
"unfavorite": "Non favoris"
},
+ "favoriteState": "État favori",
+ "favoriteStatePlaceholder": "Sélectionner l'état favori…",
"noTimetableTypesFound": "Aucun type de calendrier trouvé",
"paused": {
"active": "Actif",
"all": "Tous",
"paused": "En pause"
},
+ "pausedPlaceholder": "Sélectionner l'état de pause…",
+ "pausedState": "État de pause",
+ "requiresHitlAction": "Nécessite une action HITL",
"runIdPatternFilter": "Rechercher des exécutions de Dag",
+ "runState": "État d'exécution",
+ "runStatePlaceholder": "Sélectionner l'état d'exécution…",
"timetableType": "Type de calendrier"
},
+ "folders": {
+ "all": "Tous les Dags",
+ "empty": "Aucun dossier",
+ "hide": "Masquer les dossiers",
+ "show": "Afficher les dossiers",
+ "title": "Dossiers"
+ },
"ownerLink": "Lien du propriétaire pour {{owner}}",
"runAndTaskActions": {
"affectedTasks": {
@@ -70,11 +84,13 @@
"downstream": "En aval",
"existingTasks": "Réinitialiser les tâches existantes",
"future": "Futur",
+ "keepTaskState": "Conserver l'état des tâches et reprendre",
"onlyFailed": "Réinitialiser uniquement les tâches échouées",
"past": "Passé",
"preventRunningTasks": "Empêcher la réexécution si la tâche est en
cours",
"queueNew": "Ajouter de nouvelles tâches en file d'attente",
"runOnLatestVersion": "Exécuter avec la dernière version du bundle",
+ "runOnLatestVersionForced": "Utilise toujours la plus récente — il n'y a
pas de version antérieure vers laquelle revenir",
"upstream": "En amont"
}
},
@@ -83,6 +99,25 @@
"loading": "Chargement du décompte des états des Runs",
"tooltip": "{{state}} : {{formattedCount}} — cliquez pour filtrer les Runs"
},
+ "schedulingActions": {
+ "cancelDrain": "Annuler le drainage",
+ "drain": "Drainer puis mettre en pause",
+ "drainPrompt": "Ce Dag a des exécutions de Dag en cours. Le drainage les
laisse se terminer avant la mise en pause du Dag ; la mise en pause immédiate
arrête la planification tout de suite sans les attendre.",
+ "pauseNow": "Mettre en pause maintenant",
+ "pauseSelected": "Mettre en pause / Drainer"
+ },
+ "schedulingBanner": {
+ "message": "Ce Dag est en cours de drainage. Il se mettra en pause une
fois ses exécutions de Dag en cours terminées."
+ },
+ "schedulingState": {
+ "active": "Actif",
+ "draining": "Drainage en cours",
+ "drainingBadgeTooltip": "Ce Dag se met en pause une fois ses exécutions de
Dag en cours terminées.",
+ "drainingTooltip": "Drainage de {{dagDisplayName}} — se met en pause une
fois les exécutions de Dag en cours terminées. Cliquez pour reprendre.",
+ "label": "État de planification",
+ "paused": "En pause",
+ "placeholder": "Sélectionner l'état de planification…"
+ },
"search": {
"advanced": "Recherche avancée",
"clear": "Effacer la recherche",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dashboard.json
b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dashboard.json
index ce3235a418d..a88fd0fd112 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/fr/dashboard.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/fr/dashboard.json
@@ -30,14 +30,30 @@
"group": "Groupe",
"health": {
"dagProcessor": "Dag Processeur",
+ "degraded": "Dégradé",
+ "degradedHint": {
+ "dagProcessor": "Certains Dag Bundles configurés n'ont pas d'Analyseur
de Dag qui les analyse.",
+ "triggerer": "Certaines équipes n'ont pas de Déclencheur exécutant des
tâches différées pour elles."
+ },
+ "down": "Hors service",
"health": "État de santé",
"healthy": "Sain",
+ "instances": {
+ "bundles": "Bundles",
+ "hostname": "Hôte",
+ "team": "Équipe",
+ "title_many": "{{title}} — {{status}} ({{count}} instances)",
+ "title_one": "{{title}} — {{status}} ({{count}} instance)",
+ "title_other": "{{title}} — {{status}} ({{count}} instances)",
+ "unknownHostname": "Hôte inconnu"
+ },
"lastHeartbeat": "Dernier Heartbeat",
"metaDatabase": "Metadata Database",
"scheduler": "Scheduler",
"status": "Statut",
"triggerer": "Triggerer",
- "unhealthy": "Non sain"
+ "unhealthy": "Non sain",
+ "unknownStatus": "Inconnu"
},
"history": "Historique",
"importErrors": {