diff --git a/GUI/js/i18n.js b/GUI/js/i18n.js index b2ec9e0..a843b3a 100644 --- a/GUI/js/i18n.js +++ b/GUI/js/i18n.js @@ -4,6 +4,7 @@ const i18n = (() => { let translations = {}; const availableLanguages = [ { code: 'en', name: 'English' }, + { code: 'fr', name: 'Français' }, { code: 'es-ES', name: 'Español (España)' }, { code: 'pt-BR', name: 'Portuguese (Brazil)' }, { code: 'tr-TR', name: 'Turkish (Turkey)' }, diff --git a/GUI/locales/fr.json b/GUI/locales/fr.json new file mode 100644 index 0000000..4ad3316 --- /dev/null +++ b/GUI/locales/fr.json @@ -0,0 +1,235 @@ +{ + "nav": { + "play": "Jouer", + "mods": "Mods", + "news": "Actualités", + "chat": "Chat Joueurs", + "settings": "Paramètres" + }, + "header": { + "playersLabel": "Joueurs:", + "manageProfiles": "Gérer les Profils", + "defaultProfile": "Par défaut" + }, + "install": { + "title": "LAUNCHER GRATUIT", + "playerName": "Nom du Joueur", + "playerNamePlaceholder": "Entrez votre nom", + "gameBranch": "Version du Jeu", + "releaseVersion": "Release (Stable)", + "preReleaseVersion": "Pré-Release (Expérimental)", + "customInstallation": "Installation Personnalisée", + "installationFolder": "Dossier d'Installation", + "pathPlaceholder": "Emplacement par défaut", + "browse": "Parcourir", + "installButton": "INSTALLER HYTALE", + "installing": "INSTALLATION..." + }, + "play": { + "ready": "PRÊT À JOUER", + "subtitle": "Lancez Hytale et entrez dans l'aventure", + "playButton": "JOUER À HYTALE", + "latestNews": "DERNIÈRES ACTUALITÉS", + "viewAll": "VOIR TOUT", + "checking": "VÉRIFICATION...", + "play": "JOUER" + }, + "mods": { + "searchPlaceholder": "Rechercher des mods...", + "myMods": "MES MODS", + "previous": "PRÉCÉDENT", + "next": "SUIVANT", + "page": "Page", + "of": "sur", + "modalTitle": "MES MODS", + "noModsFound": "Aucun Mod Trouvé", + "noModsFoundDesc": "Essayez d'ajuster votre recherche", + "noModsInstalled": "Aucun Mod Installé", + "noModsInstalledDesc": "Ajoutez des mods depuis CurseForge ou importez des fichiers locaux", + "view": "VOIR", + "install": "INSTALLER", + "installed": "INSTALLÉ", + "enable": "ACTIVER", + "disable": "DÉSACTIVER", + "active": "ACTIF", + "disabled": "DÉSACTIVÉ", + "delete": "Supprimer le mod", + "noDescription": "Aucune description disponible", + "confirmDelete": "Êtes-vous sûr de vouloir supprimer \"{name}\" ?", + "confirmDeleteDesc": "Cette action est irréversible.", + "confirmDeletion": "Confirmer la Suppression", + "apiKeyRequired": "Clé API Requise", + "apiKeyRequiredDesc": "Une clé API CurseForge est nécessaire pour parcourir les mods" + }, + "news": { + "title": "TOUTES LES ACTUALITÉS", + "readMore": "Lire Plus" + }, + "chat": { + "title": "CHAT JOUEURS", + "pickColor": "Couleur", + "inputPlaceholder": "Tapez votre message...", + "send": "Envoyer", + "online": "en ligne", + "charCounter": "{current}/{max}", + "secureChat": "Chat sécurisé - Les liens sont censurés", + "joinChat": "Rejoindre le Chat", + "chooseUsername": "Choisissez un nom d'utilisateur pour rejoindre le Chat Joueurs", + "username": "Nom d'utilisateur", + "usernamePlaceholder": "Entrez votre nom d'utilisateur...", + "usernameHint": "3-20 caractères, lettres, chiffres, - et _ uniquement", + "joinButton": "Rejoindre le Chat", + "colorModal": { + "title": "Personnaliser la Couleur du Nom", + "chooseSolid": "Choisissez une couleur unie:", + "customColor": "Couleur personnalisée:", + "preview": "Aperçu:", + "previewUsername": "Nom d'utilisateur", + "apply": "Appliquer la Couleur" + } + }, + "settings": { + "title": "PARAMÈTRES", + "java": "Java Runtime", + "useCustomJava": "Utiliser un Chemin Java Personnalisé", + "javaDescription": "Remplacer le Java intégré par votre propre installation", + "javaPath": "Chemin de l'Exécutable Java", + "javaPathPlaceholder": "Sélectionnez le chemin Java...", + "javaBrowse": "Parcourir", + "javaHint": "Sélectionnez le dossier d'installation de Java (compatible Windows, Mac, Linux)", + "discord": "Intégration Discord", + "enableRPC": "Activer Discord Rich Presence", + "discordDescription": "Afficher votre activité du launcher sur Discord", + "game": "Options de Jeu", + "playerName": "Nom du Joueur", + "playerNamePlaceholder": "Entrez le nom du joueur", + "playerNameHint": "Ce nom sera utilisé en jeu (1-16 caractères)", + "openGameLocation": "Ouvrir l'Emplacement du Jeu", + "openGameLocationDesc": "Ouvrir le dossier d'installation du jeu", + "account": "Gestion UUID Joueur", + "currentUUID": "UUID Actuel", + "uuidPlaceholder": "Chargement UUID...", + "copyUUID": "Copier UUID", + "regenerateUUID": "Régénérer UUID", + "uuidHint": "Votre identifiant unique de joueur pour ce nom d'utilisateur", + "manageUUIDs": "Gérer Tous les UUIDs", + "manageUUIDsDesc": "Voir et gérer tous les UUIDs de joueurs", + "language": "Langue", + "selectLanguage": "Sélectionner la Langue", + "repairGame": "Réparer le Jeu", + "reinstallGame": "Réinstaller les fichiers du jeu (préserve les données)", + "gpuPreference": "Préférence GPU", + "gpuHint": "Sélectionnez votre GPU préféré (Linux: affecte DRI_PRIME)", + "gpuAuto": "Auto", + "gpuIntegrated": "Intégré", + "gpuDedicated": "Dédié", + "logs": "JOURNAUX SYSTÈME", + "logsCopy": "Copier", + "logsRefresh": "Actualiser", + "logsFolder": "Ouvrir le Dossier", + "logsLoading": "Chargement des journaux...", + "closeLauncher": "Comportement du Launcher", + "closeOnStart": "Fermer le Launcher au démarrage du jeu", + "closeOnStartDescription": "Fermer automatiquement le launcher après le lancement d'Hytale", + "hwAccel": "Accélération Matérielle", + "hwAccelDescription": "Activer l'accélération matérielle pour le launcher", + "gameBranch": "Branche du Jeu", + "branchRelease": "Release", + "branchPreRelease": "Pré-Release", + "branchHint": "Basculer entre la version stable release et la pré-release expérimentale", + "branchWarning": "Changer de branche téléchargera et installera une version différente du jeu", + "branchSwitching": "Passage à {branch}...", + "branchSwitched": "Passage à {branch} réussi!", + "installRequired": "Installation Requise", + "branchInstallConfirm": "Le jeu sera installé pour la branche {branch}. Continuer?" + }, + "uuid": { + "modalTitle": "Gestion UUID", + "currentUserUUID": "UUID Utilisateur Actuel", + "allPlayerUUIDs": "Tous les UUIDs Joueurs", + "generateNew": "Générer Nouvel UUID", + "loadingUUIDs": "Chargement des UUIDs...", + "setCustomUUID": "Définir UUID Personnalisé", + "customPlaceholder": "Entrez UUID personnalisé (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)", + "setUUID": "Définir UUID", + "warning": "Attention: Définir un UUID personnalisé changera votre identité de joueur actuelle", + "copyTooltip": "Copier UUID", + "regenerateTooltip": "Générer Nouvel UUID" + }, + "profiles": { + "modalTitle": "Gérer les Profils", + "newProfilePlaceholder": "Nom du Nouveau Profil", + "createProfile": "Créer un Profil" + }, + "discord": { + "notificationText": "Rejoignez notre communauté Discord!", + "joinButton": "Rejoindre Discord" + }, + "common": { + "confirm": "Confirmer", + "cancel": "Annuler", + "save": "Sauvegarder", + "close": "Fermer", + "delete": "Supprimer", + "edit": "Modifier", + "loading": "Chargement...", + "apply": "Appliquer", + "install": "Installer" + }, + "notifications": { + "gameDataNotFound": "Erreur: Données du jeu introuvables", + "gameUpdatedSuccess": "Jeu mis à jour avec succès! 🎉", + "updateFailed": "Mise à jour échouée: {error}", + "updateError": "Erreur de mise à jour: {error}", + "discordEnabled": "Discord Rich Presence activé", + "discordDisabled": "Discord Rich Presence désactivé", + "discordSaveFailed": "Échec de la sauvegarde des paramètres Discord", + "playerNameRequired": "Veuillez entrer un nom de joueur valide", + "playerNameSaved": "Nom du joueur sauvegardé avec succès", + "playerNameSaveFailed": "Échec de la sauvegarde du nom du joueur", + "uuidCopied": "UUID copié dans le presse-papiers!", + "uuidCopyFailed": "Échec de la copie de l'UUID", + "uuidRegenNotAvailable": "Régénération UUID non disponible", + "uuidRegenFailed": "Échec de la régénération de l'UUID", + "uuidGenerated": "Nouvel UUID généré avec succès!", + "uuidGeneratedShort": "Nouvel UUID généré!", + "uuidGenerateFailed": "Échec de la génération du nouvel UUID", + "uuidRequired": "Veuillez entrer un UUID", + "uuidInvalidFormat": "Format UUID invalide", + "uuidSetFailed": "Échec de la définition de l'UUID personnalisé", + "uuidSetSuccess": "UUID personnalisé défini avec succès!", + "javaPathCopied": "Chemin Java copié dans le presse-papiers!", + "javaPathCopyFailed": "Échec de la copie du chemin Java", + "javaPathSaved": "Chemin Java sauvegardé avec succès!", + "javaPathSaveFailed": "Échec de la sauvegarde du chemin Java", + "javaPathInvalid": "Chemin Java invalide", + "javaPathReset": "Chemin Java réinitialisé aux valeurs par défaut", + "gameLocationError": "Impossible d'ouvrir l'emplacement du jeu", + "launcherRestartRequired": "Redémarrage du launcher requis pour appliquer les modifications", + "gameRepairConfirm": "Êtes-vous sûr de vouloir réparer le jeu? Cela réinstallera tous les fichiers du jeu.", + "gameRepairInProgress": "Réparation du jeu en cours...", + "gameRepairSuccess": "Jeu réparé avec succès!", + "gameRepairFailed": "Échec de la réparation du jeu: {error}", + "invalidUsername": "Nom d'utilisateur invalide", + "usernameInUse": "Nom d'utilisateur déjà utilisé", + "chatJoinSuccess": "Vous avez rejoint le chat!", + "chatJoinFailed": "Échec de la connexion au chat", + "messageTooLong": "Message trop long", + "messageSent": "Message envoyé", + "messageSendFailed": "Échec de l'envoi du message", + "colorUpdated": "Couleur mise à jour!", + "colorUpdateFailed": "Échec de la mise à jour de la couleur", + "profileCreated": "Profil créé avec succès!", + "profileCreateFailed": "Échec de la création du profil", + "profileDeleted": "Profil supprimé", + "profileDeleteFailed": "Échec de la suppression du profil", + "profileSwitched": "Profil changé vers: {name}", + "profileSwitchFailed": "Échec du changement de profil", + "invalidProfileName": "Nom de profil invalide", + "profileNameExists": "Un profil avec ce nom existe déjà", + "noInternet": "Pas de connexion Internet", + "checkInternetConnection": "Vérifiez votre connexion Internet", + "serverError": "Erreur serveur. Veuillez réessayer plus tard.", + "unknownError": "Une erreur inconnue s'est produite" + } +}