diff --git a/lang/territoires_data.xml b/lang/territoires_data.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3fe47dc37dea02a872a5c7ada75d13939f1de77c
--- /dev/null
+++ b/lang/territoires_data.xml
@@ -0,0 +1,9 @@
+<traduction
+	module="territoires_data"
+	id="territoires_data--territoires_data-f86fa"
+	gestionnaire="salvatore"
+	url="https://trad.spip.net"
+	source="https://git.spip.net/spip-contrib-extensions/territoires_data.git"
+	reference="fr">
+	<langue code="fr" url="https://trad.spip.net/tradlang_module/territoires_data-territoires_data?lang_cible=fr" total="92" traduits="92" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
+</traduction>
diff --git a/lang/territoires_data_fr.php b/lang/territoires_data_fr.php
index 21efe1ef2029ea73a1e46b3d24e52704b4b5fef5..20f7f9911511e70d0ba6dbef0e36cd274ec70e9f 100644
--- a/lang/territoires_data_fr.php
+++ b/lang/territoires_data_fr.php
@@ -1,4 +1,6 @@
 <?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// Fichier source, a modifier dans https://git.spip.net/spip-contrib-extensions/territoires_data.git
 if (!defined('_ECRIRE_INC_VERSION')) {
 	return;
 }
@@ -9,37 +11,37 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'bouton_recharger' => 'Recharger la configuration des jeux de données',
 
 	// E
-	'erreur_feed_mapping_code' => 'Saisie invalide : vérifier le format autorisé',
-	'erreur_feed_mapping_valeur' => 'Saisie invalide : vérifier le format autorisé',
-	'erreur_feed_decodage' => 'Saisie invalide : vérifier le format autorisé',
-	'erreur_feed_url_provider' => 'L\'URL saisie est invalide',
-	'erreur_feed_url_build' => 'L\'URL saisie est invalide',
-	'erreur_ecriture_config' => 'Erreur d\'écriture du fichier de configuration du feed',
-	'erreur_lecture_config' => 'Erreur de lecture du fichier de configuration du feed',
-	'erreur_feed_url_source' => 'L\'URL saisie est invalide',
+	'erreur_ecriture_config' => 'Erreur d’écriture du fichier de configuration du feed',
+	'erreur_extra_decimale' => 'Le nombre de décimales saisi n’est pas autorisé',
+	'erreur_feed_decodage' => 'Saisie invalide : vérifier le format autorisé',
 	'erreur_feed_format_fichier' => 'Le format du fichier source est invalide',
-	'erreur_extra_decimale' => 'Le nombre de décimales saisi n\'est pas autorisé',
-	'erreur_id_existe' => 'L\'identifiant saisi existe déjà : veuillez en choisir un autre',
-	'erreur_id_new' => 'L\'identifiant `new` n\'est pas autorisé : veuillez le modifier',
-	'erreur_id_invalide' => 'L\'identifiant saisi n\'est pas valide : veuillez n\'utiliser que des caractères autorisés',
-	'erreur_recuperation_source' => 'Le fichier source n\'a pas pu être stocké dans le feed',
-	'explication_feed_description' => 'Le titre peut-être écrit en utilisant la balise multilangues et tous les raccourcis SPIP',
-	'explication_feed_fichier' => 'Le fichier source doit être disponible au format JSON, CSV ou XML',
-	'explication_feed_url' => 'L\'URL de la requête doit permettre de récupérer en une fois l\'ensemble des données au format JSON',
+	'erreur_feed_mapping_code' => 'Saisie invalide : vérifier le format autorisé',
+	'erreur_feed_mapping_valeur' => 'Saisie invalide : vérifier le format autorisé',
+	'erreur_feed_url_build' => 'L’URL saisie est invalide',
+	'erreur_feed_url_provider' => 'L’URL saisie est invalide',
+	'erreur_feed_url_source' => 'L’URL saisie est invalide',
+	'erreur_id_existe' => 'L’identifiant saisi existe déjà : veuillez en choisir un autre',
+	'erreur_id_invalide' => 'L’identifiant saisi n’est pas valide : veuillez n’utiliser que des caractères autorisés',
+	'erreur_id_new' => 'L’identifiant `new` n’est pas autorisé : veuillez le modifier',
+	'erreur_lecture_config' => 'Erreur de lecture du fichier de configuration du feed',
+	'erreur_recuperation_source' => 'Le fichier source n’a pas pu être stocké dans le feed',
+	'explication_extra_decimale' => 'Choisissez une valeur supérieure à 1 et inférieure à 9.',
+	'explication_feed_credit' => 'Vous pouvez attribuer les crédits provenant de la source de données à votre jeu de données. Même si cela est recommandé, tous les champs proposés restent facultatifs.',
 	'explication_feed_decodage_delimiteur' => 'Caractère utilisé comme séparateur des données dans le fichier CSV. Si vide, le délimiteur "," (virgule) sera utilisé par défaut',
 	'explication_feed_decodage_racine' => 'Cet index racine représente la partie commune qui est appliquée au mapping du code et de la valeur statistique dans le tableau des données source. Il est exprimé sous la forme index1/index2/index3',
-	'explication_feed_mapping_code' => 'Cet index racine représente la partie spécifique permettant d\'accéder au code de territoire dans le tableau des données source. Il est exprimé sous la forme index1/index2/index3',
-	'explication_feed_mapping_valeur' => 'Cet index racine représente la partie spécifique permettant d\'accéder à la valeur statistique dans le tableau des données source. Il est exprimé sous la forme index1/index2/index3',
+	'explication_feed_description' => 'Le titre peut-être écrit en utilisant la balise multilangues et tous les raccourcis SPIP',
+	'explication_feed_fichier' => 'Le fichier source doit être disponible au format JSON, CSV ou XML',
+	'explication_feed_mapping_code' => 'Cet index racine représente la partie spécifique permettant d’accéder au code de territoire dans le tableau des données source. Il est exprimé sous la forme index1/index2/index3',
 	'explication_feed_mapping_code_csv' => 'Cet index racine représente le nom de la colonne correspondant au code de territoire dans le le fichier CSV. Les lettres avec accents seront remplacées par leur équivalent sans accent.',
+	'explication_feed_mapping_valeur' => 'Cet index racine représente la partie spécifique permettant d’accéder à la valeur statistique dans le tableau des données source. Il est exprimé sous la forme index1/index2/index3',
 	'explication_feed_mapping_valeur_csv' => 'Cet index racine représente le nom de la colonne correspondant à la valeur statistique dans le fichier CSV. Les lettres avec accents seront remplacées par leur équivalent sans accent.',
-	'explication_feed_credit' => 'Vous pouvez attribuer les crédits provenant de la source de données à votre jeu de données. Même si cela est recommandé, tous les champs proposés restent facultatifs.',
-	'explication_extra_decimale' => 'Choisissez une valeur supérieure à 1 et inférieure à 9.',
-	'explication_id' => 'L\'identifiant est un mot sans espace composé uniquement de lettres, chiffres et du caractère "_" (tiret bas). Il est initialisé avec une valeur qu\'il convient de modifier.',
+	'explication_feed_url' => 'L’URL de la requête doit permettre de récupérer en une fois l’ensemble des données au format JSON',
+	'explication_id' => 'L’identifiant est un mot sans espace composé uniquement de lettres, chiffres et du caractère "_" (tiret bas). Il est initialisé avec une valeur qu’il convient de modifier.',
 	'explication_titre' => 'Le libellé peut-être écrit en utilisant la balise multilangues ou un item de langue',
 
 	// I
-	'icone_creer_feed' => 'Créer un jeu de données',
 	'icone_creer_extra' => 'Créer une nature de données',
+	'icone_creer_feed' => 'Créer un jeu de données',
 	'icone_creer_unite' => 'Créer une unité',
 	'icone_modifier_feed' => 'Modifier le jeu de données',
 	'info_0_feed' => 'Aucun jeu de données',
@@ -48,46 +50,46 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'info_nb_feed' => '@nb@ jeux de données',
 
 	// L
+	'label_composant_extra' => 'Natures de données',
 	'label_composant_jeu_territory_info' => 'Jeux de caractéristiques',
 	'label_composant_jeu_territory_stat' => 'Jeux de statistiques',
-	'label_composant_extra' => 'Natures de données',
 	'label_composant_unite' => 'Unités',
-	'label_feed_decodage_delimiteur' => 'Délimiteur',
-	'label_feed_decodage_racine' => 'Index racine du mapping',
+	'label_extra_decimale' => 'Nombre de décimales affichées',
+	'label_extra_format' => 'Format des valeurs',
+	'label_extra_type' => 'Type de données',
+	'label_extra_unite' => 'Unité de la valeur',
 	'label_feed_category_territory_info' => 'Caractéristiques des territoires',
 	'label_feed_category_territory_stat' => 'Statistiques sur les territoires',
-	'label_feed_fichier' => 'Fichier source',
-	'label_feed_url' => 'URL de la requête',
+	'label_feed_decodage_delimiteur' => 'Délimiteur',
+	'label_feed_decodage_racine' => 'Index racine du mapping',
 	'label_feed_description' => 'Descriptif',
-	'label_feed_type_territoire' => 'Type de territoire',
-	'label_feed_type_source' => 'Source de données',
-	'label_feed_type_code' => 'Type d\'identifiant des territoires de la source',
 	'label_feed_extra' => 'Nature des données',
+	'label_feed_fichier' => 'Fichier source',
+	'label_feed_fournisseur_nom' => 'Identité du fournisseur',
+	'label_feed_fournisseur_url' => 'URL du fournisseur',
+	'label_feed_licence' => 'Licence',
 	'label_feed_mapping_code' => 'Index du code du territoire',
 	'label_feed_mapping_valeur' => 'Index de la valeur',
-	'label_feed_source_version' => 'Version du jeu de données',
+	'label_feed_source_date' => 'Date de la dernière mise à jour',
 	'label_feed_source_licence' => 'Licence',
 	'label_feed_source_provider_name' => 'Fournisseur',
 	'label_feed_source_provider_url' => 'URL du fournisseur',
-	'label_feed_source_date' => 'Date de la dernière mise à jour',
+	'label_feed_source_version' => 'Version du jeu de données',
+	'label_feed_type_code' => 'Type d’identifiant des territoires de la source',
+	'label_feed_type_source' => 'Source de données',
+	'label_feed_type_territoire' => 'Type de territoire',
 	'label_feed_update' => 'Date de publication',
-	'label_feed_licence' => 'Licence',
+	'label_feed_url' => 'URL de la requête',
 	'label_feed_version' => 'Version',
-	'label_feed_fournisseur_nom' => 'Identité du fournisseur',
-	'label_feed_fournisseur_url' => 'URL du fournisseur',
-	'label_extra_decimale' => 'Nombre de décimales affichées',
-	'label_extra_format' => 'Format des valeurs',
-	'label_extra_type' => 'Type de données',
-	'label_extra_unite' => 'Unité de la valeur',
 	'label_id' => 'Identifiant',
 	'label_titre' => 'Libellé',
+	'legende_extra_format' => 'Affichage des valeurs',
+	'legende_extra_identite' => 'Identification de la nature de données',
+	'legende_feed_credit' => 'Licence & Crédits',
 	'legende_feed_identite' => 'Identification du jeu de données',
-	'legende_feed_unite_peuplement' => 'Territoires concernés',
-	'legende_feed_source' => 'Origine & nature des données',
 	'legende_feed_mapping' => 'Interprétation des données',
-	'legende_feed_credit' => 'Licence & Crédits',
-	'legende_extra_identite' => 'Identification de la nature de données',
-	'legende_extra_format' => 'Affichage des valeurs',
+	'legende_feed_source' => 'Origine & nature des données',
+	'legende_feed_unite_peuplement' => 'Territoires concernés',
 
 	// M
 	'menu_peupler' => 'Ajouter des jeux de données',
@@ -96,18 +98,18 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'option_feed_type_code_iso_territoire' => 'Code primaire normalisé',
 	'option_feed_type_source_api' => 'Données accessibles via une API',
 	'option_feed_type_source_file' => 'Fichier à télécharger',
-	'option_unite_aucune' => '-- Aucune unité',
+	'option_unite_aucune' => '— Aucune unité',
 
 	// T
 	'titre_etape_creer' => 'Etape @etape@ / @etapes@',
+	'titre_liste_extras_info' => 'Caractéristiques',
+	'titre_liste_extras_stat' => 'Données statistiques',
+	'titre_page_creer_extra' => 'Créer une nature de données',
 	'titre_page_creer_feed' => 'Créer un jeu de données',
-	'titre_page_creer_feed_territory_stat' => 'Créer un jeu de données statistiques',
 	'titre_page_creer_feed_territory_info' => 'Créer un jeu de données de caractéristiques',
-	'titre_page_creer_extra' => 'Créer une nature de données',
-	'titre_page_editer_extra' => 'Editer une nature de données',
+	'titre_page_creer_feed_territory_stat' => 'Créer un jeu de données statistiques',
 	'titre_page_creer_unite' => 'Créer une unité de données',
+	'titre_page_editer_extra' => 'Editer une nature de données',
 	'titre_page_editer_unite' => 'Editer une unité de données',
-	'titre_page_peupler' => 'Gestion des jeux de données sur les territoires',
-	'titre_liste_extras_stat' => 'Données statistiques',
-	'titre_liste_extras_info' => 'Caractéristiques',
+	'titre_page_peupler' => 'Gestion des jeux de données sur les territoires'
 );