Skip to content

Commit

Permalink
feat(fr): added language (#884)
Browse files Browse the repository at this point in the history
* feat: 🎸 french

added language

* perf: ⚡️ images

improved with shark package for nextjs
  • Loading branch information
StanGirard authored Aug 7, 2023
1 parent 8686db7 commit 4ef2900
Show file tree
Hide file tree
Showing 15 changed files with 550 additions and 6 deletions.
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

0 comments on commit 4ef2900

Please sign in to comment.