Browse Source

Add French language (#1924)

* French translation file creation

* Add French language
pull/1948/head
Ezmana 3 weeks ago
committed by GitHub
parent
commit
5e9a73645b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      src/i18n/i18n.config.ts
  2. 237
      src/i18n/locales/fr.json
  3. 5
      src/nuxt.config.ts

2
src/i18n/i18n.config.ts

@ -1,5 +1,6 @@
import en from './locales/en.json'; import en from './locales/en.json';
import uk from './locales/uk.json'; import uk from './locales/uk.json';
import fr from './locales/fr.json';
export default defineI18nConfig(() => ({ export default defineI18nConfig(() => ({
legacy: false, legacy: false,
@ -7,5 +8,6 @@ export default defineI18nConfig(() => ({
messages: { messages: {
en, en,
uk, uk,
fr,
}, },
})); }));

237
src/i18n/locales/fr.json

@ -0,0 +1,237 @@
{
"pages": {
"me": "Compte",
"clients": "Clients",
"admin": {
"panel": "Panel Admin",
"general": "Général",
"config": "Config",
"interface": "Interface",
"hooks": "Hooks"
}
},
"user": {
"email": "E-Mail"
},
"me": {
"currentPassword": "Mot de passe actuel",
"enable2fa": "Activer l'authentification à double facteur",
"enable2faDesc": "Scannez le code QR avec votre application d'authentification ou saisissez la clé manuellement.",
"2faKey": "Clé TOTP",
"2faCodeDesc": "Saisissez le code de votre application d'authentification.",
"disable2fa": "Désactiver l'authentification à double facteur",
"disable2faDesc": "Saisissez votre mot de passe pour désactiver l'authentification à double facteur"
},
"general": {
"name": "Nom",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"newPassword": "Nouveau mot de passe",
"updatePassword": "Mettre à jour le mot de passe",
"mtu": "MTU",
"allowedIps": "IPs autorisées",
"dns": "DNS",
"persistentKeepalive": "Keepalive persistant",
"logout": "Déconnexion",
"continue": "Continuer",
"host": "Hôte",
"port": "Port",
"yes": "Oui",
"no": "Non",
"confirmPassword": "Confirmer le mot de passe",
"loading": "Chargement...",
"2fa": "Authentification à double facteur",
"2faCode": "Code TOTP"
},
"setup": {
"welcome": "Bienvenue dans votre première installation de wg-easy",
"welcomeDesc": "Vous avez trouvé la façon la plus simple d'installer et de gérer WireGuard sur n'importe quel hôte Linux.",
"existingSetup": "Avez-vous une installation existante ?",
"createAdminDesc": "Veuillez d'abord saisir un nom d'utilisateur administrateur et un mot de passe sécurisé. Ces informations seront utilisées pour vous connecter à votre panel d'administration.",
"setupConfigDesc": "Veuillez saisir les informations relatives à l'hôte et au port. Ceci sera utilisé pour la configuration du client lors de la mise en place de WireGuard sur les appareils.",
"setupMigrationDesc": "Veuillez fournir le fichier de sauvegarde si vous souhaitez migrer vos données de la version précédente de wg-easy vers votre nouvelle installation.",
"upload": "Téléverser",
"migration": "Restaurer la sauvegarde:",
"createAccount": "Créer un compte",
"successful": "Installation réussie",
"hostDesc": "Nom d'hôte public auquel les clients se connecteront",
"portDesc": "Port UDP public auquel les clients se connecteront et sur lequel WireGuard écoutera"
},
"update": {
"updateAvailable": "Une mise à jour est disponible!",
"update": "Mise à jour"
},
"theme": {
"dark": "Thème sombre",
"light": "Thème clair",
"system": "Thème système"
},
"layout": {
"toggleCharts": "Afficher/masquer les graphiques",
"donate": "Donation"
},
"login": {
"signIn": "Se connecter",
"rememberMe": "Se souvenir de moi",
"rememberMeDesc": "Rester connecté après avoir fermé le navigateur",
"insecure": "Vous ne pouvez pas vous connecter avec une connexion non sécurisée. Utilisez HTTPS.",
"2faRequired": "Une authentification à double facteur est requise",
"2faWrong": "L'authentification à double facteur est incorrecte"
},
"client": {
"empty": "Il n'y a pas encore de clients.",
"newShort": "Nouveau",
"sort": "Trier",
"create": "Créer un client",
"created": "Client créé",
"new": "Nouveau client",
"name": "Nom",
"expireDate": "Date d'expiration",
"expireDateDesc": "Date à laquelle le client sera désactivé. Vide pour permanent",
"deleteClient": "Supprimer le client",
"deleteDialog1": "Êtes-vous sûr de vouloir supprimer",
"deleteDialog2": "Cette action ne peut être annulée.",
"enabled": "Activé",
"address": "Adresse",
"serverAllowedIps": "Serveur IPs autorisées",
"otlDesc": "Générer un lien court et unique",
"permanent": "Permanent",
"createdOn": "Créé le ",
"lastSeen": "Dernière visite le ",
"totalDownload": "Téléchargement total: ",
"totalUpload": "Téléversement total: ",
"newClient": "Nouveau client",
"disableClient": "Désactiver le client",
"enableClient": "Activer le client",
"noPrivKey": "Ce client n'a pas de clé privée connue. Impossible de créer une configuration.",
"showQR": "Afficher le code QR",
"downloadConfig": "Télécharger la configuration",
"allowedIpsDesc": "Quelles IPs seront acheminées par le VPN (remplace la configuration globale)",
"serverAllowedIpsDesc": "Les IPs que le serveur acheminera vers le client",
"mtuDesc": "Définit le nombre maximum d'unités de transmission (taille des paquets) pour le tunnel VPN.",
"persistentKeepaliveDesc": "Définit l'intervalle (en secondes) pour les paquets keep-alive. 0 le désactive",
"hooks": "Hooks",
"hooksDescription": "Les hooks ne fonctionnent qu'avec wg-quick",
"hooksLeaveEmpty": "Uniquement pour wg-quick. Sinon, laissez-le vide",
"dnsDesc": "Serveur DNS que les clients utiliseront (remplace la configuration globale)"
},
"dialog": {
"change": "Modifier",
"cancel": "Annuler",
"create": "Créer"
},
"toast": {
"success": "Réussite",
"saved": "Sauvegardé",
"error": "Erreur"
},
"form": {
"actions": "Actions",
"save": "Sauvegarder",
"revert": "Revenir en arrière",
"sectionGeneral": "Général",
"sectionAdvanced": "Avancé",
"noItems": "Aucun élément",
"nullNoItems": "Aucun élément. Utilisation de la configuration globale",
"add": "Ajouter"
},
"admin": {
"general": {
"sessionTimeout": "Délai d'expiration de la session",
"sessionTimeoutDesc": "Durée de la session pour Se souvenir de moi (secondes)",
"metrics": "Métriques",
"metricsPassword": "Mot de passe",
"metricsPasswordDesc": "Mot de passe Bearer pour le endpoint des métriques (mot de passe ou argon2 hash)",
"json": "JSON",
"jsonDesc": "Acheminement pour les métriques au format JSON",
"prometheus": "Prometheus",
"prometheusDesc": "Acheminement pour les métriques de Prometheus"
},
"config": {
"connection": "Connexion",
"hostDesc": "Nom d'hôte public auquel les clients se connecteront (invalide la configuration)",
"portDesc": "Port UDP public auquel les clients se connecteront (invalide la configuration, vous souhaiterez probablement modifier le port d'interface également)",
"allowedIpsDesc": "IPs autorisées que les clients utiliseront (configuration globale)",
"dnsDesc": "Serveur DNS que les clients utiliseront (configuration globale)",
"mtuDesc": "MTU que les clients utiliseront (uniquement pour les nouveaux clients)",
"persistentKeepaliveDesc": "Intervalle en secondes keepalives du serveur. 0 = désactivé (uniquement pour les nouveaux clients)",
"suggest": "Suggérer",
"suggestDesc": "Choisissez une adresse IP ou un nom d'hôte pour le champ Hôte."
},
"interface": {
"cidrSuccess": "CIDR modifié",
"device": "Périphérique",
"deviceDesc": "Périphérique Ethernet dans lequel le trafic wireguard sera transmis.",
"mtuDesc": "MTU que WireGuard utilisera",
"portDesc": "Port UDP sur lequel WireGuard écoutera (vous souhaiterez probablement changer le port de configuration aussi)",
"changeCidr": "Modifier CIDR",
"restart": "Redémarrer l'interface",
"restartDesc": "Redémarre l'interface WireGuard",
"restartWarn": "Êtes-vous sûr de redémarrer l'interface ? Cela déconnectera tous les clients.",
"restartSuccess": "Interface redémarrée"
},
"introText": "Bienvenue dans le panel d'administration.\n\nVous pouvez y gérer les paramètres généraux, la configuration, les paramètres de l'interface et les hooks.\n\nCommencez par choisir l'une des sections de la barre latérale."
},
"zod": {
"generic": {
"required": "{0} est requis",
"validNumber": "{0} doit être un nombre valide",
"validString": "{0} doit être une chaîne de caractères valide",
"validBoolean": "{0} doit être une variable valide",
"validArray": "{0} doit être un tableau valide",
"stringMin": "{0} doit être d'au moins {1} Caractère",
"numberMin": "{0} doit être d'au moins {1}"
},
"client": {
"id": "Client ID",
"name": "Nom",
"expiresAt": "Expire le",
"address4": "Adresse IPv4",
"address6": "Adresse IPv6",
"serverAllowedIps": "Serveur IPs autorisées"
},
"user": {
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"remember": "Se souvenir",
"name": "Nom",
"email": "Email",
"emailInvalid": "L'email doit être valide",
"passwordMatch": "Les mots de passe doivent correspondre",
"totpEnable": "Activer TOTP",
"totpEnableTrue": "Activer TOTP doit être activé",
"totpCode": "Code TOTP"
},
"userConfig": {
"host": "Hôte"
},
"general": {
"sessionTimeout": "Délai d'expiration de la session",
"metricsEnabled": "Métriques",
"metricsPassword": "Mot de passe métriques"
},
"interface": {
"cidr": "CIDR",
"device": "Périphérique",
"cidrValid": "CIDR doit être valide"
},
"otl": "Lien unique",
"stringMalformed": "La chaîne est malformée",
"body": "Le corps doit être un objet valide",
"hook": "Hook",
"enabled": "Activé",
"mtu": "MTU",
"port": "Port",
"persistentKeepalive": "Keepalive persistant",
"address": "Adresse IP",
"dns": "DNS",
"allowedIps": "IPs autorisées",
"file": "Fichier"
},
"hooks": {
"preUp": "PreUp",
"postUp": "PostUp",
"preDown": "PreDown",
"postDown": "PostDown"
}
}

5
src/nuxt.config.ts

@ -39,6 +39,11 @@ export default defineNuxtConfig({
language: 'uk-UA', language: 'uk-UA',
name: 'Українська', name: 'Українська',
}, },
{
code: 'fr',
language: 'fr-FR',
name: 'Français',
},
], ],
defaultLocale: 'en', defaultLocale: 'en',
vueI18n: './i18n.config.ts', vueI18n: './i18n.config.ts',

Loading…
Cancel
Save