mirror of
https://github.com/samanhappy/mcphub.git
synced 2025-12-23 18:29:21 -05:00
817 lines
41 KiB
JSON
817 lines
41 KiB
JSON
{
|
|
"app": {
|
|
"title": "Tableau de bord MCPHub",
|
|
"error": "Erreur",
|
|
"closeButton": "Fermer",
|
|
"noServers": "Aucun serveur MCP disponible",
|
|
"loading": "Chargement...",
|
|
"logout": "Déconnexion",
|
|
"profile": "Profil",
|
|
"changePassword": "Changer le mot de passe",
|
|
"toggleSidebar": "Basculer la barre latérale",
|
|
"welcomeUser": "Bienvenue, {{username}}",
|
|
"name": "MCPHub"
|
|
},
|
|
"about": {
|
|
"title": "À propos",
|
|
"versionInfo": "Version MCPHub : {{version}}",
|
|
"newVersion": "Nouvelle version disponible !",
|
|
"currentVersion": "Version actuelle",
|
|
"newVersionAvailable": "La nouvelle version {{version}} est disponible",
|
|
"viewOnGitHub": "Voir sur GitHub",
|
|
"checkForUpdates": "Vérifier les mises à jour",
|
|
"checking": "Vérification des mises à jour..."
|
|
},
|
|
"profile": {
|
|
"viewProfile": "Voir le profil",
|
|
"userCenter": "Centre utilisateur"
|
|
},
|
|
"sponsor": {
|
|
"label": "Sponsor",
|
|
"title": "Soutenir le projet",
|
|
"rewardAlt": "QR Code de récompense",
|
|
"supportMessage": "Soutenez le développement de MCPHub en m'offrant un café !",
|
|
"supportButton": "Soutenir sur Ko-fi"
|
|
},
|
|
"wechat": {
|
|
"label": "WeChat",
|
|
"title": "Se connecter via WeChat",
|
|
"qrCodeAlt": "QR Code WeChat",
|
|
"scanMessage": "Scannez ce QR code pour nous contacter sur WeChat"
|
|
},
|
|
"discord": {
|
|
"label": "Discord",
|
|
"title": "Rejoignez notre serveur Discord",
|
|
"community": "Rejoignez notre communauté grandissante sur Discord pour du support, des discussions et des mises à jour !"
|
|
},
|
|
"theme": {
|
|
"title": "Thème",
|
|
"light": "Clair",
|
|
"dark": "Sombre",
|
|
"system": "Système"
|
|
},
|
|
"auth": {
|
|
"login": "Connexion",
|
|
"loginTitle": "Se connecter à MCPHub",
|
|
"slogan": "Le Hub unifié pour les serveurs MCP",
|
|
"subtitle": "Plateforme de gestion centralisée pour les serveurs Model Context Protocol. Organisez, surveillez et mettez à l'échelle plusieurs serveurs MCP avec des stratégies de routage flexibles.",
|
|
"username": "Nom d'utilisateur",
|
|
"password": "Mot de passe",
|
|
"loggingIn": "Connexion en cours...",
|
|
"emptyFields": "Le nom d'utilisateur et le mot de passe ne peuvent pas être vides",
|
|
"loginFailed": "Échec de la connexion, veuillez vérifier votre nom d'utilisateur et votre mot de passe",
|
|
"loginError": "Une erreur est survenue lors de la connexion",
|
|
"currentPassword": "Mot de passe actuel",
|
|
"newPassword": "Nouveau mot de passe",
|
|
"confirmPassword": "Confirmer le mot de passe",
|
|
"passwordsNotMatch": "Le nouveau mot de passe et la confirmation ne correspondent pas",
|
|
"changePasswordSuccess": "Mot de passe changé avec succès",
|
|
"changePasswordError": "Échec du changement de mot de passe",
|
|
"changePassword": "Changer le mot de passe",
|
|
"passwordChanged": "Mot de passe changé avec succès",
|
|
"passwordChangeError": "Échec du changement de mot de passe",
|
|
"defaultPasswordWarning": "Avertissement de sécurité du mot de passe par défaut",
|
|
"defaultPasswordMessage": "Vous utilisez le mot de passe par défaut (admin123), ce qui présente un risque de sécurité. Veuillez changer votre mot de passe immédiatement pour protéger votre compte.",
|
|
"goToSettings": "Aller aux paramètres",
|
|
"passwordStrengthError": "Le mot de passe ne répond pas aux exigences de sécurité",
|
|
"passwordMinLength": "Le mot de passe doit contenir au moins 8 caractères",
|
|
"passwordRequireLetter": "Le mot de passe doit contenir au moins une lettre",
|
|
"passwordRequireNumber": "Le mot de passe doit contenir au moins un chiffre",
|
|
"passwordRequireSpecial": "Le mot de passe doit contenir au moins un caractère spécial",
|
|
"passwordStrengthHint": "Le mot de passe doit contenir au moins 8 caractères et inclure des lettres, des chiffres et des caractères spéciaux"
|
|
},
|
|
"server": {
|
|
"addServer": "Ajouter un serveur",
|
|
"add": "Ajouter",
|
|
"edit": "Modifier",
|
|
"copy": "Copier",
|
|
"delete": "Supprimer",
|
|
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ce serveur ?",
|
|
"deleteWarning": "La suppression du serveur '{{name}}' le supprimera ainsi que toutes ses données. Cette action est irréversible.",
|
|
"status": "Statut",
|
|
"tools": "Outils",
|
|
"prompts": "Invites",
|
|
"name": "Nom du serveur",
|
|
"url": "URL du serveur",
|
|
"apiKey": "Clé API",
|
|
"save": "Enregistrer",
|
|
"cancel": "Annuler",
|
|
"invalidConfig": "Impossible de trouver les données de configuration pour {{serverName}}",
|
|
"addError": "Échec de l'ajout du serveur",
|
|
"editError": "Échec de la modification du serveur {{serverName}}",
|
|
"deleteError": "Échec de la suppression du serveur {{serverName}}",
|
|
"updateError": "Échec de la mise à jour du serveur",
|
|
"editTitle": "Modifier le serveur : {{serverName}}",
|
|
"type": "Type de serveur",
|
|
"typeStdio": "STDIO",
|
|
"typeSse": "SSE",
|
|
"typeStreamableHttp": "HTTP diffusable",
|
|
"typeOpenapi": "OpenAPI",
|
|
"command": "Commande",
|
|
"arguments": "Arguments",
|
|
"envVars": "Variables d'environnement",
|
|
"headers": "En-têtes HTTP",
|
|
"key": "clé",
|
|
"value": "valeur",
|
|
"enabled": "Activé",
|
|
"enable": "Activer",
|
|
"disable": "Désactiver",
|
|
"reload": "Recharger",
|
|
"reloadSuccess": "Serveur rechargé avec succès",
|
|
"reloadError": "Échec du rechargement du serveur {{serverName}}",
|
|
"requestOptions": "Configuration de la connexion",
|
|
"timeout": "Délai d'attente de la requête",
|
|
"timeoutDescription": "Délai d'attente pour les requêtes vers le serveur MCP (ms)",
|
|
"maxTotalTimeout": "Délai d'attente total maximum",
|
|
"maxTotalTimeoutDescription": "Délai d'attente total maximum pour les requêtes envoyées au serveur MCP (ms) (à utiliser avec les notifications de progression)",
|
|
"resetTimeoutOnProgress": "Réinitialiser le délai d'attente en cas de progression",
|
|
"resetTimeoutOnProgressDescription": "Réinitialiser le délai d'attente lors des notifications de progression",
|
|
"keepAlive": "Configuration du maintien de connexion",
|
|
"enableKeepAlive": "Activer le maintien de connexion",
|
|
"keepAliveDescription": "Envoyer des requêtes ping périodiques pour maintenir la connexion. Utile pour les connexions de longue durée qui peuvent expirer.",
|
|
"keepAliveInterval": "Intervalle (ms)",
|
|
"keepAliveIntervalDescription": "Temps entre les pings de maintien de connexion en millisecondes (par défaut : 60000ms = 1 minute)",
|
|
"remove": "Retirer",
|
|
"toggleError": "Échec du basculement du serveur {{serverName}}",
|
|
"alreadyExists": "Le serveur {{serverName}} existe déjà",
|
|
"invalidData": "Données de serveur invalides fournies",
|
|
"notFound": "Serveur {{serverName}} non trouvé",
|
|
"namePlaceholder": "Entrez le nom du serveur",
|
|
"urlPlaceholder": "Entrez l'URL du serveur",
|
|
"commandPlaceholder": "Entrez la commande",
|
|
"argumentsPlaceholder": "Entrez les arguments",
|
|
"errorDetails": "Détails de l'erreur",
|
|
"viewErrorDetails": "Voir les détails de l'erreur",
|
|
"copyConfig": "Copier la configuration",
|
|
"confirmVariables": "Confirmer la configuration des variables",
|
|
"variablesDetected": "Variables détectées dans la configuration. Veuillez confirmer que ces variables sont correctement configurées :",
|
|
"detectedVariables": "Variables détectées",
|
|
"confirmVariablesMessage": "Veuillez vous assurer que ces variables sont correctement définies dans votre environnement d'exécution. Continuer l'ajout du serveur ?",
|
|
"confirmAndAdd": "Confirmer et ajouter",
|
|
"openapi": {
|
|
"inputMode": "Mode de saisie",
|
|
"inputModeUrl": "URL de la spécification",
|
|
"inputModeSchema": "Schéma JSON",
|
|
"specUrl": "URL de la spécification OpenAPI",
|
|
"schema": "Schéma JSON OpenAPI",
|
|
"schemaHelp": "Collez votre schéma JSON OpenAPI complet ici",
|
|
"security": "Type de sécurité",
|
|
"securityNone": "Aucun",
|
|
"securityApiKey": "Clé API",
|
|
"securityHttp": "Authentification HTTP",
|
|
"securityOAuth2": "OAuth 2.0",
|
|
"securityOpenIdConnect": "OpenID Connect",
|
|
"apiKeyConfig": "Configuration de la clé API",
|
|
"apiKeyName": "Nom de l'en-tête/paramètre",
|
|
"apiKeyIn": "Emplacement",
|
|
"apiKeyValue": "Valeur de la clé API",
|
|
"httpAuthConfig": "Configuration de l'authentification HTTP",
|
|
"httpScheme": "Schéma d'authentification",
|
|
"httpCredentials": "Identifiants",
|
|
"httpSchemeBasic": "Basic",
|
|
"httpSchemeBearer": "Bearer",
|
|
"httpSchemeDigest": "Digest",
|
|
"oauth2Config": "Configuration OAuth 2.0",
|
|
"oauth2Token": "Jeton d'accès",
|
|
"openIdConnectConfig": "Configuration OpenID Connect",
|
|
"openIdConnectUrl": "URL de découverte",
|
|
"openIdConnectToken": "Jeton d'identification",
|
|
"apiKeyInHeader": "En-tête",
|
|
"apiKeyInQuery": "Requête",
|
|
"apiKeyInCookie": "Cookie",
|
|
"passthroughHeaders": "En-têtes de transmission",
|
|
"passthroughHeadersHelp": "Liste séparée par des virgules des noms d'en-têtes à transmettre des requêtes d'appel d'outils vers les points de terminaison OpenAPI en amont (par ex. : Authorization, X-API-Key)"
|
|
},
|
|
"oauth": {
|
|
"sectionTitle": "Configuration OAuth",
|
|
"sectionDescription": "Configurez les identifiants client pour les serveurs protégés par OAuth (optionnel).",
|
|
"clientId": "Identifiant client",
|
|
"clientSecret": "Secret client",
|
|
"authorizationEndpoint": "Point de terminaison d'autorisation",
|
|
"tokenEndpoint": "Point de terminaison de jeton",
|
|
"scopes": "Scopes",
|
|
"scopesPlaceholder": "scope1 scope2",
|
|
"resource": "Ressource / Audience",
|
|
"accessToken": "Jeton d'accès",
|
|
"refreshToken": "Jeton d'actualisation"
|
|
}
|
|
},
|
|
"status": {
|
|
"online": "En ligne",
|
|
"offline": "Hors ligne",
|
|
"connecting": "Connexion en cours",
|
|
"oauthRequired": "OAuth requis",
|
|
"clickToAuthorize": "Cliquez pour autoriser avec OAuth",
|
|
"oauthWindowOpened": "Fenêtre d'autorisation OAuth ouverte. Veuillez compléter l'autorisation."
|
|
},
|
|
"errors": {
|
|
"general": "Une erreur est survenue",
|
|
"network": "Erreur de connexion réseau. Veuillez vérifier votre connexion Internet",
|
|
"serverConnection": "Impossible de se connecter au serveur. Veuillez vérifier si le serveur est en cours d'exécution",
|
|
"serverAdd": "Échec de l'ajout du serveur. Veuillez vérifier l'état du serveur",
|
|
"serverUpdate": "Échec de la modification du serveur {{serverName}}. Veuillez vérifier l'état du serveur",
|
|
"serverFetch": "Échec de la récupération des données du serveur. Veuillez réessayer plus tard",
|
|
"failedToReloadServer": "Échec du rechargement du serveur",
|
|
"initialStartup": "Le serveur est peut-être en cours de démarrage. Veuillez patienter un instant car ce processus peut prendre du temps au premier lancement...",
|
|
"serverInstall": "Échec de l'installation du serveur",
|
|
"failedToFetchSettings": "Échec de la récupération des paramètres",
|
|
"failedToUpdateRouteConfig": "Échec de la mise à jour de la configuration de routage",
|
|
"failedToUpdateSmartRoutingConfig": "Échec de la mise à jour de la configuration du routage intelligent"
|
|
},
|
|
"common": {
|
|
"processing": "En cours de traitement...",
|
|
"save": "Enregistrer",
|
|
"cancel": "Annuler",
|
|
"back": "Retour",
|
|
"refresh": "Actualiser",
|
|
"create": "Créer",
|
|
"creating": "Création en cours...",
|
|
"update": "Mettre à jour",
|
|
"updating": "Mise à jour en cours...",
|
|
"submitting": "Envoi en cours...",
|
|
"delete": "Supprimer",
|
|
"remove": "Retirer",
|
|
"copy": "Copier",
|
|
"copyId": "Copier l'ID",
|
|
"copyUrl": "Copier l'URL",
|
|
"copyJson": "Copier le JSON",
|
|
"copySuccess": "Copié dans le presse-papiers",
|
|
"copyFailed": "Échec de la copie",
|
|
"copied": "Copié",
|
|
"close": "Fermer",
|
|
"confirm": "Confirmer",
|
|
"language": "Langue",
|
|
"true": "Vrai",
|
|
"false": "Faux",
|
|
"dismiss": "Rejeter",
|
|
"github": "GitHub",
|
|
"wechat": "WeChat",
|
|
"discord": "Discord",
|
|
"required": "Requis",
|
|
"secret": "Secret",
|
|
"default": "Défaut",
|
|
"value": "Valeur",
|
|
"type": "Type",
|
|
"repeated": "Répété",
|
|
"valueHint": "Indice de valeur",
|
|
"choices": "Choix"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Tableau de bord",
|
|
"servers": "Serveurs",
|
|
"groups": "Groupes",
|
|
"users": "Utilisateurs",
|
|
"settings": "Paramètres",
|
|
"changePassword": "Changer le mot de passe",
|
|
"market": "Marché",
|
|
"cloud": "Marché Cloud",
|
|
"logs": "Journaux"
|
|
},
|
|
"pages": {
|
|
"dashboard": {
|
|
"title": "Tableau de bord",
|
|
"totalServers": "Total",
|
|
"onlineServers": "En ligne",
|
|
"offlineServers": "Hors ligne",
|
|
"connectingServers": "En connexion",
|
|
"recentServers": "Serveurs récents"
|
|
},
|
|
"servers": {
|
|
"title": "Gestion des serveurs"
|
|
},
|
|
"groups": {
|
|
"title": "Gestion des groupes"
|
|
},
|
|
"users": {
|
|
"title": "Gestion des utilisateurs"
|
|
},
|
|
"settings": {
|
|
"title": "Paramètres",
|
|
"language": "Langue",
|
|
"account": "Paramètres du compte",
|
|
"password": "Changer le mot de passe",
|
|
"appearance": "Apparence",
|
|
"routeConfig": "Sécurité",
|
|
"installConfig": "Installation",
|
|
"smartRouting": "Routage intelligent",
|
|
"oauthServer": "Serveur OAuth"
|
|
},
|
|
"market": {
|
|
"title": "Marché Hub - Marchés locaux et Cloud"
|
|
},
|
|
"logs": {
|
|
"title": "Journaux système"
|
|
}
|
|
},
|
|
"logs": {
|
|
"filters": "Filtres",
|
|
"search": "Rechercher dans les journaux...",
|
|
"autoScroll": "Défilement automatique",
|
|
"clearLogs": "Effacer les journaux",
|
|
"loading": "Chargement des journaux...",
|
|
"noLogs": "Aucun journal disponible.",
|
|
"noMatch": "Aucun journal ne correspond aux filtres actuels.",
|
|
"mainProcess": "Processus principal",
|
|
"childProcess": "Processus enfant",
|
|
"main": "Principal",
|
|
"child": "Enfant"
|
|
},
|
|
"groups": {
|
|
"add": "Ajouter",
|
|
"addNew": "Ajouter un nouveau groupe",
|
|
"edit": "Modifier le groupe",
|
|
"delete": "Supprimer",
|
|
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ce groupe ?",
|
|
"deleteWarning": "La suppression du groupe '{{name}}' le supprimera ainsi que toutes ses associations de serveurs. Cette action est irréversible.",
|
|
"name": "Nom du groupe",
|
|
"namePlaceholder": "Entrez le nom du groupe",
|
|
"nameRequired": "Le nom du groupe est requis",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Entrez la description du groupe (facultatif)",
|
|
"createError": "Échec de la création du groupe",
|
|
"updateError": "Échec de la mise à jour du groupe",
|
|
"deleteError": "Échec de la suppression du groupe",
|
|
"serverAddError": "Échec de l'ajout du serveur au groupe",
|
|
"serverRemoveError": "Échec de la suppression du serveur du groupe",
|
|
"addServer": "Ajouter un serveur au groupe",
|
|
"selectServer": "Sélectionnez un serveur à ajouter",
|
|
"servers": "Serveurs dans le groupe",
|
|
"remove": "Retirer",
|
|
"noGroups": "Aucun groupe disponible. Créez un nouveau groupe pour commencer.",
|
|
"noServers": "Aucun serveur dans ce groupe.",
|
|
"noServerOptions": "Aucun serveur disponible",
|
|
"serverCount": "{{count}} serveurs",
|
|
"toolSelection": "Sélection d'outils",
|
|
"toolsSelected": "Sélectionné",
|
|
"allTools": "Tous",
|
|
"selectedTools": "Outils sélectionnés",
|
|
"selectAll": "Tout sélectionner",
|
|
"selectNone": "Ne rien sélectionner",
|
|
"configureTools": "Configurer les outils"
|
|
},
|
|
"market": {
|
|
"title": "Installation locale",
|
|
"official": "Officiel",
|
|
"by": "Par",
|
|
"unknown": "Inconnu",
|
|
"tools": "outils",
|
|
"search": "Rechercher",
|
|
"searchPlaceholder": "Rechercher des serveurs par nom, catégorie ou tags",
|
|
"clearFilters": "Effacer",
|
|
"clearCategoryFilter": "",
|
|
"clearTagFilter": "",
|
|
"categories": "Catégories",
|
|
"tags": "Tags",
|
|
"showTags": "Afficher les tags",
|
|
"hideTags": "Masquer les tags",
|
|
"moreTags": "",
|
|
"noServers": "Aucun serveur trouvé correspondant à votre recherche",
|
|
"backToList": "Retour à la liste",
|
|
"install": "Installer",
|
|
"installing": "Installation en cours...",
|
|
"installed": "Installé",
|
|
"installServer": "Installer le serveur : {{name}}",
|
|
"installSuccess": "Serveur {{serverName}} installé avec succès",
|
|
"author": "Auteur",
|
|
"license": "Licence",
|
|
"repository": "Dépôt",
|
|
"examples": "Exemples",
|
|
"arguments": "Arguments",
|
|
"argumentName": "Nom",
|
|
"description": "Description",
|
|
"required": "Requis",
|
|
"example": "Exemple",
|
|
"viewSchema": "Voir le schéma",
|
|
"fetchError": "Erreur lors de la récupération des serveurs du marché",
|
|
"serverNotFound": "Serveur non trouvé",
|
|
"searchError": "Erreur lors de la recherche de serveurs",
|
|
"filterError": "Erreur lors du filtrage des serveurs par catégorie",
|
|
"tagFilterError": "Erreur lors du filtrage des serveurs par tag",
|
|
"noInstallationMethod": "Aucune méthode d'installation disponible pour ce serveur",
|
|
"showing": "Affichage de {{from}}-{{to}} sur {{total}} serveurs",
|
|
"perPage": "Par page",
|
|
"confirmVariablesMessage": "Veuillez vous assurer que ces variables sont correctement définies dans votre environnement d'exécution. Continuer l'installation du serveur ?",
|
|
"confirmAndInstall": "Confirmer et installer"
|
|
},
|
|
"oauthServer": {
|
|
"authorizeTitle": "Autoriser l'application",
|
|
"authorizeSubtitle": "Autorisez cette application à accéder à votre compte MCPHub.",
|
|
"buttons": {
|
|
"approve": "Autoriser l'accès",
|
|
"deny": "Refuser",
|
|
"approveSubtitle": "Recommandé si vous faites confiance à cette application.",
|
|
"denySubtitle": "Vous pourrez toujours accorder l'accès plus tard."
|
|
}
|
|
},
|
|
"cloud": {
|
|
"title": "Support Cloud",
|
|
"subtitle": "Propulsé par MCPRouter",
|
|
"by": "Par",
|
|
"server": "Serveur",
|
|
"config": "Config",
|
|
"created": "Créé",
|
|
"updated": "Mis à jour",
|
|
"available": "Disponible",
|
|
"description": "Description",
|
|
"details": "Détails",
|
|
"tools": "Outils",
|
|
"tool": "outil",
|
|
"toolsAvailable": "{{count}} outil disponible||{{count}} outils disponibles",
|
|
"loadingTools": "Chargement des outils...",
|
|
"noTools": "Aucun outil disponible pour ce serveur",
|
|
"noDescription": "Aucune description disponible",
|
|
"viewDetails": "Voir les détails",
|
|
"parameters": "Paramètres",
|
|
"result": "Résultat",
|
|
"error": "Erreur",
|
|
"callTool": "Appeler",
|
|
"calling": "Appel en cours...",
|
|
"toolCallSuccess": "L'outil {{toolName}} a été exécuté avec succès",
|
|
"toolCallError": "Échec de l'appel de l'outil {{toolName}} : {{error}}",
|
|
"viewSchema": "Voir le schéma",
|
|
"backToList": "Retour au marché Cloud",
|
|
"search": "Rechercher",
|
|
"searchPlaceholder": "Rechercher des serveurs cloud par nom, titre ou auteur",
|
|
"clearFilters": "Effacer les filtres",
|
|
"clearCategoryFilter": "Effacer",
|
|
"clearTagFilter": "Effacer",
|
|
"categories": "Catégories",
|
|
"tags": "Tags",
|
|
"noCategories": "Aucune catégorie trouvée",
|
|
"noTags": "Aucun tag trouvé",
|
|
"noServers": "Aucun serveur cloud trouvé",
|
|
"fetchError": "Erreur lors de la récupération des serveurs cloud",
|
|
"serverNotFound": "Serveur cloud non trouvé",
|
|
"searchError": "Erreur lors de la recherche de serveurs cloud",
|
|
"filterError": "Erreur lors du filtrage des serveurs cloud par catégorie",
|
|
"tagFilterError": "Erreur lors du filtrage des serveurs cloud par tag",
|
|
"showing": "Affichage de {{from}}-{{to}} sur {{total}} serveurs cloud",
|
|
"perPage": "Par page",
|
|
"apiKeyNotConfigured": "Clé API MCPRouter non configurée",
|
|
"apiKeyNotConfiguredDescription": "Pour utiliser les serveurs cloud, vous devez configurer votre clé API MCPRouter.",
|
|
"getApiKey": "Obtenir une clé API",
|
|
"configureInSettings": "Configurer dans les paramètres",
|
|
"installServer": "Installer {{name}}",
|
|
"installSuccess": "Serveur {{name}} installé avec succès",
|
|
"installError": "Échec de l'installation du serveur : {{error}}"
|
|
},
|
|
"registry": {
|
|
"title": "Registre",
|
|
"official": "Officiel",
|
|
"latest": "Dernière version",
|
|
"description": "Description",
|
|
"website": "Site web",
|
|
"repository": "Dépôt",
|
|
"packages": "Paquets",
|
|
"package": "paquet",
|
|
"remotes": "Services distants",
|
|
"remote": "service distant",
|
|
"published": "Publié",
|
|
"updated": "Mis à jour",
|
|
"install": "Installer",
|
|
"installing": "Installation...",
|
|
"installed": "Installé",
|
|
"installServer": "Installer {{name}}",
|
|
"installSuccess": "Serveur {{name}} installé avec succès",
|
|
"installError": "Échec de l'installation du serveur : {{error}}",
|
|
"noDescription": "Aucune description disponible",
|
|
"viewDetails": "Voir les détails",
|
|
"backToList": "Retour au registre",
|
|
"search": "Rechercher",
|
|
"searchPlaceholder": "Rechercher des serveurs par nom",
|
|
"clearFilters": "Effacer",
|
|
"noServers": "Aucun serveur trouvé dans le registre",
|
|
"fetchError": "Erreur lors de la récupération des serveurs du registre",
|
|
"serverNotFound": "Serveur du registre non trouvé",
|
|
"showing": "Affichage de {{from}}-{{to}} sur {{total}} serveurs du registre",
|
|
"perPage": "Par page",
|
|
"environmentVariables": "Variables d'environnement",
|
|
"packageArguments": "Arguments du paquet",
|
|
"runtimeArguments": "Arguments d'exécution",
|
|
"headers": "En-têtes"
|
|
},
|
|
"tool": {
|
|
"run": "Exécuter",
|
|
"running": "Exécution en cours...",
|
|
"runTool": "Exécuter l'outil",
|
|
"cancel": "Annuler",
|
|
"noDescription": "Aucune description disponible",
|
|
"inputSchema": "Schéma d'entrée :",
|
|
"runToolWithName": "Exécuter l'outil : {{name}}",
|
|
"execution": "Exécution de l'outil",
|
|
"successful": "Réussi",
|
|
"failed": "Échoué",
|
|
"result": "Résultat :",
|
|
"error": "Erreur",
|
|
"errorDetails": "Détails de l'erreur :",
|
|
"noContent": "L'outil a été exécuté avec succès mais n'a renvoyé aucun contenu.",
|
|
"unknownError": "Une erreur inconnue est survenue",
|
|
"jsonResponse": "Réponse JSON :",
|
|
"toolResult": "Résultat de l'outil",
|
|
"noParameters": "Cet outil ne nécessite aucun paramètre.",
|
|
"selectOption": "Sélectionnez une option",
|
|
"enterValue": "Entrez la valeur {{type}}",
|
|
"enabled": "Activé",
|
|
"enableSuccess": "Outil {{name}} activé avec succès",
|
|
"disableSuccess": "Outil {{name}} désactivé avec succès",
|
|
"toggleFailed": "Échec du basculement de l'état de l'outil",
|
|
"parameters": "Paramètres de l'outil",
|
|
"formMode": "Mode formulaire",
|
|
"jsonMode": "Mode JSON",
|
|
"jsonConfiguration": "Configuration JSON",
|
|
"invalidJsonFormat": "Format JSON invalide",
|
|
"fixJsonBeforeSwitching": "Veuillez corriger le format JSON avant de passer en mode formulaire",
|
|
"item": "Élément {{index}}",
|
|
"addItem": "Ajouter un élément {{key}}",
|
|
"enterKey": "Entrez {{key}}"
|
|
},
|
|
"prompt": {
|
|
"run": "Obtenir",
|
|
"running": "Obtention en cours...",
|
|
"result": "Résultat de l'invite",
|
|
"error": "Erreur de l'invite",
|
|
"execution": "Exécution de l'invite",
|
|
"successful": "Réussi",
|
|
"failed": "Échoué",
|
|
"errorDetails": "Détails de l'erreur :",
|
|
"noContent": "L'invite a été exécutée avec succès mais n'a renvoyé aucun contenu.",
|
|
"unknownError": "Une erreur inconnue est survenue",
|
|
"jsonResponse": "Réponse JSON :",
|
|
"description": "Description",
|
|
"messages": "Messages",
|
|
"noDescription": "Aucune description disponible",
|
|
"runPromptWithName": "Obtenir l'invite : {{name}}",
|
|
"descriptionUpdateSuccess": "Description de l'invite mise à jour avec succès",
|
|
"descriptionUpdateFailed": "Échec de la mise à jour de la description de l'invite"
|
|
},
|
|
"settings": {
|
|
"enableGlobalRoute": "Activer la route globale",
|
|
"enableGlobalRouteDescription": "Autoriser les connexions au point de terminaison /sse sans spécifier d'ID de groupe",
|
|
"enableGroupNameRoute": "Activer la route par nom de groupe",
|
|
"enableGroupNameRouteDescription": "Autoriser les connexions au point de terminaison /sse en utilisant les noms de groupe au lieu des ID de groupe",
|
|
"enableBearerAuth": "Activer l'authentification Bearer",
|
|
"enableBearerAuthDescription": "Exiger une authentification par jeton Bearer pour les requêtes MCP",
|
|
"bearerAuthKey": "Clé d'authentification Bearer",
|
|
"bearerAuthKeyDescription": "La clé d'authentification qui sera requise dans le jeton Bearer",
|
|
"bearerAuthKeyPlaceholder": "Entrez la clé d'authentification Bearer",
|
|
"skipAuth": "Ignorer l'authentification",
|
|
"skipAuthDescription": "Contourner l'exigence de connexion pour l'accès au frontend et à l'API (DÉSACTIVÉ PAR DÉFAUT pour des raisons de sécurité)",
|
|
"pythonIndexUrl": "URL du dépôt de paquets Python",
|
|
"pythonIndexUrlDescription": "Définir la variable d'environnement UV_DEFAULT_INDEX pour l'installation de paquets Python",
|
|
"pythonIndexUrlPlaceholder": "ex. https://pypi.org/simple",
|
|
"npmRegistry": "URL du registre NPM",
|
|
"npmRegistryDescription": "Définir la variable d'environnement npm_config_registry pour l'installation de paquets NPM",
|
|
"npmRegistryPlaceholder": "ex. https://registry.npmjs.org/",
|
|
"baseUrl": "URL de base",
|
|
"baseUrlDescription": "URL de base pour les requêtes MCP",
|
|
"baseUrlPlaceholder": "ex. http://localhost:3000",
|
|
"installConfig": "Installation",
|
|
"systemConfigUpdated": "Configuration système mise à jour avec succès",
|
|
"enableSmartRouting": "Activer le routage intelligent",
|
|
"enableSmartRoutingDescription": "Activer la fonctionnalité de routage intelligent pour rechercher l'outil le plus approprié en fonction de l'entrée (en utilisant le nom de groupe $smart)",
|
|
"dbUrl": "URL PostgreSQL (nécessite le support de pgvector)",
|
|
"dbUrlPlaceholder": "ex. postgresql://user:password@localhost:5432/dbname",
|
|
"openaiApiBaseUrl": "URL de base de l'API OpenAI",
|
|
"openaiApiBaseUrlPlaceholder": "https://api.openai.com/v1",
|
|
"openaiApiKey": "Clé API OpenAI",
|
|
"openaiApiKeyPlaceholder": "Entrez la clé API OpenAI",
|
|
"openaiApiEmbeddingModel": "Modèle d'intégration OpenAI",
|
|
"openaiApiEmbeddingModelPlaceholder": "text-embedding-3-small",
|
|
"smartRoutingConfigUpdated": "Configuration du routage intelligent mise à jour avec succès",
|
|
"smartRoutingRequiredFields": "L'URL de la base de données et la clé API OpenAI sont requises pour activer le routage intelligent",
|
|
"smartRoutingValidationError": "Veuillez remplir les champs obligatoires avant d'activer le routage intelligent : {{fields}}",
|
|
"mcpRouterConfig": "Marché Cloud",
|
|
"mcpRouterApiKey": "Clé API MCPRouter",
|
|
"mcpRouterApiKeyDescription": "Clé API pour accéder aux services du marché cloud MCPRouter",
|
|
"mcpRouterApiKeyPlaceholder": "Entrez la clé API MCPRouter",
|
|
"mcpRouterReferer": "Référent",
|
|
"mcpRouterRefererDescription": "En-tête Referer pour les requêtes API MCPRouter",
|
|
"mcpRouterRefererPlaceholder": "https://www.mcphubx.com",
|
|
"mcpRouterTitle": "Titre",
|
|
"mcpRouterTitleDescription": "En-tête Title pour les requêtes API MCPRouter",
|
|
"mcpRouterTitlePlaceholder": "MCPHub",
|
|
"mcpRouterBaseUrl": "URL de base",
|
|
"mcpRouterBaseUrlDescription": "URL de base pour l'API MCPRouter",
|
|
"mcpRouterBaseUrlPlaceholder": "https://api.mcprouter.to/v1",
|
|
"systemSettings": "Paramètres système",
|
|
"nameSeparatorLabel": "Séparateur de noms",
|
|
"nameSeparatorDescription": "Caractère utilisé pour séparer le nom du serveur et le nom de l'outil/prompt (par défaut : -)",
|
|
"enableSessionRebuild": "Activer la reconstruction de session serveur",
|
|
"enableSessionRebuildDescription": "Lorsqu'il est activé, applique le code de reconstruction de session serveur amélioré pour une meilleure expérience de gestion de session",
|
|
"restartRequired": "Configuration enregistrée. Il est recommandé de redémarrer l'application pour s'assurer que tous les services chargent correctement les nouveaux paramètres.",
|
|
"exportMcpSettings": "Exporter les paramètres",
|
|
"mcpSettingsJson": "JSON des paramètres MCP",
|
|
"mcpSettingsJsonDescription": "Afficher, copier ou télécharger votre configuration mcp_settings.json actuelle pour la sauvegarde ou la migration vers d'autres outils",
|
|
"copyToClipboard": "Copier dans le presse-papiers",
|
|
"downloadJson": "Télécharger JSON",
|
|
"exportSuccess": "Paramètres exportés avec succès",
|
|
"exportError": "Échec de la récupération des paramètres",
|
|
"enableOauthServer": "Activer le serveur OAuth",
|
|
"enableOauthServerDescription": "Permet à MCPHub d'émettre des jetons OAuth pour les clients externes",
|
|
"requireClientSecret": "Exiger un secret client",
|
|
"requireClientSecretDescription": "Lorsque activé, les clients confidentiels doivent présenter un client secret (désactivez-le pour les clients PKCE publics)",
|
|
"requireState": "Exiger le paramètre state",
|
|
"requireStateDescription": "Refuser les demandes d'autorisation qui n'incluent pas le paramètre state",
|
|
"accessTokenLifetime": "Durée de vie du jeton d'accès (secondes)",
|
|
"accessTokenLifetimeDescription": "Durée pendant laquelle les jetons d'accès émis restent valides",
|
|
"accessTokenLifetimePlaceholder": "ex. 3600",
|
|
"refreshTokenLifetime": "Durée de vie du jeton d'actualisation (secondes)",
|
|
"refreshTokenLifetimeDescription": "Durée pendant laquelle les jetons d'actualisation restent valides",
|
|
"refreshTokenLifetimePlaceholder": "ex. 1209600",
|
|
"authorizationCodeLifetime": "Durée de vie du code d'autorisation (secondes)",
|
|
"authorizationCodeLifetimeDescription": "Temps pendant lequel les codes d'autorisation peuvent être échangés",
|
|
"authorizationCodeLifetimePlaceholder": "ex. 300",
|
|
"allowedScopes": "Scopes autorisés",
|
|
"allowedScopesDescription": "Liste séparée par des virgules des scopes que les utilisateurs peuvent approuver",
|
|
"allowedScopesPlaceholder": "ex. read, write",
|
|
"enableDynamicRegistration": "Activer l'enregistrement dynamique",
|
|
"dynamicRegistrationDescription": "Autoriser les clients conformes RFC 7591 à s'enregistrer via l'endpoint public",
|
|
"dynamicRegistrationAllowedGrantTypes": "Types de flux autorisés",
|
|
"dynamicRegistrationAllowedGrantTypesDescription": "Liste séparée par des virgules des types de flux disponibles pour les clients enregistrés dynamiquement",
|
|
"dynamicRegistrationAllowedGrantTypesPlaceholder": "ex. authorization_code, refresh_token",
|
|
"dynamicRegistrationAuth": "Exiger une authentification",
|
|
"dynamicRegistrationAuthDescription": "Protège l'endpoint d'enregistrement afin que seules les requêtes authentifiées puissent créer des clients",
|
|
"invalidNumberInput": "Veuillez saisir un nombre valide supérieur ou égal à zéro"
|
|
},
|
|
"dxt": {
|
|
"upload": "Télécharger",
|
|
"uploadTitle": "Télécharger l'extension DXT",
|
|
"dropFileHere": "Déposez votre fichier .dxt ici",
|
|
"orClickToSelect": "ou cliquez pour sélectionner depuis votre ordinateur",
|
|
"invalidFileType": "Veuillez sélectionner un fichier .dxt valide",
|
|
"noFileSelected": "Veuillez sélectionner un fichier .dxt à télécharger",
|
|
"uploading": "Téléchargement en cours...",
|
|
"uploadFailed": "Échec du téléchargement du fichier DXT",
|
|
"installServer": "Installer le serveur MCP depuis DXT",
|
|
"extensionInfo": "Informations sur l'extension",
|
|
"name": "Nom",
|
|
"version": "Version",
|
|
"description": "Description",
|
|
"author": "Auteur",
|
|
"tools": "Outils",
|
|
"serverName": "Nom du serveur",
|
|
"serverNamePlaceholder": "Entrez un nom pour ce serveur",
|
|
"install": "Installer",
|
|
"installing": "Installation en cours...",
|
|
"installFailed": "Échec de l'installation du serveur depuis DXT",
|
|
"serverExistsTitle": "Le serveur existe déjà",
|
|
"serverExistsConfirm": "Le serveur '{{serverName}}' existe déjà. Voulez-vous le remplacer par la nouvelle version ?",
|
|
"override": "Remplacer"
|
|
},
|
|
"jsonImport": {
|
|
"button": "Importer",
|
|
"title": "Importer des serveurs depuis JSON",
|
|
"inputLabel": "Configuration JSON du serveur",
|
|
"inputHelp": "Collez votre configuration JSON de serveur. Prend en charge les types de serveurs STDIO, SSE et HTTP (streamable-http).",
|
|
"preview": "Aperçu",
|
|
"previewTitle": "Aperçu des serveurs à importer",
|
|
"import": "Importer",
|
|
"importing": "Importation en cours...",
|
|
"invalidFormat": "Format JSON invalide. Le JSON doit contenir un objet 'mcpServers'.",
|
|
"parseError": "Échec de l'analyse du JSON. Veuillez vérifier le format et réessayer.",
|
|
"addFailed": "Échec de l'ajout du serveur",
|
|
"importFailed": "Échec de l'importation des serveurs",
|
|
"partialSuccess": "{{count}} serveur(s) sur {{total}} importé(s) avec succès. Certains serveurs ont échoué :"
|
|
},
|
|
"groupImport": {
|
|
"button": "Importer",
|
|
"title": "Importer des groupes depuis JSON",
|
|
"inputLabel": "Configuration JSON des groupes",
|
|
"inputHelp": "Collez votre configuration JSON de groupes. Chaque groupe peut contenir une liste de serveurs.",
|
|
"preview": "Aperçu",
|
|
"previewTitle": "Aperçu des groupes à importer",
|
|
"import": "Importer",
|
|
"importing": "Importation en cours...",
|
|
"invalidFormat": "Format JSON invalide. Le JSON doit contenir un tableau 'groups'.",
|
|
"missingName": "Chaque groupe doit avoir un champ 'name'.",
|
|
"parseError": "Échec de l'analyse du JSON. Veuillez vérifier le format et réessayer.",
|
|
"addFailed": "Échec de l'ajout du groupe",
|
|
"importFailed": "Échec de l'importation des groupes",
|
|
"partialSuccess": "{{count}} groupe(s) sur {{total}} importé(s) avec succès. Certains groupes ont échoué :"
|
|
},
|
|
"users": {
|
|
"add": "Ajouter un utilisateur",
|
|
"addNew": "Ajouter un nouvel utilisateur",
|
|
"edit": "Modifier l'utilisateur",
|
|
"delete": "Supprimer l'utilisateur",
|
|
"create": "Créer un utilisateur",
|
|
"update": "Mettre à jour l'utilisateur",
|
|
"username": "Nom d'utilisateur",
|
|
"password": "Mot de passe",
|
|
"newPassword": "Nouveau mot de passe",
|
|
"confirmPassword": "Confirmer le mot de passe",
|
|
"changePassword": "Changer le mot de passe",
|
|
"adminRole": "Administrateur",
|
|
"admin": "Admin",
|
|
"user": "Utilisateur",
|
|
"role": "Rôle",
|
|
"actions": "Actions",
|
|
"addFirst": "Ajoutez votre premier utilisateur",
|
|
"permissions": "Permissions",
|
|
"adminPermissions": "Accès complet au système",
|
|
"userPermissions": "Accès limité",
|
|
"currentUser": "Vous",
|
|
"noUsers": "Aucun utilisateur trouvé",
|
|
"adminRequired": "Un accès administrateur est requis pour gérer les utilisateurs",
|
|
"usernameRequired": "Le nom d'utilisateur est requis",
|
|
"passwordRequired": "Le mot de passe est requis",
|
|
"passwordTooShort": "Le mot de passe doit comporter au moins 6 caractères",
|
|
"passwordMismatch": "Les mots de passe ne correspondent pas",
|
|
"usernamePlaceholder": "Entrez le nom d'utilisateur",
|
|
"passwordPlaceholder": "Entrez le mot de passe",
|
|
"newPasswordPlaceholder": "Laissez vide pour conserver le mot de passe actuel",
|
|
"confirmPasswordPlaceholder": "Confirmez le nouveau mot de passe",
|
|
"createError": "Échec de la création de l'utilisateur",
|
|
"updateError": "Échec de la mise à jour de l'utilisateur",
|
|
"deleteError": "Échec de la suppression de l'utilisateur",
|
|
"statsError": "Échec de la récupération des statistiques utilisateur",
|
|
"deleteConfirmation": "Êtes-vous sûr de vouloir supprimer l'utilisateur '{{username}}' ? Cette action est irréversible.",
|
|
"confirmDelete": "Supprimer l'utilisateur",
|
|
"deleteWarning": "Êtes-vous sûr de vouloir supprimer l'utilisateur '{{username}}' ? Cette action est irréversible."
|
|
},
|
|
"api": {
|
|
"errors": {
|
|
"readonly": "Lecture seule pour l'environnement de démonstration",
|
|
"invalid_credentials": "Nom d'utilisateur ou mot de passe invalide",
|
|
"serverNameRequired": "Le nom du serveur est requis",
|
|
"serverConfigRequired": "La configuration du serveur est requise",
|
|
"serverConfigInvalid": "La configuration du serveur doit inclure une URL, une URL de spécification OpenAPI ou un schéma, ou une commande avec des arguments",
|
|
"serverTypeInvalid": "Le type de serveur doit être l'un des suivants : stdio, sse, streamable-http, openapi",
|
|
"urlRequiredForType": "L'URL est requise pour le type de serveur {{type}}",
|
|
"openapiSpecRequired": "L'URL de la spécification OpenAPI ou le schéma est requis pour le type de serveur openapi",
|
|
"headersInvalidFormat": "Les en-têtes doivent être un objet",
|
|
"headersNotSupportedForStdio": "Les en-têtes ne sont pas pris en charge pour le type de serveur stdio",
|
|
"serverNotFound": "Serveur non trouvé",
|
|
"failedToRemoveServer": "Serveur non trouvé ou échec de la suppression",
|
|
"internalServerError": "Erreur interne du serveur",
|
|
"failedToGetServers": "Échec de la récupération des informations sur les serveurs",
|
|
"failedToGetServerSettings": "Échec de la récupération des paramètres du serveur",
|
|
"failedToGetServerConfig": "Échec de la récupération de la configuration du serveur",
|
|
"failedToSaveSettings": "Échec de l'enregistrement des paramètres",
|
|
"toolNameRequired": "Le nom du serveur et le nom de l'outil sont requis",
|
|
"descriptionMustBeString": "La description doit être une chaîne de caractères",
|
|
"groupIdRequired": "L'ID de groupe est requis",
|
|
"groupNameRequired": "Le nom du groupe est requis",
|
|
"groupNotFound": "Groupe non trouvé",
|
|
"groupIdAndServerNameRequired": "L'ID de groupe和le nom du serveur sont requis",
|
|
"groupOrServerNotFound": "Groupe ou serveur non trouvé",
|
|
"toolsMustBeAllOrArray": "Les outils doivent être \"all\" ou un tableau de chaînes de caractères",
|
|
"serverNameAndToolNameRequired": "Le nom du serveur et le nom de l'outil sont requis",
|
|
"usernameRequired": "Le nom d'utilisateur est requis",
|
|
"userNotFound": "Utilisateur non trouvé",
|
|
"failedToGetUsers": "Échec de la récupération des informations sur les utilisateurs",
|
|
"failedToGetUserInfo": "Échec de la récupération des informations sur l'utilisateur",
|
|
"failedToGetUserStats": "Échec de la récupération des statistiques de l'utilisateur",
|
|
"marketServerNameRequired": "Le nom du serveur du marché est requis",
|
|
"marketServerNotFound": "Serveur du marché non trouvé",
|
|
"failedToGetMarketServers": "Échec de la récupération des informations sur les serveurs du marché",
|
|
"failedToGetMarketServer": "Échec de la récupération des informations sur le serveur du marché",
|
|
"failedToGetMarketCategories": "Échec de la récupération des catégories du marché",
|
|
"failedToGetMarketTags": "Échec de la récupération des tags du marché",
|
|
"failedToSearchMarketServers": "Échec de la recherche des serveurs du marché",
|
|
"failedToFilterMarketServers": "Échec du filtrage des serveurs du marché",
|
|
"failedToProcessDxtFile": "Échec du traitement du fichier DXT"
|
|
},
|
|
"success": {
|
|
"serverCreated": "Serveur créé avec succès",
|
|
"serverUpdated": "Serveur mis à jour avec succès",
|
|
"serverRemoved": "Serveur supprimé avec succès",
|
|
"serverToggled": "État du serveur basculé avec succès",
|
|
"toolToggled": "Outil {{name}} {{action}} avec succès",
|
|
"toolDescriptionUpdated": "Description de l'outil {{name}} mise à jour avec succès",
|
|
"systemConfigUpdated": "Configuration système mise à jour avec succès",
|
|
"groupCreated": "Groupe créé avec succès",
|
|
"groupUpdated": "Groupe mis à jour avec succès",
|
|
"groupDeleted": "Groupe supprimé avec succès",
|
|
"serverAddedToGroup": "Serveur ajouté au groupe avec succès",
|
|
"serverRemovedFromGroup": "Serveur supprimé du groupe avec succès",
|
|
"serverToolsUpdated": "Outils du serveur mis à jour avec succès"
|
|
}
|
|
},
|
|
"oauthCallback": {
|
|
"authorizationFailed": "Échec de l'autorisation",
|
|
"authorizationFailedError": "Erreur",
|
|
"authorizationFailedDetails": "Détails",
|
|
"invalidRequest": "Requête invalide",
|
|
"missingStateParameter": "Paramètre d'état OAuth requis manquant.",
|
|
"missingCodeParameter": "Paramètre de code d'autorisation requis manquant.",
|
|
"serverNotFound": "Serveur introuvable",
|
|
"serverNotFoundMessage": "Impossible de trouver le serveur associé à cette demande d'autorisation.",
|
|
"sessionExpiredMessage": "La session d'autorisation a peut-être expiré. Veuillez réessayer l'autorisation.",
|
|
"authorizationSuccessful": "Autorisation réussie",
|
|
"server": "Serveur",
|
|
"status": "État",
|
|
"connected": "Connecté",
|
|
"successMessage": "Le serveur a été autorisé et connecté avec succès.",
|
|
"autoCloseMessage": "Cette fenêtre se fermera automatiquement dans 3 secondes...",
|
|
"closeNow": "Fermer maintenant",
|
|
"connectionError": "Erreur de connexion",
|
|
"connectionErrorMessage": "L'autorisation a réussi, mais la connexion au serveur a échoué.",
|
|
"reconnectMessage": "Veuillez essayer de vous reconnecter à partir du tableau de bord.",
|
|
"configurationError": "Erreur de configuration",
|
|
"configurationErrorMessage": "Le transport du serveur ne prend pas en charge OAuth finishAuth(). Veuillez vous assurer que le serveur est configuré avec le transport streamable-http.",
|
|
"internalError": "Erreur interne",
|
|
"internalErrorMessage": "Une erreur inattendue s'est produite lors du traitement du callback OAuth.",
|
|
"closeWindow": "Fermer la fenêtre"
|
|
}
|
|
} |