latest changes

This commit is contained in:
remco committed 2026-07-01 15:06:52 +02:00
1 parent 56cd6fd058
commit 1de72863db
40 files changed
+3837 -568

No files matched your search

+645
View File
@@ -0,0 +1,645 @@
{
"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",
"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",
"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 l'hôtel",
"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"
},
"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 <strong>{amount}</strong> 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."
}
}
}