add french translation -增加法语翻译

This commit is contained in:
599153574@qq.com 2023-05-12 07:51:04 +08:00
parent ec43f4e6ab
commit f2b81a2f23
13 changed files with 321 additions and 52 deletions

View File

@ -73,6 +73,7 @@ const cn = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const cs: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",
@ -166,8 +167,7 @@ const cs: LocaleType = {
}, },
PresencePenlty: { PresencePenlty: {
Title: "Přítomnostní korekce", Title: "Přítomnostní korekce",
SubTitle: SubTitle: "Větší hodnota zvyšuje pravděpodobnost nových témat.",
"Větší hodnota zvyšuje pravděpodobnost nových témat.",
}, },
}, },
Store: { Store: {
@ -231,7 +231,7 @@ const cs: LocaleType = {
More: "Najít více", More: "Najít více",
NotShow: "Nezobrazovat znovu", NotShow: "Nezobrazovat znovu",
ConfirmNoShow: "Potvrdit zakázáníMůžete jej povolit později v nastavení.", ConfirmNoShow: "Potvrdit zakázáníMůžete jej povolit později v nastavení.",
}, },
UI: { UI: {
Confirm: "Potvrdit", Confirm: "Potvrdit",
@ -239,7 +239,7 @@ const cs: LocaleType = {
Close: "Zavřít", Close: "Zavřít",
Create: "Vytvořit", Create: "Vytvořit",
Edit: "Upravit", Edit: "Upravit",
} },
}; };
export default cs; export default cs;

View File

@ -76,6 +76,7 @@ const de: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const en: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const es: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

251
app/locales/fr.ts Normal file
View File

@ -0,0 +1,251 @@
import { SubmitKey } from "../store/config";
import type { LocaleType } from "./index";
const fr: LocaleType = {
WIP: "Prochainement...",
Error: {
Unauthorized:
"Accès non autorisé, veuillez saisir le code d'accès dans la page des paramètres.",
},
ChatItem: {
ChatItemCount: (count: number) => `${count} messages en total`,
},
Chat: {
SubTitle: (count: number) => `${count} messages échangés avec ChatGPT`,
Actions: {
ChatList: "Aller à la liste de discussion",
CompressedHistory: "Mémoire d'historique compressée Prompt",
Export: "Exporter tous les messages en tant que Markdown",
Copy: "Copier",
Stop: "Arrêter",
Retry: "Réessayer",
Delete: "Supprimer",
},
Rename: "Renommer la conversation",
Typing: "En train d'écrire…",
Input: (submitKey: string) => {
var inputHints = `Appuyez sur ${submitKey} pour envoyer`;
if (submitKey === String(SubmitKey.Enter)) {
inputHints += ", Shift + Enter pour insérer un saut de ligne";
}
return inputHints + ", / pour rechercher des prompts";
},
Send: "Envoyer",
Config: {
Reset: "Restaurer les paramètres par défaut",
SaveAs: "Enregistrer en tant que masque",
},
},
Export: {
Title: "Tous les messages",
Copy: "Tout sélectionner",
Download: "Télécharger",
MessageFromYou: "Message de votre part",
MessageFromChatGPT: "Message de ChatGPT",
},
Memory: {
Title: "Prompt mémoire",
EmptyContent: "Rien encore.",
Send: "Envoyer la mémoire",
Copy: "Copier la mémoire",
Reset: "Réinitialiser la session",
ResetConfirm:
"La réinitialisation supprimera l'historique de la conversation actuelle ainsi que la mémoire de l'historique. Êtes-vous sûr de vouloir procéder à la réinitialisation?",
},
Home: {
NewChat: "Nouvelle discussion",
DeleteChat: "Confirmer la suppression de la conversation sélectionnée ?",
DeleteToast: "Conversation supprimée",
Revert: "Revenir en arrière",
},
Settings: {
Title: "Paramètres",
SubTitle: "Toutes les configurations",
Actions: {
ClearAll: "Effacer toutes les données",
ResetAll: "Réinitialiser les configurations",
Close: "Fermer",
ConfirmResetAll:
"Êtes-vous sûr de vouloir réinitialiser toutes les configurations?",
ConfirmClearAll: "Êtes-vous sûr de vouloir supprimer toutes les données?",
},
Lang: {
Name: "Language", // ATTENTION : si vous souhaitez ajouter une nouvelle traduction, ne traduisez pas cette valeur, laissez-la sous forme de `Language`
All: "Toutes les langues",
Options: {
cn: "简体中文",
en: "English",
tw: "繁體中文",
fr: "Français",
es: "Español",
it: "Italiano",
tr: "Türkçe",
jp: "日本語",
de: "Deutsch",
vi: "Vietnamese",
ru: "Русский",
cs: "Čeština",
},
},
Avatar: "Avatar",
FontSize: {
Title: "Taille des polices",
SubTitle: "Ajuste la taille de police du contenu de la conversation",
},
Update: {
Version: (x: string) => `Version : ${x}`,
IsLatest: "Dernière version",
CheckUpdate: "Vérifier la mise à jour",
IsChecking: "Vérification de la mise à jour...",
FoundUpdate: (x: string) => `Nouvelle version disponible : ${x}`,
GoToUpdate: "Mise à jour",
},
SendKey: "Clé d'envoi",
Theme: "Thème",
TightBorder: "Bordure serrée",
SendPreviewBubble: {
Title: "Aperçu de l'envoi dans une bulle",
SubTitle: "Aperçu du Markdown dans une bulle",
},
Mask: {
Title: "Écran de masque",
SubTitle:
"Afficher un écran de masque avant de démarrer une nouvelle discussion",
},
Prompt: {
Disable: {
Title: "Désactiver la saisie semi-automatique",
SubTitle: "Appuyez sur / pour activer la saisie semi-automatique",
},
List: "Liste de prompts",
ListCount: (builtin: number, custom: number) =>
`${builtin} intégré, ${custom} personnalisé`,
Edit: "Modifier",
Modal: {
Title: "Liste de prompts",
Add: "Ajouter un élément",
Search: "Rechercher des prompts",
},
EditModal: {
Title: "Modifier le prompt",
},
},
HistoryCount: {
Title: "Nombre de messages joints",
SubTitle: "Nombre de messages envoyés attachés par demande",
},
CompressThreshold: {
Title: "Seuil de compression de l'historique",
SubTitle:
"Comprimera si la longueur des messages non compressés dépasse cette valeur",
},
Token: {
Title: "Clé API",
SubTitle: "Utilisez votre clé pour ignorer la limite du code d'accès",
Placeholder: "Clé OpenAI API",
},
Usage: {
Title: "Solde du compte",
SubTitle(used: any, total: any) {
return `Épuisé ce mois-ci $${used}, abonnement $${total}`;
},
IsChecking: "Vérification...",
Check: "Vérifier",
NoAccess: "Entrez la clé API pour vérifier le solde",
},
AccessCode: {
Title: "Code d'accès",
SubTitle: "Contrôle d'accès activé",
Placeholder: "Code d'accès requis",
},
Model: "Modèle",
Temperature: {
Title: "Température",
SubTitle: "Une valeur plus élevée rendra les réponses plus aléatoires",
},
MaxTokens: {
Title: "Max Tokens",
SubTitle: "Longueur maximale des tokens d'entrée et des tokens générés",
},
PresencePenlty: {
Title: "Pénalité de présence",
SubTitle:
"Une valeur plus élevée augmentera la probabilité d'introduire de nouveaux sujets",
},
},
Store: {
DefaultTopic: "Nouvelle conversation",
BotHello: "Bonjour ! Comment puis-je vous aider aujourd'hui ?",
Error: "Quelque chose s'est mal passé, veuillez réessayer plus tard.",
Prompt: {
History: (content: string) =>
"Ceci est un résumé de l'historique des discussions entre l'IA et l'utilisateur : " +
content,
Topic:
"Veuillez générer un titre de quatre à cinq mots résumant notre conversation sans introduction, ponctuation, guillemets, points, symboles ou texte supplémentaire. Supprimez les guillemets inclus.",
Summarize:
"Résumez brièvement nos discussions en 200 mots ou moins pour les utiliser comme prompt de contexte futur.",
},
},
Copy: {
Success: "Copié dans le presse-papiers",
Failed:
"La copie a échoué, veuillez accorder l'autorisation d'accès au presse-papiers",
},
Context: {
Toast: (x: any) => `Avec ${x} contextes de prompts`,
Edit: "Contextes et mémoires de prompts",
Add: "Ajouter un prompt",
},
Plugin: {
Name: "Extension",
},
Mask: {
Name: "Masque",
Page: {
Title: "Modèle de prompt",
SubTitle: (count: number) => `${count} modèles de prompts`,
Search: "Rechercher des modèles",
Create: "Créer",
},
Item: {
Info: (count: number) => `${count} prompts`,
Chat: "Discussion",
View: "Vue",
Edit: "Modifier",
Delete: "Supprimer",
DeleteConfirm: "Confirmer la suppression?",
},
EditModal: {
Title: (readonly: boolean) =>
`Modifier le modèle de prompt ${readonly ? "(en lecture seule)" : ""}`,
Download: "Télécharger",
Clone: "Dupliquer",
},
Config: {
Avatar: "Avatar du bot",
Name: "Nom du bot",
},
},
NewChat: {
Return: "Retour",
Skip: "Passer",
Title: "Choisir un masque",
SubTitle: "Discutez avec l'âme derrière le masque",
More: "En savoir plus",
NotShow: "Ne pas afficher à nouveau",
ConfirmNoShow:
"Confirmez-vous vouloir désactiver cela? Vous pouvez le réactiver plus tard dans les paramètres.",
},
UI: {
Confirm: "Confirmer",
Cancel: "Annuler",
Close: "Fermer",
Create: "Créer",
Edit: "Éditer",
},
};
export default fr;

View File

@ -1,6 +1,7 @@
import CN from "./cn"; import CN from "./cn";
import EN from "./en"; import EN from "./en";
import TW from "./tw"; import TW from "./tw";
import FR from "./fr";
import ES from "./es"; import ES from "./es";
import IT from "./it"; import IT from "./it";
import TR from "./tr"; import TR from "./tr";
@ -16,6 +17,7 @@ export const AllLangs = [
"en", "en",
"cn", "cn",
"tw", "tw",
"fr",
"es", "es",
"it", "it",
"tr", "tr",
@ -80,6 +82,7 @@ export default {
en: EN, en: EN,
cn: CN, cn: CN,
tw: TW, tw: TW,
fr: FR,
es: ES, es: ES,
it: IT, it: IT,
tr: TR, tr: TR,

View File

@ -75,6 +75,7 @@ const it: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const jp: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const ru: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",
@ -129,7 +130,8 @@ const ru: LocaleType = {
}, },
HistoryCount: { HistoryCount: {
Title: "Количество прикрепляемых сообщений", Title: "Количество прикрепляемых сообщений",
SubTitle: "Количество отправляемых сообщений, прикрепляемых к каждому запросу", SubTitle:
"Количество отправляемых сообщений, прикрепляемых к каждому запросу",
}, },
CompressThreshold: { CompressThreshold: {
Title: "Порог сжатия истории", Title: "Порог сжатия истории",
@ -186,7 +188,8 @@ const ru: LocaleType = {
}, },
Copy: { Copy: {
Success: "Скопировано в буфер обмена", Success: "Скопировано в буфер обмена",
Failed: "Не удалось скопировать, пожалуйста, предоставьте разрешение на доступ к буферу обмена", Failed:
"Не удалось скопировать, пожалуйста, предоставьте разрешение на доступ к буферу обмена",
}, },
Context: { Context: {
Toast: (x: any) => `С ${x} контекстными подсказками`, Toast: (x: any) => `С ${x} контекстными подсказками`,
@ -214,7 +217,9 @@ const ru: LocaleType = {
}, },
EditModal: { EditModal: {
Title: (readonly: boolean) => Title: (readonly: boolean) =>
`Редактирование шаблона подсказки ${readonly ? "(только для чтения)" : ""}`, `Редактирование шаблона подсказки ${
readonly ? "(только для чтения)" : ""
}`,
Download: "Скачать", Download: "Скачать",
Clone: "Клонировать", Clone: "Клонировать",
}, },
@ -230,7 +235,8 @@ const ru: LocaleType = {
SubTitle: "Общайтесь с душой за маской", SubTitle: "Общайтесь с душой за маской",
More: "Найти еще", More: "Найти еще",
NotShow: "Не показывать снова", NotShow: "Не показывать снова",
ConfirmNoShow: "Подтвердите отключение? Вы можете включить это позже в настройках.", ConfirmNoShow:
"Подтвердите отключение? Вы можете включить это позже в настройках.",
}, },
UI: { UI: {

View File

@ -75,6 +75,7 @@ const tr: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -73,6 +73,7 @@ const tw: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",

View File

@ -75,6 +75,7 @@ const vi: LocaleType = {
cn: "简体中文", cn: "简体中文",
en: "English", en: "English",
tw: "繁體中文", tw: "繁體中文",
fr: "Français",
es: "Español", es: "Español",
it: "Italiano", it: "Italiano",
tr: "Türkçe", tr: "Türkçe",