♻️ refactor(view): System and Auth Control

This commit is contained in:
web
2025-08-04 08:58:57 -07:00
committed by speakeloudest
parent 9ba3ec40d6
commit 97aa24ba8e
333 changed files with 13905 additions and 9399 deletions
-16
View File
@@ -1,16 +0,0 @@
{
"clientId": "ID de service",
"clientIdDescription": "ID de service Apple, vous pouvez l'obtenir depuis le portail des développeurs Apple",
"clientSecret": "Clé Privée",
"clientSecretDescription": "Le contenu de la clé privée (fichier .p8) utilisé pour l'authentification avec Apple",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur identifiant Apple",
"keyId": "ID de clé",
"keyIdDescription": "L'ID de votre clé privée depuis le portail des développeurs Apple",
"redirectUri": "URL de redirection",
"redirectUriDescription": "Veuillez remplir l'adresse API de l'URL redirigée après avoir réussi l'authentification Apple. Ne pas utiliser / à la fin.",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"teamId": "ID de l'équipe",
"teamIdDescription": "ID d'équipe du développeur Apple"
}
+188 -56
View File
@@ -1,14 +1,149 @@
{
"invite": {
"commissionFirstTimeOnly": "Commission uniquement pour le premier achat",
"commissionFirstTimeOnlyDescription": "Lorsqu'il est activé, la commission est générée uniquement sur le premier paiement de l'invitant ; vous pouvez configurer des utilisateurs individuels dans la gestion des utilisateurs",
"enableForcedInvite": "Activer l'invitation forcée",
"enableForcedInviteDescription": "Lorsqu'il est activé, seuls les utilisateurs invités peuvent s'inscrire",
"inputPlaceholder": "Entrer",
"inviteCommissionPercentage": "Pourcentage de commission d'invitation",
"inviteCommissionPercentageDescription": "Ratio de distribution de commission global par défaut ; vous pouvez configurer des ratios individuels dans la gestion des utilisateurs",
"inviteSettings": "Paramètres d'invitation",
"saveSuccess": "Enregistrement réussi"
"apple": {
"clientId": "ID de service",
"clientIdDescription": "ID de service Apple, vous pouvez l'obtenir depuis le portail des développeurs Apple",
"clientSecret": "Clé Privée",
"clientSecretDescription": "Le contenu de la clé privée (fichier .p8) utilisé pour l'authentification avec Apple",
"description": "Authentifiez les utilisateurs avec des comptes Apple",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur identifiant Apple",
"keyId": "ID de clé",
"keyIdDescription": "L'ID de votre clé privée depuis le portail des développeurs Apple",
"redirectUri": "URL de redirection",
"redirectUriDescription": "Veuillez remplir l'adresse API de l'URL redirigée après avoir réussi l'authentification Apple. Ne pas utiliser / à la fin.",
"teamId": "ID de l'équipe",
"teamIdDescription": "ID d'équipe du développeur Apple",
"title": "Connexion avec Apple"
},
"common": {
"cancel": "Annuler",
"save": "Enregistrer",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistré avec succès"
},
"communicationMethods": "Communication Methods",
"device": {
"blockVirtualMachine": "Bloquer la machine virtuelle",
"blockVirtualMachineDescription": "Lorsqu'il est activé, les appareils seront empêchés de fonctionner sur des machines virtuelles ou des émulateurs",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "La clé de communication est utilisée pour une communication sécurisée entre les appareils et les serveurs",
"description": "Authentifiez les utilisateurs avec des identifiants d'appareil",
"enable": "Activer",
"enableDescription": "Après activation, plusieurs identifiants de périphériques tels que IMEI/IDFA/IDFV/AndroidID/adresse Mac sont pris en charge pour la connexion et l'enregistrement",
"enableSecurity": "Activer le chiffrement de la communication",
"enableSecurityDescription": "Lorsqu'il est activé, la communication entre les appareils et les serveurs sera chiffrée",
"showAds": "Afficher les publicités",
"showAdsDescription": "Lorsqu'il est activé, des publicités seront affichées sur les appareils",
"title": "Authentification par appareil"
},
"deviceAuthMethods": "Device Authentication Methods",
"email": {
"basicSettings": "Paramètres de base",
"description": "Authentifiez les utilisateurs avec des adresses e-mail",
"emailSuffixWhitelist": "Liste blanche des suffixes d'email",
"emailSuffixWhitelistDescription": "Lorsqu'elle est activée, seules les adresses e-mail avec des suffixes figurant dans la liste peuvent s'inscrire",
"emailVerification": "Vérification de l'email",
"emailVerificationDescription": "Lorsqu'elle est activée, les utilisateurs devront vérifier leur adresse e-mail",
"enable": "Activer",
"enableDescription": "Après activation, les fonctions d'enregistrement par e-mail, de connexion, de liaison et de délégation seront activées",
"expirationEmailTemplate": "Modèle d'avis d'expiration",
"expirationTemplate": "Avis d'expiration",
"inputPlaceholder": "Entrez la valeur...",
"logs": "Journaux",
"logsDescription": "Voir l'historique des e-mails envoyés et leur statut",
"maintenanceEmailTemplate": "Modèle d'avis de maintenance",
"maintenanceTemplate": "Avis de maintenance",
"sendFailure": "Échec de l'envoi de l'email de test, veuillez vérifier la configuration.",
"sendSuccess": "E-mail de test envoyé avec succès.",
"sendTestEmail": "Envoyer un e-mail de test",
"sendTestEmailDescription": "Envoyez un e-mail de test pour vérifier la configuration.",
"senderAddress": "Adresse de l'expéditeur",
"senderAddressDescription": "L'adresse e-mail par défaut utilisée pour envoyer des e-mails.",
"smtpAccount": "Compte SMTP",
"smtpAccountDescription": "Le compte de messagerie utilisé pour l'authentification.",
"smtpEncryptionMethod": "Méthode de chiffrement SMTP",
"smtpEncryptionMethodDescription": "Choisissez si vous souhaitez activer le chiffrement SSL/TLS.",
"smtpPassword": "Mot de passe SMTP",
"smtpPasswordDescription": "Le mot de passe pour le compte SMTP.",
"smtpServerAddress": "Adresse du serveur SMTP",
"smtpServerAddressDescription": "Spécifiez l'adresse du serveur utilisée pour l'envoi des e-mails.",
"smtpServerPort": "Port du serveur SMTP",
"smtpServerPortDescription": "Spécifiez le port utilisé pour se connecter au serveur SMTP.",
"smtpSettings": "Paramètres SMTP",
"templateVariables": {
"code": {
"description": "Code de vérification à 6 chiffres",
"title": "Code de vérification"
},
"expire": {
"description": "Temps de validité du code de vérification (minutes)",
"title": "Durée de validité"
},
"expireDate": {
"description": "Date d'expiration du service, rappelle aux utilisateurs quand le service expire",
"title": "Date d'expiration"
},
"maintenanceDate": {
"description": "Date de maintenance du système, affiche la date de début de la maintenance",
"title": "Date de maintenance"
},
"maintenanceTime": {
"description": "Temps de maintenance estimé, affiche la période ou la durée de maintenance",
"title": "Durée de maintenance"
},
"siteLogo": {
"description": "URL de l'image du logo du site web",
"title": "Logo du site"
},
"siteName": {
"description": "Nom actuel du site web",
"title": "Nom du site"
},
"title": "Variables de modèle d'e-mail",
"type": {
"conditionalSyntax": "Prend en charge la syntaxe conditionnelle pour changer le contenu en fonction du type",
"description": "Identifiant de type d'e-mail, 1 pour le code de vérification d'inscription, autres pour le code de vérification de réinitialisation de mot de passe",
"title": "Type d'e-mail"
}
},
"title": "Authentification par e-mail",
"trafficExceedEmailTemplate": "Modèle d'avis de limite de trafic",
"trafficTemplate": "Limite de trafic",
"verifyEmailTemplate": "Modèle d'e-mail de vérification",
"verifyTemplate": "E-mail de vérification",
"whitelistSuffixes": "Suffixes de la liste blanche",
"whitelistSuffixesDescription": "Utilisé pour la vérification des e-mails lors de l'inscription ; un par ligne",
"whitelistSuffixesPlaceholder": "Entrez les suffixes d'email, un par ligne"
},
"facebook": {
"clientId": "ID client",
"clientIdDescription": "ID de l'application Facebook depuis la console des développeurs Facebook",
"clientSecret": "Secret Client",
"clientSecretDescription": "Secret de l'application Facebook depuis la console des développeurs Facebook",
"description": "Authentifiez les utilisateurs avec des comptes Facebook",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur compte Facebook",
"title": "Connexion avec Facebook"
},
"github": {
"clientId": "ID Client GitHub",
"clientIdDescription": "L'ID client de vos paramètres d'application OAuth GitHub",
"clientSecret": "Secret Client GitHub",
"clientSecretDescription": "Le secret client de vos paramètres d'application OAuth GitHub",
"description": "Authentifiez les utilisateurs avec des comptes GitHub",
"enable": "Activer l'authentification GitHub",
"enableDescription": "Permettre aux utilisateurs de se connecter avec leurs comptes GitHub",
"title": "Connexion avec GitHub"
},
"google": {
"clientId": "ID Client",
"clientIdDescription": "ID client OAuth 2.0 de Google depuis la console Google Cloud",
"clientSecret": "Secret Client",
"clientSecretDescription": "Secret client OAuth 2.0 de Google depuis la console Google Cloud",
"description": "Authentifiez les utilisateurs avec des comptes Google",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur compte Google",
"title": "Connexion avec Google"
},
"log": {
"content": "Contenu",
@@ -23,52 +158,49 @@
"to": "Destinataire",
"updatedAt": "Mis à jour le"
},
"register": {
"day": "Jour",
"hour": "Heure",
"ipRegistrationLimit": "Limite d'inscription par IP",
"ipRegistrationLimitDescription": "Lorsqu'il est activé, les IP qui répondent aux exigences de la règle seront restreintes pour s'inscrire ; notez que la détermination de l'IP peut causer des problèmes en raison des CDN ou des proxies frontend",
"minute": "Minute",
"month": "Mois",
"noLimit": "Pas de limite",
"penaltyTime": "Temps de pénalité (minutes)",
"penaltyTimeDescription": "Les utilisateurs doivent attendre l'expiration du temps de pénalité avant de s'inscrire à nouveau",
"registerSettings": "Paramètres d'inscription",
"registrationLimitCount": "Limite de compte d'inscription",
"registrationLimitCountDescription": "Activer la pénalité après avoir atteint la limite d'inscription",
"saveSuccess": "Enregistrement réussi",
"stopNewUserRegistration": "Arrêter l'inscription de nouveaux utilisateurs",
"stopNewUserRegistrationDescription": "Lorsqu'il est activé, personne ne peut s'inscrire",
"trialDuration": "Durée d'essai",
"trialRegistration": "Inscription d'essai",
"trialRegistrationDescription": "Activer l'inscription d'essai ; modifier d'abord le package d'essai et la durée",
"trialSubscribePlan": "Plan d'abonnement d'essai",
"trialSubscribePlanDescription": "Sélectionnez le plan d'abonnement d'essai",
"year": "An"
"phone": {
"accessLabel": "Accès",
"applyPlatform": "Plateforme d'application",
"description": "Authentifiez les utilisateurs avec des numéros de téléphone",
"enable": "Activer",
"enableTip": "Après activation, les fonctions d'enregistrement, de connexion, de liaison et de déliaison par téléphone mobile seront activées",
"endpointLabel": "Point de terminaison",
"logs": "Journaux",
"logsDescription": "Voir l'historique des messages SMS envoyés et leur statut",
"phoneNumberLabel": "Numéro de téléphone",
"placeholders": {
"template": "Votre code de vérification est {code}, valable pendant 5 minutes"
},
"platform": "Plateforme SMS",
"platformConfigTip": "Veuillez remplir la configuration {key} fournie",
"platformTip": "Veuillez sélectionner la plateforme SMS",
"secretLabel": "Secret",
"sendFailed": "Échec de l'envoi",
"sendSuccess": "Envoi réussi",
"settings": "Paramètres",
"signNameLabel": "Nom de l'expéditeur",
"template": "Modèle SMS",
"templateCodeLabel": "Code de modèle",
"templateTip": "Veuillez remplir le modèle de SMS, conservez {code} au milieu, sinon la fonction SMS ne fonctionnera pas.",
"testSms": "Envoyer un SMS de test",
"testSmsPhone": "Entrez le numéro de téléphone",
"testSmsTip": "Envoyez un SMS de test pour vérifier votre configuration",
"title": "Authentification par téléphone",
"updateSuccess": "Mise à jour réussie",
"whitelistAreaCode": "Code de zone sur liste blanche",
"whitelistAreaCodeTip": "Veuillez entrer les codes de zone sur liste blanche, par exemple, 1, 852, 886, 888",
"whitelistValidation": "Vérification de la liste blanche",
"whitelistValidationTip": "Lorsqu'elle est activée, seuls les codes de zone figurant sur la liste blanche peuvent envoyer des SMS"
},
"verify": {
"inputPlaceholder": "Entrer",
"loginVerificationCode": "Code de vérification de connexion",
"loginVerificationCodeDescription": "Vérification humaine lors de la connexion",
"registrationVerificationCode": "Code de vérification d'inscription",
"registrationVerificationCodeDescription": "Vérification humaine lors de l'inscription",
"resetPasswordVerificationCode": "Code de vérification de réinitialisation de mot de passe",
"resetPasswordVerificationCodeDescription": "Vérification humaine lors de la réinitialisation du mot de passe",
"saveSuccess": "Enregistrement réussi",
"turnstileSecretDescription": "Clé secrète de tourniquet fournie par Cloudflare",
"turnstileSiteKeyDescription": "Clé de site de tourniquet fournie par Cloudflare",
"verifySettings": "Paramètres de vérification"
},
"verify-code": {
"dailyLimit": "Limite quotidienne",
"dailyLimitDescription": "Nombre maximum de codes de vérification pouvant être envoyés par jour",
"expireTime": "Temps d'expiration",
"expireTimeDescription": "Temps d'expiration du code de vérification (secondes)",
"interval": "Intervalle d'envoi",
"intervalDescription": "Intervalle minimum entre l'envoi des codes de vérification (secondes)",
"saveSuccess": "Enregistrement réussi",
"second": "secondes",
"times": "fois",
"verifyCodeSettings": "Paramètres du code de vérification"
"socialAuthMethods": "Social Authentication Methods",
"telegram": {
"clientId": "ID du Bot",
"clientIdDescription": "ID du bot Telegram, vous pouvez l'obtenir auprès de @BotFather",
"clientSecret": "Jeton du Bot",
"clientSecretDescription": "Jeton du bot Telegram, vous pouvez l'obtenir auprès de @BotFather",
"description": "Authentifiez les utilisateurs avec des comptes Telegram",
"enable": "Activer",
"enableDescription": "Après activation, les fonctions d'enregistrement, de connexion, de liaison et de dissociation par téléphone mobile seront activées",
"title": "Connexion avec Telegram"
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"blockVirtualMachine": "Bloquer la machine virtuelle",
"blockVirtualMachineDescription": "Lorsqu'il est activé, les appareils seront empêchés de fonctionner sur des machines virtuelles ou des émulateurs",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "La clé de communication est utilisée pour une communication sécurisée entre les appareils et les serveurs",
"enable": "Activer",
"enableDescription": "Après activation, plusieurs identifiants de périphériques tels que IMEI/IDFA/IDFV/AndroidID/adresse Mac sont pris en charge pour la connexion et l'enregistrement",
"enableSecurity": "Activer le chiffrement de la communication",
"enableSecurityDescription": "Lorsqu'il est activé, la communication entre les appareils et les serveurs sera chiffrée",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"showAds": "Afficher les publicités",
"showAdsDescription": "Lorsqu'il est activé, des publicités seront affichées sur les appareils"
}
-49
View File
@@ -1,49 +0,0 @@
{
"emailBasicConfigDescription": "Configurer les paramètres du serveur SMTP et les options de vérification des e-mails",
"emailLogsDescription": "Consultez l'historique des e-mails envoyés et leur statut",
"emailSuffixWhitelist": "Liste blanche des suffixes d'email",
"emailSuffixWhitelistDescription": "Lorsqu'elle est activée, seules les adresses e-mail avec des suffixes figurant dans la liste peuvent s'inscrire",
"emailVerification": "Vérification de l'email",
"emailVerificationDescription": "Lorsqu'elle est activée, les utilisateurs devront vérifier leur adresse e-mail",
"enable": "Activer",
"enableDescription": "Après activation, les fonctions d'enregistrement par e-mail, de connexion, de liaison et de délégation seront activées",
"expiration_email_template": "Modèle d'avis d'expiration",
"expiration_email_templateDescription": "Les espaces réservés {after}.variable{before} seront remplacés par des données réelles. Assurez-vous de conserver ces variables.",
"failed": "Échoué",
"inputPlaceholder": "Entrez la valeur...",
"logs": "Journaux",
"maintenance_email_template": "Modèle d'avis de maintenance",
"maintenance_email_templateDescription": "Les espaces réservés {after}.variable{before} seront remplacés par des données réelles. Assurez-vous de conserver ces variables.",
"recipient": "Destinataire",
"saveFailed": "Échec de l'enregistrement de la configuration",
"saveSuccess": "Configuration enregistrée avec succès.",
"sendFailure": "Échec de l'envoi de l'email de test, veuillez vérifier la configuration.",
"sendSuccess": "E-mail de test envoyé avec succès.",
"sendTestEmail": "Envoyer un e-mail de test",
"sendTestEmailDescription": "Envoyez un e-mail de test pour vérifier la configuration.",
"senderAddress": "Adresse de l'expéditeur",
"senderAddressDescription": "L'adresse e-mail par défaut utilisée pour envoyer des e-mails.",
"sent": "Envoyé",
"sentAt": "Envoyé à",
"settings": "Paramètres",
"smtpAccount": "Compte SMTP",
"smtpAccountDescription": "Le compte de messagerie utilisé pour l'authentification.",
"smtpEncryptionMethod": "Méthode de chiffrement SMTP",
"smtpEncryptionMethodDescription": "Choisissez si vous souhaitez activer le chiffrement SSL/TLS.",
"smtpPassword": "Mot de passe SMTP",
"smtpPasswordDescription": "Le mot de passe pour le compte SMTP.",
"smtpServerAddress": "Adresse du serveur SMTP",
"smtpServerAddressDescription": "Spécifiez l'adresse du serveur utilisée pour l'envoi des e-mails.",
"smtpServerPort": "Port du serveur SMTP",
"smtpServerPortDescription": "Spécifiez le port utilisé pour se connecter au serveur SMTP.",
"status": "Statut",
"subject": "Sujet",
"template": "Modèle",
"traffic_exceed_email_template": "Modèle de notification de dépassement de trafic",
"traffic_exceed_email_templateDescription": "Les espaces réservés {after}.variable{before} seront remplacés par des données réelles. Assurez-vous de conserver ces variables.",
"verify_email_template": "Modèle d'Email de Vérification",
"verify_email_templateDescription": "Les espaces réservés {after}.variable{before} seront remplacés par des données réelles. Assurez-vous de conserver ces variables.",
"whitelistSuffixes": "Suffixes de la liste blanche",
"whitelistSuffixesDescription": "Utilisé pour la vérification des e-mails lors de l'inscription ; un par ligne",
"whitelistSuffixesPlaceholder": "Entrez les suffixes d'email, un par ligne"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID client",
"clientIdDescription": "ID de l'application Facebook depuis la console des développeurs Facebook",
"clientSecret": "Secret Client",
"clientSecretDescription": "Secret de l'application Facebook depuis la console des développeurs Facebook",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur compte Facebook",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID Client GitHub",
"clientIdDescription": "L'ID client de vos paramètres d'application OAuth GitHub",
"clientSecret": "Secret Client GitHub",
"clientSecretDescription": "Le secret client de vos paramètres d'application OAuth GitHub",
"enable": "Activer l'authentification GitHub",
"enableDescription": "Permettre aux utilisateurs de se connecter avec leurs comptes GitHub",
"saveFailed": "Échec de l'enregistrement des paramètres GitHub",
"saveSuccess": "Paramètres GitHub enregistrés avec succès"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID Client",
"clientIdDescription": "ID client OAuth 2.0 de Google depuis la console Google Cloud",
"clientSecret": "Secret Client",
"clientSecretDescription": "Secret client OAuth 2.0 de Google depuis la console Google Cloud",
"enable": "Activer",
"enableDescription": "Après activation, les utilisateurs peuvent se connecter avec leur compte Google",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi"
}
-32
View File
@@ -1,32 +0,0 @@
{
"accessLabel": "Accès",
"applyPlatform": "Plateforme d'application",
"enable": "Activer",
"enableTip": "Après activation, les fonctions d'enregistrement, de connexion, de liaison et de déliaison par téléphone mobile seront activées",
"endpointLabel": "Point de terminaison",
"logs": "Journaux",
"phoneNumberLabel": "Numéro de téléphone",
"placeholders": {
"template": "Votre code de vérification est {code}, valable pendant 5 minutes",
"templateCode": "Entrez le code du modèle"
},
"platform": "Plateforme SMS",
"platformConfigTip": "Veuillez remplir la configuration {key} fournie",
"platformTip": "Veuillez sélectionner la plateforme SMS",
"secretLabel": "Secret",
"sendFailed": "Échec de l'envoi",
"sendSuccess": "Envoi réussi",
"settings": "Paramètres",
"signNameLabel": "Nom de l'expéditeur",
"template": "Modèle SMS",
"templateCodeLabel": "Code de modèle",
"templateTip": "Veuillez remplir le modèle de SMS, conservez {code} au milieu, sinon la fonction SMS ne fonctionnera pas.",
"testSms": "Envoyer un SMS de test",
"testSmsPhone": "Entrez le numéro de téléphone",
"testSmsTip": "Envoyez un SMS de test pour vérifier votre configuration",
"updateSuccess": "Mise à jour réussie",
"whitelistAreaCode": "Code de zone sur liste blanche",
"whitelistAreaCodeTip": "Veuillez entrer les codes de zone sur liste blanche, par exemple, 1, 852, 886, 888",
"whitelistValidation": "Vérification de la liste blanche",
"whitelistValidationTip": "Lorsqu'elle est activée, seuls les codes de zone figurant sur la liste blanche peuvent envoyer des SMS"
}
+6
View File
@@ -8,9 +8,12 @@
"createRule": "Ajouter une règle",
"createSuccess": "Règle créée avec succès",
"createdAt": "Créé le",
"default": "Par défaut",
"defaultRule": "Règle par défaut",
"delete": "Supprimer",
"deleteSuccess": "Règle supprimée avec succès",
"deleteWarning": "Êtes-vous sûr de vouloir supprimer cette règle ? Cette action ne peut pas être annulée.",
"direct": "Direct",
"downloadTemplate": "Télécharger le modèle",
"edit": "Modifier",
"editRule": "Modifier la règle",
@@ -29,11 +32,14 @@
"noValidRules": "Aucune règle valide trouvée",
"pleaseUploadFile": "Veuillez télécharger un fichier YAML",
"preview": "Aperçu",
"reject": "Rejeter",
"rulesFormat": "Format de la règle : type de règle, contenu de correspondance, [politique], où la politique est optionnelle.\nSi la politique n'est pas spécifiée, le nom du groupe de règles actuel sera utilisé automatiquement. Exemples :",
"rulesLabel": "Contenu de la règle",
"searchRule": "Rechercher le nom de la règle",
"selectTags": "Sélectionner des balises de nœud",
"selectType": "Sélectionner le type de règle",
"tags": "Balises de nœud",
"tagsLabel": "Balises de nœud",
"type": "Type de règle",
"updateSuccess": "Règle mise à jour avec succès"
}
+100 -75
View File
@@ -33,21 +33,22 @@
"description": "Description",
"edit": "Éditer",
"editNodeGroup": "Éditer le groupe de nœuds",
"form": {
"cancel": "Annuler",
"confirm": "Confirmer",
"description": "Description",
"name": "Nom"
},
"name": "Nom",
"title": "Liste des groupes de nœuds",
"updatedAt": "Mis à jour à"
},
"groupForm": {
"cancel": "Annuler",
"confirm": "Confirmer",
"description": "Description",
"name": "Nom"
},
"node": {
"abnormal": "Anormal",
"actions": "Actions",
"address": "Adresse",
"all": "Tout",
"basicInfo": "Informations de base",
"cancel": "Annuler",
"confirm": "Confirmer",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
@@ -59,96 +60,120 @@
"delete": "Supprimer",
"deleteSuccess": "Suppression réussie",
"deleteWarning": "Après suppression, les données ne pourront pas être récupérées. Veuillez procéder avec prudence.",
"detail": "Détail",
"disabled": "Désactivé",
"disk": "Disque",
"edit": "Éditer",
"editNode": "Éditer le nœud",
"enable": "Activer",
"form": {
"allowInsecure": "Autoriser l'insécurité",
"cancel": "Annuler",
"city": "Ville",
"confirm": "Confirmer",
"country": "Pays",
"edit": "Éditer",
"editSecurity": "Éditer la configuration de sécurité",
"enableTLS": "Activer TLS",
"encryptionMethod": "Méthode de cryptage",
"flow": "Algorithme de contrôle de flux",
"groupId": "Groupe de nœuds",
"hopInterval": "Intervalle de saut",
"hopPorts": "Ports de saut",
"hopPortsPlaceholder": "Séparer plusieurs ports par des virgules",
"name": "Nom",
"obfsPassword": "Mot de passe d'obfuscation",
"obfsPasswordPlaceholder": "Laisser vide pour ne pas obfusquer",
"path": "Chemin",
"pleaseSelect": "Veuillez sélectionner",
"port": "Port de service",
"protocol": "Protocole",
"relayHost": "Adresse de relais",
"relayMode": "Mode relais",
"relayModeOptions": {
"all": "Tous",
"none": "Aucun",
"random": "Aléatoire"
},
"relayPort": "Port de relais",
"relayPrefix": "Préfixe relais",
"remarks": "Remarques",
"security": "Sécurité",
"securityConfig": "Configuration de sécurité",
"security_config": {
"fingerprint": "Empreinte digitale",
"privateKey": "Clé privée",
"privateKeyPlaceholder": "Laisser vide pour générer automatiquement",
"publicKey": "Clé publique",
"publicKeyPlaceholder": "Laisser vide pour générer automatiquement",
"serverAddress": "Adresse du serveur",
"serverAddressPlaceholder": "Adresse cible REALITY, par défaut utilise SNI",
"serverName": "Nom du serveur (SNI)",
"serverNamePlaceholder": "Obligatoire pour REALITY, doit correspondre à l'arrière-plan",
"serverPort": "Port du serveur",
"serverPortPlaceholder": "Port cible REALITY, par défaut 443",
"shortId": "Identifiant court",
"shortIdPlaceholder": "Laisser vide pour générer automatiquement",
"sni": "Indication de nom de serveur (SNI)"
},
"selectEncryptionMethod": "Sélectionner la méthode de cryptage",
"selectNodeGroup": "Sélectionner le groupe de nœuds",
"selectProtocol": "Sélectionner le protocole",
"selectRelayMode": "Sélectionner le mode relais",
"serverAddr": "Adresse du serveur",
"serverKey": "Clé du serveur",
"serverName": "Nom du service",
"speedLimit": "Limite de vitesse",
"speedLimitPlaceholder": "Illimité",
"tags": "Étiquettes",
"tagsPlaceholder": "Utilisez Entrée ou une virgule (,) pour entrer plusieurs étiquettes",
"trafficRatio": "Taux de trafic",
"transport": "Protocole de transport",
"transportConfig": "Configuration du protocole de transport",
"transportHost": "Adresse du service de transport",
"transportPath": "Chemin de transport",
"transportServerName": "Nom du service de transport"
},
"enabled": "Activé",
"expireTime": "Temps d'expiration",
"hide": "Cacher",
"id": "ID",
"ipAddresses": "Adresses IP",
"lastUpdated": "Dernière mise à jour",
"location": "Emplacement",
"memory": "Mémoire",
"name": "Nom",
"noData": "--",
"node": "Nœud",
"nodeDetail": "Détails du nœud",
"nodeGroup": "Groupe de nœuds",
"nodeStatus": "État du nœud",
"normal": "Normal",
"onlineCount": "Nombre d'utilisateurs en ligne",
"onlineUsers": "Utilisateurs en ligne",
"protocol": "Protocole",
"rate": "Taux",
"relay": "Relais",
"serverAddr": "Adresse du serveur",
"speedLimit": "Limite de vitesse",
"status": "Statut",
"subscribeId": "ID de l'abonnement",
"subscribeName": "Nom de l'abonnement",
"subscription": "Abonnement",
"tags": "Étiquettes",
"trafficRatio": "Taux de trafic",
"trafficUsage": "Utilisation du trafic",
"type": "Type",
"updateSuccess": "Mise à jour réussie",
"updatedAt": "Date de mise à jour"
"updatedAt": "Date de mise à jour",
"userAccount": "Compte utilisateur",
"userDetail": "Détails de l'utilisateur",
"userId": "ID de l'utilisateur"
},
"nodeForm": {
"allowInsecure": "Autoriser Insecure",
"cancel": "Annuler",
"city": "Ville",
"confirm": "Confirmer",
"congestionController": "Contrôleur de Congestion",
"country": "Pays",
"disableSni": "Désactiver SNI",
"edit": "Modifier",
"editSecurity": "Modifier la Configuration de Sécurité",
"enableTLS": "Activer TLS",
"encryptionMethod": "Méthode de Chiffrement",
"fingerprint": "Empreinte",
"flow": "Algorithme de Contrôle de Flux",
"groupId": "Groupe de Nœuds",
"hopInterval": "Intervalle de Saut",
"hopPorts": "Ports de Saut",
"hopPortsPlaceholder": "Séparez plusieurs ports par des virgules",
"name": "Nom",
"obfsPassword": "Mot de Passe d'Obfuscation",
"obfsPasswordPlaceholder": "Laissez vide pour aucune obfuscation",
"path": "Chemin",
"pleaseSelect": "Veuillez Sélectionner",
"port": "Port du Serveur",
"protocol": "Protocole",
"reduceRtt": "Réduire RTT",
"relayHost": "Hôte de Relais",
"relayMode": "Mode de Relais",
"relayPort": "Port de Relais",
"relayPrefix": "Préfixe de Relais",
"remarks": "Remarques",
"security": "Sécurité",
"securityConfig": "Configuration de Sécurité",
"selectEncryptionMethod": "Sélectionner la Méthode de Chiffrement",
"selectNodeGroup": "Sélectionner le Groupe de Nœuds",
"selectProtocol": "Sélectionner le Protocole",
"selectRelayMode": "Sélectionner le Mode de Relais",
"serverAddr": "Adresse du Serveur",
"serverKey": "Clé du Serveur",
"serverName": "Nom du Service",
"speedLimit": "Limite de Vitesse",
"speedLimitPlaceholder": "Illimité",
"tags": "Étiquettes",
"tagsPlaceholder": "Utilisez Entrée ou virgule (,) pour entrer plusieurs étiquettes",
"trafficRatio": "Taux de Trafic",
"transport": "Configuration du Protocole de Transport",
"transportConfig": "Configuration du Protocole de Transport",
"transportHost": "Adresse du Serveur de Transport",
"transportPath": "Chemin de Transport",
"transportServerName": "Nom du Serveur de Transport",
"udpRelayMode": "Mode de Relais UDP"
},
"relayModeOptions": {
"all": "Tous",
"none": "Aucun",
"random": "Aléatoire"
},
"securityConfig": {
"fingerprint": "Empreinte",
"privateKey": "Clé Privée",
"privateKeyPlaceholder": "Laissez vide pour auto-génération",
"publicKey": "Clé Publique",
"publicKeyPlaceholder": "Laissez vide pour auto-génération",
"serverAddress": "Adresse du Serveur",
"serverAddressPlaceholder": "Adresse cible REALITY, par défaut utilisant SNI",
"serverName": "Nom du Serveur (SNI)",
"serverNamePlaceholder": "REQUIRED REALITY, cohérent avec le backend",
"serverPort": "Port du Serveur",
"serverPortPlaceholder": "Port cible REALITY, par défaut 443",
"shortId": "ID Court",
"shortIdPlaceholder": "Laissez vide pour auto-génération",
"sni": "Indication de Nom de Serveur (SNI)"
},
"tabs": {
"node": "Nœud",
+97 -16
View File
@@ -1,28 +1,77 @@
{
"currency": {
"accessKey": "Clé d'accès",
"accessKeyDescription": "Clé API de taux de change fournie gratuitement par https://exchangerate.host",
"currencySymbol": "Symbole monétaire",
"currencySymbolDescription": "Utilisé uniquement pour l'affichage, toute modification entraînera un changement de toutes les unités monétaires dans le système",
"currencyUnit": "Unité monétaire",
"currencyUnitDescription": "Utilisé uniquement pour l'affichage, toute modification entraînera un changement de toutes les unités monétaires dans le système",
"authSettings": "Paramètres d'authentification",
"basicSettings": "Paramètres de base",
"common": {
"cancel": "Annuler",
"save": "Enregistrer les paramètres",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi"
},
"privacy-policy": {
"currency": {
"accessKey": "Clé d'accès",
"accessKeyDescription": "Clé API de taux de change fournie gratuitement par {url}",
"accessKeyPlaceholder": "Entrez la clé API",
"currencySymbol": "Symbole monétaire",
"currencySymbolDescription": "Utilisé uniquement pour l'affichage, toute modification entraînera un changement de toutes les unités monétaires dans le système",
"currencySymbolPlaceholder": "€",
"currencyUnit": "Unité monétaire",
"currencyUnitDescription": "Utilisé uniquement pour l'affichage, toute modification entraînera un changement de toutes les unités monétaires dans le système",
"currencyUnitPlaceholder": "EUR",
"description": "Configurer les unités de devise, les symboles et les paramètres de l'API de taux de change",
"title": "Configuration de la devise"
},
"invite": {
"description": "Configurer les paramètres d'invitation des utilisateurs et de récompense de parrainage",
"forcedInvite": "Exiger une invitation pour s'inscrire",
"forcedInviteDescription": "Lorsque cette option est activée, les utilisateurs doivent s'inscrire via un lien d'invitation",
"inputPlaceholder": "Veuillez entrer",
"onlyFirstPurchase": "Récompense uniquement pour le premier achat",
"onlyFirstPurchaseDescription": "Lorsque cette option est activée, les parrains ne reçoivent des récompenses que pour le premier achat des utilisateurs parrainés",
"referralPercentage": "Pourcentage de récompense de parrainage",
"referralPercentageDescription": "Pourcentage de récompense accordé aux parrains",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"title": "Paramètres d'invitation"
},
"privacyPolicy": {
"description": "Modifier et gérer le contenu de la politique de confidentialité",
"title": "Politique de confidentialité"
},
"register": {
"day": "jour(s)",
"defaultSubscribe": "Abonnement par défaut",
"defaultSubscribeDescription": "Plan d'abonnement par défaut pour les nouveaux utilisateurs",
"description": "Configurer les paramètres liés à l'inscription des utilisateurs",
"inputPlaceholder": "Veuillez entrer",
"ipRegistrationLimit": "Limite d'inscription par IP",
"ipRegistrationLimitDescription": "Limiter le nombre d'inscriptions à partir d'une seule adresse IP",
"registrationLimitCount": "Nombre limite d'inscriptions",
"registrationLimitCountDescription": "Nombre d'inscriptions autorisées par IP pendant la période limite",
"registrationLimitExpire": "Période limite",
"registrationLimitExpireDescription": "Durée de la limite d'inscription par IP",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"selectPlaceholder": "Veuillez sélectionner",
"stopNewUserRegistration": "Arrêter l'inscription des nouveaux utilisateurs",
"stopNewUserRegistrationDescription": "Lorsque cette option est activée, l'inscription des nouveaux utilisateurs sera désactivée",
"title": "Paramètres d'inscription",
"trialDay": "Jours d'essai",
"trialDayDescription": "Jours d'essai accordés aux nouveaux utilisateurs lors de l'inscription",
"trialFlow": "Trafic d'essai",
"trialFlowDescription": "Trafic d'essai accordé aux nouveaux utilisateurs lors de l'inscription"
},
"site": {
"customData": "Données personnalisées",
"customDataDescription": "Données personnalisées, utilisées pour les données personnalisées du site",
"customHtml": "HTML personnalisé",
"customHtmlDescription": "Code HTML personnalisé à injecter dans le bas de la balise body du site.",
"description": "Configurer les informations de base du site, le logo, le domaine et d'autres paramètres",
"keywords": "Mots-clés",
"keywordsDescription": "Utilisé à des fins de référencement",
"keywordsPlaceholder": "motclé1, motclé2, motclé3",
"logo": "LOGO",
"logoDescription": "Utilisé pour afficher l'emplacement où le LOGO doit être montré",
"logoPlaceholder": "Veuillez entrer l'URL du LOGO, ne pas terminer par '/'",
"saveSuccess": "Enregistrement réussi",
"siteDesc": "Description du site",
"siteDescDescription": "Utilisé pour afficher l'emplacement où la description du site doit être montrée",
"siteDescPlaceholder": "Veuillez entrer la description du site",
@@ -31,15 +80,47 @@
"siteDomainPlaceholder": "Veuillez entrer l'adresse du domaine, un domaine par ligne",
"siteName": "Nom du site",
"siteNameDescription": "Utilisé pour afficher l'emplacement où le nom du site doit être montré",
"siteNamePlaceholder": "Veuillez entrer le nom du site"
},
"tabs": {
"currency": "Devise",
"site": "Site",
"tos": "Conditions de service"
"siteNamePlaceholder": "Veuillez entrer le nom du site",
"title": "Configuration du site"
},
"siteSettings": "Paramètres du site",
"tos": {
"saveSuccess": "Enregistrement réussi",
"description": "Modifier et gérer le contenu des conditions de service",
"title": "Conditions de service"
},
"userSecuritySettings": "Sécurité des utilisateurs",
"verify": {
"description": "Configurer les paramètres de CAPTCHA Turnstile et de vérification",
"enableLoginVerify": "Activer la vérification lors de la connexion",
"enableLoginVerifyDescription": "Lorsque cette option est activée, les utilisateurs doivent passer une vérification humaine lors de la connexion",
"enablePasswordVerify": "Activer la vérification lors de la réinitialisation du mot de passe",
"enablePasswordVerifyDescription": "Lorsque cette option est activée, les utilisateurs doivent passer une vérification humaine lors de la réinitialisation du mot de passe",
"enableRegisterVerify": "Activer la vérification lors de l'inscription",
"enableRegisterVerifyDescription": "Lorsque cette option est activée, les utilisateurs doivent passer une vérification humaine lors de l'inscription",
"inputPlaceholder": "Veuillez entrer",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"title": "Vérification de sécurité",
"turnstileSecret": "Clé secrète Turnstile",
"turnstileSecretDescription": "Clé secrète Turnstile Cloudflare pour la vérification backend",
"turnstileSecretPlaceholder": "Entrez la clé secrète Turnstile",
"turnstileSiteKey": "Clé de site Turnstile",
"turnstileSiteKeyDescription": "Clé de site Turnstile Cloudflare pour la vérification frontend",
"turnstileSiteKeyPlaceholder": "Entrez la clé de site Turnstile"
},
"verifyCode": {
"dailyLimit": "Limite d'envoi quotidienne",
"dailyLimitDescription": "Nombre maximum de codes de vérification que chaque utilisateur peut envoyer par jour",
"description": "Configurer les règles et limites d'envoi du code de vérification par e-mail",
"expireTime": "Validité du code de vérification",
"expireTimeDescription": "Période de validité des codes de vérification (secondes)",
"inputPlaceholder": "Veuillez entrer",
"interval": "Intervalle d'envoi",
"intervalDescription": "Intervalle minimum entre deux envois de code de vérification (secondes)",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi",
"seconds": "secondes",
"times": "fois",
"title": "Paramètres du code de vérification"
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID du Bot",
"clientIdDescription": "ID du bot Telegram, vous pouvez l'obtenir auprès de @BotFather",
"clientSecret": "Jeton du Bot",
"clientSecretDescription": "Jeton du bot Telegram, vous pouvez l'obtenir auprès de @BotFather",
"enable": "Activer",
"enableDescription": "Après activation, les fonctions d'enregistrement, de connexion, de liaison et de dissociation par téléphone mobile seront activées",
"saveFailed": "Échec de l'enregistrement",
"saveSuccess": "Enregistrement réussi"
}