diff --git a/extensions/wikidata/module/langs/translation-fr.json b/extensions/wikidata/module/langs/translation-fr.json
new file mode 100644
index 000000000..450667be4
--- /dev/null
+++ b/extensions/wikidata/module/langs/translation-fr.json
@@ -0,0 +1,231 @@
+{
+ "wikidata-extension": {
+ "menu-label": "Wikidata",
+ "edit-wikidata-schema": "Modifier le schéma Wikidata",
+ "manage-wikidata-account": "Gérer le compte Wikidata",
+ "perform-edits-on-wikidata": "Publier les modifications sur Wikidata",
+ "export-to-qs": "Exporter en QuickStatements",
+ "quickstatements-export-name": "QuickStatements"
+ },
+ "wikidata-schema": {
+ "dialog-header": "Aligner à Wikidata",
+ "dialog-explanation": "Le schéma Wikidata ci-dessous spécifie comment vos données sont transformées en modifications sur Wikidata. Vous pouvez glisser-déposer les noms des colonnes ci-dessous dans la plupart des champs: pour chaque ligne, des modifications seront générées avec les valeurs dans ces colonnes.",
+ "preview-explanation": "Cet onglet affiche les premières modifications (sur {nb_edits} modifications au total) qui seront effectuées quand vous publierez les données sur Wikidata. Vous pouvez utiliser les facettes pour inspecter les changements sur des éléments particuliers.",
+ "schema-tab-header": "Schéma",
+ "warnings-tab-header": "Problèmes",
+ "edits-preview-tab-header": "Prévisualisation",
+ "statements-header": "Déclarations",
+ "terms-header": "Termes",
+ "empty-terms": "pas de libellés, descriptions ou alias ajoutés",
+ "add-item-button": "ajouter un élément",
+ "add-term": "ajouter un terme",
+ "remove": "supprimer",
+ "add-statement": "ajouter une déclaration",
+ "add-value": "ajouter une valeur",
+ "add-qualifier": "ajouter un qualificatif",
+ "add-reference": "ajouter une référence",
+ "add-reference-snak": "ajouter",
+ "property-placeholder": "propriété",
+ "nb-references": " références",
+ "remove-column": "supprimer la colonne",
+ "label": "Libellé",
+ "description": "Description",
+ "alias": "Alias",
+ "item-or-reconciled-column": "entrer un élément ou déposer une colonne réconciliée ici",
+ "amount": "quantité",
+ "unit": "unité",
+ "full-url": "URL complète avec protocole",
+ "tabular-data-with-prefix": "nom de fichier débutant par \"Data:\"",
+ "commons-media": "nom de fichier",
+ "math-expression": "expression mathématique",
+ "geoshape-with-prefix": "nom de fichier commençant par \"Data:\"",
+ "datatype-not-supported-yet": "Ce type de données n'est pas encore supporté, désolé.",
+ "invalid-schema-warning-issues": "Votre schéma est incomplet, complétez-le pour voir les problèmes.",
+ "invalid-schema-warning-preview": "Votre schéma est incomplet, complétez-le pour la prévisualisation.",
+ "discard-button": "Annuler les modifications",
+ "save-button": "Enregistrer le schéma",
+ "close-button": "Fermer",
+ "unsaved-changes-alt": "Des changements sur le schéma Wikidata n'ont pas été enregistrés.",
+ "save-schema-alt": "Sauvegarder le schéma dans OpenRefine. Cela n'enverra pas de données sur Wikidata.",
+ "discard-schema-changes-alt": "Abandonner les modifications sur le schéma.",
+ "incomplete-schema-could-not-be-saved": "Votre schéma est incomplet, il ne peut donc pas encore être enregistré.",
+ "unsaved-warning": "Les changements sur le schéma Wikidata n'ont pas été sauvegardés. Souhaitez-vous tout de même fermer ?"
+ },
+ "wikidata-preview": {
+ "new-id": "nouvel élément"
+ },
+ "wikidata-account": {
+ "dialog-header": "compte Wikidata",
+ "explain-log-in": "Se connecter à Wikidata vous permet de publier vos données sur Wikidata depuis OpenRefine.",
+ "username-label": "Nom d'utilisateur :",
+ "username-placeholder": "Entrez votre nom d'utilisateur",
+ "password-label": "Mot de passe :",
+ "password-placeholder": "Entrez votre mot de passe",
+ "remember-credentials-label": "Se souvenir des identifiants (enregistrés sans chiffrement dans les préférences)",
+ "close": "Fermer",
+ "log-in": "Se connecter",
+ "logged-in-as": "Vous êtes connecté·e en tant que :",
+ "log-out": "Se déconnecter",
+ "connecting-to-wikidata": "Connexion à Wikidata…"
+ },
+ "perform-wikidata-edits": {
+ "dialog-header": "Envoyer les modifications sur Wikidata",
+ "review-your-edits": "Vous êtes sur le point d'envoyer {nb_edits} modifications à Wikidata. Veuillez les vérifier avec soin. Les modifications à grande échelle devraient être approuvées par la communauté.",
+ "logged-in-as": "Vous êtes connecté·e en tant que",
+ "edit-summary-label": "Résumé de modification :",
+ "edit-summary-placeholder": "décrivez vos modifications en quelques mots",
+ "perform-edits": "Envoyer les modifications",
+ "cancel": "Annuler",
+ "analyzing-edits": "Analyse de vos modifications…"
+ },
+ "warnings-messages": {
+ "new-item-created": {
+ "title": "Ce groupe de modifications va créer de nouveaux éléments Wikidata.",
+ "body": "Assurez-vous que ces éléments n'existent pas déjà et qu'ils sont acceptables pour être inclus dans Wikidata."
+ },
+ "new-item-without-labels-or-aliases": {
+ "title": "Nouveaux éléments créés sans libellé ou alias.",
+ "body": "Vous devriez fournir au moins un libellé pour les nouveaux éléments tels que {example_entity}, pour définir le sujet de ces éléments."
+ },
+ "new-item-without-descriptions": {
+ "title": "Nouveaux éléments créés sans description.",
+ "body": "Ajouter des descriptinos sur les nouveaux éléments tels que {example_entity} aidera à les distinguer d'homonymes."
+ },
+ "new-item-with-deleted-statements": {
+ "title": "Suppression de déclarations sur des nouveaux éléments.",
+ "body": "Cela vient probablement d'une erreur dans votre schéma ou projet."
+ },
+ "new-item-without-P31-or-P279": {
+ "title": "Nouveaux éléments créés sans aucune classe.",
+ "body": "Il est préférable d'ajouter une déclaration \"nature de l'élément\" (P31) ou \"sous-classe de\" (P279) pour chaque nouvel élément que vous créez, comme {example_entity} par exemple."
+ },
+ "add-statements-with-invalid-format": {
+ "title": "Déclarations {property_entity} avec un format invalide.",
+ "body": "Les valeurs pour cette propriété devraient correspondre à l'expression régulière {regex}, ce qui n'est pas le cas de {example_value} ajouté sur {example_item_entity}."
+ },
+ "remove-statements-with-invalid-format": {
+ "title": "Déclarations avec un format invalide supprimées.",
+ "body": "Si ces déclarations existent sur Wikidata, cela résoudra des violations de contraintes."
+ },
+ "missing-inverse-statements": {
+ "title": "Déclarations inverses manquantes pour {added_property_entity}.",
+ "body": "Toute déclaration {added_property_entity} telle que celle de {source_entity} vers {target_entity} devrait aussi être ajoutée à l'envers avec {inverse_property_entity} : dans ce cas, {target_entity} {inverse_property_entity} {source_entity}."
+ },
+ "self-referential-statements": {
+ "title": "Déclarations auto-référentielles.",
+ "body": "Les déclarations qui font référence à l'élément sur lequel elles sont ajoutées sont généralement signe d'erreurs de réconciliation. Il y en a sur {example_entity}."
+ },
+ "unsourced-statements": {
+ "title": "Déclarations sans références.",
+ "body": "La plupart des déclarations devraient avoir des références. Vous pouvez les ajouter facilement dans le schéma."
+ },
+ "property-found-in-mainsnak": {
+ "title": "{property_entity} utilisée pour une déclaration.",
+ "body": "Vous utilisez {property_entity} comme déclaration principale mais cette propriété n'est pas conçue pour cela."
+ },
+ "property-found-in-qualifier": {
+ "title": "{property_entity} utilisée comme qualificatif.",
+ "body": "Vous utilisez {property_entity} comme un qualificatif mais elle n'est pas conçue pour cela."
+ },
+ "property-found-in-reference": {
+ "title": "{property_entity} utilisée dans une référence.",
+ "body": "Vous utilisez {property_entity} dans une référence mais cette propriété n'est pas conçue pour cela."
+ },
+ "missing-mandatory-qualifiers": {
+ "title": "{statement_property_entity} attend un qualificatif {missing_property_entity}.",
+ "body": "Les déclarations qui utilisent {statement_property_entity} tels que celle sur {example_item_entity} attendent un qualificatif obligatoire {missing_property_entity}."
+ },
+ "disallowed-qualifiers": {
+ "title": "Le qualificatif {disallowed_property_entity} est incompatible avec {statement_property_entity}.",
+ "body": "Les déclarations utilisant {statement_property_entity} tels que celle sur {example_item_entity} ne devraient pas avoir de qualificatif {disallowed_property_entity}."
+ },
+ "single-valued-property-added-more-than-once": {
+ "title": "{property_entity} ajoutée plusieurs fois sur le même élément.",
+ "body": "Cette propriété devrait n'être utilisée qu'une fois par élément mais ce n'est pas le cas pour {example_entity}."
+ },
+ "identical-values-for-distinct-valued-property": {
+ "title": "Valeurs identiques pour {property_entity}",
+ "body": "Cette propriété devrait avoir des valeurs distinctes, mais la même valeur va être ajoutée sur {item1_entity} et {item2_entity} par exemple."
+ },
+ "no-edit-generated": {
+ "title": "Aucun changement généré.",
+ "body": "Votre schéma n'est probablement pas en accord avec vos données."
+ },
+ "no-issue-detected": {
+ "title": "Aucun problème détecté dans vos modifications.",
+ "body": "OpenRefine ne peut pas détecter tous les types de problèmes que des modifications Wikidata peuvent avoir."
+ },
+ "ignored-qualifiers": {
+ "title": "Certains qualificatifs ont été ignorés.",
+ "body": "Les valeurs de ces qualificatifs n'ont pas pu être extraites, ils ne seront donc pas ajoutés aux déclarations correspondantes."
+ },
+ "ignored-references": {
+ "title": "Certaines références ont été ignorées.",
+ "body": "Aucune déclaration dans ces références n'a pu être construite, ces références sont donc ignorées."
+ },
+ "monolingual-text-without-language": {
+ "title": "Pas de langue fournie pour des textes monolingues.",
+ "body": "Des libellés, descriptions, alias ou textes monolingues ont été ignorés car aucune langue n'a été fournie. Exemple: {example_text}."
+ },
+ "leading-whitespace": {
+ "title": "Espaces au début de chaînes de caractères.",
+ "body": "Des chaînes telles que {example_string} ont des espaces au début."
+ },
+ "trailing-whitespace": {
+ "title": "Espaces à la fin de chaînes de caractères.",
+ "body": "Des chaînes telles que {example_string} ont des espaces à la fin."
+ },
+ "duplicate-whitespace": {
+ "title": "Espaces dédoublées dans des chaînes de caractères.",
+ "body": "Des chaînes telles que {example_string} contiennent des espaces dédoublées."
+ },
+ "non-printable-characters": {
+ "title": "Caractères spéciaux non affichables dans des chaînes de caractères.",
+ "body": "Des chaînes telles que {example_string} contiennent des caractères spéciaux non affichables."
+ },
+ "invalid-identifier-space": {
+ "title": "Espace d'identifiant invalide pour des cellules réconciliées.",
+ "body": "Certaines cellules réconciliées telles que {example_cell} ont été ignorées car elles ne sont pas réconciliées à Wikidata."
+ },
+ "ignored-language": {
+ "title": "Identifiants de langue invalides.",
+ "body": "Certains codes de langue sont invalides, tels que {example_value}. Consultez les valeurs autorisées."
+ },
+ "ignored-date": {
+ "title": "Format de date invalide.",
+ "body": "Certaines dates ne sont pas formatées correctement, par exemple {example_value}. Consultez les formats supportés."
+ },
+ "ignored-amount": {
+ "title": "Format de quantité invalide.",
+ "body": "Certaines quantités ne sont pas formatées correctement, telles que {example_value}. Consultez les formats supportés."
+ },
+ "ignored-coordinates": {
+ "title": "Coordonnées géographiques invalides.",
+ "body": "Certaines coordonnées ne sont pas formatées correctement, par exemple {example_value}. Consultez les formats autorisés."
+ },
+ "forbidden-value": {
+ "title": "Valeurs invalides pour {property_entity}",
+ "body": "Les items tels que {example_value_entity} ajoutés sur {example_subject_entity} ne sont pas autorisés comme valeurs pour {property_entity}."
+ },
+ "bounds-disallowed": {
+ "title": "Incertitudes fournies pour des quantités {property_entity}",
+ "body": "Ces valeurs ne devraient pas avoir d'incertitudes, mais {example_value} ajoutée sur {example_item_entity} en a. Consultez le manuel pour corriger ces formats."
+ },
+ "values-should-be-integers": {
+ "title": "Valeurs non entières pour {property_entity}",
+ "body": "Les valeurs devraient être des entiers, mais {example_value} ajoutée sur {example_item_entity} a une partie fractionnaire. Consultez le manuel pour corriger ce format."
+ },
+ "invalid-unit": {
+ "title": "{property_entity} avec des unités invalides",
+ "body": "Des unités telles que {unit_entity} utilisées sur {example_item_entity} sont invalides pour {property_entity}."
+ },
+ "no-unit-provided": {
+ "title": "Unité manquante pour {property_entity}",
+ "body": "Des valeurs telles que {example_value} sur {example_item_entity} devraient avoir des unités."
+ },
+ "invalid-entity-type": {
+ "title": "{property_entity} utilisée sur des éléments",
+ "body": "Les utilisations de {property_entity} sur des éléments tels que {example_entity} sont invalides."
+ }
+ }
+}