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

i18n(fr): Add french translations #123

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
11 changes: 11 additions & 0 deletions i18n/i18next-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,18 @@ import commonEs from './lang/common.es'
import commonZh from './lang/common.zh'
import commonVi from './lang/common.vi'
import commonJa from './lang/common.ja'
import commonFr from './lang/common.fr'
import appEn from './lang/app.en'
import appEs from './lang/app.es'
import appZh from './lang/app.zh'
import appVi from './lang/app.vi'
import appJa from './lang/app.ja'
import appFr from './lang/app.fr'
import toolsEn from './lang/tools.en'
import toolsZh from './lang/tools.zh'
import toolsVi from './lang/tools.vi'
import toolsJa from './lang/tools.ja'
import toolsFr from './lang/tools.fr'

import type { Locale } from '.'

Expand Down Expand Up @@ -57,6 +60,14 @@ const resources = {
tools: toolsJa,
},
},
'fr': {
translation: {
common: commonFr,
app: appFr,
// tools
tools: toolsFr,
},
},
}

i18n.use(initReactI18next)
Expand Down
2 changes: 1 addition & 1 deletion i18n/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export const i18n = {
defaultLocale: 'en',
locales: ['en', 'es', 'zh-Hans', 'ja'],
locales: ['en', 'es', 'zh-Hans', 'ja', 'fr'],
} as const

export type Locale = typeof i18n['locales'][number]
37 changes: 37 additions & 0 deletions i18n/lang/app.fr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const translation = {
common: {
welcome: 'Bienvenue sur l\'application',
appUnavailable: 'L\'application n\'est pas disponible',
appUnkonwError: 'L\'application n\'est pas disponible',
},
chat: {
newChat: 'Nouvelle conversation',
newChatDefaultName: 'Nouvelle conversation',
openingStatementTitle: 'Phrase d\'ouverture',
powerBy: 'Propulsé par',
prompt: 'Prompt',
privatePromptConfigTitle: 'Param tres de la conversation',
publicPromptConfigTitle: 'Prompt initial',
configStatusDes: 'Avant de commencer, vous pouvez modifier les paramètres de la conversation',
configDisabled:
'Les paramètres de la session précédente ont été utilisés pour cette session.',
startChat: 'Démarrer la conversation',
privacyPolicyLeft:
'Veuillez lire la ',
privacyPolicyMiddle:
'politique de confidentialité ',
privacyPolicyRight:
' fournie par le développeur de l\'application.',
},
errorMessage: {
valueOfVarRequired: 'La valeur des variables ne peut pas être vide',
waitForResponse:
'Veuillez attendre que la réponse au message précédent soit terminée.',
},
variableTable: {
optional: 'Facultatif',
},
}

export default translation

34 changes: 34 additions & 0 deletions i18n/lang/common.fr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const translation = {
api: {
success: 'Succès',
saved: 'Enregistré',
create: 'Créé',
},
operation: {
confirm: 'Confirmer',
cancel: 'Annuler',
clear: 'Effacer',
save: 'Enregistrer',
edit: 'Éditer',
refresh: 'Redémarrer',
search: 'Rechercher',
send: 'Envoyer',
lineBreak: 'Saut de ligne',
like: 'like',
dislike: 'dislike',
ok: 'D\'accord',
},
imageUploader: {
uploadFromComputer: 'Télécharger depuis l\'ordinateur',
uploadFromComputerReadError: 'Édition de l\'image échouée, veuillez essayer à nouveau.',
uploadFromComputerUploadError: 'Édition de l\'image échouée, veuillez télécharger à nouveau.',
uploadFromComputerLimit: 'Les images téléchargées ne peuvent pas dépasser {{size}} Mo',
pasteImageLink: 'Coller le lien de l\'image',
pasteImageLinkInputPlaceholder: 'Coller le lien de l\'image ici',
pasteImageLinkInvalid: 'Lien d\'image invalide',
imageUpload: 'Téléchargement d\'image',
},
}

export default translation

104 changes: 104 additions & 0 deletions i18n/lang/tools.fr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
const translation = {
title: 'Outils',
createCustomTool: 'Créer un outil personnalisé',
type: {
all: 'Tous',
builtIn: 'Intégré',
custom: 'Personnalisé',
},
contribute: {
line1: 'Je suis intéressé pour ',
line2: ' contribuer à des outils de Dify.',
viewGuide: 'Voir le guide',
},
author: 'Par',
auth: {
unauthorized: 'Autoriser',
authorized: 'Autorisé',
setup: 'Configurer l\'autorisation pour utiliser',
setupModalTitle: 'Configurer l\'autorisation',
setupModalTitleDescription: 'Aprèss avoir configuré les informations d\'identification, tous les membres de l\'espace de travail pourront utiliser cet outil pour orchestrer les applications.',
},
includeToolNum: '{{num}} outils inclus',
addTool: 'Ajouter un outil',
createTool: {
title: 'Créer un outil personnalisé',
editAction: 'Configurer',
editTitle: 'Éditer l\'outil personnalisé',
name: 'Nom',
toolNamePlaceHolder: 'Saisissez le nom de l\'outil',
schema: 'Schéma',
schemaPlaceHolder: 'Saisissez votre schéma OpenAPI ici',
viewSchemaSpec: 'Voir la spécification OpenAPI-Swagger',
importFromUrl: 'Importer depuis une URL',
importFromUrlPlaceHolder: 'https://...',
urlError: 'Veuillez saisir une URL valide',
examples: 'Exemples',
exampleOptions: {
json: 'Météo (JSON)',
yaml: 'Pet Store (YAML)',
blankTemplate: 'Modèle vide',
},
availableTools: {
title: 'Outils disponibles',
name: 'Nom',
description: 'Description',
method: 'Méthode',
path: 'Chemin',
action: 'Actions',
test: 'Test',
},
authMethod: {
title: 'Méthode d\'autorisation',
type: 'Type d\'autorisation',
types: {
none: 'Aucun',
api_key: 'Clé API',
},
key: 'Clé',
value: 'Valeur',
},
privacyPolicy: 'Politique de confidentialité',
privacyPolicyPlaceholder: 'Veuillez saisir la politique de confidentialité',
},
test: {
title: 'Test',
parametersValue: 'Paramètres & Valeurs',
parameters: 'Paramètres',
value: 'Valeurs',
testResult: 'Résultats du test',
testResultPlaceholder: 'Le résultat du test sera affiché ici',
},
thought: {
using: 'En cours d\'utilisation',
used: 'Utilisé',
requestTitle: 'Demande ',
responseTitle: 'Réponse de ',
},
setBuiltInTools: {
info: 'Informations',
setting: 'Paramétrage',
toolDescription: 'Description de l\'outil',
parameters: 'paramètres',
string: 'chaine de caractères',
number: 'nombre',
required: 'Requis',
infoAndSetting: 'Informations & Paramétrage',
},
noCustomTool: {
title: 'Aucun outil personnalisé !',
content: 'Ajoutez et gérez vos outils personnalisé pour créer des applications d\'apprentissage automatique.',
createTool: 'Créer un outil',
},
noSearchRes: {
title: 'Désolé, pas de résultats!',
content: 'Nous n\'avons pas trouvé d\'outils qui correspondent à votre recherche.',
reset: 'Réinitialiser la recherche',
},
builtInPromptTitle: 'Suggestion',
toolRemoved: 'Outil supprimé',
notAuthorized: 'Outil non autorisé',
}

export default translation