mirror of
https://github.com/Yidadaa/ChatGPT-Next-Web.git
synced 2025-08-11 17:42:55 +08:00
feat: update i18n
This commit is contained in:
@@ -1,294 +1,538 @@
|
||||
import { SubmitKey } from "../store/config";
|
||||
import type { PartialLocaleType } from "./index";
|
||||
import { getClientConfig } from "../config/client";
|
||||
|
||||
const isApp = !!getClientConfig()?.isApp;
|
||||
|
||||
const fr: PartialLocaleType = {
|
||||
WIP: "Prochainement...",
|
||||
Error: {
|
||||
Unauthorized:
|
||||
"Accès non autorisé, veuillez saisir le code d'accès dans la [page](/#/auth) des paramètres.",
|
||||
Unauthorized: isApp
|
||||
? "Clé API invalide détectée. Veuillez vérifier si la clé API est correctement configurée dans la page [Paramètres](/#/settings)."
|
||||
: "Le mot de passe d'accès est incorrect ou manquant. Veuillez entrer le mot de passe d'accès correct sur la page [Connexion](/#/auth) ou entrer votre propre clé API OpenAI sur la page [Paramètres](/#/settings).",
|
||||
},
|
||||
Auth: {
|
||||
Title: "Mot de passe requis",
|
||||
Tips: "L'administrateur a activé la vérification par mot de passe. Veuillez entrer le code d'accès ci-dessous",
|
||||
SubTips: "Ou entrez votre clé API OpenAI ou Google",
|
||||
Input: "Entrez le code d'accès ici",
|
||||
Confirm: "Confirmer",
|
||||
Later: "Plus tard",
|
||||
},
|
||||
ChatItem: {
|
||||
ChatItemCount: (count: number) => `${count} messages en total`,
|
||||
ChatItemCount: (count: number) => `${count} conversations`,
|
||||
},
|
||||
Chat: {
|
||||
SubTitle: (count: number) => `${count} messages échangés avec ChatGPT`,
|
||||
SubTitle: (count: number) => `Total de ${count} conversations`,
|
||||
EditMessage: {
|
||||
Title: "Modifier l'historique des messages",
|
||||
Topic: {
|
||||
Title: "Sujet de la discussion",
|
||||
SubTitle: "Modifier le sujet de la discussion actuel",
|
||||
},
|
||||
},
|
||||
Actions: {
|
||||
ChatList: "Aller à la liste de discussion",
|
||||
CompressedHistory: "Mémoire d'historique compressée Prompt",
|
||||
Export: "Exporter tous les messages en tant que Markdown",
|
||||
ChatList: "Voir la liste des messages",
|
||||
CompressedHistory: "Voir l'historique des prompts compressés",
|
||||
Export: "Exporter l'historique de la discussion",
|
||||
Copy: "Copier",
|
||||
Stop: "Arrêter",
|
||||
Retry: "Réessayer",
|
||||
Delete: "Supprimer",
|
||||
Pin: "Épingler",
|
||||
PinToastContent: "Épingler 2 messages à des messages contextuels",
|
||||
PinToastContent: "1 conversation épinglée aux prompts prédéfinis",
|
||||
PinToastAction: "Voir",
|
||||
Delete: "Supprimer",
|
||||
Edit: "Modifier",
|
||||
},
|
||||
Commands: {
|
||||
new: "Commencer une nouvelle conversation",
|
||||
newm: "Démarrer une nouvelle conversation avec un assistant",
|
||||
next: "Conversation suivante",
|
||||
prev: "Conversation précédente",
|
||||
new: "Nouvelle discussion",
|
||||
newm: "Créer une discussion à partir du masque",
|
||||
next: "Discussion suivante",
|
||||
prev: "Discussion précédente",
|
||||
clear: "Effacer le contexte",
|
||||
del: "Supprimer la Conversation",
|
||||
del: "Supprimer la discussion",
|
||||
},
|
||||
InputActions: {
|
||||
Stop: "Stop",
|
||||
ToBottom: "Au dernier",
|
||||
Stop: "Arrêter la réponse",
|
||||
ToBottom: "Aller au plus récent",
|
||||
Theme: {
|
||||
auto: "Auto",
|
||||
light: "Thème clair",
|
||||
dark: "Thème sombre",
|
||||
auto: "Thème automatique",
|
||||
light: "Mode clair",
|
||||
dark: "Mode sombre",
|
||||
},
|
||||
Prompt: "Instructions",
|
||||
Masks: "Assistants",
|
||||
Clear: "Effacer le contexte",
|
||||
Settings: "Réglages",
|
||||
Prompt: "Commandes rapides",
|
||||
Masks: "Tous les masques",
|
||||
Clear: "Effacer la discussion",
|
||||
Settings: "Paramètres de la discussion",
|
||||
UploadImage: "Télécharger une image",
|
||||
},
|
||||
Rename: "Renommer la conversation",
|
||||
Rename: "Renommer la discussion",
|
||||
Typing: "En train d'écrire…",
|
||||
Input: (submitKey: string) => {
|
||||
var inputHints = `Appuyez sur ${submitKey} pour envoyer`;
|
||||
var inputHints = `${submitKey} pour envoyer`;
|
||||
if (submitKey === String(SubmitKey.Enter)) {
|
||||
inputHints += ", Shift + Enter pour insérer un saut de ligne";
|
||||
inputHints += ",Shift + Enter pour passer à la ligne";
|
||||
}
|
||||
return inputHints + ", / pour rechercher des prompts";
|
||||
return inputHints + ",/ pour compléter, : pour déclencher des commandes";
|
||||
},
|
||||
Send: "Envoyer",
|
||||
Config: {
|
||||
Reset: "Restaurer les paramètres par défaut",
|
||||
SaveAs: "Enregistrer en tant que masque",
|
||||
Reset: "Effacer la mémoire",
|
||||
SaveAs: "Enregistrer comme masque",
|
||||
},
|
||||
IsContext: "Prompt prédéfini",
|
||||
},
|
||||
Export: {
|
||||
Title: "Tous les messages",
|
||||
Copy: "Tout sélectionner",
|
||||
Download: "Télécharger",
|
||||
MessageFromYou: "Message de votre part",
|
||||
MessageFromChatGPT: "Message de ChatGPT",
|
||||
Title: "Partager l'historique des discussions",
|
||||
Copy: "Tout copier",
|
||||
Download: "Télécharger le fichier",
|
||||
Share: "Partager sur ShareGPT",
|
||||
MessageFromYou: "Utilisateur",
|
||||
MessageFromChatGPT: "ChatGPT",
|
||||
Format: {
|
||||
Title: "Format d'exportation",
|
||||
SubTitle: "Vous pouvez exporter en texte Markdown ou en image PNG",
|
||||
},
|
||||
IncludeContext: {
|
||||
Title: "Inclure le contexte du masque",
|
||||
SubTitle: "Afficher le contexte du masque dans les messages",
|
||||
},
|
||||
Steps: {
|
||||
Select: "Sélectionner",
|
||||
Preview: "Aperçu",
|
||||
},
|
||||
Image: {
|
||||
Toast: "Génération de la capture d'écran",
|
||||
Modal:
|
||||
"Appuyez longuement ou faites un clic droit pour enregistrer l'image",
|
||||
},
|
||||
},
|
||||
Select: {
|
||||
Search: "Rechercher des messages",
|
||||
All: "Tout sélectionner",
|
||||
Latest: "Derniers messages",
|
||||
Clear: "Effacer la sélection",
|
||||
},
|
||||
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?",
|
||||
Title: "Résumé historique",
|
||||
EmptyContent: "Le contenu de la discussion est trop court pour être résumé",
|
||||
Send: "Compresser automatiquement l'historique des discussions et l'envoyer comme contexte",
|
||||
Copy: "Copier le résumé",
|
||||
Reset: "[unused]",
|
||||
ResetConfirm: "Confirmer la suppression du résumé historique ?",
|
||||
},
|
||||
Home: {
|
||||
NewChat: "Nouvelle discussion",
|
||||
DeleteChat: "Confirmer la suppression de la conversation sélectionnée ?",
|
||||
DeleteToast: "Conversation supprimée",
|
||||
Revert: "Revenir en arrière",
|
||||
DeleteChat: "Confirmer la suppression de la discussion sélectionnée ?",
|
||||
DeleteToast: "Discussion supprimée",
|
||||
Revert: "Annuler",
|
||||
},
|
||||
Settings: {
|
||||
Title: "Paramètres",
|
||||
SubTitle: "Toutes les configurations",
|
||||
SubTitle: "Toutes les options de configuration",
|
||||
|
||||
Danger: {
|
||||
Reset: {
|
||||
Title: "Restaurer les paramètres",
|
||||
SubTitle: "Restaurer les paramètres par défaut",
|
||||
Action: "Reinitialiser",
|
||||
Confirm: "Confirmer la réinitialisation des paramètres?",
|
||||
Title: "Réinitialiser tous les paramètres",
|
||||
SubTitle:
|
||||
"Réinitialiser toutes les options de configuration aux valeurs par défaut",
|
||||
Action: "Réinitialiser maintenant",
|
||||
Confirm: "Confirmer la réinitialisation de tous les paramètres ?",
|
||||
},
|
||||
Clear: {
|
||||
Title: "Supprimer toutes les données",
|
||||
Title: "Effacer toutes les données",
|
||||
SubTitle:
|
||||
"Effacer toutes les données, y compris les conversations et les paramètres",
|
||||
Action: "Supprimer",
|
||||
Confirm: "Confirmer la suppression de toutes les données?",
|
||||
"Effacer toutes les discussions et les données de configuration",
|
||||
Action: "Effacer maintenant",
|
||||
Confirm:
|
||||
"Confirmer l'effacement de toutes les discussions et données de configuration ?",
|
||||
},
|
||||
},
|
||||
Lang: {
|
||||
Name: "Language", // ATTENTION : si vous souhaitez ajouter une nouvelle traduction, ne traduisez pas cette valeur, laissez-la sous forme de `Language`
|
||||
Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
|
||||
All: "Toutes les langues",
|
||||
},
|
||||
|
||||
Avatar: "Avatar",
|
||||
FontSize: {
|
||||
Title: "Taille des polices",
|
||||
SubTitle: "Ajuste la taille de police du contenu de la conversation",
|
||||
Title: "Taille de la police",
|
||||
SubTitle: "Taille de la police pour le contenu des discussions",
|
||||
},
|
||||
InjectSystemPrompts: {
|
||||
Title: "Injecter des invites système",
|
||||
SubTitle:
|
||||
"Ajoute de force une invite système simulée de ChatGPT au début de la liste des messages pour chaque demande",
|
||||
"Ajouter de manière forcée une invite système simulée de ChatGPT au début de chaque liste de messages",
|
||||
},
|
||||
InputTemplate: {
|
||||
Title: "Template",
|
||||
SubTitle: "Le message le plus récent sera ajouté à ce template.",
|
||||
Title: "Prétraitement des entrées utilisateur",
|
||||
SubTitle:
|
||||
"Le dernier message de l'utilisateur sera intégré dans ce modèle",
|
||||
},
|
||||
|
||||
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",
|
||||
Version: (x: string) => `Version actuelle : ${x}`,
|
||||
IsLatest: "Vous avez la dernière version",
|
||||
CheckUpdate: "Vérifier les mises à jour",
|
||||
IsChecking: "Vérification des mises à jour en cours...",
|
||||
FoundUpdate: (x: string) => `Nouvelle version trouvée : ${x}`,
|
||||
GoToUpdate: "Aller à la mise à jour",
|
||||
},
|
||||
SendKey: "Clé d'envoi",
|
||||
SendKey: "Touche d'envoi",
|
||||
Theme: "Thème",
|
||||
TightBorder: "Bordure serrée",
|
||||
TightBorder: "Mode sans bordure",
|
||||
SendPreviewBubble: {
|
||||
Title: "Aperçu de l'envoi dans une bulle",
|
||||
SubTitle: "Aperçu du Markdown dans une bulle",
|
||||
Title: "Bulle d'aperçu",
|
||||
SubTitle: "Aperçu du contenu Markdown dans la bulle d'aperçu",
|
||||
},
|
||||
AutoGenerateTitle: {
|
||||
Title: "Génération automatique de titres",
|
||||
SubTitle:
|
||||
"Générer un titre approprié en fonction du contenu de la discussion",
|
||||
},
|
||||
Sync: {
|
||||
CloudState: "Données cloud",
|
||||
NotSyncYet: "Pas encore synchronisé",
|
||||
Success: "Synchronisation réussie",
|
||||
Fail: "Échec de la synchronisation",
|
||||
|
||||
Config: {
|
||||
Modal: {
|
||||
Title: "Configurer la synchronisation cloud",
|
||||
Check: "Vérifier la disponibilité",
|
||||
},
|
||||
SyncType: {
|
||||
Title: "Type de synchronisation",
|
||||
SubTitle: "Choisissez le serveur de synchronisation préféré",
|
||||
},
|
||||
Proxy: {
|
||||
Title: "Activer le proxy",
|
||||
SubTitle:
|
||||
"Lors de la synchronisation dans le navigateur, le proxy doit être activé pour éviter les restrictions de domaine croisé",
|
||||
},
|
||||
ProxyUrl: {
|
||||
Title: "Adresse du proxy",
|
||||
SubTitle:
|
||||
"Uniquement pour le proxy de domaine croisé fourni par le projet",
|
||||
},
|
||||
|
||||
WebDav: {
|
||||
Endpoint: "Adresse WebDAV",
|
||||
UserName: "Nom d'utilisateur",
|
||||
Password: "Mot de passe",
|
||||
},
|
||||
|
||||
UpStash: {
|
||||
Endpoint: "URL REST Redis UpStash",
|
||||
UserName: "Nom de sauvegarde",
|
||||
Password: "Token REST Redis UpStash",
|
||||
},
|
||||
},
|
||||
|
||||
LocalState: "Données locales",
|
||||
Overview: (overview: any) => {
|
||||
return `${overview.chat} discussions, ${overview.message} messages, ${overview.prompt} invites, ${overview.mask} masques`;
|
||||
},
|
||||
ImportFailed: "Échec de l'importation",
|
||||
},
|
||||
Mask: {
|
||||
Splash: {
|
||||
Title: "Écran de masque",
|
||||
Title: "Page de démarrage du masque",
|
||||
SubTitle:
|
||||
"Afficher un écran de masque avant de démarrer une nouvelle discussion",
|
||||
"Afficher la page de démarrage du masque lors de la création d'une nouvelle discussion",
|
||||
},
|
||||
Builtin: {
|
||||
Title: "Masquer Les Assistants Intégrés",
|
||||
SubTitle: "Masquer les assistants intégrés par défaut",
|
||||
Title: "Masquer les masques intégrés",
|
||||
SubTitle:
|
||||
"Masquer les masques intégrés dans toutes les listes de masques",
|
||||
},
|
||||
},
|
||||
Prompt: {
|
||||
Disable: {
|
||||
Title: "Désactiver la saisie semi-automatique",
|
||||
SubTitle: "Appuyez sur / pour activer la saisie semi-automatique",
|
||||
Title: "Désactiver la complétion automatique des invites",
|
||||
SubTitle:
|
||||
"Saisir / au début de la zone de texte pour déclencher la complétion automatique",
|
||||
},
|
||||
List: "Liste de prompts",
|
||||
List: "Liste des invites personnalisées",
|
||||
ListCount: (builtin: number, custom: number) =>
|
||||
`${builtin} intégré, ${custom} personnalisé`,
|
||||
`${builtin} intégrées, ${custom} définies par l'utilisateur`,
|
||||
Edit: "Modifier",
|
||||
Modal: {
|
||||
Title: "Liste de prompts",
|
||||
Add: "Ajouter un élément",
|
||||
Search: "Rechercher des prompts",
|
||||
Title: "Liste des invites",
|
||||
Add: "Créer",
|
||||
Search: "Rechercher des invites",
|
||||
},
|
||||
EditModal: {
|
||||
Title: "Modifier le prompt",
|
||||
Title: "Modifier les invites",
|
||||
},
|
||||
},
|
||||
HistoryCount: {
|
||||
Title: "Nombre de messages joints",
|
||||
SubTitle: "Nombre de messages envoyés attachés par demande",
|
||||
Title: "Nombre de messages historiques",
|
||||
SubTitle: "Nombre de messages historiques envoyés avec chaque demande",
|
||||
},
|
||||
CompressThreshold: {
|
||||
Title: "Seuil de compression de l'historique",
|
||||
Title: "Seuil de compression des messages historiques",
|
||||
SubTitle:
|
||||
"Comprimera si la longueur des messages non compressés dépasse cette valeur",
|
||||
"Compresser les messages historiques lorsque leur longueur dépasse cette valeur",
|
||||
},
|
||||
|
||||
Usage: {
|
||||
Title: "Solde du compte",
|
||||
Title: "Vérification du solde",
|
||||
SubTitle(used: any, total: any) {
|
||||
return `Épuisé ce mois-ci $${used}, abonnement $${total}`;
|
||||
return `Utilisé ce mois-ci : $${used}, Total d'abonnement : $${total}`;
|
||||
},
|
||||
IsChecking: "Vérification en cours…",
|
||||
Check: "Re-vérifier",
|
||||
NoAccess:
|
||||
"Entrez la clé API ou le mot de passe d'accès pour vérifier le solde",
|
||||
},
|
||||
|
||||
Access: {
|
||||
AccessCode: {
|
||||
Title: "Mot de passe d'accès",
|
||||
SubTitle: "L'administrateur a activé l'accès sécurisé",
|
||||
Placeholder: "Veuillez entrer le mot de passe d'accès",
|
||||
},
|
||||
CustomEndpoint: {
|
||||
Title: "Interface personnalisée",
|
||||
SubTitle: "Utiliser un service Azure ou OpenAI personnalisé",
|
||||
},
|
||||
Provider: {
|
||||
Title: "Fournisseur de modèle",
|
||||
SubTitle: "Changer de fournisseur de service",
|
||||
},
|
||||
OpenAI: {
|
||||
ApiKey: {
|
||||
Title: "Clé API",
|
||||
SubTitle:
|
||||
"Utiliser une clé OpenAI personnalisée pour contourner les restrictions d'accès par mot de passe",
|
||||
Placeholder: "Clé API OpenAI",
|
||||
},
|
||||
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Doit inclure http(s):// en dehors de l'adresse par défaut",
|
||||
},
|
||||
},
|
||||
Azure: {
|
||||
ApiKey: {
|
||||
Title: "Clé d'interface",
|
||||
SubTitle:
|
||||
"Utiliser une clé Azure personnalisée pour contourner les restrictions d'accès par mot de passe",
|
||||
Placeholder: "Clé API Azure",
|
||||
},
|
||||
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Exemple :",
|
||||
},
|
||||
|
||||
ApiVerion: {
|
||||
Title: "Version de l'interface (version API azure)",
|
||||
SubTitle: "Choisissez une version spécifique",
|
||||
},
|
||||
},
|
||||
Anthropic: {
|
||||
ApiKey: {
|
||||
Title: "Clé d'interface",
|
||||
SubTitle:
|
||||
"Utiliser une clé Anthropic personnalisée pour contourner les restrictions d'accès par mot de passe",
|
||||
Placeholder: "Clé API Anthropic",
|
||||
},
|
||||
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Exemple :",
|
||||
},
|
||||
|
||||
ApiVerion: {
|
||||
Title: "Version de l'interface (version API claude)",
|
||||
SubTitle: "Choisissez une version spécifique de l'API",
|
||||
},
|
||||
},
|
||||
Google: {
|
||||
ApiKey: {
|
||||
Title: "Clé API",
|
||||
SubTitle: "Obtenez votre clé API Google AI",
|
||||
Placeholder: "Entrez votre clé API Google AI Studio",
|
||||
},
|
||||
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Exemple :",
|
||||
},
|
||||
|
||||
ApiVersion: {
|
||||
Title: "Version de l'API (pour gemini-pro uniquement)",
|
||||
SubTitle: "Choisissez une version spécifique de l'API",
|
||||
},
|
||||
GoogleSafetySettings: {
|
||||
Title: "Niveau de filtrage de sécurité Google",
|
||||
SubTitle: "Définir le niveau de filtrage du contenu",
|
||||
},
|
||||
},
|
||||
Baidu: {
|
||||
ApiKey: {
|
||||
Title: "Clé API",
|
||||
SubTitle: "Utiliser une clé API Baidu personnalisée",
|
||||
Placeholder: "Clé API Baidu",
|
||||
},
|
||||
SecretKey: {
|
||||
Title: "Clé secrète",
|
||||
SubTitle: "Utiliser une clé secrète Baidu personnalisée",
|
||||
Placeholder: "Clé secrète Baidu",
|
||||
},
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle:
|
||||
"Non pris en charge pour les configurations personnalisées dans .env",
|
||||
},
|
||||
},
|
||||
ByteDance: {
|
||||
ApiKey: {
|
||||
Title: "Clé d'interface",
|
||||
SubTitle: "Utiliser une clé API ByteDance personnalisée",
|
||||
Placeholder: "Clé API ByteDance",
|
||||
},
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Exemple :",
|
||||
},
|
||||
},
|
||||
Alibaba: {
|
||||
ApiKey: {
|
||||
Title: "Clé d'interface",
|
||||
SubTitle: "Utiliser une clé API Alibaba Cloud personnalisée",
|
||||
Placeholder: "Clé API Alibaba Cloud",
|
||||
},
|
||||
Endpoint: {
|
||||
Title: "Adresse de l'interface",
|
||||
SubTitle: "Exemple :",
|
||||
},
|
||||
},
|
||||
CustomModel: {
|
||||
Title: "Nom du modèle personnalisé",
|
||||
SubTitle:
|
||||
"Ajouter des options de modèles personnalisés, séparées par des virgules",
|
||||
},
|
||||
IsChecking: "Vérification...",
|
||||
Check: "Vérifier",
|
||||
NoAccess: "Entrez la clé API pour vérifier le solde",
|
||||
},
|
||||
|
||||
Model: "Modèle",
|
||||
Temperature: {
|
||||
Title: "Température",
|
||||
SubTitle: "Une valeur plus élevée rendra les réponses plus aléatoires",
|
||||
Title: "Aléatoire (temperature)",
|
||||
SubTitle: "Plus la valeur est élevée, plus les réponses sont aléatoires",
|
||||
},
|
||||
TopP: {
|
||||
Title: "Top P",
|
||||
Title: "Échantillonnage par noyau (top_p)",
|
||||
SubTitle:
|
||||
"Ne modifiez pas à moins que vous ne sachiez ce que vous faites",
|
||||
"Semblable à l'aléatoire, mais ne pas modifier en même temps que l'aléatoire",
|
||||
},
|
||||
MaxTokens: {
|
||||
Title: "Limite de Tokens",
|
||||
SubTitle: "Longueur maximale des tokens d'entrée et des tokens générés",
|
||||
Title: "Limite de réponse unique (max_tokens)",
|
||||
SubTitle: "Nombre maximal de tokens utilisés pour une interaction unique",
|
||||
},
|
||||
PresencePenalty: {
|
||||
Title: "Pénalité de présence",
|
||||
Title: "Nouveauté du sujet (presence_penalty)",
|
||||
SubTitle:
|
||||
"Une valeur plus élevée augmentera la probabilité d'introduire de nouveaux sujets",
|
||||
"Plus la valeur est élevée, plus il est probable d'élargir aux nouveaux sujets",
|
||||
},
|
||||
FrequencyPenalty: {
|
||||
Title: "Pénalité de fréquence",
|
||||
Title: "Pénalité de fréquence (frequency_penalty)",
|
||||
SubTitle:
|
||||
"Une valeur plus élevée diminuant la probabilité de répéter la même ligne",
|
||||
"Plus la valeur est élevée, plus il est probable de réduire les répétitions",
|
||||
},
|
||||
},
|
||||
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.",
|
||||
DefaultTopic: "Nouvelle discussion",
|
||||
BotHello: "Comment puis-je vous aider ?",
|
||||
Error: "Une erreur est survenue, 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,
|
||||
"Voici le résumé de la discussion précédente : " + 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.",
|
||||
"Utilisez quatre à cinq mots pour retourner le sujet succinct de cette phrase, sans explication, sans ponctuation, sans interjections, sans texte superflu, sans gras. Si aucun sujet, retournez simplement « discussion informelle »",
|
||||
Summarize:
|
||||
"Résumez brièvement nos discussions en 200 mots ou moins pour les utiliser comme prompt de contexte futur.",
|
||||
"Faites un résumé succinct de la discussion, à utiliser comme prompt de contexte ultérieur, en moins de 200 mots",
|
||||
},
|
||||
},
|
||||
Copy: {
|
||||
Success: "Copié dans le presse-papiers",
|
||||
Failed:
|
||||
"La copie a échoué, veuillez accorder l'autorisation d'accès au presse-papiers",
|
||||
Failed: "Échec de la copie, veuillez autoriser l'accès au presse-papiers",
|
||||
},
|
||||
Download: {
|
||||
Success: "Le contenu a été téléchargé dans votre répertoire.",
|
||||
Failed: "Échec du téléchargement.",
|
||||
},
|
||||
Context: {
|
||||
Toast: (x: any) => `Avec ${x} contextes de prompts`,
|
||||
Edit: "Contextes et mémoires de prompts",
|
||||
Add: "Ajouter un prompt",
|
||||
Toast: (x: any) => `Contient ${x} invites prédéfinies`,
|
||||
Edit: "Paramètres de la discussion actuelle",
|
||||
Add: "Ajouter une discussion",
|
||||
Clear: "Contexte effacé",
|
||||
Revert: "Restaurer le contexte",
|
||||
},
|
||||
Plugin: {
|
||||
Name: "Extension",
|
||||
Name: "Plugin",
|
||||
},
|
||||
FineTuned: {
|
||||
Sysmessage: "Eres un asistente que",
|
||||
Sysmessage: "Vous êtes un assistant",
|
||||
},
|
||||
Mask: {
|
||||
Name: "Masque",
|
||||
Page: {
|
||||
Title: "Modèle de prompt",
|
||||
SubTitle: (count: number) => `${count} modèles de prompts`,
|
||||
Search: "Rechercher des modèles",
|
||||
Title: "Masques de rôle prédéfinis",
|
||||
SubTitle: (count: number) => `${count} définitions de rôle prédéfinies`,
|
||||
Search: "Rechercher des masques de rôle",
|
||||
Create: "Créer",
|
||||
},
|
||||
Item: {
|
||||
Info: (count: number) => `${count} prompts`,
|
||||
Info: (count: number) => `Contient ${count} discussions prédéfinies`,
|
||||
Chat: "Discussion",
|
||||
View: "Vue",
|
||||
View: "Voir",
|
||||
Edit: "Modifier",
|
||||
Delete: "Supprimer",
|
||||
DeleteConfirm: "Confirmer la suppression?",
|
||||
DeleteConfirm: "Confirmer la suppression ?",
|
||||
},
|
||||
EditModal: {
|
||||
Title: (readonly: boolean) =>
|
||||
`Modifier le modèle de prompt ${readonly ? "(en lecture seule)" : ""}`,
|
||||
Download: "Télécharger",
|
||||
Clone: "Dupliquer",
|
||||
`Modifier le masque prédéfini ${readonly ? " (lecture seule)" : ""}`,
|
||||
Download: "Télécharger le masque",
|
||||
Clone: "Cloner le masque",
|
||||
},
|
||||
Config: {
|
||||
Avatar: "Avatar de lassistant",
|
||||
Name: "Nom de lassistant",
|
||||
Avatar: "Avatar du rôle",
|
||||
Name: "Nom du rôle",
|
||||
Sync: {
|
||||
Title: "Utiliser la configuration globale",
|
||||
SubTitle: "Utiliser la configuration globale dans cette conversation",
|
||||
Confirm: "Voulez-vous definir votre configuration personnalisée ?",
|
||||
Title: "Utiliser les paramètres globaux",
|
||||
SubTitle:
|
||||
"Cette discussion utilise-t-elle les paramètres du modèle globaux ?",
|
||||
Confirm:
|
||||
"Les paramètres personnalisés de cette discussion seront automatiquement remplacés. Confirmer l'activation des paramètres globaux ?",
|
||||
},
|
||||
HideContext: {
|
||||
Title: "Masquer les invites contextuelles",
|
||||
SubTitle: "Ne pas afficher les instructions contextuelles dans le chat",
|
||||
Title: "Masquer les discussions prédéfinies",
|
||||
SubTitle:
|
||||
"Les discussions prédéfinies ne seront pas affichées dans l'interface de discussion après masquage",
|
||||
},
|
||||
Share: {
|
||||
Title: "Partager ce masque",
|
||||
SubTitle: "Générer un lien vers ce masque",
|
||||
SubTitle: "Générer un lien direct pour ce masque",
|
||||
Action: "Copier le lien",
|
||||
},
|
||||
},
|
||||
},
|
||||
NewChat: {
|
||||
Return: "Retour",
|
||||
Skip: "Passer",
|
||||
Title: "Choisir un assitant",
|
||||
SubTitle: "Discutez avec l'âme derrière le masque",
|
||||
More: "En savoir plus",
|
||||
NotShow: "Ne pas afficher à nouveau",
|
||||
Skip: "Commencer directement",
|
||||
NotShow: "Ne plus afficher",
|
||||
ConfirmNoShow:
|
||||
"Confirmez-vous vouloir désactiver cela? Vous pouvez le réactiver plus tard dans les paramètres.",
|
||||
"Confirmer la désactivation ? Vous pourrez réactiver cette option à tout moment dans les paramètres.",
|
||||
Title: "Choisir un masque",
|
||||
SubTitle: "Commencez maintenant, rencontrez les pensées derrière le masque",
|
||||
More: "Voir tout",
|
||||
},
|
||||
|
||||
URLCommand: {
|
||||
Code: "Code d'accès détecté dans le lien, souhaitez-vous le remplir automatiquement ?",
|
||||
Settings:
|
||||
"Paramètres prédéfinis détectés dans le lien, souhaitez-vous les remplir automatiquement ?",
|
||||
},
|
||||
|
||||
UI: {
|
||||
@@ -296,9 +540,17 @@ const fr: PartialLocaleType = {
|
||||
Cancel: "Annuler",
|
||||
Close: "Fermer",
|
||||
Create: "Créer",
|
||||
Edit: "Éditer",
|
||||
Edit: "Modifier",
|
||||
Export: "Exporter",
|
||||
Import: "Importer",
|
||||
Sync: "Synchroniser",
|
||||
Config: "Configurer",
|
||||
},
|
||||
Exporter: {
|
||||
Description: {
|
||||
Title:
|
||||
"Seuls les messages après avoir effacé le contexte seront affichés",
|
||||
},
|
||||
Model: "Modèle",
|
||||
Messages: "Messages",
|
||||
Topic: "Sujet",
|
||||
|
Reference in New Issue
Block a user