This is an automated email from the ASF dual-hosted git repository.

vatsrahul1001 pushed a commit to branch changes-3.4.0rc3
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 94af23bdfd90e6ba46ddb56e07a8ce348a1cb573
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Wed Nov 4 17:48:01 2026 +0100

    Update French (fr) UI translations to 100% coverage (#76461)
---
 .../airflow/ui/public/i18n/locales/fr/admin.json   |  3 +
 .../airflow/ui/public/i18n/locales/fr/browse.json  |  1 +
 .../airflow/ui/public/i18n/locales/fr/common.json  | 24 ++++++++
 .../ui/public/i18n/locales/fr/components.json      |  9 +++
 .../src/airflow/ui/public/i18n/locales/fr/dag.json | 64 ++++++++++++++++++++++
 .../airflow/ui/public/i18n/locales/fr/dags.json    | 13 ++++-
 .../ui/public/i18n/locales/fr/dashboard.json       |  1 +
 7 files changed, 114 insertions(+), 1 deletion(-)

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 427478ad0ad..24f77997bda 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
@@ -34,13 +34,16 @@
       "firstConfirmMessage_other": "Vous êtes sur le point de supprimer les 
connexions suivantes :",
       "title": "Supprimer la Connexion"
     },
+    "duplicate": "Dupliquer la $t(connections.connection_one)",
     "edit": "Modifier la connexion",
     "form": {
       "connectionIdRequired": "L'ID de la connexion est requis",
       "connectionIdRequirement": "L'ID de la connexion ne peut pas contenir 
uniquement des espaces",
+      "connectionTypeFields": "Champs {{connectionType}}",
       "connectionTypeRequired": "Le type de la connexion est requis",
       "extraFieldsJson": "Champs Supplémentaires JSON",
       "helperText": "Le type de la connexion est manquant ? Assurez-vous 
d'avoir installé le package Airflow Providers correspondant.",
+      "helperTextForDuplicatedRedactedFields": "Les champs masqués ('***') ne 
sont pas copiés. Renseignez-les pour la nouvelle connexion.",
       "helperTextForRedactedFields": "Les champs masqués ('***') resteront 
inchangés s'ils ne sont pas modifiés.",
       "selectConnectionType": "Sélectionner le type de connexion",
       "standardFields": "Champs standards"
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 fdca069b6aa..bc74110cfa0 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
@@ -72,6 +72,7 @@
     "columns": {
       "dag": "Dag",
       "key": "Clé",
+      "timestamp": "Horodatage",
       "value": "Valeur"
     },
     "delete": {
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 1c92b447dea..8b2da47df14 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
@@ -50,6 +50,7 @@
   "dagBundle_other": "Dag Bundles",
   "dagDetails": {
     "activeRuns": "Exécutions actives",
+    "bundleVersion": "Version du bundle",
     "catchup": "Rattrapage",
     "dagRunTimeout": "Délai d'exécution du Dag",
     "defaultArgs": "Arguments par défaut",
@@ -146,18 +147,25 @@
     "all": "Tous",
     "and": "Et",
     "any": "N'importe lequel",
+    "hiddenAsset": "Asset masqué",
     "or": "Ou"
   },
   "filter": "Filtre",
   "filters": {
     "addFilter": "Ajouter un filtre",
+    "allIterations": "Toutes",
     "completedAt": "Terminé le",
     "date": "Date",
     "durationFrom": "Durée à partir de",
     "durationTo": "Durée jusqu'à",
     "endTime": "Heure de fin",
+    "iteration": "Itération",
     "logicalDateFrom": "Date logique de début",
     "logicalDateTo": "Date logique de fin",
+    "loop": "Boucle",
+    "loopAllIterations": "{{loop}} toutes",
+    "loopIteration": "{{loop}} {{index}}",
+    "loopPlaceholder": "Sélectionner une boucle",
     "maxActiveRunsFrom": "Runs actifs max. de",
     "maxActiveRunsTo": "Runs actifs max. à",
     "removeFilter": "Retirer le filtre",
@@ -167,6 +175,7 @@
     "selectDateRange": "Sélectionner une plage de dates",
     "selectDateTime": "Sélectionner la date et l'heure",
     "startTime": "Heure de début",
+    "switchIteration": "Changer d'itération",
     "time": "Heure"
   },
   "fullscreen": {
@@ -175,6 +184,7 @@
   "generateToken": "Générer un jeton",
   "includedIn": "Inclus dans",
   "key": "Clé",
+  "loading": "Chargement…",
   "logLevel": {
     "hide": "Masquer les niveaux de journalisation",
     "hotkey": "l",
@@ -300,6 +310,13 @@
       },
       "title": "Effacement"
     },
+    "dagsList": {
+      "recentTasks": {
+        "helper": "Afficher les états récents des tâches de chaque Dag dans la 
liste des Dags. Désactivez cette option pour ne pas les charger, ce qui peut 
aider sur les déploiements comportant de nombreux Dags.",
+        "label": "Afficher les tâches récentes"
+      },
+      "title": "Liste des Dags"
+    },
     "description": "Ces préférences sont enregistrées uniquement dans ce 
navigateur et s'appliquent à toute l'application.",
     "general": {
       "landingPage": {
@@ -411,6 +428,7 @@
     "no_status": "Aucun statut",
     "none": "Aucun statut",
     "open": "Ouvert",
+    "pending": "En attente",
     "planned": "Planifié",
     "queued": "En file",
     "removed": "Supprimé",
@@ -424,6 +442,8 @@
     "upstream_failed": "Échec en amont"
   },
   "switchDag": "Changer de $t(dag_one)",
+  "switchDagRun": "Changer d'$t(dagRun_one)",
+  "switchMapIndex": "Changer de $t(mapIndex)",
   "table": {
     "completedAt": "Terminé à",
     "createdAt": "Créé à",
@@ -472,6 +492,9 @@
     "executorConfig": "Configuration de l'exécuteur",
     "hostname": "Nom d'hôte",
     "id": "ID",
+    "iteration": "Itération",
+    "loopDecision": "Décision",
+    "loopIterations": "Itérations exécutées",
     "maxTries": "Essais max.",
     "pid": "PID",
     "pool": "Pool",
@@ -480,6 +503,7 @@
     "queue": "File",
     "queuedWhen": "Mis en file à",
     "renderedMapIndex": "Map Index rendu",
+    "retryAt": "Nouvelle tentative à",
     "scheduledWhen": "Planifié à",
     "stateReason": "Raison de l'état",
     "stateReasonSummary": {
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 5e43938f5f8..0b609d85863 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
@@ -164,6 +164,7 @@
     "empty": "Aucune instance de tâche terminée dans cette période",
     "title": "Instances de tâche les plus lentes"
   },
+  "sort": "trier",
   "sortMultiColumnHint": "Maj+clic pour trier par plusieurs colonnes",
   "sortedAscending": "tri croissant",
   "sortedDescending": "tri décroissant",
@@ -181,6 +182,12 @@
   "toggleTableView": "Afficher en mode tableau",
   "triggerDag": {
     "button": "Déclencher",
+    "dagStartEndDate": {
+      "both": "Date de début du Dag : {{startDate}}, date de fin : 
{{endDate}}",
+      "end": "Date de fin du Dag : {{endDate}}",
+      "noTaskWillRun": "Aucune tâche ne sera exécutée.",
+      "start": "Date de début du Dag : {{startDate}}"
+    },
     "dataInterval": "Intervalle de données",
     "dataIntervalAuto": "Déduit de la date logique et du calendrier",
     "dataIntervalManual": "Spécifier manuellement",
@@ -191,6 +198,8 @@
     "loadingFailed": "Échec du chargement des informations du Dag. Veuillez 
réessayer.",
     "manualRunDenied": "Les exécutions manuelles ne sont pas autorisées pour 
ce Dag",
     "partitionKeyHelp": "Optionnel - s'applique uniquement aux Dags 
partitionnés",
+    "recentConfig": "Configurations récentes",
+    "recentConfigPlaceholder": "Sélectionner une configuration récente",
     "runIdHelp": "Optionnel – sera généré s'il n'est pas fourni",
     "selectDescription": "Déclencher une exécution unique de ce Dag",
     "selectLabel": "Exécution unique",
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 c3a2b173711..d70da00c585 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
@@ -1,4 +1,5 @@
 {
+  "allMapIndexes": "Tous les Map Index",
   "allRuns": "Tous les Runs",
   "blockingDeps": {
     "dependency": "Dépendance",
@@ -35,6 +36,22 @@
       "wednesday": "Mer"
     }
   },
+  "callbacks": {
+    "callback_many": "Callbacks",
+    "callback_one": "Callback",
+    "callback_other": "Callbacks",
+    "columns": {
+      "alertName": "Alerte d'échéance",
+      "callback": "Callback",
+      "deadlineTime": "Heure de l'échéance",
+      "missedBy": "Dépassée de",
+      "type": "Type"
+    },
+    "types": {
+      "executor": "Synchrone",
+      "triggerer": "Asynchrone"
+    }
+  },
   "code": {
     "bundleUrl": "URL du bundle",
     "noCode": "Aucun code trouvé",
@@ -111,6 +128,37 @@
     "waitingToRetry": "La tentative {{tryNumber}} attend une nouvelle 
tentative.",
     "warning": "AVERTISSEMENT"
   },
+  "loop": {
+    "history": {
+      "capLabel": "Limite : {{max}}",
+      "iterationsAxis": "Itérations",
+      "stats": {
+        "capHits": "Limite atteinte",
+        "medianIterations": "Itérations médianes"
+      },
+      "title": "Itérations par exécution"
+    },
+    "iterationLabel": "Itération {{index}}",
+    "iterations": "Itérations",
+    "outcome": "Résultat",
+    "reason": {
+      "cap_reached": "Limite d'itérations atteinte ({{max}})",
+      "failed": "Échec à l'itération {{index}}",
+      "iteration_failed": "L'itération {{index}} a échoué dans {{taskId}}",
+      "ran_to_cap": "Les {{max}} itérations autorisées ont toutes été 
exécutées",
+      "removed": "Supprimé",
+      "running": "En cours",
+      "skipped": "Ignoré",
+      "stopped_early": "Arrêtée prématurément à l'itération {{index}}"
+    },
+    "rules": {
+      "behaviour": "Comportement",
+      "boundedFor": "Exécute un nombre fixe d'itérations",
+      "exitCriteria": "Critère de sortie",
+      "maxIterations": "Itérations max.",
+      "whileUntil": "Se répète jusqu'à {{criteria}}"
+    }
+  },
   "notFound": {
     "back": "Retour",
     "backToDags": "Retour aux Dags",
@@ -219,6 +267,7 @@
     "auditLog": "Journal d'audit",
     "backfills": "Rattrappages",
     "calendar": "Calendrier",
+    "callbacks": "Callbacks",
     "code": "Code",
     "details": "Détails",
     "logs": "Journaux",
@@ -294,6 +343,11 @@
       "provenance": "Provenance",
       "unknown": "Inconnu"
     },
+    "limitReached": {
+      "description": "Il y a plus de changements que la limite Changements 
max. ne le permet. Augmentez la limite pour voir le reste.",
+      "descriptionDefault": "Il y a plus de changements que la limite par 
défaut ne le permet. Augmentez Changements max. pour voir le reste.",
+      "title": "Affichage des {{limit, number}} premiers changements 
uniquement"
+    },
     "maxChanges": "Changements max.",
     "maxChangesDefault": "Par défaut",
     "noChanges": "Ces versions ont le même état.",
@@ -302,13 +356,23 @@
       "changed": "Modifié",
       "removed": "Supprimé"
     },
+    "pathOccurrences_many": "{{count, number}} changements partagent ce 
chemin",
+    "pathOccurrences_one": "{{count, number}} changement partage ce chemin",
+    "pathOccurrences_other": "{{count, number}} changements partagent ce 
chemin",
+    "pathOccurrencesAtLeast_many": "Au moins {{count, number}} changements 
partagent ce chemin",
+    "pathOccurrencesAtLeast_one": "Au moins {{count, number}} changement 
partage ce chemin",
+    "pathOccurrencesAtLeast_other": "Au moins {{count, number}} changements 
partagent ce chemin",
     "record_many": "Enregistrements",
     "record_one": "Enregistrement",
     "record_other": "Enregistrements",
+    "schemaChange": "Schéma sérialisé {{baseSchema}} → {{targetSchema}}",
     "selectPrompt": "Sélectionnez deux versions pour voir ce qui a changé 
entre elles.",
     "summary_many": "{{count, number}} changements",
     "summary_one": "{{count, number}} changement",
     "summary_other": "{{count, number}} changements",
+    "summaryAtLeast_many": "Au moins {{count, number}} changements",
+    "summaryAtLeast_one": "Au moins {{count, number}} changement",
+    "summaryAtLeast_other": "Au moins {{count, number}} changements",
     "target": "Comparer avec",
     "unavailable": {
       "description": "Ces versions n'ont pas pu être comparées. Raison :",
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 ce13f5e77e1..81b7ee10c86 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
@@ -44,6 +44,12 @@
     "title": "Dossiers"
   },
   "ownerLink": "Lien du propriétaire pour {{owner}}",
+  "recentTaskStateCounts": {
+    "description": "État des tâches de toutes les exécutions de Dag en cours 
ou, si aucune n'est en cours, de l'exécution la plus récente. Vous pouvez 
désactiver cet affichage dans vos paramètres utilisateur.",
+    "label": "Tâches récentes",
+    "loading": "Chargement du décompte des états des tâches récentes",
+    "tooltip": "{{state}} : {{formattedCount}} — cliquez pour filtrer les 
tâches"
+  },
   "runAndTaskActions": {
     "affectedTasks": {
       "noItemsFound": "Aucune tâche trouvée.",
@@ -83,6 +89,7 @@
         "failed": "Appuyez sur Maj+f pour marquer comme échoué",
         "success": "Appuyez sur Maj+s pour marquer comme réussi"
       },
+      "skippedInfo": "Marquer une instance de tâche comme ignorée enregistre 
qu'elle n'a volontairement pas été exécutée. Les tâches en aval restent 
évaluées selon leurs règles de déclenchement : avec la règle par défaut 
\"all_success\", elles seront également ignorées. Seules les instances de tâche 
qui n'ont pas commencé à s'exécuter peuvent être ignorées, et seule cette 
instance de tâche est concernée.",
       "title": "Marquer {{type}} comme {{state}}"
     },
     "options": {
@@ -90,13 +97,15 @@
       "existingTasks": "Réinitialiser les tâches existantes",
       "future": "Futur",
       "keepTaskState": "Conserver l'état des tâches et reprendre",
+      "laterIterations": "Itérations suivantes",
       "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"
+      "upstream": "En amont",
+      "wholeExpansion": "Expansion complète"
     }
   },
   "runStateCounts": {
@@ -117,8 +126,10 @@
   "search": {
     "advanced": "Recherche avancée",
     "clear": "Effacer la recherche",
+    "dagRuns": "Rechercher des $t(common:dagRun_other)",
     "dags": "Rechercher des Dags",
     "hotkey": "+K",
+    "mapIndexes": "Rechercher un $t(common:mapIndex)",
     "tasks": "Rechercher des tâches"
   },
   "sort": {
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 b18e227e29a..35909873b75 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
@@ -57,6 +57,7 @@
   },
   "history": "Historique",
   "importErrors": {
+    "bundle": "Bundle",
     "dagImportError_many": "Erreurs d'importation de Dag",
     "dagImportError_one": "Erreur d'importation de Dag",
     "dagImportError_other": "Erreurs d'importation de Dag",

Reply via email to