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", +};