{
"nav": {
"home": "Accueil",
"community": "Communauté",
"articles": "Articles",
"photos": "Photos",
"staff": "Équipe",
"rankings": "Classements",
"guilds": "Groupes",
"leaderboards": "Meilleurs scores",
"rareValues": "Valeurs rares",
"shop": "Boutique",
"market": "Marché",
"assistance": "Assistance",
"helpCenter": "Centre d'aide",
"myTickets": "Mes tickets",
"badges": "Badges",
"radio": "Radio",
"friends": "Amis",
"messages": "Messages",
"admin": "Admin",
"openMenu": "Open menu",
"closeMenu": "Close menu",
"drawBadge": "Dessiner un badge"
},
"header": {
"online": "{count} {hotel} en ligne",
"nitroClient": "Client Nitro",
"tagline": "Un monde virtuel en ligne où vous pouvez créer votre propre avatar, vous faire des amis, discuter, créer des salons et bien plus encore !",
"login": "Connexion",
"or": "Ou",
"createAccount": "Créer un compte"
},
"footer": {
"copyright": "© {year} - {hotel} est un projet éducatif à but non lucratif"
},
"common": {
"language": "Langue",
"lightMode": "Mode clair",
"darkMode": "Mode sombre"
},
"pages": {
"staff": {
"title": "Équipe",
"subtitle": "L'équipe derrière l'hôtel",
"ranksTitle": "Rangs",
"ranksSubtitle": "Ce dont chaque membre de l'équipe s'occupe",
"membersTitle": "Membres de l'équipe",
"membersEmptySubtitle": "Personne à afficher pour le moment",
"membersSubtitle": "{count, plural, one {# membre qui fait tourner les choses} other {# membres qui font tourner les choses}}",
"emptyState": "Aucun membre du personnel à afficher.",
"colUsername": "Nom d'utilisateur",
"colRank": "Rang",
"colMotto": "Devise"
},
"leaderboard": {
"title": "Classement",
"subtitle": "Top 20 des joueurs par {currency}",
"tab_credits": "Crédits",
"tab_diamonds": "Diamants",
"tab_duckets": "Duckets",
"tab_achievement": "Succès",
"tab_respects": "Respects",
"tab_onlinetime": "Temps en ligne",
"emptyState": "Aucun classement à afficher pour le moment.",
"colAvatar": "Avatar",
"colPlayer": "Joueur"
},
"friends": {
"title": "Amis",
"emptySubtitle": "Vous n'avez encore aucun ami ajouté",
"subtitle": "{count, plural, one {Vous avez # ami} other {Vous avez # amis}}",
"emptyState": "Ajoutez des amis dans l'hôtel et ils apparaîtront ici.",
"noMotto": "Aucune devise"
},
"messages": {
"title": "Messages",
"subtitle": "Demandes d'amis et messages hors ligne qui vous attendent",
"requestsTitle": "Demandes d'amis",
"requestsEmptySubtitle": "Personne n'a encore demandé à être votre ami",
"requestsSubtitle": "{count, plural, one {# demande en attente} other {# demandes en attente}}",
"requestsEmptyState": "Aucune demande d'ami en attente.",
"wantsToBeFriend": "veut être votre ami.",
"accept": "Accepter",
"offlineTitle": "Messages hors ligne",
"offlineEmptySubtitle": "Votre boîte de réception est vide",
"offlineSubtitle": "{count, plural, one {# message reçu} other {# messages reçus}}",
"offlineEmptyState": "Vous n'avez aucun message hors ligne.",
"unknownUser": "Utilisateur #{id}"
},
"profile": {
"noMotto": "Aucune devise",
"statRank": "Rang",
"statCredits": "Crédits",
"statRegistered": "Inscrit",
"badgesTitle": "Badges",
"badgesEmpty": "Pas encore de badges.",
"photosTitle": "Photos",
"photosEmpty": "Pas encore de photos.",
"guestbookTitle": "Livre d'or",
"guestbookSubtitle": "Messages sur le mur de {username}",
"leaveMessage": "Laisser un message",
"guestbookPlaceholder": "Écrivez quelque chose sur le livre d'or de {username}…",
"post": "Publier",
"loginToPost": "Connectez-vous pour laisser un message dans le livre d'or.",
"guestbookEmpty": "Pas encore d'entrées dans le livre d'or.",
"unknownUser": "Utilisateur #{id}",
"statDuckets": "Duckets",
"statDiamonds": "Diamants",
"walletTitle": "Portefeuille",
"friendsTitle": "Amis",
"friendsSubtitle": "Les personnes de l'hôtel avec qui il/elle traîne",
"friendsEmpty": "Aucun ami à afficher.",
"roomsTitle": "Salons",
"roomsSubtitle": "Salons qu'il/elle possède",
"roomsEmpty": "Aucun salon à afficher.",
"roomUntitled": "Salon sans titre"
},
"rankings": {
"title": "Classements",
"subtitle": "Les 12 meilleurs joueurs classés par crédits",
"emptyState": "Aucun joueur à classer pour le moment."
},
"home": {
"welcome": "Bienvenue sur {hotelName}",
"welcomeSubtitle": "Votre hôtel rétro, désormais propulsé par Next.js",
"welcomeBody": "Traînez, collectionnez des meubles et rencontrez des amis.",
"enterHotel": "Entrer dans {hotelName}",
"onlineFriends": "Amis en ligne",
"noFriendsOnline": "Aucun ami en ligne",
"register": "S'INSCRIRE MAINTENANT",
"joinNow": "Rejoignez {hotelName} dès aujourd'hui !",
"recentUsers": "Utilisateurs récents",
"recentPhotos": "Photos récentes",
"latestNews": "Dernières actualités",
"newsTitle": "Dernières actualités",
"newsSubtitle": "Fraîchement sorties de l'hôtel",
"allNews": "Toutes les actualités →",
"noArticles": "Pas encore d'articles.",
"noPhotos": "Pas encore de photos.",
"noUsers": "Aucun utilisateur en ligne",
"latestArticle": "Dernier article"
},
"news": {
"title": "Actualités",
"subtitle": "Les dernières annonces, événements et mises à jour de l'hôtel",
"noArticles": "Pas encore d'articles."
},
"article": {
"backToNews": "← Actualités",
"reactionsTitle": "Réactions",
"reactionsSubtitle": "Dites-nous ce que vous en pensez",
"reaction": {
"like": "J'aime",
"love": "J'adore",
"wow": "Waouh"
},
"removeReaction": "Cliquez pour retirer votre réaction",
"reactWith": "Réagir avec {reaction}",
"noReactions": "Pas encore de réactions.",
"logIn": "Connectez-vous",
"toReact": "pour réagir.",
"commentsTitle": "Commentaires",
"commentsSubtitle": "Participez à la conversation",
"commentsCount": "{count} jusqu'à présent",
"noComments": "Pas encore de commentaires. Soyez le premier à commenter.",
"userNumber": "Utilisateur #{id}",
"addComment": "Ajouter un commentaire",
"commentPlaceholder": "Écrivez votre commentaire…",
"postComment": "Publier le commentaire",
"toComment": "pour laisser un commentaire."
},
"photos": {
"title": "Photos",
"subtitle": "Les dernières captures d'écran prises dans l'hôtel",
"noPhotos": "Pas encore de photos.",
"photoAlt": "Photo de l'utilisateur #{id}",
"byUser": "par l'utilisateur #{id}"
},
"badges": {
"title": "Badges",
"subtitle": "Les badges que vous pouvez gagner et afficher dans l'hôtel",
"noBadges": "Aucun badge disponible pour le moment."
},
"community": {
"title": "Communauté",
"subtitle": "Tout ce qui se passe dans l'hôtel en un seul endroit",
"open": "Ouvrir →",
"links": {
"rankings": {
"title": "Classements",
"text": "Voir les joueurs les plus riches de l'hôtel, classés par crédits."
},
"staff": {
"title": "Équipe",
"text": "Rencontrez l'équipe qui fait tourner l'hôtel chaque jour."
},
"news": {
"title": "Actualités",
"text": "Les dernières annonces, événements et mises à jour."
},
"photos": {
"title": "Photos",
"text": "Les captures d'écran partagées par la communauté dans tout l'hôtel."
},
"guilds": {
"title": "Groupes",
"text": "Parcourez les groupes que les joueurs ont créés et rejoints."
},
"leaderboards": {
"title": "Meilleurs scores",
"text": "Qui est en tête cette saison dans les statistiques de l'hôtel."
}
}
},
"guilds": {
"title": "Groupes",
"subtitle": "Parcourez les groupes que les joueurs ont créés et rejoints",
"empty": "Pas encore de groupes.",
"unnamedGuild": "Groupe sans nom",
"noDescription": "Aucune description"
},
"guild": {
"allGuilds": "← Tous les groupes",
"unnamedGuild": "Groupe sans nom",
"noDescription": "Aucune description",
"memberSingular": "Membre",
"memberPlural": "Membres",
"founded": "Fondé",
"forumLink": "Forum →",
"discussion": "Discussion",
"membersTitle": "Membres",
"memberLowerSingular": "membre",
"memberLowerPlural": "membres",
"noMembers": "Aucun membre.",
"owner": "Propriétaire",
"noMotto": "Aucune devise"
},
"guildForum": {
"backToGuild": "← Retour au groupe",
"unnamedGuild": "Groupe sans nom",
"forumTitle": "{guild} — Forum",
"threadSingular": "sujet",
"threadPlural": "sujets",
"newThread": "+ Nouveau sujet",
"empty": "Aucun sujet dans ce forum pour le moment.",
"colSubject": "Sujet",
"colAuthor": "Auteur",
"colPosts": "Messages",
"colDate": "Date",
"noSubject": "(sans sujet)",
"pinned": "Épinglé",
"locked": "Verrouillé",
"userNumber": "Utilisateur #{id}",
"unknown": "Inconnu"
},
"guildForumNew": {
"backToForum": "← Retour au forum",
"unnamedGuild": "Groupe sans nom",
"title": "Nouveau sujet",
"subtitle": "dans le forum {guild}",
"subjectLabel": "Sujet",
"subjectPlaceholder": "Sujet du fil",
"messageLabel": "Message",
"messagePlaceholder": "Écrivez votre premier message…",
"postThread": "Publier le sujet",
"cancel": "Annuler"
},
"shop": {
"title": "Boutique",
"subtitle": "Rechargez votre compte et obtenez des packs exclusifs, de la monnaie et des badges.",
"browsingCategory": "Parcourir les packs {category}.",
"all": "Tout",
"allPackages": "Tous les packs",
"packagesAvailable": "{count, plural, one {# pack disponible} other {# packs disponibles}}",
"empty": "Aucun pack disponible pour le moment.",
"buy": "Acheter"
},
"topup": {
"title": "Recharger avec PayPal",
"subtitle": "Payez en toute sécurité avec PayPal et vos crédits sont ajoutés dès que le paiement est confirmé.",
"cancelled": "Le paiement a été annulé — aucun montant n'a été prélevé.",
"chooseAmount": "Choisissez un montant",
"notConfiguredPre": "PayPal n'est pas encore configuré. Un administrateur doit définir",
"notConfiguredAnd": "et",
"notConfiguredOptional": "(et éventuellement",
"notConfiguredPost": "pour le bac à sable ou le mode réel).",
"balanceTitle": "Votre solde",
"signedInAs": "Connecté en tant que {username}",
"credits": "Crédits",
"creditsPerUnit": "Crédits pour 1,00 {currency}",
"rateLine": "Vous recevez {amount} crédits pour 1,00 {currency}. Les crédits apparaissent dans le jeu la prochaine fois que vous vous connectez."
},
"marketplace": {
"title": "Marché",
"subtitle": "Parcourez les meubles et les rares listés par les joueurs. Les annonces sont placées dans le jeu et mises à jour en direct — rendez-vous dans l'hôtel pour faire une offre.",
"activeOffers": "Offres actives",
"sellers": "Vendeurs",
"totalValue": "Valeur totale",
"activeListings": "Annonces actives",
"mostRecentFirst": "Les plus récentes en premier",
"empty": "Il n'y a aucune offre active sur le marché pour le moment. Revenez plus tard.",
"colOffer": "Offre",
"colItem": "Objet",
"colSeller": "Vendeur",
"colPrice": "Prix",
"colListed": "Publié",
"itemLabel": "Objet #{id}",
"userLabel": "Utilisateur #{id}",
"justNow": "à l'instant",
"minutesAgo": "il y a {count}m",
"hoursAgo": "il y a {count}h",
"daysAgo": "il y a {count}j"
},
"rares": {
"title": "Valeurs rares",
"subtitle": "Obtenez un aperçu de tous les rares de l'hôtel, regroupés par catégorie.",
"empty": "Nous n'avons actuellement aucun rare répertorié ici.",
"rareCount": "{count, plural, one {# rare} other {# rares}}",
"viewRares": "Voir les rares →"
},
"rareCategory": {
"rareCount": "{count, plural, one {# rare dans cette catégorie} other {# rares dans cette catégorie}}",
"allRares": "← Tous les rares",
"empty": "Aucun rare répertorié dans cette catégorie pour le moment.",
"colRare": "Rare",
"colCredits": "Crédits",
"colCurrency": "Monnaie",
"creditsValue": "{value} crédits",
"duckets": "Duckets",
"diamonds": "Diamants",
"credits": "Crédits"
},
"redeem": {
"title": "Échanger un bon",
"subtitle": "Vous avez un code de bon ? Saisissez-le ci-dessous pour ajouter la récompense à votre compte.",
"enterCode": "Entrez votre code",
"oncePerAccount": "Chaque bon ne peut être échangé qu'une seule fois par compte.",
"balanceTitle": "Votre solde",
"signedInAs": "Connecté en tant que {username}",
"credits": "Crédits",
"instantCredit": "Les récompenses échangées sont créditées instantanément et apparaissent dans le jeu la prochaine fois que vous vous connectez."
},
"help": {
"title": "Centre d'aide",
"subtitle": "Trouvez des guides, des sujets d'assistance et les règles de l'hôtel — tout ce dont vous avez besoin pour obtenir de l'aide.",
"myTickets": "Mes tickets →",
"topicsTitle": "Sujets d'assistance",
"topicsSubtitle": "Parcourez les guides et les réponses aux questions courantes",
"topicsEmpty": "Pas encore de sujets d'aide.",
"rulesTitle": "Règles de l'hôtel",
"rulesSubtitle": "Veuillez les lire avant de traîner dans l'hôtel",
"rulesEmpty": "Aucune règle publiée pour le moment.",
"categoryEmpty": "Aucune règle dans cette catégorie."
},
"helpCategory": {
"back": "← Centre d'aide",
"topicSubtitle": "Sujet du centre d'aide",
"moreTitle": "Plus de sujets d'aide",
"moreSubtitle": "Aller à un autre sujet d'assistance"
},
"helpTickets": {
"title": "Tickets d'aide",
"subtitle": "Soumettez un ticket au personnel et suivez vos demandes en cours.",
"statTotal": "Total des tickets",
"statOpen": "Ouverts",
"statClosed": "Fermés",
"newTitle": "Nouveau ticket",
"newSubtitle": "Décrivez votre problème et le personnel vous répondra",
"subjectPlaceholder": "Sujet",
"contentPlaceholder": "Décrivez votre problème…",
"submit": "Soumettre le ticket",
"listTitle": "Vos tickets",
"listSubtitle": "Toutes les demandes que vous avez envoyées au personnel",
"listEmpty": "Vous n'avez pas encore de tickets.",
"colId": "ID",
"colSubject": "Sujet",
"colStatus": "Statut",
"colCreated": "Créé",
"statusOpen": "Ouvert",
"statusClosed": "Fermé"
},
"applyStaff": {
"title": "Postuler pour {hotel}",
"subtitle": "Nous ouvrons des candidatures pour le personnel de temps en temps. Si vous tombez sur un poste dans lequel vous pensez correspondre parfaitement, n'hésitez pas à postuler.",
"noPositionsTitle": "Aucun poste ouvert",
"noPositionsBody": "Il n'y a actuellement aucun poste ouvert. Revenez plus tard pour vérifier si de nouveaux postes sont disponibles. Merci de votre intérêt.",
"noDeadline": "Aucune date limite fixée",
"deadline": "Date limite de candidature : {date}",
"alreadyApplied": "Vous avez déjà postulé pour {rank}",
"aboutYou": "À propos de vous",
"aboutPlaceholder": "Dites-nous pourquoi vous seriez un excellent {rank}…",
"applyFor": "Postuler pour {rank}"
},
"applyTeam": {
"title": "Postuler pour rejoindre l'équipe {hotel}",
"subtitle": "Nous ouvrons les candidatures pour l'équipe périodiquement. Si vous voyez une équipe qui vous correspond, n'hésitez pas à postuler !",
"noPositionsTitle": "Aucun poste dans l'équipe ouvert",
"noPositionsBody": "Il n'y a actuellement aucun poste ouvert dans l'équipe. Revenez plus tard pour vérifier les nouvelles offres. Merci !",
"pending": "Votre candidature est en attente",
"aboutYou": "À propos de vous",
"aboutPlaceholder": "Dites-nous pourquoi vous seriez un excellent choix pour {rank}…",
"applyFor": "Postuler pour {rank}"
},
"radio": {
"title": "Radio",
"subtitle": "Écoutez la radio de l'hôtel — sessions live de DJ, demandes et dédicaces.",
"nowPlaying": "En cours de lecture",
"nothingPlaying": "Rien ne joue pour le moment.",
"onAir": "À l'antenne : {dj}",
"noDj": "Aucun DJ à l'antenne.",
"audioUnsupported": "Votre navigateur ne prend pas en charge l'élément audio.",
"streamOffline": "Le flux est actuellement hors ligne.",
"exploreTitle": "Explorer la radio",
"exploreSubtitle": "Programmation, dédicaces, demandes et plus",
"linkSchedule": "Programmation",
"linkScheduleText": "Notre programme hebdomadaire de DJ et d'émissions.",
"linkShouts": "Dédicaces",
"linkShoutsText": "Dédicaces et demandes de la communauté.",
"linkRequests": "Demandes",
"linkRequestsText": "Demandez au DJ de passer votre morceau préféré.",
"linkApply": "Postuler comme DJ",
"linkApplyText": "Rejoignez l'équipe et prenez le micro.",
"linkLeaderboard": "Classement",
"linkLeaderboardText": "Meilleurs auditeurs classés par points gagnés.",
"todayTitle": "Programmation du jour",
"todayTitleWithDay": "Programmation du jour · {day}",
"todaySubtitle": "Ce qui passe à l'antenne aujourd'hui",
"fullWeek": "Toute la semaine →",
"noShowsToday": "Aucune émission prévue aujourd'hui.",
"colTime": "Horaire",
"colShow": "Émission",
"colDj": "DJ",
"untitledShow": "Émission sans titre",
"userNumber": "Utilisateur #{id}"
},
"radioSchedule": {
"title": "Programmation radio",
"subtitle": "Notre programme hebdomadaire de DJ et d'émissions",
"empty": "Aucune émission prévue pour le moment.",
"colDay": "Jour",
"colTime": "Horaire",
"colDj": "DJ",
"colShow": "Émission",
"noShows": "Aucune émission"
},
"radioShouts": {
"title": "Dédicaces radio",
"subtitle": "Dédicaces et demandes de la communauté",
"postTitle": "Publier une dédicace",
"postSubtitle": "Envoyez un message au DJ à l'antenne",
"messageLabel": "Votre message",
"messagePlaceholder": "Envoyez une dédicace au DJ…",
"shoutButton": "Dédicacer",
"loginToPost": "Connectez-vous pour publier une dédicace.",
"latestTitle": "Dernières dédicaces",
"latestSubtitle": "Les messages les plus récents des auditeurs",
"empty": "Pas encore de dédicaces. Soyez le premier !"
},
"radioContests": {
"title": "Concours radio",
"subtitle": "Écoutez et participez à nos derniers concours en direct",
"empty": "Pas encore de concours.",
"contestLabel": "Concours #{id}",
"dateUnknown": "Date inconnue"
},
"radioGiveaways": {
"title": "Concours radio",
"subtitle": "Écoutez pour tenter votre chance dans nos concours radio",
"empty": "Pas encore de concours.",
"giveawayLabel": "Concours #{id}",
"dateUnknown": "Date inconnue"
},
"radioLeaderboard": {
"title": "Classement des auditeurs radio",
"subtitle": "Top 50 des auditeurs par points gagnés à l'écoute de la radio",
"empty": "Aucun point d'auditeur à afficher pour le moment.",
"colRank": "Rang",
"colAvatar": "Avatar",
"colListener": "Auditeur",
"colPoints": "Points"
},
"radioApply": {
"title": "Postuler pour devenir DJ radio",
"subtitle": "Parlez-nous de vous et pourquoi vous seriez parfait pour l'antenne",
"latestTitle": "Votre dernière candidature",
"statusLabel": "Statut :",
"submittedOn": "· soumise le {date}",
"submitAgain": "Vous pouvez soumettre à nouveau ci-dessous si vos informations ont changé.",
"formTitle": "Formulaire de candidature",
"formSubtitle": "Tous les champs marqués comme requis doivent être remplis",
"realNameLabel": "Nom réel",
"realNamePlaceholder": "Votre nom complet",
"ageLabel": "Âge",
"availabilityLabel": "Disponibilité",
"availabilityPlaceholder": "Quels jours et à quelles heures pouvez-vous diffuser ?",
"musicStyleLabel": "Style de musique",
"musicStylePlaceholder": "ex. House, Pop, Hip-Hop",
"experienceLabel": "Expérience",
"optional": "(facultatif)",
"experiencePlaceholder": "Une expérience préalable en tant que DJ ou animateur ?",
"motivationLabel": "Motivation",
"motivationPlaceholder": "Pourquoi voulez-vous rejoindre l'équipe radio ?",
"submitButton": "Soumettre la candidature"
},
"settings": {
"accountSettings": "Paramètres du compte",
"accountSettingsSubtitle": "Gérez votre profil, votre sécurité et vos comptes connectés",
"publicProfile": "Votre profil public",
"noMotto": "Aucune devise",
"noEmail": "Aucun e-mail enregistré",
"changeMotto": "Changer la devise",
"changeMottoSubtitle": "Se met à jour instantanément dans le jeu si vous êtes en ligne",
"mottoPlaceholder": "Votre devise",
"saveMotto": "Enregistrer la devise",
"securityTitle": "Sécurité",
"securitySubtitle": "Authentification à deux facteurs",
"securityDescription": "Ajoutez une deuxième couche de protection à votre compte.",
"twoFactorLink": "Authentification à deux facteurs",
"connectionsTitle": "Comptes connectés",
"connectionsSubtitle": "Connectez-vous en un clic",
"connectionsDescription": "Associez Discord ou Google à votre compte hôtel.",
"manageConnections": "Gérer les connexions"
},
"settings2fa": {
"backToSettings": "← Paramètres",
"title": "Authentification à deux facteurs",
"subtitle": "Ajoutez une deuxième couche de sécurité avec une application d'authentification",
"nowEnabled": "L'A2F est maintenant activée. 🔒",
"disabledNotice": "L'A2F a été désactivée.",
"badCode": "Ce code n'était pas valide — réessayez.",
"noAppKeyPrefix": "L'A2F est indisponible tant que",
"noAppKeyMiddle": "n'est pas configuré (la même clé Laravel",
"noAppKeySuffix": "que votre installation AtomCMS, pour que les secrets existants restent lisibles).",
"isEnabled": "L'A2F est activée",
"onYourAccount": "sur votre compte.",
"disable": "Désactiver l'A2F",
"scanOrEnter": "Scannez ou saisissez cette clé",
"scanInstructions": "Ajoutez-la à Google Authenticator / Authy, puis saisissez le code à 6 chiffres pour confirmer.",
"manualKey": "Clé manuelle :",
"codePlaceholder": "Code à 6 chiffres",
"confirm": "Confirmer",
"enableIntro": "Ajoutez une deuxième couche de sécurité avec une application d'authentification.",
"enable": "Activer l'A2F"
},
"connections": {
"backToSettings": "← Paramètres",
"title": "Comptes connectés",
"subtitle": "Associez un compte social pour vous connecter en un clic",
"matchByEmail": "Nous le faisons correspondre à votre compte hôtel par e-mail, donc utilisez l'adresse enregistrée :",
"lookupFailed": "Nous n'avons pas pu lire vos comptes liés pour le moment. Vous pouvez toujours vous connecter ci-dessous — votre statut apparaîtra dès qu'il sera disponible.",
"statusUnavailable": "Non disponible sur cet hôtel.",
"statusConnected": "Connecté — connectez-vous avec ce compte.",
"statusNotConnected": "Non connecté.",
"connected": "Connecté",
"connectProvider": "Connecter {provider}",
"unavailable": "Indisponible",
"footerNote": "La connexion vous redirige vers le fournisseur pour autoriser, puis vous revient ici. Si l'e-mail de votre compte social ne correspond pas à un compte hôtel, vous serez redirigé vers l'écran de connexion avec une note."
},
"login": {
"title": "Connexion",
"subtitle": "Bon retour — connectez-vous pour entrer dans l'hôtel.",
"subtitle2fa": "Saisissez le code à 6 chiffres de votre application d'authentification.",
"usernamePlaceholder": "Nom d'utilisateur",
"passwordPlaceholder": "Mot de passe",
"codePlaceholder": "Code A2F",
"pleaseWait": "Veuillez patienter…",
"verify": "Vérifier",
"signIn": "Se connecter",
"or": "ou",
"continueWithDiscord": "Continuer avec Discord",
"continueWithGoogle": "Continuer avec Google",
"noAccount": "Pas de compte ?",
"createOne": "Créer un compte",
"forgotPassword": "Mot de passe oublié ?",
"errorInvalidCredentials": "Nom d'utilisateur ou mot de passe invalide",
"errorInvalid2fa": "Code A2F invalide"
},
"register": {
"title": "Créer un compte",
"subtitle": "Rejoignez l'hôtel — cela ne prend qu'un instant.",
"username": "Nom d'utilisateur",
"email": "E-mail",
"password": "Mot de passe",
"confirmPassword": "Répéter le mot de passe",
"usernamePlaceholder": "Nom d'utilisateur",
"emailPlaceholder": "E-mail",
"passwordPlaceholder": "Mot de passe (min 6 car.)",
"confirmPasswordPlaceholder": "Répéter le mot de passe",
"selectOutfit": "Sélectionnez votre tenue",
"termsAccept": "J'ai 18 ans ou plus et j'accepte les conditions et règles de {hotel}.",
"createAccount": "Créer un compte",
"creatingAccount": "Création du compte...",
"alreadyHaveAccount": "Vous avez déjà un compte ? Connectez-vous !",
"register": "S'inscrire",
"termsError": "Vous devez accepter les conditions et règles pour vous inscrire.",
"usernameError": "Le nom d'utilisateur est requis.",
"emailError": "Un e-mail valide est requis.",
"passwordError": "Le mot de passe doit contenir au moins 6 caractères.",
"confirmPasswordError": "Les mots de passe ne correspondent pas.",
"termsRequired": "Vous devez accepter les conditions et règles.",
"usernameRequired": "Le nom d'utilisateur est requis.",
"emailRequired": "L'e-mail est requis.",
"passwordRequired": "Le mot de passe est requis.",
"passwordsDontMatch": "Les mots de passe ne correspondent pas."
},
"forgot": {
"title": "Réinitialiser le mot de passe",
"subtitle": "Nous vous enverrons par e-mail un lien sécurisé pour définir un nouveau mot de passe.",
"sentNotice": "Si cet e-mail est enregistré, un lien de réinitialisation a été envoyé. Vérifiez votre boîte de réception.",
"emailPlaceholder": "Votre e-mail",
"sendResetLink": "Envoyer le lien de réinitialisation",
"backToLogin": "Retour à la connexion"
},
"reset": {
"title": "Définir un nouveau mot de passe",
"subtitle": "Choisissez un mot de passe fort que vous n'utilisez pas ailleurs.",
"passwordPlaceholder": "Nouveau mot de passe (min 6 car.)",
"resetPassword": "Réinitialiser le mot de passe",
"backToLogin": "Retour à la connexion"
},
"verify": {
"verifiedTitle": "Tout est prêt",
"verifiedSubtitle": "E-mail vérifié",
"verifiedBody": "Votre adresse e-mail a été vérifiée. Vous pouvez maintenant vous connecter et jouer.",
"goToLogin": "Aller à la connexion",
"alreadyTitle": "Déjà vérifié",
"alreadySubtitle": "Rien à faire",
"alreadyBody": "Cette adresse e-mail a déjà été confirmée.",
"unavailableTitle": "Réessayez dans un instant",
"unavailableSubtitle": "Serveur inaccessible",
"unavailableBody": "Nous n'avons pas pu joindre le serveur pour vérifier votre e-mail. Veuillez réessayer le lien dans un instant.",
"invalidTitle": "Vérification d'e-mail",
"invalidSubtitle": "Lien invalide ou expiré",
"invalidBody": "Ce lien de vérification n'est pas valide. Assurez-vous d'avoir ouvert le lien complet depuis votre e-mail, ou demandez-en un nouveau.",
"backToLogin": "Retour à la connexion"
},
"banned": {
"title": "Vous êtes banni",
"subtitle": "Compte suspendu",
"body": "Votre compte a été suspendu de l'hôtel.",
"reasonLabel": "Raison :",
"permanent": "Ce bannissement est permanent.",
"expires": "Expire le {date}.",
"contactStaff": "Si vous pensez qu'il s'agit d'une erreur, contactez l'équipe du personnel."
},
"maintenance": {
"title": "{hotel} est en maintenance",
"subtitle": "Nous serons bientôt de retour",
"staffCanLogIn": "Le personnel peut toujours se connecter."
},
"admin": {
"nav": {
"overview": "Aperçu",
"dashboard": "Tableau de bord",
"content": "Contenu",
"articles": "Articles",
"tags": "Étiquettes",
"navigator": "Navigateur",
"helpCenter": "Centre d'aide",
"advertisements": "Publicités",
"writeableBoxes": "Boîtes modifiables",
"photos": "Photos",
"tickets": "Tickets",
"events": "Events",
"polls": "Polls",
"banners": "Banners",
"prefixes": "Prefixes",
"usersAndAccess": "Utilisateurs & accès",
"users": "Utilisateurs",
"bans": "Bannissements",
"ipManagement": "Gestion IP",
"vpn": "VPN",
"applications": "Candidatures",
"teams": "Équipes",
"permissions": "Permissions",
"onlineUsers": "Online users",
"moderation": "Moderation",
"economy": "Économie",
"catalog": "Catalogue",
"shop": "Boutique",
"transactions": "Transactions",
"vouchers": "Bons",
"subscriptions": "Abonnements",
"rareValues": "Valeurs rares",
"badges": "Badges",
"achievements": "Succès",
"calendar": "Calendrier",
"radio": "Radio",
"radioHistory": "Historique radio",
"radioBanners": "Bannières",
"radioEmbed": "Intégration",
"radioApiKeys": "Clés API",
"radioModeration": "Modération",
"radioSettings": "Paramètres",
"radioMonitoring": "Surveillance",
"radioPoints": "Points",
"radioRanks": "Rangs",
"radioAutodj": "Auto DJ",
"system": "Système",
"commandocentrum": "Commandocentrum",
"emulator": "Émulateur",
"alerts": "Alertes",
"logs": "Journaux",
"auditLog": "Audit log",
"analytics": "Analytics",
"devops": "DevOps",
"wordFilter": "Filtre de mots",
"maintenance": "Maintenance",
"rooms": "Salons",
"emailTemplates": "Modèles d'e-mail",
"theme": "Thème",
"media": "Médias",
"favicon": "Favicon",
"sounds": "Sons",
"translations": "Traductions",
"import": "Importer",
"settings": "Paramètres",
"backToSite": "Retour au site",
"housekeeping": "Gouvernance",
"hotelManagementPanel": "Panneau de gestion de l'hôtel",
"rankLabel": "Rang {rank}",
"hubNewsMedia": "News & media",
"hubSiteContent": "Site content",
"hubEngagement": "Engagement",
"hubUsers": "Users",
"hubAccess": "Access & security",
"hubCatalog": "Catalog & rares",
"hubShop": "Shop & payments",
"hubTools": "Tools",
"hubObservability": "Observability"
},
"dashboard": {
"title": "Tableau de bord",
"subtitle": "Aperçu de l'hôtel & statut en direct",
"playersOnline": "Joueurs en ligne",
"articles": "Articles",
"activeBans": "Bannissements actifs",
"database": "Base de données",
"databaseConnected": "Connectée",
"databaseDown": "Indisponible",
"usersByRank": "Utilisateurs par rang",
"noAccountsToBreakDown": "Aucun compte à détailler pour le moment",
"rankLabel": "Rang {rank}",
"rankWithCount": "Rang {rank} : {count} comptes",
"recentStaffActivity": "Activité récente du personnel",
"viewAll": "Voir tout",
"noStaffActivityLogged": "Aucune activité du personnel enregistrée"
},
"articles": {
"title": "Articles",
"subtitle": "Articles d'actualité — les 50 plus récents",
"newArticle": "+ Nouvel article",
"edit": "Modifier",
"delete": "Supprimer",
"noArticles": "Pas encore d'articles",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer « {title} » ?",
"colTitle": "Titre",
"colSlug": "Slug",
"colAuthor": "Auteur",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"title": "Titre",
"titlePlaceholder": "Titre de l'article",
"slug": "Slug",
"slugPlaceholder": "slug-url-article",
"category": "Catégorie",
"categoryPlaceholder": "Sélectionnez une catégorie",
"body": "Corps",
"bodyPlaceholder": "Rédigez le contenu de votre article…",
"image": "Image",
"imagePlaceholder": "https://example.com/image.png",
"thumbnail": "Vignette",
"thumbnailPlaceholder": "https://example.com/thumb.png",
"published": "Publié",
"featured": "À la une",
"save": "Enregistrer l'article",
"saving": "Enregistrement…",
"deleteArticle": "Supprimer l'article",
"deleteConfirm": "Cette action est irréversible. L'article sera définitivement supprimé.",
"cancel": "Annuler"
}
},
"tags": {
"title": "Étiquettes",
"subtitle": "Étiquettes d'articles / catégories",
"addTag": "Ajouter une étiquette",
"name": "Nom",
"namePlaceholder": "Nom de l'étiquette",
"backgroundColour": "Couleur de fond",
"createTag": "Créer l'étiquette",
"editTag": "Modifier l'étiquette",
"updateTag": "Mettre à jour l'étiquette",
"deleteTag": "Supprimer l'étiquette",
"confirmDelete": "Supprimer « {name} » ?",
"noTags": "Pas encore d'étiquettes",
"colId": "ID",
"colTag": "Étiquette",
"colColour": "Couleur",
"colUsedBy": "Utilisée par",
"colCreated": "Créé",
"colActions": "Actions"
},
"navigation": {
"title": "Navigateur",
"flatCategories": "Catégories plates",
"publicRooms": "Salons publics",
"addCategory": "Ajouter une catégorie",
"editCategory": "Modifier la catégorie",
"deleteCategory": "Supprimer la catégorie",
"categoryName": "Nom de la catégorie",
"categoryNamePlaceholder": "ex. Salon & Discussion",
"categoryOrder": "Ordre",
"roomName": "Nom du salon",
"roomNamePlaceholder": "ex. Salon d'accueil",
"roomId": "ID du salon",
"roomIdPlaceholder": "ID numérique du salon",
"save": "Enregistrer",
"cancel": "Annuler",
"noCategories": "Pas encore de catégories",
"noPublicRooms": "Pas encore de salons publics",
"colId": "ID",
"colName": "Nom",
"colOrder": "Ordre",
"colRooms": "Salons",
"colActions": "Actions"
},
"helpCenter": {
"title": "Centre d'aide",
"subtitle": "Entrées d'assistance et gestion des FAQ",
"entries": "Entrées",
"newEntry": "+ Nouvelle entrée",
"edit": "Modifier",
"delete": "Supprimer",
"noEntries": "Pas encore d'entrées",
"confirmDelete": "Supprimer « {title} » ?",
"colId": "ID",
"colTitle": "Titre",
"colCategory": "Catégorie",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"title": "Titre",
"titlePlaceholder": "Titre de l'entrée",
"category": "Catégorie",
"categoryPlaceholder": "Sélectionnez une catégorie",
"body": "Corps",
"bodyPlaceholder": "Rédigez la réponse…",
"save": "Enregistrer l'entrée",
"saving": "Enregistrement…",
"deleteEntry": "Supprimer l'entrée",
"cancel": "Annuler"
}
},
"ads": {
"title": "Publicités",
"subtitle": "Gérer les publicités et bannières promotionnelles de l'hôtel",
"newAd": "+ Nouvelle pub",
"edit": "Modifier",
"delete": "Supprimer",
"noAds": "Pas encore de publicités",
"confirmDelete": "Supprimer cette publicité ?",
"colId": "ID",
"colName": "Nom",
"colImage": "Image",
"colUrl": "URL",
"colViews": "Vues",
"colStatus": "Statut",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"name": "Nom",
"namePlaceholder": "Nom de la pub",
"image": "URL de l'image",
"imagePlaceholder": "https://example.com/banner.png",
"url": "URL cible",
"urlPlaceholder": "https://example.com",
"enabled": "Activée",
"save": "Enregistrer la pub",
"saving": "Enregistrement…",
"deleteAd": "Supprimer la pub",
"cancel": "Annuler"
}
},
"writeableBoxes": {
"title": "Boîtes modifiables",
"subtitle": "Panneaux de contenu affichés dans l'hôtel et le CMS",
"newBox": "Nouvelle boîte",
"edit": "Modifier",
"delete": "Supprimer",
"noBoxes": "Pas encore de boîtes modifiables",
"confirmDelete": "Supprimer cette boîte ?",
"colId": "ID",
"colName": "Nom",
"colLocation": "Emplacement",
"colUpdated": "Mis à jour",
"colActions": "Actions",
"form": {
"name": "Nom",
"namePlaceholder": "Nom de la boîte",
"location": "Emplacement",
"locationPlaceholder": "ex. accueil, sidebar",
"content": "Contenu",
"contentPlaceholder": "Rédigez le contenu de la boîte…",
"enabled": "Activée",
"save": "Enregistrer la boîte",
"saving": "Enregistrement…",
"deleteBox": "Supprimer la boîte",
"cancel": "Annuler"
}
},
"photos": {
"title": "Modération des photos",
"subtitle": "Photos récentes prises dans le jeu",
"delete": "Supprimer",
"approve": "Approuver",
"noPhotos": "Aucune photo à modérer",
"confirmDelete": "Supprimer cette photo définitivement ?",
"colId": "ID",
"colPreview": "Aperçu",
"colUser": "Utilisateur",
"colRoom": "Salon",
"colTimestamp": "Horodatage",
"colActions": "Actions",
"photoAlt": "Photo utilisateur #{id}",
"byUser": "par {username}"
},
"users": {
"title": "Utilisateurs",
"subtitle": "Parcourir, rechercher et gérer les comptes de l'hôtel",
"search": "Rechercher",
"searchPlaceholder": "Rechercher par nom d'utilisateur, e-mail ou ID…",
"searchResults": "{count, plural, one {# résultat} other {# résultats}} pour « {query} »",
"noResults": "Aucun utilisateur trouvé",
"colId": "ID",
"colUsername": "Nom d'utilisateur",
"colEmail": "E-mail",
"colRank": "Rang",
"colOnline": "En ligne",
"colRegistered": "Inscrit",
"colLastOnline": "Dernière connexion",
"colActions": "Actions",
"yes": "Oui",
"no": "Non",
"edit": "Modifier",
"setRank": "Définir le rang",
"disconnect": "Déconnecter",
"alert": "Alerte",
"ban": "Bannir",
"detail": {
"title": "Utilisateur : {username}",
"subtitle": "Détails du compte et gestion",
"overview": "Aperçu",
"actions": "Actions",
"username": "Nom d'utilisateur",
"email": "E-mail",
"motto": "Devise",
"rank": "Rang",
"credits": "Crédits",
"duckets": "Duckets",
"diamonds": "Diamants",
"online": "En ligne",
"registered": "Inscrit",
"lastOnline": "Dernière connexion",
"ipAddress": "Adresse IP",
"machineId": "ID machine",
"sendAlert": "Envoyer une alerte",
"sendMessage": "Envoyer un message",
"disconnectUser": "Déconnecter l'utilisateur",
"banUser": "Bannir l'utilisateur",
"resetPassword": "Réinitialiser le mot de passe",
"deleteUser": "Supprimer l'utilisateur",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer {username} ? Cette action est irréversible."
},
"editForm": {
"title": "Modifier l'utilisateur : {username}",
"subtitle": "Modifier les détails du compte",
"username": "Nom d'utilisateur",
"usernamePlaceholder": "Nom d'utilisateur",
"email": "E-mail",
"emailPlaceholder": "user@example.com",
"motto": "Devise",
"mottoPlaceholder": "Devise de l'utilisateur",
"rank": "Rang",
"credits": "Crédits",
"duckets": "Duckets",
"diamonds": "Diamants",
"save": "Enregistrer les modifications",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"bans": {
"title": "Bannissements",
"subtitle": "Gérer les bannissements de compte, IP et machine",
"newBan": "Nouveau bannissement",
"edit": "Modifier",
"delete": "Supprimer",
"noBans": "Pas encore de bannissements",
"confirmDelete": "Supprimer ce bannissement ?",
"colId": "ID",
"colValue": "Valeur",
"colType": "Type",
"colReason": "Raison",
"colBannedBy": "Banni par",
"colExpires": "Expire",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"value": "Valeur",
"valuePlaceholder": "Nom d'utilisateur, IP ou ID machine",
"type": "Type",
"typeUser": "Utilisateur",
"typeIp": "IP",
"typeMachine": "Machine",
"reason": "Raison",
"reasonPlaceholder": "Motif du bannissement",
"expiresAt": "Expire le",
"permanent": "Permanent",
"save": "Enregistrer le bannissement",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"ip": {
"title": "Gestion IP",
"subtitle": "Gérer la liste blanche et la liste noire des IP",
"whitelist": "Liste blanche",
"blacklist": "Liste noire",
"addIp": "Ajouter une IP",
"ipAddress": "Adresse IP",
"ipAddressPlaceholder": "ex. 127.0.0.1",
"reason": "Raison",
"reasonPlaceholder": "Motif de l'inscription",
"add": "Ajouter",
"remove": "Retirer",
"confirmRemove": "Retirer cette IP de la {list} ?",
"noWhitelistedIps": "Aucune IP en liste blanche",
"noBlacklistedIps": "Aucune IP en liste noire",
"colIp": "IP",
"colReason": "Raison",
"colAdded": "Ajouté",
"colActions": "Actions"
},
"vpn": {
"title": "Détection VPN / Proxy",
"subtitle": "Configurer les paramètres de détection VPN et proxy",
"enabled": "Activé",
"apiKey": "Clé API",
"apiKeyPlaceholder": "Votre clé API de détection VPN",
"apiKeyHint": "Laisser vide pour désactiver",
"blockOnDetect": "Bloquer à la détection",
"blockOnDetectHint": "Bloquer automatiquement les utilisateurs détectés derrière un VPN ou proxy",
"save": "Enregistrer les paramètres",
"saving": "Enregistrement…",
"settingsSaved": "Paramètres VPN enregistrés avec succès"
},
"applications": {
"title": "Candidatures au personnel",
"subtitle": "Candidatures en attente et examinées",
"pending": "En attente",
"approved": "Approuvée",
"rejected": "Rejetée",
"noApplications": "Pas encore de candidatures",
"colId": "ID",
"colApplicant": "Candidat",
"colPosition": "Poste",
"colStatus": "Statut",
"colSubmitted": "Soumise",
"colActions": "Actions",
"review": "Examiner",
"approve": "Approuver",
"reject": "Rejeter",
"confirmApprove": "Approuver {username} pour {position} ?",
"confirmReject": "Rejeter la candidature de {username} pour {position} ?",
"detail": {
"title": "Candidature de {username}",
"subtitle": "Pour {position}",
"about": "À propos du candidat",
"message": "Message de candidature",
"status": "Statut",
"submitted": "Soumise",
"noMessage": "Aucun message fourni"
}
},
"teams": {
"title": "Équipes",
"subtitle": "Définir les noms et descriptions des rangs du personnel",
"addRank": "Ajouter un rang",
"editRank": "Modifier le rang",
"deleteRank": "Supprimer le rang",
"noTeams": "Pas encore de définitions de rangs",
"confirmDelete": "Supprimer la définition du rang {id} ?",
"colId": "ID",
"colRank": "Rang",
"colName": "Nom",
"colBadge": "Badge",
"colColour": "Couleur",
"colActions": "Actions",
"form": {
"rankId": "ID du rang",
"rankIdPlaceholder": "ID numérique du rang",
"name": "Nom",
"namePlaceholder": "ex. Administrateur",
"badge": "Code du badge",
"badgePlaceholder": "ex. ADM001",
"colour": "Couleur",
"colourPlaceholder": "ex. #ff0000",
"save": "Enregistrer la définition d'équipe",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"permissions": {
"title": "Permissions",
"subtitle": "Gérer les permissions basées sur les rangs pour le panneau d'administration",
"addPermission": "Ajouter une permission",
"editPermission": "Modifier la permission",
"deletePermission": "Supprimer la permission",
"noPermissions": "Aucune permission configurée pour le moment",
"confirmDelete": "Supprimer cette permission ?",
"colId": "ID",
"colRank": "Rang",
"colPermission": "Permission",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"rankId": "ID du rang",
"rankIdPlaceholder": "Rang minimum requis",
"permission": "Clé de permission",
"permissionPlaceholder": "ex. admin.articles.manage",
"save": "Enregistrer la permission",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"catalog": {
"title": "Catalogue",
"subtitle": "Parcourir et gérer les pages et articles du catalogue",
"pages": "Pages",
"items": "Articles",
"addPage": "Ajouter une page",
"editPage": "Modifier la page",
"deletePage": "Supprimer la page",
"addItem": "Ajouter un article",
"editItem": "Modifier l'article",
"deleteItem": "Supprimer l'article",
"noPages": "Pas encore de pages catalogue",
"noItems": "Aucun article sur cette page",
"confirmDeletePage": "Supprimer la page catalogue « {name} » ?",
"confirmDeleteItem": "Supprimer cet article ?",
"colId": "ID",
"colName": "Nom",
"colIcon": "Icône",
"colOrder": "Ordre",
"colItems": "Articles",
"colEnabled": "Activé",
"colActions": "Actions",
"colItemId": "ID article",
"colItemName": "Nom de l'article",
"colCostCredits": "Coût (crédits)",
"colCostPoints": "Coût (points)",
"colLimited": "Limité",
"pageForm": {
"name": "Nom",
"namePlaceholder": "Nom de la page",
"icon": "ID icône",
"iconPlaceholder": "ID numérique de l'icône",
"order": "Ordre",
"enabled": "Activée",
"parent": "Page parente",
"parentNone": "Aucune (racine)",
"save": "Enregistrer la page",
"saving": "Enregistrement…",
"cancel": "Annuler"
},
"itemForm": {
"itemId": "ID article",
"itemName": "Nom de l'article",
"costCredits": "Coût en crédits",
"costDuckets": "Coût en duckets",
"costDiamonds": "Coût en diamants",
"limitedStack": "Taille du stock limité",
"limitedSold": "Limité vendu",
"save": "Enregistrer l'article",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"shop": {
"title": "Boutique",
"subtitle": "Gérer les packs et les commandes",
"packages": "Packs",
"orders": "Commandes",
"newPackage": "+ Nouveau pack",
"edit": "Modifier",
"delete": "Supprimer",
"viewOrder": "Voir",
"noPackages": "Pas encore de packs boutique",
"noOrders": "Pas encore de commandes",
"confirmDelete": "Supprimer ce pack ?",
"colId": "ID",
"colName": "Nom",
"colPrice": "Prix",
"colCurrency": "Devise",
"colType": "Type",
"colSold": "Vendu",
"colEnabled": "Activé",
"colActions": "Actions",
"colOrderId": "ID commande",
"colCustomer": "Client",
"colPackage": "Pack",
"colAmount": "Montant",
"colStatus": "Statut",
"colDate": "Date",
"statusPending": "En attente",
"statusCompleted": "Terminée",
"statusRefunded": "Remboursée",
"form": {
"name": "Nom",
"namePlaceholder": "Nom du pack",
"description": "Description",
"descriptionPlaceholder": "Description du pack",
"price": "Prix",
"currency": "Devise",
"currencyPlaceholder": "EUR, USD, GBP…",
"type": "Type",
"typeCredits": "Crédits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamants",
"typeBadge": "Badge",
"typeFurni": "Meuble",
"typeRank": "Rang",
"amount": "Quantité",
"badgeCode": "Code du badge",
"badgeCodePlaceholder": "ex. VIP001",
"rankId": "ID du rang",
"furniItems": "Articles meubles",
"enabled": "Activé",
"save": "Enregistrer le pack",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"transactions": {
"title": "Transactions",
"subtitle": "Journal des paiements PayPal",
"noTransactions": "Pas encore de transactions",
"colId": "ID",
"colUser": "Utilisateur",
"colAmount": "Montant",
"colCurrency": "Devise",
"colPackage": "Pack",
"colStatus": "Statut",
"colDate": "Date",
"colActions": "Actions",
"statusCompleted": "Terminée",
"statusPending": "En attente",
"statusFailed": "Échouée",
"statusRefunded": "Remboursée",
"detail": {
"title": "Transaction #{id}",
"paypalId": "ID PayPal",
"payerEmail": "E-mail du payeur",
"grossAmount": "Montant brut",
"fee": "Frais",
"netAmount": "Montant net"
}
},
"vouchers": {
"title": "Bons d'achat",
"subtitle": "Gérer les codes de bons échangeables",
"newVoucher": "+ Nouveau bon",
"edit": "Modifier",
"delete": "Supprimer",
"noVouchers": "Pas encore de bons",
"confirmDelete": "Supprimer le bon « {code} » ?",
"colId": "ID",
"colCode": "Code",
"colValue": "Valeur",
"colType": "Type",
"colUses": "Utilisations / Max",
"colExpires": "Expire",
"colCreated": "Créé",
"colActions": "Actions",
"form": {
"code": "Code",
"codePlaceholder": "ex. ETE2025",
"value": "Valeur",
"type": "Type",
"typeCredits": "Crédits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamants",
"typeBadge": "Badge",
"typeFurni": "Meuble",
"typeRank": "Rang",
"badgeCode": "Code du badge",
"badgeCodePlaceholder": "ex. VIP001",
"rankId": "ID du rang",
"maxUses": "Utilisations max",
"maxUsesPlaceholder": "0 = illimité",
"expiresAt": "Expire le",
"enabled": "Activé",
"save": "Enregistrer le bon",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"subscriptions": {
"title": "Abonnements",
"subtitle": "Abonnements récurrents actifs",
"noSubscriptions": "Aucun abonnement actif",
"cancel": "Résilier",
"confirmCancel": "Résilier l'abonnement de {username} ?",
"colId": "ID",
"colUser": "Utilisateur",
"colPackage": "Pack",
"colAmount": "Montant",
"colInterval": "Intervalle",
"colStarted": "Démarré",
"colNextBilling": "Prochaine facturation",
"colStatus": "Statut",
"colActions": "Actions",
"statusActive": "Actif",
"statusCancelled": "Résilié",
"statusExpired": "Expiré"
},
"rareValues": {
"title": "Valeurs rares",
"subtitle": "Gérer les catégories de valeurs rares et les prix des articles",
"categories": "Catégories",
"items": "Articles",
"addCategory": "Ajouter une catégorie",
"editCategory": "Modifier la catégorie",
"deleteCategory": "Supprimer la catégorie",
"noCategories": "Pas encore de catégories de valeurs rares",
"confirmDeleteCategory": "Supprimer la catégorie « {name} » et tous ses articles ?",
"colId": "ID",
"colName": "Nom",
"colItems": "Articles",
"colUpdated": "Mis à jour",
"colActions": "Actions",
"colItemName": "Nom de l'article",
"colCredits": "Crédits",
"colPoints": "Points",
"colPointType": "Type de points",
"categoryForm": {
"name": "Nom",
"namePlaceholder": "Nom de la catégorie",
"save": "Enregistrer la catégorie",
"saving": "Enregistrement…",
"cancel": "Annuler"
},
"itemForm": {
"itemName": "Nom de l'article",
"itemNamePlaceholder": "ex. Trône",
"credits": "Valeur en crédits",
"points": "Valeur en points",
"pointType": "Type de points",
"pointTypeDuckets": "Duckets",
"pointTypeDiamonds": "Diamants",
"save": "Enregistrer l'article",
"saving": "Enregistrement…",
"cancel": "Annuler"
}
},
"badges": {
"title": "Badges",
"subtitle": "Télécharger, attribuer et gérer le catalogue de badges",
"upload": "Télécharger",
"giveBadge": "Attribuer un badge",
"catalogue": "Catalogue",
"uploadTitle": "Télécharger un nouveau badge",
"uploadSubtitle": "Télécharger un fichier image de badge",
"badgeCode": "Code du badge",
"badgeCodePlaceholder": "ex. VIP001",
"badgeFile": "Fichier du badge",
"badgeFileHint": "PNG ou GIF, recommandé 40x40",
"uploadButton": "Choisir un fichier",
"uploading": "Téléchargement…",
"giveTitle": "Attribuer un badge à un utilisateur",
"giveSubtitle": "Accorder un badge à un utilisateur spécifique",
"username": "Nom d'utilisateur",
"usernamePlaceholder": "Nom d'utilisateur cible",
"giveButton": "Attribuer le badge",
"giving": "Attribution…",
"catalogueTitle": "Catalogue des badges",
"catalogueSubtitle": "Tous les badges disponibles dans l'hôtel",
"noBadges": "Aucun badge dans le catalogue",
"search": "Rechercher des badges",
"searchPlaceholder": "Rechercher par code ou nom…",
"colCode": "Code",
"colImage": "Image",
"colName": "Nom",
"colDescription": "Description",
"colActions": "Actions"
},
"achievements": {
"title": "Succès",
"subtitle": "Lecture seule de la liste des succès du jeu",
"noAchievements": "Aucun succès configuré",
"colId": "ID",
"colName": "Nom",
"colCategory": "Catégorie",
"colLevels": "Niveaux",
"colReward": "Récompense",
"colProgress": "Progression",
"levelLabel": "Niveau {level}",
"rewardCredits": "{count} crédits",
"rewardPoints": "{count} {points}"
},
"calendar": {
"title": "Campagnes du calendrier",
"subtitle": "Lecture seule de la liste des campagnes et événements du calendrier",
"noCampaigns": "Pas encore de campagnes calendrier",
"colId": "ID",
"colName": "Nom",
"colStart": "Début",
"colEnd": "Fin",
"colType": "Type",
"colReward": "Récompense",
"colActions": "Actions",
"detail": {
"title": "Campagne : {name}",
"subtitle": "Détails de l'événement calendrier",
"days": "Jours",
"dayLabel": "Jour {day}",
"reward": "Récompense",
"noDays": "Aucun jour configuré pour cette campagne"
}
},
"radio": {
"title": "Modération radio",
"subtitle": "Latest shouts, DJ applications and on-air schedules (25 most recent of each).",
"moderation": "Moderation",
"shouts": "Dédicaces",
"applications": "Candidatures",
"schedules": "Programmations",
"settings": "Paramètres",
"embed": "Intégration",
"ranks": "Rangs",
"history": "Historique",
"apiKeys": "Clés API",
"points": "Points",
"autoDj": "AutoDJ",
"monitoring": {
"title": "Surveillance radio",
"subtitle": "Read-only live probe of the configured radio endpoints (radio_now_playing_api_url, radio_listeners_api_url). Each request fails soft with a {timeout}s timeout — no data is written. Configure URLs under Settings.",
"stream": "Stream",
"online": "En ligne",
"offline": "Hors ligne",
"notConfigured": "Not configured",
"nowPlaying": "Now playing",
"nowPlayingApi": "Now-playing API",
"listenersApi": "Listeners API",
"listeners": "Auditeurs",
"currentSong": "Chanson en cours",
"bitrate": "Débit",
"status": "Statut",
"noNowPlayingHint": "no now-playing API set",
"noListenersHint": "no listeners API set",
"endpointDiagnostics": "Endpoint diagnostics",
"diagnosticsLegend": "OK reachable · WARN not configured · ERROR fetch failed / timed out.",
"streamUrl": "Stream URL",
"unreachable": "unreachable",
"refresh": "Actualiser"
},
"user": "User",
"message": "Message",
"posted": "Posted",
"realName": "Real Name",
"age": "Age",
"style": "Style",
"applied": "Applied",
"day": "Day",
"start": "Start",
"end": "End",
"show": "Show",
"status": "Statut",
"active": "active",
"inactive": "inactive",
"hidden": "hidden",
"activeSchedules": "Active schedules",
"noShouts": "Aucune dédicace à modérer",
"noApplications": "No applications submitted.",
"noSchedules": "No schedules configured.",
"deleteShout": "Supprimer",
"confirmDeleteShout": "Supprimer cette dédicace ?",
"pendingApplications": "Candidatures en attente",
"settingsForm": {
"title": "Radio Settings",
"subtitle": "Edits write to website_settings (radio_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
"enabled": "Enabled",
"disabled": "Disabled",
"totalKeys": "Total keys",
"configured": "Configured",
"curatedHint": "curated keys with a value",
"customKeys": "Custom keys",
"saveAll": "Save all",
"singleKey": "Add / overwrite a single key",
"keyPlaceholder": "radio_custom_key",
"valuePlaceholder": "value",
"commentPlaceholder": "comment (optional)",
"saveSingle": "Save",
"otherSettings": "Other radio settings",
"dbError": "Could not load settings (database unavailable). Defaults will be created on save."
},
"embedPage": {
"title": "Radio Embed",
"subtitle": "Copy-ready embed code for the live stream. Read-only — nothing here writes to the database. Configure the stream URL in Radio Settings (radio_stream_url).",
"streamUrl": "Stream URL",
"configured": "Configured",
"missing": "Missing",
"radioName": "Radio name",
"nowPlayingApi": "Now-playing API",
"set": "Set",
"notSet": "Not set",
"noStreamUrl": "No stream URL configured",
"noStreamUrlText": "There is no radio_stream_url set, so there is nothing to embed yet.",
"goToSettings": "Go to Radio Settings",
"livePreview": "Live preview",
"livePreviewText": "This is the bare