Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(fr): added language #884

Merged
merged 2 commits into from
Aug 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ export const useLanguageHook = (): {
{
id: "es",
name: 'Español'
},
{
id: "fr",
name: 'Français'
}
];

Expand Down
25 changes: 25 additions & 0 deletions frontend/lib/config/LocaleConfig/resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ import translation_es from "../../../public/locales/es/translation.json";
import updatePassword_es from "../../../public/locales/es/updatePassword.json";
import upload_es from "../../../public/locales/es/upload.json";
import user_es from "../../../public/locales/es/user.json";
// import all namespaces French
import brain_fr from "../../../public/locales/fr/brain.json";
import chat_fr from "../../../public/locales/fr/chat.json";
import config_fr from "../../../public/locales/fr/config.json";
import explore_fr from "../../../public/locales/fr/explore.json";
import login_fr from "../../../public/locales/fr/login.json";
import logout_fr from "../../../public/locales/fr/logout.json";
import signUp_fr from "../../../public/locales/fr/signUp.json";
import translation_fr from "../../../public/locales/fr/translation.json";
import updatePassword_fr from "../../../public/locales/fr/updatePassword.json";
import upload_fr from "../../../public/locales/fr/upload.json";
import user_fr from "../../../public/locales/fr/user.json";

export const defaultNS = "translation";
export const resources = {
Expand Down Expand Up @@ -50,5 +62,18 @@ export const resources = {
updatePassword: updatePassword_es,
upload: upload_es,
user: user_es
},
fr: {
brain: brain_fr,
chat: chat_fr,
config: config_fr,
explore: explore_fr,
login: login_fr,
logout: logout_fr,
signUp: signUp_fr,
translation: translation_fr,
updatePassword: updatePassword_fr,
upload: upload_fr,
user: user_fr
}
} as const;
1 change: 1 addition & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
"react-markdown": "^8.0.7",
"react-use": "^17.4.0",
"rehype-highlight": "^6.0.0",
"sharp": "^0.32.4",
"tailwind-merge": "^1.12.0",
"tailwindcss": "3.3.2",
"typescript": "^5.0.4",
Expand Down
30 changes: 30 additions & 0 deletions frontend/public/locales/fr/brain.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"searchBrain": "Rechercher un cerveau",
"selectBrain": "Sélectionnez un cerveau, s'il vous plaît",
"brainCreated": "Cerveau créé avec succès",
"newBrain": "Ajouter un nouveau cerveau",
"newBrainTitle": "Ajouter un nouveau cerveau",
"newBrainSubtitle": "Créez un nouvel espace pour vos données",
"brainName": "Nom du cerveau",
"brainNamePlaceholder": "Ex. Notes d'histoire",
"brainDescription": "Description",
"brainDescriptionPlaceholder": "Mon nouveau cerveau concerne...",
"shareBrain": "Partager le cerveau {{name}}",
"shareBrainUsers": "Utilisateurs ayant accès",
"shareBrainLink": "Cliquez pour copier le lien pour partager votre cerveau",
"copiedToClipboard": "Copié dans le presse-papier",
"inviteUsers": "Ajouter de nouveaux utilisateurs",
"usersInvited": "Utilisateurs invités avec succès",
"errorSendingInvitation": "Une erreur s'est produite lors de l'envoi des invitations",
"brainUndefined": "Cerveau non défini",
"noBrainUsers": "Pas de brainUsers",
"errorFetchingBrainUsers": "Une erreur s'est produite lors de la récupération des utilisateurs du cerveau",
"usersWithAccess": "Utilisateurs ayant accès",
"userRoleUpdated": "Mis à jour {{email}} en {{newRole}}",
"userRoleUpdateFailed": "Échec de la mise à jour de {{email}} en {{newRole}}",
"userRemoved": "Retiré {{email}} du cerveau",
"userRemoveFailed": "Échec du retrait de {{email}} du cerveau",
"defaultBrain": "Cerveau par défaut",
"setDefaultBrain": "Définir comme cerveau par défaut",
"errorCreatingBrain": "Une erreur s'est produite lors de la création d'un cerveau"
}
19 changes: 19 additions & 0 deletions frontend/public/locales/fr/chat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"title": "Discuter avec {{brain}}",
"subtitle": "Parlez à un modèle linguistique de vos données téléchargées",
"limit_reached": "Vous avez atteint la limite de requêtes, veuillez réessayer plus tard",
"error_occurred": "Une erreur s'est produite lors de l'obtention de la réponse",
"noCurrentBrain": "Pas de cerveau actuel",
"errorParsingData": "Erreur lors de l'analyse des données",
"resposeBodyNull": "Le corps de la réponse est nul",
"receivedResponse": "Réponse reçue. Commence à gérer le flux...",
"errorCallingAPI": "Erreur lors de l'appel à l'API",
"ask": "Posez une question ou décrivez une tâche.",
"begin_conversation_placeholder": "Commencez la conversation ici...",
"thinking": "Réflexion...",
"chat": "Chat",
"errorFetching": "Erreur lors de la récupération de vos chats",
"chatDeleted": "Chat supprimé avec succès. Id : {{id}}",
"errorDeleting": "Erreur lors de la suppression du chat : {{error}}",
"chatNameUpdated": "Nom du chat mis à jour"
}
49 changes: 49 additions & 0 deletions frontend/public/locales/fr/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"title": "Configuration",
"subtitle": "Gérez votre cerveau",
"settings": "Paramètres",
"people": "Personnes",
"knowledge": "Connaissances",
"modelSection": "Configuration du modèle",
"openAiKeyLabel": "Clé Open AI",
"openAiKeyPlaceholder": "sk-xxx",
"modelLabel": "Modèle",
"anthropicKeyPlaceholder": "Clé API Anthropic",
"anthropicKeyLabel": "Clé API Anthropic",
"temperature": "Température",
"maxTokens": "Jetons max",
"accountSection": "Votre Compte",
"signedInAs": "Connecté en tant que",
"backendSection": "Configuration du backend",
"backendUrlPlaceHolder": "URL du backend",
"backendUrlLabel": "URL du backend",
"supabaseURLPlaceHolder": "URL Supabase",
"supabaseURLLabel": "URL Supabase",
"supabaseKeyPlaceHolder": "Clé Supabase",
"supabaseKeyLabel": "Clé Supabase",
"keepInLocal": "Garder en local",
"customPromptSection": "Invite personnalisée",
"promptName": "Titre de l'invite",
"promptNamePlaceholder": "Mon super nom d'invite",
"promptContent": "Contenu de l'invite",
"promptContentPlaceholder": "En tant qu'IA, vous...",
"promptRemoved": "Invite supprimée avec succès",
"errorRemovingPrompt": "Erreur lors de la suppression de l'invite",
"removePrompt": "Supprimer l'invite",
"newAPIKey": "Créer une nouvelle clé",
"configSaved": "Configuration sauvegardée",
"configReset": "Configuration réinitialisée",
"invalidOpenAiKey": "Clé OpenAI invalide",
"error.createApiKey": "Erreur lors de la création de la clé API",
"error.copy": "Échec de la copie",
"updatingBrainSettings": "Mise à jour des paramètres du cerveau...",
"defaultBrainSet": "Cerveau défini par défaut avec succès",
"nameRequired": "Le nom est requis",
"promptFieldsRequired": "Le titre et le contenu de l'invite sont requis",
"brainUpdated": "Cerveau mis à jour avec succès",
"publicPrompts": "Choisir dans les invites publiques",
"roleRequired": "Vous n'avez pas le rôle nécessaire pour accéder à cet onglet 🧠💡🥲.",
"requireAccess": "Veuillez demander l'accès au propriétaire.",
"ohno": "Oh non !",
"noUser": "Pas d'utilisateur"
}
14 changes: 14 additions & 0 deletions frontend/public/locales/fr/explore.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"title": "Explorez les données téléchargées",
"subtitle": "Visualisez ou supprimez les données stockées utilisées par votre cerveau",
"empty": "Oh non, votre cerveau est vide.",
"noBrain": "ID du cerveau introuvable",
"sessionNotFound": "Session utilisateur introuvable",
"deleted": "{{fileName}} supprimé du cerveau {{brain}}",
"errorDeleting": "Erreur lors de la suppression de {{fileName}}",
"view": "Voir",
"chunkNumber": "Nombre de fragments : {{quantity}}",
"notAvailable": "Non disponible",
"deleteConfirmTitle": "Confirmer",
"deleteConfirmText": "Voulez-vous vraiment supprimer ?"
}
15 changes: 15 additions & 0 deletions frontend/public/locales/fr/login.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"title": "Connexion",
"subtitle": "Bienvenue",
"signup": "Vous n'avez pas de compte ? Inscrivez-vous",
"forgottenPassword": "Mot de passe oublié",
"googleLogin": "Connexion avec Google",
"magicLink": "Envoyer le lien magique",
"loginSuccess": "Connexion réussie",
"errorMailMissed": "Veuillez entrer votre adresse e-mail",
"recoveryMailSended": "Un mail de récupération sera envoyé si l'email est reconnu",
"Invalidlogincredentials": "Identifiants de connexion invalides",
"password.updated": "Mot de passe mis à jour avec succès !",
"new_password": "Nouveau mot de passe",
"Failedtofetch": "Échec de la récupération"
}
8 changes: 8 additions & 0 deletions frontend/public/locales/fr/logout.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"title": "Déconnexion",
"subtitle": "À la prochaine",
"areYouSure": "Êtes-vous sûr de vouloir vous déconnecter ?",
"cancel": "Retour",
"error": "Erreur lors de la déconnexion {{errorMessage}}",
"loggedOut": "Déconnexion réussie"
}
13 changes: 13 additions & 0 deletions frontend/public/locales/fr/signUp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"title": "Inscription",
"subtitle": "Créez votre compte",
"email": "Email",
"password": "Mot de passe",
"loginButton": "Connexion",
"signUpButton": "S'inscrire",
"or": "ou",
"login": "Déjà inscrit ? Connectez-vous",
"googleLogin": "Connexion avec Google",
"errorSignUp": "Erreur lors de l'inscription : {{errorMessage}}",
"mailSended": "Email de confirmation envoyé, veuillez vérifier votre email"
}
47 changes: 47 additions & 0 deletions frontend/public/locales/fr/translation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"lang": "fr-FR",
"title": "Quivr - Obtenez un deuxième cerveau avec l'IA générative",
"title.short": "Obtenez un deuxième cerveau avec",
"description": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"getStarted": "Commencer",
"features": "Fonctionnalités",
"two_brains_title": "Deux cerveaux valent mieux qu'un",
"two_brains_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"any_kind_of_data_title": "Stockez n'importe quel type de données",
"any_kind_of_data_desc": "Quivr peut gérer presque n'importe quel type de données que vous lui donnez. Texte, images, extraits de code, nous avons ce qu'il vous faut.",
"fast_and_accurate_title": "Obtenez un cerveau rapide et cohérent",
"fast_and_accurate_desc": "Quivr est votre deuxième cerveau dans le nuage, conçu pour stocker et récupérer facilement des informations non structurées.",
"fast_and_efficient_title": "Rapide et efficace",
"fast_and_efficient_desc": "Conçu avec la rapidité et l'efficacité à son cœur. Quivr assure un accès rapide à vos données.",
"secure_title": "Sécurisé",
"secure_desc": "Vos données, votre contrôle. Toujours.",
"open_source_title": "Open source",
"open_source_desc": "La liberté est belle, tout comme Quivr. Open source et gratuit à utiliser.",
"toastDismiss": "ignorer",
"email": "Email",
"password": "Mot de passe",
"or": "ou",
"loginButton": "Connexion",
"signUpButton": "S'inscrire",
"logoutButton": "Déconnexion",
"updateButton": "Mettre à jour",
"uploadButton": "Télécharger",
"uploadingButton": "Téléchargement...",
"crawlButton": "Explorer",
"chatButton": "Chat",
"deleteButton": "Supprimer",
"deleteForeverButton": "Supprimer définitivement",
"doneButton": "Fait",
"resetButton": "Réinitialiser",
"newChatButton": "Nouveau chat",
"createButton": "Créer",
"shareButton": "Partager",
"Upload": "Télécharger",
"Chat": "Chat",
"Explore": "Explorer",
"loading": "Chargement...",
"comingSoon": "Bientôt disponible",
"Viewer": "Visualiseur",
"Editor": "Éditeur",
"Owner": "Propriétaire"
}
5 changes: 5 additions & 0 deletions frontend/public/locales/fr/updatePassword.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Mettre à jour le mot de passe",
"passwordUpdated": "Mot de passe mis à jour avec succès !",
"newPassword": "Nouveau mot de passe"
}
15 changes: 15 additions & 0 deletions frontend/public/locales/fr/upload.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"title": "Télécharger des connaissances",
"subtitle": "Texte, document, feuille de calcul, présentation, audio, vidéo et URL pris en charge",
"drop": "Déposez les fichiers ici...",
"dragAndDrop": "Glissez et déposez les fichiers ici, ou cliquez pour parcourir",
"webSite": "Insérer l'URL du site web",
"success": "Fichier téléchargé avec succès",
"error": "Échec du téléchargement du fichier : {{message}}",
"maxSizeError": "Fichier trop volumineux",
"alreadyAdded": "{{fileName}} a déjà été ajouté",
"addFiles": "Veuillez ajouter des fichiers à télécharger",
"selectBrain": "Veuillez sélectionner ou créer un cerveau pour télécharger un fichier",
"invalidUrl": "URL invalide",
"crawlFailed": "Échec de l'exploration du site web : {{message}}"
}
9 changes: 9 additions & 0 deletions frontend/public/locales/fr/user.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"title": "Utilisation du cerveau de {{user}}",
"fetching": "Récupération de vos données...",
"requestsCount": "Requêtes d'aujourd'hui : {{count}}",
"brainSize": "Taille du cerveau restante",
"empty": "Vide",
"Used": "Utilisé",
"Unused": "Inutilisé"
}
Loading