diff --git a/argilla-frontend/CHANGELOG.md b/argilla-frontend/CHANGELOG.md
index 8c06a7ae22..ce24ce10be 100644
--- a/argilla-frontend/CHANGELOG.md
+++ b/argilla-frontend/CHANGELOG.md
@@ -18,6 +18,10 @@ These are the section headers that we use:
### Added
+- Added French language ([#5825](https://github.com/argilla-io/argilla/issues/5825)).
+
+### Added
+
- Added Japanese language ([#5816](https://github.com/argilla-io/argilla/pull/5816)). Contributed by @Tomoya-Matsubara.
## [2.7.1](https://github.com/argilla-io/argilla/compare/v2.7.0...v2.7.1)
diff --git a/argilla-frontend/nuxt.config.ts b/argilla-frontend/nuxt.config.ts
index cd42bc9634..c9b492251b 100644
--- a/argilla-frontend/nuxt.config.ts
+++ b/argilla-frontend/nuxt.config.ts
@@ -123,6 +123,11 @@ const config: NuxtConfig = {
name: "Español",
file: "es.js",
},
+ {
+ code: "fr",
+ name: "Français",
+ file: "fr.js",
+ },
{
code: "ja",
name: "日本語",
diff --git a/argilla-frontend/translation/fr.js b/argilla-frontend/translation/fr.js
new file mode 100644
index 0000000000..4fd21ccf98
--- /dev/null
+++ b/argilla-frontend/translation/fr.js
@@ -0,0 +1,413 @@
+export default {
+ multi_label_selection: "Multi-étiquettes",
+ ranking: "Classement",
+ label_selection: "Etiquette",
+ span: "Segment",
+ text: "Texte",
+ chat: "Chat",
+ image: "Image",
+ rating: "Evaluation",
+ minimize: "Minimiser",
+ select: "Sélectionner",
+ search: "Rechercher",
+ searchPlaceholder: "Introduire une requête",
+ searchDatasets: "Rechercher dans le jeu de données",
+ share: "Partager la progression",
+ expand: "Elargir",
+ copied: "Copier",
+ copiedToClipboard: "Copié dans le presse-papiers",
+ copyLink: "Copier le lien",
+ copyRecord: "Copier l'entrée",
+ refresh: "Rafraîchir",
+ typeYourText: "Entrez votre texte",
+ all: "Tout",
+ value: "Valeur",
+ title: "Titre",
+ description: "Description",
+ labels: "Etiquettes",
+ order: "Ordre",
+ owner: "Propriétaire",
+ useMarkdown: "Utiliser Markdown",
+ suggestionFirst: "Montrer les suggestions en premier",
+ visibleForAnnotators: "Visible pour les annotateurs",
+ recordInfo: "Info sur l'entrée",
+ viewMetadata: "Voir les métadonnées",
+ allowExtraMetadata: "Authoriser des métadonnées supplémentaires",
+ extraMetadata: "Métadonnées supplémentaires",
+ dimension: "Dimension",
+ visibleLabels: "Etiquettes visibles",
+ annotationGuidelines: "Consignes pour les annotateurs",
+ guidelines: "Consignes",
+ taskDistribution: "Distribution des tâches",
+ minimumSubmittedResponses: "Nombre minimum de réponses soumises",
+ taskDistributionTooltip:
+ "Une tâche est terminée lorsque toutes les entrées ont \nle nombre minimum de réponses soumises",
+ noAnnotationGuidelines: "Ce jeu de données n'a pas de consignes pour les annotateurs",
+ required: "Obligatoire",
+ optional: "Optionnel",
+ template: "Modèle",
+ orgOrUsername: "Organisation ou nom d'utilisateur",
+ hfToken: "Token Hugging Face",
+ private: "Privé",
+ rows: "lignes",
+ datasetName: "Nom du jeu de données",
+ noRecordsMessages: {
+ datasetEmptyForAnnotator:
+ "Le jeu de données est vide. Demandez à un administrateur de télécharger des entrées à annoter et revenez bientôt.",
+ datasetEmptyForAdmin:
+ "Le jeu de données est vide. Vous pouvez ajouter des entrées avec SDK Python, voir la documentation sur comment ajouter des données.",
+ taskDistributionCompleted: "🎉 La tâche est terminée !",
+ noSubmittedRecords: "Vous n'avez pas encore soumis d'entrées",
+ noRecordsFound: "Il n'y a pas d'entrées {status} correspondant à votre requête",
+ noRecords: "Il n'y a pas d'entrées {status}",
+ noPendingRecordsToAnnotate: "🎉 Vous n'avez pas d'entrées à compléter",
+ noDraftRecordsToReview: "Vous n'avez pas de brouillons à examiner",
+ },
+ couldNotLoadImage: "Impossible de charger l'image",
+ breadcrumbs: {
+ home: "Accueil",
+ datasetSettings: "paramètres",
+ userSettings: "Mes paramètres",
+ },
+ datasets: {
+ left: "restant",
+ completed: "Terminé",
+ pending: "A compléter",
+ },
+ recordStatus: {
+ pending: "à compléter",
+ draft: "brouillons",
+ discarded: "supprimées",
+ submitted: "soumises",
+ validated: "validées",
+ completedTooltip:
+ "L'entrée est terminée, elle a \nle nombre minimum de réponses",
+ },
+ userSettings: {
+ title: "Mes paramètres",
+ fields: {
+ userName: "Nom d'utilisateur",
+ firstName: "Prénom",
+ lastName: "Nom",
+ workspaces: "Espaces de travail",
+ },
+ apiKey: "Clé API",
+ apiKeyDescription:
+ "Les tokens pour l'API vous permettent de gérer vos jeux de données à l'aide du SDK Python.",
+ theme: "Thème",
+ language: "Langues",
+ copyKey: "Copier la clé",
+ },
+ userAvatarTooltip: {
+ settings: "Mes paramètres",
+ docs: "Voir la documentation",
+ logout: "Se déconnecter",
+ },
+ settings: {
+ title: "Paramètres du jeu de données",
+ datasetInfo: "Infos sur le jeu de données",
+ seeYourDataset: "Voir votre jeu de données",
+ editFields: "Modifier les champs",
+ editQuestions: "Modifier les questions",
+ editMetadata: "Modifier les propriétés des métadonnées",
+ editVectors: "Modifier les vecteurs",
+ deleteDataset: "Supprimer le jeu de données",
+ deleteWarning: "Attention, cette action est irréversible",
+ deleteConfirmation: "Confirmation de la suppression",
+ deleteConfirmationMessage:
+ "Vous êtes sur le point de supprimer : {datasetName} de l'espace de travail {workspaceName}. Cette action est irréversible",
+ yesDelete: "Oui, supprimer",
+ write: "Ecrire",
+ preview: "Aperçu",
+ uiPreview: "Aperçu de l'IU",
+ },
+ button: {
+ ignore_and_continue: "Ignorer et continuer",
+ login: "Se connecter",
+ signin_with_provider: "Se connecter avec {provider}",
+ "hf-login": "Se connecter avec Hugging Face",
+ sign_in_with_username: "Se connecter avec le nom d'utilisateur",
+ cancel: "Annuler",
+ continue: "Continuer",
+ delete: "Supprimer",
+ exportToHub: "Push to Hub",
+ tooltip: {
+ copyToClipboard: "Copier dans le presse-papiers",
+ copyNameToClipboard: "Copier le nom du jeu de données dans le presse-papiers",
+ copyLinkToClipboard: "Copier le lien vers le jeu de données dans le presse-papiers",
+ goToDatasetSettings: "Aller aux paramètres du jeu de données",
+ datasetSettings: "Paramètres du jeu de données",
+ },
+ },
+ to_submit_complete_required: "Pour soumettre, remplissez \ntoutes les réponses requises",
+ some_records_failed_to_annotate: "Certaines entrées n'ont pas pu être annotées",
+ changes_no_submit: "Vous n'avez pas soumis vos modifications",
+ bulkAnnotation: {
+ recordsSelected:
+ "1 entrée sélectionnée | {count} entrées sélectionnéss",
+ recordsViewSettings: "Taille de l'entrée",
+ fixedHeight: "Réduire les entrées",
+ defaultHeight: "Agrandir les entrées",
+ to_annotate_record_bulk_required: "Aucune entrée sélectionnée",
+ select_to_annotate: "Tout sélectionner",
+ pageSize: "Taille de la page",
+ selectAllResults: "Sélectionner les {total} entrées correspondantes",
+ haveSelectedRecords: "Vous avez sélectionné toutes les {total} entrées",
+ actionConfirmation: "Confirmation d'action groupée",
+ actionConfirmationText:
+ "Cette action affectera {total} entrées, voulez-vous continuer ?",
+ allRecordsAnnotated: "Les {total} entrées ont été {action}",
+ affectedAll: {
+ submitted: "soumises",
+ discarded: "supprimées",
+ draft: "enregistrées en tant que brouillon",
+ },
+ },
+ shortcuts: {
+ label: "Raccourcis",
+ pagination: {
+ go_to_previous_record: "Précédent (←)",
+ go_to_next_record: "Suivant (→)",
+ },
+ },
+ questions_form: {
+ validate: "Valider",
+ clear: "Effacer",
+ reset: "Réinitialiser",
+ discard: "Supprimer",
+ submit: "Soumettre",
+ draft: "Enregistrer en tant que brouillon",
+ write: "Écrire",
+ },
+ sorting: {
+ label: "Trier",
+ addOtherField: "+ Ajouter un autre champ",
+ suggestion: {
+ score: "Score de la suggestion",
+ value: "Valeur de la suggestion",
+ },
+ response: "Valeur de la réponse",
+ record: "général",
+ metadata: "métadonnées",
+ },
+ suggestion: {
+ agent: "\nagent: {agent}",
+ score: "\nscore: {score}",
+ tooltip: "Cette question contient une suggestion : {agent} {score}",
+ filter: {
+ value: "Valeurs de la suggestion",
+ score: "Score",
+ agent: "Agent",
+ },
+ plural: "Suggestions",
+ name: `Suggestion`,
+ },
+ similarity: {
+ "record-number": "Numéro de l'entrée",
+ findSimilar: "Trouver des similaires",
+ similarTo: "Similaire à",
+ similarityScore: "Score de similarité",
+ similarUsing: "similaire en utilisant",
+ expand: "Agrandir",
+ collapse: "Réduire",
+ },
+ spanAnnotation: {
+ shortcutHelper: "Maintenez 'Shift' pour sélectionner au niveau du caractère",
+ notSupported: "L'annotation de segments n'est pas prise en charge par votre navigateur",
+ searchLabels: "Rechercher des étiquettes",
+ },
+ login: {
+ title: "Se connecter",
+ username: "Nom d'utilisateur",
+ usernameDescription: "Entrez votre nom d'utilisateur",
+ password: "Mot de passe",
+ show: "Afficher",
+ hide: "Cacher",
+ passwordDescription: "Entrez votre mot de passe",
+ claim: "Travaillez ensemble sur vos données.Améliorez vos modèles.",
+ error:
+ "Nom d’utilisateur ou mot de passe incorrect. Réessayez",
+ hf: {
+ title: "Bienvenue sur {space}",
+ subtitle:
+ "Rejoignez {user} pour construire de meilleurs jeux de données pour l'IA",
+ },
+ },
+ of: "sur",
+ status: "Statut",
+ filters: "Filtres",
+ filterBy: "Filtrer par...",
+ fields: "Champs",
+ field: "Champ",
+ questions: "Questions",
+ general: "Général",
+ metadata: "Métadonnées",
+ vectors: "Vecteurs",
+ dangerZone: "Zone de danger",
+ responses: "Réponses",
+ "reset-all": "Tout réinitialiser",
+ reset: "Réinitialiser",
+ less: "Moins",
+ learnMore: "En savoir plus",
+ with: "avec",
+ find: "Rechercher",
+ cancel: "Annuler",
+ focus_mode: "Vue focalisée",
+ bulk_mode: "Vue groupée",
+ update: "Mettre à jour",
+ youAreOnlineAgain: "Vous êtes à nouveau en ligne",
+ youAreOffline: "Vous êtes hors ligne",
+ write: "Écrire",
+ preview: "Aperçu",
+ metrics: {
+ total: "Total",
+ progress: {
+ default: "Progression",
+ my: "Ma progression",
+ team: "Progression de l'équipe",
+ },
+ },
+ home: {
+ zeroDatasetsFound: "0 jeux de données trouvés",
+ argillaDatasets: "Vos jeux de données",
+ none: "Aucun pour le moment",
+ importTitle: "Importer un jeu de données depuis Hugging Face Hub",
+ importText:
+ "Commencez avec un jeu de données du Hub en copiant/collant simplement le nom du dépôt",
+ importButton: "Importer un jeu de données",
+ importFromHub: "Importer un jeu de données depuis Hugging Face",
+ importFromPython: "Importer depuis Python",
+ importFromPythonHFWarning:
+ "Si vous utilisez un Space privé, consultez la documentation.",
+ exampleDatasetsTitle: "Vous ne savez pas par où commencer ?",
+ exampleDatasetsText: "Explorez ces exemples de jeux de données",
+ guidesTitle: "Vous ne connaissez pas Argilla ?",
+ guidesText: "Jetez un œil à ces guides :",
+ pasteRepoIdPlaceholder: "Collez un ID de dépôt, ex: stanfordnlp/imdb",
+ demoLink:
+ "Connectez-vous à cette démo pour essayer Argilla",
+ name: "Nom du jeu de données",
+ updatedAt: "Mis à jour",
+ createdAt: "Créé",
+ },
+ datasetCreation: {
+ questions: {
+ labelSelection: {
+ atLeastTwoOptions: "Au moins deux options sont requises",
+ optionsWithoutLabel: "Les options vides ne sont pas autorisées",
+ optionsSeparatedByComma: "Utilisez une virgule pour séparer les options",
+ },
+ rating: {
+ atLeastTwoOptions: "Au moins deux options sont requises",
+ },
+ span: {
+ fieldRelated: "Un champ de type texte est requis",
+ },
+ },
+ atLeastOneQuestion: "Au moins une question est requise.",
+ atLeastOneRequired: "Au moins une question obligatoire est nécessaire.",
+ hasInvalidQuestions: "Certaines questions sont invalides",
+ createDataset: "Créer le jeu de données dans Argilla",
+ datasetName: "Nom du jeu de données",
+ name: "Nom",
+ assignWorkspace: "Assigner un espace de travail",
+ selectSplit: "Sélectionner une subdivision (split)",
+ recordWarning:
+ "Le jeu de données créé inclura les 10 000 premières lignes et les entrées supplémentaires peuvent être ajoutées via le SDK Python.",
+ button: "Créer le jeu de données",
+ fields: "Champs",
+ questionsTitle: "Questions",
+ yourQuestions: "Vos questions",
+ requiredField: "Champ obligatoire",
+ requiredQuestion: "Question obligatoire",
+ select: "Sélectionner",
+ mapToColumn: "Faire correspondre à la colonne",
+ applyToaAField: "Annoter les segments sur :",
+ subset: "Sous-ensemble",
+ selectSubset: "Vous pouvez créer un jeu de données à partir d'un seul sous-ensemble.",
+ preview: "Aperçu",
+ importData: "Importer des données",
+ addRecords: "Ajouter des entrées",
+ cantLoadRepository: "Jeu de données introuvable ou indisponible sur Hugging Face",
+ none: "Aucun",
+ noWorkspaces:
+ "Veuillez suivre ce guide pour créer un espace de travail",
+ },
+ exportToHub: {
+ dialogTitle: "Envoyer sur Hugging Face Hub",
+ ownerTooltip: "Utilisez un nom d'utilisateur ou une organisation Hugging Face valide",
+ tokenTooltip: `Utilisez un jeton d'accès existant ou créez un nouveau jeton avec la permission "write"`,
+ validations: {
+ orgOrUsernameIsRequired: "Le nom d’utilisateur ou de l’organisation est requis",
+ hfTokenIsRequired: "Le jeton Hugging Face est requis",
+ hfTokenInvalid: "Jeton Hugging Face invalide",
+ datasetNameIsRequired: "Le nom du jeu de données est requis",
+ },
+ exporting: "Exportation vers Hugging Face Hub en cours",
+ private: "Jeu de données privé",
+ public: "Jeu de données public",
+ exportingWarning: "Cela peut prendre quelques secondes",
+ },
+ config: {
+ field: {
+ text: "Champ texte",
+ chat: "Champ de chat",
+ image: "Champ d'image",
+ "no mapping": "Pas de correspondance",
+ },
+ question: {
+ text: "Texte",
+ rating: "Évaluation",
+ label_selection: "Étiquette",
+ ranking: "Classement",
+ multi_label_selection: "Multi-étiquettes",
+ span: "Segment",
+ "no mapping": "Pas de correspondance",
+ },
+ questionId: {
+ text: "text",
+ rating: "évaluation",
+ label_selection: "étiquette",
+ ranking: "classement",
+ multi_label_selection: "multi-étiquettes",
+ span: "segment",
+ },
+ },
+ persistentStorage: {
+ adminOrOwner:
+ "Le stockage persistant n'est pas activé. Toutes les données seront perdues si ce Space redémarre. Allez dans les paramètres du Space pour l'activer.",
+ annotator:
+ "Le stockage persistant n'est pas activé. Toutes les données seront perdues si ce Space redémarre.",
+ },
+ colorSchema: {
+ system: "Système",
+ light: "Clair",
+ dark: "Sombre",
+ "high-contrast": "Contraste élevé",
+ },
+ validations: {
+ businessLogic: {
+ missing_vector: {
+ message: "Vecteur introuvable pour l'entrée sélectionné",
+ },
+ update_distribution_with_existing_responses: {
+ message: "Les paramètres de distribution ne peuvent pas être modifiés pour un jeu de données contenant déjà des réponses utilisateurs",
+ },
+ },
+ http: {
+ 401: {
+ message: "Impossible de valider les identifiants",
+ },
+ 404: {
+ message: "Impossible de trouver la ressource demandée",
+ },
+ 429: {
+ message: "Veuillez attendre quelques secondes avant de réessayer",
+ },
+ 500: {
+ message: "Une erreur s'est produite, veuillez réessayer plus tard",
+ },
+ },
+ },
+ Workspaces: "Espaces de travail",
+};