3036 lines
111 KiB
JSON
3036 lines
111 KiB
JSON
{
|
||
"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",
|
||
"events": "Events",
|
||
"polls": "Polls",
|
||
"mod": "Mod"
|
||
},
|
||
"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"
|
||
},
|
||
"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",
|
||
"remove": "Remove",
|
||
"success": {
|
||
"removed": "Friend removed."
|
||
},
|
||
"errors": {
|
||
"notFound": "That friendship was not found.",
|
||
"invalid": "Invalid friend.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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}",
|
||
"decline": "Decline",
|
||
"composeTitle": "Send offline message",
|
||
"composeSubtitle": "Delivered in the hotel messenger when your friend is offline",
|
||
"composeEmptyFriends": "Add friends in the hotel to send offline messages.",
|
||
"composeFriendLabel": "Friend",
|
||
"composeFriendPlaceholder": "Choose a friend",
|
||
"composeMessageLabel": "Message",
|
||
"composeMessagePlaceholder": "Write your message (max 500 characters)…",
|
||
"composeSend": "Send message",
|
||
"success": {
|
||
"accepted": "Friend request accepted.",
|
||
"declined": "Friend request declined.",
|
||
"sent": "Offline message sent."
|
||
},
|
||
"errors": {
|
||
"notFound": "That friend request was not found.",
|
||
"unauthorized": "You can't act on this friend request.",
|
||
"invalid": "Invalid friend request.",
|
||
"error": "Something went wrong. Please try again.",
|
||
"notFriend": "You can only message friends.",
|
||
"emptyMessage": "Please write a message.",
|
||
"rateLimited": "Too many messages. Wait a moment and try again."
|
||
}
|
||
},
|
||
"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",
|
||
"addFriend": "Add friend",
|
||
"alreadyFriends": "You're friends",
|
||
"requestPending": "Request pending",
|
||
"respondInMessages": "Respond in Messages",
|
||
"success": {
|
||
"sent": "Friend request sent.",
|
||
"guestbook": "Guestbook message posted."
|
||
},
|
||
"errors": {
|
||
"self": "You can't send a friend request to yourself.",
|
||
"alreadyFriends": "You're already friends with this user.",
|
||
"alreadyPending": "You already sent a friend request to this user.",
|
||
"incomingPending": "This user already sent you a request — accept or decline it in Messages.",
|
||
"empty": "Please write a message before posting.",
|
||
"moderated": "That message was blocked by moderation.",
|
||
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
|
||
"invalid": "That request was invalid.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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 →",
|
||
"allUsers": "Communauté →",
|
||
"noArticles": "Pas encore d'articles.",
|
||
"noPhotos": "Pas encore de photos.",
|
||
"noUsers": "Aucun utilisateur en ligne",
|
||
"latestArticle": "Dernier article",
|
||
"latestUsers": "Nouveaux citoyens ({count} total)",
|
||
"statsOnline": "En ligne",
|
||
"statsCitizens": "Citoyens",
|
||
"statsRooms": "Salons",
|
||
"featuresAvatar": "Avatar",
|
||
"featuresAvatarDesc": "Crée ton look unique",
|
||
"featuresFurniture": "Meubles",
|
||
"featuresFurnitureDesc": "Décore les salons avec des objets",
|
||
"featuresCommunity": "Communauté",
|
||
"featuresCommunityDesc": "Fais des amis et discute",
|
||
"featuresGames": "Jeux",
|
||
"featuresGamesDesc": "Compète et amuse-toi"
|
||
},
|
||
"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.",
|
||
"success": {
|
||
"posted": "Comment posted.",
|
||
"reaction": "Reaction updated."
|
||
},
|
||
"errors": {
|
||
"empty": "Please write a comment before posting.",
|
||
"moderated": "That comment was blocked by moderation.",
|
||
"ratelimit": "You're commenting too fast. Please wait a moment and try again.",
|
||
"invalid": "Invalid comment.",
|
||
"notFound": "That article was not found.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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",
|
||
"success": {
|
||
"posted": "Thread posted."
|
||
}
|
||
},
|
||
"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",
|
||
"errors": {
|
||
"invalid": "Subject and message are required.",
|
||
"notFound": "That guild was not found.",
|
||
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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",
|
||
"loginToBuy": "Log in to buy",
|
||
"creditsHint": "Packages are paid with in-game credits. Top up first if you need more.",
|
||
"topUpLink": "Top up credits",
|
||
"priceCredits": "{credits} credits (≈ {usd})",
|
||
"priceCreditsShort": "{credits} cr",
|
||
"success": {
|
||
"bought": "Package purchased — rewards have been added to your account.",
|
||
"boughtNamed": "You purchased \"{name}\" — rewards have been added to your account."
|
||
},
|
||
"errors": {
|
||
"invalid": "That package is no longer available.",
|
||
"credits": "You don't have enough credits for this package.",
|
||
"ratelimit": "You're purchasing too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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é",
|
||
"success": {
|
||
"created": "Ticket submitted."
|
||
},
|
||
"errors": {
|
||
"invalid": "Please fill in a subject and description.",
|
||
"moderated": "That ticket was blocked by moderation.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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}",
|
||
"success": {
|
||
"submitted": "Application submitted — staff will review it soon."
|
||
},
|
||
"errors": {
|
||
"empty": "Please write at least 10 characters about yourself.",
|
||
"invalid": "Invalid application.",
|
||
"duplicate": "You have already applied for this position.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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}",
|
||
"success": {
|
||
"submitted": "Application submitted — staff will review it soon."
|
||
},
|
||
"errors": {
|
||
"empty": "Please write at least 10 characters about yourself.",
|
||
"invalid": "Invalid application.",
|
||
"duplicate": "You have already applied for this team.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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 !",
|
||
"success": {
|
||
"posted": "Shout posted."
|
||
},
|
||
"errors": {
|
||
"invalid": "Please write a message before shouting.",
|
||
"moderated": "That shout was blocked by moderation.",
|
||
"ratelimit": "You're shouting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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",
|
||
"success": {
|
||
"submitted": "Application submitted — we will get back to you soon."
|
||
},
|
||
"errors": {
|
||
"invalid": "Please fill in all required fields.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"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"
|
||
},
|
||
"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"
|
||
},
|
||
"title": "Comptes connectés",
|
||
"subtitle": "Associez un compte social pour vous connecter en un clic",
|
||
"connected": "Connecté",
|
||
"unavailable": "Indisponible",
|
||
"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",
|
||
"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",
|
||
"welcomeBack": "Bon retour",
|
||
"welcomeBackSub": "Connecte-toi pour continuer vers {hotelName}",
|
||
"errorUnverified": "Please verify your email before signing in.",
|
||
"errorCaptcha": "Captcha verification failed. Please try again."
|
||
},
|
||
"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.",
|
||
"alreadyHaveAccountPre": "Tu as déjà un compte ?",
|
||
"alreadyHaveAccountLink": "Se connecter",
|
||
"whoIsOnline": "Qui est en ligne",
|
||
"usersOnline": "{count} en ligne"
|
||
},
|
||
"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",
|
||
"errorCaptcha": "Captcha verification failed. Please try again."
|
||
},
|
||
"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",
|
||
"helpTickets": "Help-center tickets",
|
||
"marketplace": "Marketplace",
|
||
"expandAll": "Expand all",
|
||
"collapseAll": "Collapse all",
|
||
"community": "Community",
|
||
"monitoring": "Monitoring",
|
||
"staffAccess": "Ranks & permissions",
|
||
"multiAccounts": "Multi-accounts",
|
||
"chatLog": "Chat log",
|
||
"commandLog": "Command log",
|
||
"tradeLog": "Trade log",
|
||
"tools": "Tools",
|
||
"guilds": "Guilds"
|
||
},
|
||
"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"
|
||
},
|
||
"deleteSuccess": "Advertisement deleted!",
|
||
"deleteError": "Failed to delete advertisement.",
|
||
"adsCount": "Total ads",
|
||
"latest": "Latest",
|
||
"mostRecentAd": "Most recent ad",
|
||
"allAds": "All advertisements",
|
||
"colPreview": "Preview"
|
||
},
|
||
"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": "[email protected]",
|
||
"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"
|
||
},
|
||
"recentOrders": "Recent orders",
|
||
"paidOrders": "Paid orders",
|
||
"ordersHint": "Latest PayPal transactions",
|
||
"colCredits": "Credits",
|
||
"colDuckets": "Duckets",
|
||
"colDiamonds": "Diamonds",
|
||
"colRank": "Rank",
|
||
"colPosition": "Position",
|
||
"colTransaction": "Transaction",
|
||
"colUser": "User",
|
||
"colDescription": "Description",
|
||
"pageOf": "Page {page} of {lastPage}",
|
||
"packagesTotal": "{count} packages"
|
||
},
|
||
"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"
|
||
},
|
||
"totalTransactions": "Total transactions",
|
||
"pagePaid": "Paid (this page)",
|
||
"pageFailed": "Failed (this page)",
|
||
"searchPlaceholder": "Search by user, transaction ID or package…",
|
||
"presetPaid": "Paid",
|
||
"presetFailed": "Failed",
|
||
"colPayer": "Payer",
|
||
"colTransaction": "Transaction ID"
|
||
},
|
||
"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",
|
||
"amount": "Credits amount",
|
||
"amountPlaceholder": "e.g. 100",
|
||
"create": "Create voucher"
|
||
},
|
||
"vouchers": "Vouchers",
|
||
"active": "Active",
|
||
"usedUp": "Used up",
|
||
"expired": "Expired",
|
||
"confirmDeleteTitle": "Delete voucher",
|
||
"created": "Voucher created",
|
||
"deleted": "Voucher deleted",
|
||
"createError": "Could not create voucher",
|
||
"deleteError": "Could not delete voucher",
|
||
"statusActive": "Active",
|
||
"statusUsedUp": "Used up",
|
||
"statusExpired": "Expired",
|
||
"colAmount": "Amount",
|
||
"colStatus": "Status"
|
||
},
|
||
"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": "<span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-green-600/20 text-[var(--color-text)]\">OK</span> reachable · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-[var(--color-primary)]/18 text-[var(--color-text)]\">WARN</span> not configured · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-red-500/22 text-[var(--color-text)]\">ERROR</span> 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 <audio> player as visitors will see it. Press play to confirm the stream is reachable.",
|
||
"source": "Source",
|
||
"audioSnippet": "Audio player snippet",
|
||
"audioSnippetDesc": "Drop-in HTML5 audio player pointed straight at the stream. Works anywhere plain HTML is allowed.",
|
||
"iframeSnippet": "Iframe wrapper snippet",
|
||
"iframeSnippetDesc": "Embeds the site’s own radio player page in an iframe — keeps your styling and now-playing info. Adjust width/height to taste.",
|
||
"audioUnsupported": "Your browser does not support the audio element."
|
||
},
|
||
"banners": {
|
||
"title": "Bannières",
|
||
"heading": "Radio Banners",
|
||
"description": "Promotional banners shown on the radio page, ordered by sort order.",
|
||
"addBanner": "Ajouter une bannière",
|
||
"createBanner": "Create banner",
|
||
"deleteBanner": "Supprimer la bannière",
|
||
"noBanners": "No banners yet — add one above.",
|
||
"existing": "Existing banners ({count})",
|
||
"save": "Save",
|
||
"delete": "Delete",
|
||
"byUser": "by user {id}",
|
||
"active": "active",
|
||
"hidden": "hidden",
|
||
"bannerAlt": "Radio banner",
|
||
"statusActive": "Active",
|
||
"statusHidden": "Hidden",
|
||
"dbError": "Could not load banners (database unavailable).",
|
||
"form": {
|
||
"imagePath": "Image path / URL",
|
||
"imagePathPlaceholder": "/storage/radio/banner.png",
|
||
"title": "Title",
|
||
"description": "Description",
|
||
"sortOrder": "Sort order",
|
||
"active": "Active"
|
||
}
|
||
},
|
||
"ranksForm": {
|
||
"title": "Rangs radio",
|
||
"subtitle": "DJ / staff ranks assignable on radio applications.",
|
||
"dbError": "Could not load ranks (database unavailable).",
|
||
"active": "Active",
|
||
"addRank": "Add rank",
|
||
"name": "Name",
|
||
"badgeCode": "Badge code",
|
||
"description": "Description",
|
||
"createRank": "Create rank",
|
||
"existing": "Existing ranks ({count})",
|
||
"noRanks": "No ranks yet — add one above.",
|
||
"activeLabel": "active",
|
||
"inactiveLabel": "inactive",
|
||
"save": "Save",
|
||
"deleteRank": "Delete rank #{id}"
|
||
},
|
||
"historyPage": {
|
||
"title": "Radio Play History",
|
||
"subtitle": "Past DJ shows and airtime (radio_history), most recent first. Read-only log of who was on air, when, and how many listeners tuned in.",
|
||
"dbError": "Could not load radio history (database unavailable).",
|
||
"showsLogged": "Shows logged",
|
||
"onAirNow": "On air now",
|
||
"uniqueDjs": "Unique DJs",
|
||
"peakListeners": "Peak listeners",
|
||
"empty": "No radio history recorded yet.",
|
||
"showLog": "Show log ({count})",
|
||
"colDj": "DJ",
|
||
"colShow": "Show",
|
||
"colStarted": "Started",
|
||
"colEnded": "Ended",
|
||
"colAirtime": "Airtime",
|
||
"colListeners": "Listeners",
|
||
"colNotes": "Notes",
|
||
"onAir": "on air"
|
||
},
|
||
"apiKeysForm": {
|
||
"title": "Clés API",
|
||
"subtitle": "API keys for external radio integrations (radio_api_keys). Keys are generated server-side and shown masked — copy the full value from the database when first issued.",
|
||
"dbError": "Could not load API keys (database unavailable).",
|
||
"totalKeys": "Total keys",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"generateKey": "Générer une nouvelle clé",
|
||
"generateHint": "The secret key is generated automatically with cryptographic randomness — you do not enter it.",
|
||
"name": "Name",
|
||
"namePlaceholder": "AzureCast bridge",
|
||
"rateLimit": "Rate limit (requests/min)",
|
||
"allowedIps": "Allowed IPs (optional)",
|
||
"allowedIpsPlaceholder": "comma-separated, blank = any",
|
||
"generate": "Générer",
|
||
"existingKeys": "Existing keys ({count})",
|
||
"noKeys": "No API keys yet — generate one above.",
|
||
"colName": "Name",
|
||
"colKey": "Clé",
|
||
"colAllowedIps": "Allowed IPs",
|
||
"colRateLimit": "Rate limit",
|
||
"colLastUsed": "Last used",
|
||
"colExpires": "Expires",
|
||
"colStatus": "Status",
|
||
"colActions": "Actions",
|
||
"maskedHint": "Only the first 8 characters are shown",
|
||
"any": "any",
|
||
"activeLabel": "active",
|
||
"inactiveLabel": "inactive",
|
||
"deactivate": "Deactivate",
|
||
"activate": "Activate",
|
||
"delete": "Delete"
|
||
},
|
||
"pointsForm": {
|
||
"title": "Configuration des points d'écoute",
|
||
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
|
||
"saved": "Saved",
|
||
"points": "Points",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"perMinute": "Per minute",
|
||
"paidIn": "paid in {currency}",
|
||
"maxPerDay": "Max / day",
|
||
"unlimited": "Unlimited",
|
||
"minListeners": "Min listeners",
|
||
"settings": "Settings",
|
||
"pointsEnabled": "Points enabled",
|
||
"pointsEnabledHint": "Master switch for awarding listener points.",
|
||
"currency": "Currency",
|
||
"currencyHint": "Which wallet the points are paid into.",
|
||
"pointsPerMinute": "Points per minute",
|
||
"pointsPerMinuteHint": "Amount awarded for each full minute of listening.",
|
||
"maxPerDayHint": "Daily cap per user. Use 0 for unlimited.",
|
||
"minListenersHint": "Points are only awarded when at least this many people are tuned in.",
|
||
"save": "Enregistrer les paramètres de points"
|
||
},
|
||
"autoDjForm": {
|
||
"title": "Radio AutoDJ",
|
||
"subtitle": "Fallback playlist (radio_auto_dj_playlist) the radio rotates through when no live DJ is streaming. Ordered by sort order then title.",
|
||
"dbError": "Could not load the AutoDJ playlist (database unavailable).",
|
||
"tracks": "Tracks",
|
||
"active": "Active",
|
||
"inactive": "Inactive",
|
||
"addTrack": "Add track",
|
||
"titlePlaceholder": "Track title",
|
||
"artist": "Artist",
|
||
"album": "Album",
|
||
"artworkUrl": "Artwork URL",
|
||
"artworkUrlPlaceholder": "https://…/cover.png",
|
||
"duration": "Duration (seconds)",
|
||
"durationPlaceholder": "e.g. 215",
|
||
"sortOrder": "Sort order",
|
||
"playlist": "Playlist ({count})",
|
||
"noTracks": "No AutoDJ tracks yet — add one above.",
|
||
"colOrder": "Order",
|
||
"colTitle": "Title",
|
||
"colArtist": "Artist",
|
||
"colAlbum": "Album",
|
||
"colDuration": "Duration",
|
||
"colPlays": "Plays",
|
||
"colLastPlayed": "Last played",
|
||
"colStatus": "Status",
|
||
"colActions": "Actions",
|
||
"activeLabel": "active",
|
||
"inactiveLabel": "inactive",
|
||
"deactivate": "Deactivate",
|
||
"activate": "Activate",
|
||
"delete": "Delete",
|
||
"trackTitle": "Title"
|
||
},
|
||
"moderationPage": {
|
||
"title": "DJ Moderation",
|
||
"subtitle": "Review and remove radio shouts (50 most recent).",
|
||
"recentShouts": "Recent Shouts ({count})"
|
||
}
|
||
},
|
||
"commandocentrum": {
|
||
"title": "Commandocentrum",
|
||
"subtitle": "Diagnostics, contrôles RCON et gestion des utilisateurs",
|
||
"diagnostics": "Diagnostics",
|
||
"rcon": "RCON",
|
||
"userActions": "Actions utilisateur",
|
||
"diagnosticsTitle": "Diagnostics de l'émulateur",
|
||
"memoryUsage": "Utilisation mémoire",
|
||
"uptime": "Temps de fonctionnement",
|
||
"onlineUsers": "Utilisateurs en ligne",
|
||
"roomsLoaded": "Salons chargés",
|
||
"refresh": "Actualiser",
|
||
"rconTitle": "Commandes RCON",
|
||
"rconPlaceholder": "Saisir une commande RCON…",
|
||
"rconSend": "Envoyer",
|
||
"rconSending": "Envoi…",
|
||
"rconResponse": "Réponse",
|
||
"userActionsTitle": "Actions utilisateur",
|
||
"username": "Nom d'utilisateur",
|
||
"usernamePlaceholder": "Nom d'utilisateur cible",
|
||
"action": "Action",
|
||
"execute": "Exécuter",
|
||
"actions": {
|
||
"disconnect": "Déconnecter",
|
||
"alert": "Envoyer une alerte",
|
||
"giveCredits": "Donner des crédits",
|
||
"giveBadge": "Donner un badge",
|
||
"givePoints": "Donner des points",
|
||
"ban": "Bannir",
|
||
"kick": "Expulser"
|
||
},
|
||
"messagePlaceholder": "Message (pour les alertes)…",
|
||
"amountPlaceholder": "Montant…",
|
||
"badgePlaceholder": "Code du badge…"
|
||
},
|
||
"emulator": {
|
||
"title": "Configuration de l'émulateur",
|
||
"subtitle": "Voir et modifier les paramètres de l'émulateur et les textes de localisation",
|
||
"settings": "Paramètres",
|
||
"texts": "Textes",
|
||
"search": "Rechercher",
|
||
"searchPlaceholder": "Rechercher des clés…",
|
||
"noSettings": "Aucun paramètre trouvé",
|
||
"noTexts": "Aucun texte trouvé",
|
||
"edit": "Modifier",
|
||
"save": "Enregistrer",
|
||
"saving": "Enregistrement…",
|
||
"cancel": "Annuler",
|
||
"colKey": "Clé",
|
||
"colValue": "Valeur",
|
||
"colType": "Type",
|
||
"colActions": "Actions",
|
||
"editDialog": {
|
||
"title": "Modifier : {key}",
|
||
"value": "Valeur",
|
||
"valuePlaceholder": "Saisir la valeur…",
|
||
"save": "Enregistrer les modifications",
|
||
"cancel": "Annuler"
|
||
}
|
||
},
|
||
"alerts": {
|
||
"title": "Alertes",
|
||
"subtitle": "Envoyer des alertes à tout l'hôtel et voir les alertes récentes",
|
||
"sendAlert": "Envoyer une alerte à l'hôtel",
|
||
"recentAlerts": "Alertes récentes",
|
||
"noRecentAlerts": "Aucune alerte récente",
|
||
"form": {
|
||
"title": "Titre de l'alerte",
|
||
"titlePlaceholder": "ex. Maintenance du serveur dans 10 minutes",
|
||
"message": "Message d'alerte",
|
||
"messagePlaceholder": "Rédigez le message d'alerte…",
|
||
"type": "Type",
|
||
"typeHotel": "Alerte à tout l'hôtel",
|
||
"typeStaff": "Personnel uniquement",
|
||
"urgent": "Urgent",
|
||
"send": "Envoyer l'alerte",
|
||
"sending": "Envoi…"
|
||
},
|
||
"colId": "ID",
|
||
"colTitle": "Titre",
|
||
"colSentBy": "Envoyé par",
|
||
"colType": "Type",
|
||
"colDate": "Date",
|
||
"colActions": "Actions"
|
||
},
|
||
"logs": {
|
||
"title": "Activités du personnel",
|
||
"subtitle": "Piste d'audit des actions du personnel dans le panneau d'administration",
|
||
"noLogs": "Aucune activité du personnel enregistrée",
|
||
"colId": "ID",
|
||
"colUser": "Utilisateur",
|
||
"colAction": "Action",
|
||
"colTarget": "Cible",
|
||
"colDescription": "Description",
|
||
"colIp": "IP",
|
||
"colTimestamp": "Horodatage",
|
||
"filterByUser": "Filtrer par utilisateur…",
|
||
"filterByAction": "Filtrer par action…",
|
||
"clearFilters": "Effacer les filtres",
|
||
"noResults": "No matching activities",
|
||
"colStaff": "Staff",
|
||
"colWhen": "When",
|
||
"searchPlaceholder": "Search action, description or IP…",
|
||
"totalActivities": "Total activities",
|
||
"onThisPage": "On this page",
|
||
"recent": "Last minute",
|
||
"authorizationErrors": "Authorization errors",
|
||
"authorizationOnly": "Auth errors only",
|
||
"allActivities": "All activities",
|
||
"staffId": "Staff ID",
|
||
"actionType": "Action type",
|
||
"filter": "Filter",
|
||
"activities": "{count} activities",
|
||
"staffWithId": "#{id} {name}",
|
||
"userPrefix": "user",
|
||
"pagination": "Page {page} of {pages} · {total} total",
|
||
"next": "Next",
|
||
"prev": "Previous",
|
||
"unknownUser": "unknown",
|
||
"emptyValue": "-",
|
||
"colTime": "Time",
|
||
"audit": {
|
||
"colTargetId": "Target ID",
|
||
"colDetails": "Details",
|
||
"colDate": "Date",
|
||
"searchPlaceholder": "Search by action or target…",
|
||
"changesCount": "{count} changes",
|
||
"notAvailable": "N/A"
|
||
},
|
||
"chat": {
|
||
"colMessage": "Message",
|
||
"colRoomId": "Room ID",
|
||
"searchPlaceholder": "Search by username or message…"
|
||
},
|
||
"commands": {
|
||
"colCommand": "Command",
|
||
"colParams": "Params",
|
||
"searchPlaceholder": "Search by username, command, or params…"
|
||
},
|
||
"trades": {
|
||
"colUserOne": "User one",
|
||
"colUserTwo": "User two",
|
||
"colStatus": "Status",
|
||
"statusUnknown": "unknown",
|
||
"searchPlaceholder": "Search by username…"
|
||
}
|
||
},
|
||
"wordfilter": {
|
||
"title": "Filtre de mots",
|
||
"subtitle": "Gérer les mots et expressions filtrés dans l'hôtel",
|
||
"addWord": "Ajouter un mot",
|
||
"addWords": "Ajouter des mots",
|
||
"noWords": "Aucun mot filtré pour le moment",
|
||
"confirmDelete": "Retirer « {word} » du filtre ?",
|
||
"colId": "ID",
|
||
"colWord": "Mot",
|
||
"colAddedBy": "Ajouté par",
|
||
"colCreated": "Créé",
|
||
"colActions": "Actions",
|
||
"form": {
|
||
"word": "Mot",
|
||
"wordPlaceholder": "ex. grosmot",
|
||
"addMore": "Ajouter plusieurs mots (un par ligne)",
|
||
"save": "Ajouter au filtre",
|
||
"saving": "Enregistrement…",
|
||
"cancel": "Annuler"
|
||
},
|
||
"filteredWords": "Filtered words",
|
||
"words": "Words",
|
||
"delete": "Delete",
|
||
"confirmDeleteTitle": "Remove word",
|
||
"added": "Word added to filter",
|
||
"deleted": "Word removed from filter",
|
||
"addError": "Could not add word (it may already exist)",
|
||
"deleteError": "Could not remove word"
|
||
},
|
||
"maintenance": {
|
||
"title": "Mode maintenance",
|
||
"subtitle": "Activer ou désactiver la maintenance de tout l'hôtel",
|
||
"enabled": "Le mode maintenance est activé",
|
||
"disabled": "Le mode maintenance est désactivé",
|
||
"enable": "Activer la maintenance",
|
||
"disable": "Désactiver la maintenance",
|
||
"message": "Message de maintenance",
|
||
"messagePlaceholder": "Nous revenons bientôt !",
|
||
"staffAccess": "Autoriser l'accès du personnel pendant la maintenance",
|
||
"save": "Enregistrer les paramètres",
|
||
"saving": "Enregistrement…",
|
||
"confirmEnable": "L'activation de la maintenance empêchera tous les utilisateurs non-personnel d'accéder à l'hôtel. Continuer ?",
|
||
"confirmDisable": "Désactiver le mode maintenance et restaurer l'accès pour tous les utilisateurs ?"
|
||
},
|
||
"housekeeping": {
|
||
"title": "Permissions de gouvernance",
|
||
"subtitle": "Configurer quels rangs peuvent accéder à quelles sections d'administration",
|
||
"addPermission": "Ajouter une permission",
|
||
"editPermission": "Modifier la permission",
|
||
"deletePermission": "Supprimer la permission",
|
||
"noPermissions": "Aucune permission de gouvernance configurée",
|
||
"confirmDelete": "Supprimer cette permission ?",
|
||
"colId": "ID",
|
||
"colRank": "Rang",
|
||
"colSection": "Section",
|
||
"colActions": "Actions",
|
||
"form": {
|
||
"rankId": "ID du rang",
|
||
"rankIdPlaceholder": "Rang minimum",
|
||
"section": "Clé de section",
|
||
"sectionPlaceholder": "ex. admin.dashboard",
|
||
"save": "Enregistrer la permission",
|
||
"saving": "Enregistrement…",
|
||
"cancel": "Annuler"
|
||
},
|
||
"saved": "Saved!",
|
||
"deleted": "Deleted!",
|
||
"errorOccurred": "An error occurred",
|
||
"emptyInput": "Empty input",
|
||
"invalidJson": "Invalid JSON",
|
||
"imported": "Imported!",
|
||
"presetApplied": "Preset applied!",
|
||
"cleared": "All permissions cleared!",
|
||
"invalidRank": "Invalid Rang",
|
||
"testDone": "Test done: {count} permissions found",
|
||
"testing": "Testing...",
|
||
"loading": "Loading...",
|
||
"prev": "Previous",
|
||
"next": "Next",
|
||
"confirmClearAll": "Supprimer ALL permissions? This action cannot be undone!",
|
||
"colGroup": "Group",
|
||
"colDepends": "Depends on",
|
||
"colPermission": "Permission",
|
||
"colDescription": "Description",
|
||
"colMinRank": "Min. Rang",
|
||
"permissionKey": "Clé de permission",
|
||
"minRank": "Min. Rang",
|
||
"description": "Description",
|
||
"permissions": "Permissions",
|
||
"permissionsCount": "{count} permissions",
|
||
"permission": "permission",
|
||
"highestMinRank": "Highest min. Rang: {rank}",
|
||
"totalMinRank": "Total min. Rang sum: {total}",
|
||
"groupCount": "{count} groups",
|
||
"rankCount": "{count} Rangs",
|
||
"missingDeps": "{count} missing dependencies",
|
||
"dependsOn": "depends on",
|
||
"notFound": "not found",
|
||
"missing": "(missing)",
|
||
"rank": "Rang",
|
||
"count": "Count",
|
||
"searchPermission": "Rechercher permissions…",
|
||
"search": "Rechercher",
|
||
"manage": "Manage",
|
||
"importSelection": "Importer selection",
|
||
"noGroup": "Non group",
|
||
"allGroups": "All groups",
|
||
"perGroup": "Permissions per group",
|
||
"perRank": "Permissions per Rang",
|
||
"rankOverviewHint": "All permissions grouped by the Rang they are assigned to.",
|
||
"tabOverview": "Aperçu",
|
||
"tabManage": "Manage",
|
||
"tabImport": "Importer / Export",
|
||
"tabRanks": "Rang Aperçu",
|
||
"tabPresets": "Préréglages",
|
||
"tabTest": "Test",
|
||
"tabAudit": "Audit log",
|
||
"importPermissions": "Importer permissions",
|
||
"importHint": "Paste a JSON array of permission objects. Format: [{ \"permission\": \"...\", \"minRank\": 7, \"description\": \"...\", \"groupName\": \"...\", \"dependsOn\": \"...\" }]",
|
||
"importPlaceholder": "Paste JSON here…",
|
||
"import": "Importer",
|
||
"exportTitle": "Export permissions",
|
||
"exportHint": "Export all permissions as JSON for backup or batch editing.",
|
||
"export": "Export JSON",
|
||
"copy": "Copy",
|
||
"copied": "Copied!",
|
||
"presets": "Permission Préréglages",
|
||
"presetsHint": "Appliquer a predefined set of permissions for common staff roles.",
|
||
"presetModerator": "Moderator",
|
||
"presetModeratorDesc": "Basic Modération tools: Utilisateur lookup, Bannissements, CFH handling, chat Journaux.",
|
||
"presetAdmin": "Administrator",
|
||
"presetAdminDesc": "Full admin access: Utilisateurs, Salons, news, Paramètres, Boutique, events, radio & more.",
|
||
"presetSuperAdmin": "Super Admin",
|
||
"presetSuperAdminDesc": "Complete access to every feature including permission management and asset Importer.",
|
||
"applyPreset": "Appliquer preset",
|
||
"clearAll": "Clear all permissions",
|
||
"testTitle": "Test Rang access",
|
||
"testHint": "Enter a Rang number to see which permissions would be granted.",
|
||
"test": "Test",
|
||
"auditTitle": "Permission audit log",
|
||
"auditHint": "All changes to Gouvernance permissions are logged.",
|
||
"auditLogsAt": "Audit Journaux are available on the Audit log page.",
|
||
"viewAuditLogs": "Voir audit Journaux",
|
||
"importedWithErrors": "Imported {count} permissions with {errors} errors",
|
||
"confirmClearAllDesc": "This will Retirer every permission entry from the Base de données. Are you sure?",
|
||
"confirmDeletePermission": "Supprimer this permission permanently?",
|
||
"confirmBulkDelete": "Supprimer {count} selected permissions?",
|
||
"deleteSelected": "Supprimer {count} selected",
|
||
"cancel": "Annuler",
|
||
"confirm": "Confirm",
|
||
"auditTime": "Time",
|
||
"auditUser": "Utilisateur",
|
||
"auditAction": "Action",
|
||
"auditTarget": "Cible",
|
||
"selectAllMatching": "Select all {count} matching",
|
||
"save": "Save",
|
||
"importTitle": "Import permissions",
|
||
"legacyBannerTitle": "Use Permissions to change who can do what",
|
||
"legacyBannerBody": "This archive does not control the site. Open Permissions to grant or revoke access for ranks.",
|
||
"legacyBannerCta": "Open Permissions",
|
||
"writesRetired": "Editing here is disabled on purpose. Change access only in Permissions.",
|
||
"tabCompare": "ACL compare",
|
||
"tabExportOnly": "Export archive",
|
||
"compareHint": "Compares legacy housekeeping min-rank rows to live ACL rank_* role grants (lowest rank that has the slug).",
|
||
"compareAligned": "{count} aligned",
|
||
"compareMissingAcl": "{count} missing in ACL",
|
||
"compareMismatch": "{count} rank mismatch",
|
||
"colAclPresent": "In ACL",
|
||
"colAclMinRank": "ACL min rank",
|
||
"colStatus": "Status",
|
||
"statusAligned": "Aligned",
|
||
"statusMissingAcl": "Missing in ACL",
|
||
"statusMismatch": "Rank differs",
|
||
"exportOnlyHint": "Writes are disabled. You can still export the legacy table for archival."
|
||
},
|
||
"rooms": {
|
||
"title": "Salons",
|
||
"subtitle": "Rechercher et gérer les salons de l'hôtel",
|
||
"search": "Rechercher",
|
||
"searchPlaceholder": "Rechercher par nom, propriétaire ou ID…",
|
||
"searchResults": "{count, plural, one {# salon} other {# salons}} trouvé(s) pour « {query} »",
|
||
"noResults": "Aucun salon trouvé",
|
||
"colId": "ID",
|
||
"colName": "Nom",
|
||
"colOwner": "Propriétaire",
|
||
"colUsers": "Utilisateurs",
|
||
"colState": "État",
|
||
"colCategory": "Catégorie",
|
||
"colCreated": "Créé",
|
||
"colActions": "Actions",
|
||
"stateOpen": "Ouvert",
|
||
"stateClosed": "Fermé",
|
||
"stateLocked": "Verrouillé",
|
||
"stateInvisible": "Invisible",
|
||
"detail": {
|
||
"title": "Salon : {name}",
|
||
"subtitle": "Appartient à {owner}",
|
||
"overview": "Aperçu",
|
||
"actions": "Actions",
|
||
"description": "Description",
|
||
"noDescription": "Aucune description",
|
||
"owner": "Propriétaire",
|
||
"users": "Utilisateurs en ligne",
|
||
"maxUsers": "Utilisateurs max",
|
||
"category": "Catégorie",
|
||
"state": "État",
|
||
"tags": "Étiquettes",
|
||
"noTags": "Aucune étiquette",
|
||
"created": "Créé",
|
||
"deleteRoom": "Supprimer le salon",
|
||
"confirmDelete": "Supprimer le salon « {name} » ? Cette action est irréversible.",
|
||
"enterRoom": "Entrer dans le salon",
|
||
"changeOwner": "Changer le propriétaire",
|
||
"changeOwnerPlaceholder": "Nom du nouveau propriétaire"
|
||
}
|
||
},
|
||
"emailTemplates": {
|
||
"title": "Modèles d'e-mail",
|
||
"subtitle": "Gérer les modèles d'e-mail transactionnels",
|
||
"newTemplate": "+ Nouveau modèle",
|
||
"edit": "Modifier",
|
||
"delete": "Supprimer",
|
||
"noTemplates": "Pas encore de modèles d'e-mail",
|
||
"confirmDelete": "Supprimer le modèle « {name} » ?",
|
||
"colId": "ID",
|
||
"colName": "Nom",
|
||
"colSubject": "Objet",
|
||
"colKey": "Clé",
|
||
"colUpdated": "Mis à jour",
|
||
"colActions": "Actions",
|
||
"form": {
|
||
"name": "Nom",
|
||
"namePlaceholder": "ex. E-mail de bienvenue",
|
||
"key": "Clé",
|
||
"keyPlaceholder": "ex. email_bienvenue",
|
||
"subject": "Objet",
|
||
"subjectPlaceholder": "Ligne d'objet de l'e-mail",
|
||
"body": "Corps (HTML)",
|
||
"bodyPlaceholder": "<p>Cher/Chère {username},</p>",
|
||
"variables": "Variables disponibles",
|
||
"variablesHint": "{username}, {email}, {hotel_name}",
|
||
"save": "Enregistrer le modèle",
|
||
"saving": "Enregistrement…",
|
||
"cancel": "Annuler"
|
||
}
|
||
},
|
||
"theme": {
|
||
"title": "Thème",
|
||
"subtitle": "Personnaliser l'apparence du CMS",
|
||
"presets": "Préréglages",
|
||
"colours": "Couleurs",
|
||
"css": "CSS",
|
||
"presetsTitle": "Préréglages de thème",
|
||
"presetsSubtitle": "Choisir un jeu de couleurs prédéfini",
|
||
"applyPreset": "Appliquer",
|
||
"presetApplied": "Préréglage appliqué",
|
||
"customiseTitle": "Couleurs personnalisées",
|
||
"primary": "Primaire",
|
||
"secondary": "Secondaire",
|
||
"accent": "Accent",
|
||
"background": "Arrière-plan",
|
||
"surface": "Surface",
|
||
"text": "Texte",
|
||
"saveColours": "Enregistrer les couleurs",
|
||
"savingColours": "Enregistrement…",
|
||
"cssTitle": "CSS personnalisé",
|
||
"cssSubtitle": "Ajouter du CSS personnalisé pour surcharger les styles du thème",
|
||
"cssPlaceholder": "/* Votre CSS personnalisé ici */",
|
||
"saveCss": "Enregistrer le CSS",
|
||
"savingCss": "Enregistrement…",
|
||
"reset": "Réinitialiser aux valeurs par défaut",
|
||
"confirmReset": "Réinitialiser le thème aux valeurs par défaut ?"
|
||
},
|
||
"media": {
|
||
"title": "Médiathèque",
|
||
"subtitle": "Télécharger et gérer les fichiers médias",
|
||
"upload": "Télécharger",
|
||
"uploadTitle": "Télécharger un fichier",
|
||
"uploadSubtitle": "Glisser-déposer ou cliquer pour télécharger",
|
||
"uploadButton": "Choisir un fichier",
|
||
"uploading": "Téléchargement…",
|
||
"noFiles": "Pas encore de fichiers médias",
|
||
"delete": "Supprimer",
|
||
"confirmDelete": "Supprimer ce fichier définitivement ?",
|
||
"search": "Rechercher",
|
||
"searchPlaceholder": "Rechercher par nom de fichier…",
|
||
"colPreview": "Aperçu",
|
||
"colName": "Nom",
|
||
"colSize": "Taille",
|
||
"colType": "Type",
|
||
"colUploaded": "Téléchargé",
|
||
"colActions": "Actions",
|
||
"copyUrl": "Copier l'URL",
|
||
"urlCopied": "URL copiée dans le presse-papier"
|
||
},
|
||
"settings": {
|
||
"title": "Paramètres CMS",
|
||
"subtitle": "Gérer la configuration clé/valeur du CMS",
|
||
"addSetting": "Ajouter un paramètre",
|
||
"edit": "Modifier",
|
||
"delete": "Supprimer",
|
||
"noSettings": "Aucun paramètre trouvé",
|
||
"confirmDelete": "Supprimer le paramètre « {key} » ?",
|
||
"colKey": "Clé",
|
||
"colValue": "Valeur",
|
||
"colUpdated": "Mis à jour",
|
||
"colActions": "Actions",
|
||
"form": {
|
||
"key": "Clé",
|
||
"keyPlaceholder": "ex. hotel_name",
|
||
"value": "Valeur",
|
||
"valuePlaceholder": "Valeur du paramètre",
|
||
"save": "Enregistrer le paramètre",
|
||
"saving": "Enregistrement…",
|
||
"cancel": "Annuler"
|
||
},
|
||
"keysInDatabase": "{count} keys in database",
|
||
"managedInForm": "{count} managed in form",
|
||
"documented": "{count} documented",
|
||
"saved": "Settings saved.",
|
||
"saveFailed": "Could not save settings.",
|
||
"saveSettings": "Save settings",
|
||
"viewOnly": "You can view settings but need edit permission to change them."
|
||
},
|
||
"favicon": {
|
||
"title": "Favicon",
|
||
"subtitle": "Upload and manage the site favicon",
|
||
"current": "Current favicon",
|
||
"uploadLabel": "Upload favicon",
|
||
"uploadHint": "PNG, JPEG, GIF, WebP, ICO or SVG. Max 2MB.",
|
||
"upload": "Upload",
|
||
"uploading": "Uploading…",
|
||
"delete": "Remove",
|
||
"deleting": "Removing…",
|
||
"saved": "Favicon saved successfully!",
|
||
"deleted": "Favicon removed successfully!",
|
||
"error": "Something went wrong",
|
||
"confirmDelete": "Remove the favicon? The site will no longer show a custom favicon.",
|
||
"generator": {
|
||
"title": "Generate favicon",
|
||
"text": "Text",
|
||
"bgColor": "Background color",
|
||
"textColor": "Text color",
|
||
"rounded": "Rounded corners",
|
||
"save": "Save as favicon"
|
||
},
|
||
"cancel": "Cancel"
|
||
},
|
||
"import": {
|
||
"title": "Import",
|
||
"subtitle": "Import assets from external sources into your hotel.",
|
||
"badges": "Badges",
|
||
"badgesDescription": "Import and manage badge assets from external sources.",
|
||
"furni": "Furni",
|
||
"furniDescription": "Import furniture definitions, SWF files, and icons.",
|
||
"clothing": "Clothing",
|
||
"clothingDescription": "Import clothing and wearables for avatars.",
|
||
"effects": "Effects",
|
||
"effectsDescription": "Import avatar effects and animations.",
|
||
"pets": "Pets",
|
||
"petsDescription": "Import pet data and icons.",
|
||
"clone": "Clone",
|
||
"cloneDescription": "Clone existing items from one source to another.",
|
||
"upload": "Upload .nitro",
|
||
"uploadDescription": "Upload .nitro bundles and icons directly without SWF conversion.",
|
||
"sync": "Auto Sync",
|
||
"syncDescription": "Automatically import missing furniture from all configured sources.",
|
||
"repairIcons": "Repair Icons",
|
||
"repairIconsDescription": "Download any missing icon files for furniture already in the database.",
|
||
"audit": "Catalog Audit",
|
||
"auditDescription": "Scan your catalog for missing entries, broken references, and items missing from clone sources."
|
||
},
|
||
"translations": {
|
||
"title": "Translations",
|
||
"subtitle": "Translate your hotel into multiple languages.",
|
||
"tabs": {
|
||
"cms": "CMS",
|
||
"client": "Client (Nitro)",
|
||
"emulator": "Emulator"
|
||
},
|
||
"emulator": {
|
||
"title": "Emulator",
|
||
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
|
||
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
|
||
"fullSettings": "Full settings"
|
||
}
|
||
},
|
||
"tickets": {
|
||
"title": "Tickets",
|
||
"subtitle": "Support tickets from players",
|
||
"noTickets": "No active tickets",
|
||
"searchPlaceholder": "Search subject, user, category or ID…",
|
||
"presetActive": "Active",
|
||
"statusOpen": "Open",
|
||
"statusInProgress": "In progress",
|
||
"statusWaiting": "Waiting",
|
||
"statusClosed": "Closed",
|
||
"colTicket": "Ticket",
|
||
"colStatus": "Status",
|
||
"colPriority": "Priority",
|
||
"colAssigned": "Assigned",
|
||
"colDate": "Date",
|
||
"meta": "by {user} · {count} msg · {category}",
|
||
"queueHint": "This queue is the CMS support desk. Player help-center tickets live in the Help-center tickets tab.",
|
||
"queueOtherCta": "Open help-center tickets"
|
||
},
|
||
"cfh": {
|
||
"title": "Call for Help",
|
||
"subtitle": "In-game CFH / support tickets",
|
||
"noTickets": "No CFH tickets",
|
||
"searchPlaceholder": "Search issue, user or ID…",
|
||
"noDescription": "No description",
|
||
"roomMeta": "Room #{room} · {when}",
|
||
"stateOpen": "Open",
|
||
"statePicked": "Picked",
|
||
"stateClosed": "Closed",
|
||
"colId": "ID",
|
||
"colIssue": "Issue",
|
||
"colSender": "Sender",
|
||
"colReported": "Reported",
|
||
"colMod": "Mod",
|
||
"colStatus": "Status"
|
||
},
|
||
"hubs": {
|
||
"newsMedia": "News & media",
|
||
"newsMediaSubtitle": "Articles, photos, banners, ads and media library",
|
||
"siteContent": "Site content",
|
||
"siteContentSubtitle": "Navigation, help center, boxes, tags and prefixes",
|
||
"engagement": "Engagement",
|
||
"engagementSubtitle": "Events, polls and support tickets",
|
||
"users": "Users",
|
||
"usersSubtitle": "Directory, online players, applications and teams",
|
||
"access": "Access & security",
|
||
"accessSubtitle": "Bans, IP, VPN, permissions and word filter",
|
||
"moderation": "Moderation",
|
||
"moderationSubtitle": "Reports, actions and moderation team",
|
||
"catalog": "Catalog & rares",
|
||
"catalogSubtitle": "Catalog, rares, badges, achievements and sounds",
|
||
"shop": "Shop & payments",
|
||
"shopSubtitle": "Shop, transactions, vouchers, subscriptions and calendar",
|
||
"radio": "Radio",
|
||
"radioSubtitle": "Stream, DJ tools, embed and monitoring",
|
||
"settings": "Settings",
|
||
"settingsSubtitle": "CMS config, theme, maintenance and related tools",
|
||
"tools": "Tools",
|
||
"toolsSubtitle": "RCON, rooms, import and translations",
|
||
"observability": "Observability",
|
||
"observabilitySubtitle": "Logs, analytics, DevOps and hotel alerts",
|
||
"tabs": {
|
||
"articles": "Articles",
|
||
"photos": "Photos",
|
||
"banners": "Banners",
|
||
"ads": "Ads",
|
||
"media": "Media",
|
||
"navigator": "Navigator",
|
||
"help": "Help",
|
||
"boxes": "Boxes",
|
||
"tags": "Tags",
|
||
"prefixes": "Prefixes",
|
||
"events": "Events",
|
||
"eventTypes": "Event types",
|
||
"polls": "Polls",
|
||
"tickets": "Tickets",
|
||
"templates": "Templates",
|
||
"directory": "Directory",
|
||
"multiAccounts": "Multi-accounts",
|
||
"online": "Online",
|
||
"applications": "Applications",
|
||
"teams": "Teams",
|
||
"bans": "Bans",
|
||
"ip": "IP",
|
||
"vpn": "VPN",
|
||
"permissions": "Permissions",
|
||
"wordFilter": "Word filter",
|
||
"overview": "Overview",
|
||
"actions": "Actions",
|
||
"cfh": "CFH",
|
||
"team": "Team",
|
||
"catalogTab": "Catalog",
|
||
"rares": "Rares",
|
||
"badges": "Badges",
|
||
"achievements": "Achievements",
|
||
"sounds": "Sounds",
|
||
"shopTab": "Shop",
|
||
"transactions": "Transactions",
|
||
"vouchers": "Vouchers",
|
||
"subscriptions": "Subscriptions",
|
||
"calendar": "Calendar",
|
||
"history": "History",
|
||
"moderationTab": "Moderation",
|
||
"monitoring": "Monitoring",
|
||
"settingsTab": "Settings",
|
||
"embed": "Embed",
|
||
"apiKeys": "API keys",
|
||
"points": "Points",
|
||
"ranks": "Ranks",
|
||
"autoDj": "Auto DJ",
|
||
"cms": "CMS",
|
||
"theme": "Theme",
|
||
"maintenance": "Maintenance",
|
||
"favicon": "Favicon",
|
||
"emulator": "Emulator",
|
||
"email": "Email",
|
||
"housekeeping": "Housekeeping",
|
||
"commando": "Commando",
|
||
"rooms": "Rooms",
|
||
"import": "Import",
|
||
"translations": "Translations",
|
||
"logs": "Logs",
|
||
"audit": "Audit",
|
||
"chat": "Chat",
|
||
"commands": "Commands",
|
||
"trades": "Trades",
|
||
"analytics": "Analytics",
|
||
"activity": "Activity",
|
||
"economy": "Economy",
|
||
"devops": "DevOps",
|
||
"errors": "Errors",
|
||
"alerts": "Alerts",
|
||
"toolsGroup": "Tools",
|
||
"helpTickets": "Help-center tickets"
|
||
},
|
||
"events": "Events",
|
||
"eventsSubtitle": "Hotel events and event types",
|
||
"tickets": "Support desk",
|
||
"ticketsSubtitle": "CMS tickets, help-center tickets, and reply templates",
|
||
"staffAccess": "Ranks & permissions",
|
||
"staffAccessSubtitle": "Staff ranks, ACL permissions and housekeeping access",
|
||
"analytics": "Analytics",
|
||
"analyticsSubtitle": "Hotel activity, retention and economy",
|
||
"devops": "DevOps",
|
||
"devopsSubtitle": "Service health and emulator errors"
|
||
},
|
||
"events": {
|
||
"newEvent": "+ New event",
|
||
"createTitle": "Create event",
|
||
"createSubtitle": "Schedule a new hotel event",
|
||
"searchPlaceholder": "Search events…",
|
||
"colId": "ID",
|
||
"colTitle": "Title",
|
||
"colType": "Type",
|
||
"colStarts": "Starts",
|
||
"colStatus": "Status",
|
||
"colActions": "Actions",
|
||
"statusPublished": "Published",
|
||
"statusDraft": "Draft",
|
||
"statusCancelled": "Cancelled",
|
||
"statusCompleted": "Completed",
|
||
"statRegistrations": "Registrations",
|
||
"statPrizes": "Prizes",
|
||
"statWinners": "Winners",
|
||
"statTime": "Time",
|
||
"maxPlayers": "Max: {count}",
|
||
"timeUpcoming": "Upcoming",
|
||
"timePast": "Past",
|
||
"endsAt": "Ends: {date}",
|
||
"userFallback": "User #{id}",
|
||
"registrationsTitle": "Registrations ({count})",
|
||
"noRegistrations": "No registrations yet.",
|
||
"noPrizes": "No prizes configured yet.",
|
||
"noWinners": "No winners yet.",
|
||
"addPrize": "Add prize",
|
||
"addWinner": "Add winner",
|
||
"formEditTitle": "Edit event",
|
||
"formDetailsTitle": "Event details",
|
||
"formTitle": "Title",
|
||
"formEventType": "Event type",
|
||
"formSelectType": "Select type",
|
||
"formDescription": "Description",
|
||
"formStartsAt": "Starts at",
|
||
"formEndsAt": "Ends at",
|
||
"formSelectStart": "Select start date",
|
||
"formSelectEnd": "Select end date",
|
||
"formMaxPlayers": "Max players",
|
||
"formUnlimited": "Unlimited",
|
||
"formRoomId": "Room ID",
|
||
"formOptional": "Optional",
|
||
"formImageUrl": "Image URL",
|
||
"formSaving": "Saving…",
|
||
"formUpdate": "Update event",
|
||
"formCreate": "Create event",
|
||
"toastUpdated": "Event updated!",
|
||
"toastCreated": "Event created!"
|
||
},
|
||
"polls": {
|
||
"newPoll": "+ New poll",
|
||
"createTitle": "Create poll",
|
||
"createSubtitle": "Create a new community poll or survey",
|
||
"searchPlaceholder": "Search polls…",
|
||
"colId": "ID",
|
||
"colTitle": "Title",
|
||
"colStatus": "Status",
|
||
"colType": "Type",
|
||
"colCreated": "Created",
|
||
"colActions": "Actions",
|
||
"statusActive": "Active",
|
||
"statusDraft": "Draft",
|
||
"statusClosed": "Closed",
|
||
"typeMultiple": "Multiple choice",
|
||
"typeSingle": "Single choice",
|
||
"statVoters": "Total voters",
|
||
"statQuestions": "Questions",
|
||
"statVotes": "Total votes",
|
||
"questionsTitle": "Questions ({count})",
|
||
"addQuestion": "Add question",
|
||
"noQuestions": "No questions yet. Add your first question above.",
|
||
"resultsTitle": "Results",
|
||
"formEditTitle": "Edit poll",
|
||
"formDetailsTitle": "Poll details",
|
||
"formTitle": "Title",
|
||
"formDescription": "Description",
|
||
"formStartsAt": "Starts at",
|
||
"formEndsAt": "Ends at",
|
||
"formSelectStart": "Select start date",
|
||
"formSelectEnd": "Select end date",
|
||
"formShowResults": "Show results to voters",
|
||
"formAllowMultiple": "Allow multiple answers",
|
||
"formSaving": "Saving…",
|
||
"formUpdate": "Update poll",
|
||
"formCreate": "Create poll",
|
||
"toastUpdated": "Poll updated!",
|
||
"toastCreated": "Poll created!"
|
||
},
|
||
"multiAccounts": {
|
||
"minAccounts": "Min accounts per cluster",
|
||
"resultLimit": "Result limit",
|
||
"refresh": "Refresh",
|
||
"noClusters": "No clusters found at the current thresholds."
|
||
},
|
||
"devops": {
|
||
"noEmulatorErrors": "No emulator errors found",
|
||
"noRecentErrors": "No recent errors"
|
||
},
|
||
"helpTickets": {
|
||
"title": "Help center tickets",
|
||
"subtitle": "Player tickets from /help/tickets",
|
||
"noTickets": "No open help center tickets",
|
||
"searchPlaceholder": "Search title, user or ID…",
|
||
"presetOpen": "Open",
|
||
"presetAll": "All",
|
||
"statusOpen": "Open",
|
||
"statusClosed": "Closed",
|
||
"colTicket": "Ticket",
|
||
"colStatus": "Status",
|
||
"colUser": "User",
|
||
"colCreated": "Created",
|
||
"colUpdated": "Updated",
|
||
"meta": "by {user} · {count} replies",
|
||
"backToList": "Back to list",
|
||
"threadTitle": "Conversation",
|
||
"staffBadge": "Staff",
|
||
"replyPlaceholder": "Reply as staff…",
|
||
"replySubmit": "Send reply",
|
||
"replyHint": "Ctrl+Enter to send.",
|
||
"closeSubmit": "Close ticket",
|
||
"reopenSubmit": "Reopen ticket",
|
||
"closedHint": "This ticket is closed.",
|
||
"actionsTitle": "Actions",
|
||
"requesterTitle": "Requester",
|
||
"detailsTitle": "Details",
|
||
"rankLabel": "Rank {rank}",
|
||
"messageCountLabel": "Messages",
|
||
"success": {
|
||
"replied": "Reply sent.",
|
||
"closed": "Ticket closed.",
|
||
"reopened": "Ticket reopened."
|
||
},
|
||
"queueHint": "This queue is the public help center. CMS support desk tickets are in the Support desk tab.",
|
||
"queueOtherCta": "Open CMS support desk"
|
||
},
|
||
"marketplace": {
|
||
"title": "Marketplace",
|
||
"subtitle": "Hotel marketplace listings",
|
||
"activeListings": "Active listings",
|
||
"soldListings": "Sold",
|
||
"filterActive": "Active",
|
||
"filterSold": "Sold",
|
||
"empty": "No marketplace listings to show.",
|
||
"loadError": "Could not load marketplace data (database unavailable).",
|
||
"cancel": "Cancel listing",
|
||
"colId": "ID",
|
||
"colItem": "Item ID",
|
||
"colSeller": "Seller",
|
||
"colPrice": "Price",
|
||
"colListed": "Listed",
|
||
"colSold": "Sold at",
|
||
"colActions": "Actions"
|
||
},
|
||
"analytics": {
|
||
"loadError": "Some analytics queries failed. Numbers below may be incomplete — check the database connection and emulator tables.",
|
||
"totalUsers": "Total users",
|
||
"onlineNow": "{count} online now",
|
||
"weekRegistrations": "Week registrations",
|
||
"thisMonth": "{count} this month",
|
||
"activeRooms": "Active rooms",
|
||
"totalRooms": "{count} total rooms",
|
||
"weeklyActivity": "Weekly activity",
|
||
"tradesAndBans": "{trades} trades, {bans} bans",
|
||
"registrationsChartTitle": "Registrations (30 days)",
|
||
"registrationsChartDescription": "New user registrations over the last 30 days",
|
||
"chatActivity": "Chat activity",
|
||
"messagesLast7Days": "Messages in the last 7 days",
|
||
"trades": "Trades",
|
||
"tradesLast7Days": "Trades in the last 7 days",
|
||
"retention": "Retention",
|
||
"usersOnlineOverTotal": "Users online / total",
|
||
"activity": {
|
||
"chatMessages": "Chat messages",
|
||
"commands": "Commands",
|
||
"bans": "Bans",
|
||
"registrations": "Registrations",
|
||
"last7Days": "Last 7 days",
|
||
"dailyBreakdownTitle": "Daily breakdown (7 days)",
|
||
"colDay": "Day",
|
||
"colChats": "Chats",
|
||
"colCmds": "Cmds",
|
||
"colBans": "Bans",
|
||
"colRegs": "Regs",
|
||
"mostActiveUsersTitle": "Most active users (7 days)",
|
||
"noChatActivity": "No chat activity",
|
||
"msgCount": "{count} msgs",
|
||
"userFallback": "User #{id}"
|
||
},
|
||
"economy": {
|
||
"creditsInCirculation": "Credits in circulation",
|
||
"creditsDescription": "Total credits across all users",
|
||
"pixelsInCirculation": "Pixels in circulation",
|
||
"pixelsDescription": "Total pixels across all users",
|
||
"pointsInCirculation": "Points in circulation",
|
||
"pointsDescription": "Total points across all users",
|
||
"weeklyTrades": "Weekly trades",
|
||
"marketplaceListings": "{count} marketplace listings",
|
||
"shopRevenueTitle": "Shop revenue (7d)",
|
||
"purchases": "Purchases",
|
||
"creditsSpent": "Credits spent",
|
||
"pointsSpent": "Points spent",
|
||
"marketplaceTitle": "Marketplace",
|
||
"activeListings": "Active listings",
|
||
"sold7d": "Sold (7d)",
|
||
"currencyDistributionTitle": "Currency distribution",
|
||
"credits": "Credits",
|
||
"pixels": "Pixels",
|
||
"points": "Points",
|
||
"catalogSpendingTitle": "Catalog spending",
|
||
"creditsTooltip": "{count} credits",
|
||
"pointsTooltip": "{count} points"
|
||
},
|
||
"peakHours": {
|
||
"title": "Peak hours",
|
||
"description": "User activity by day & hour (last 7 days)",
|
||
"days": {
|
||
"mon": "Mon",
|
||
"tue": "Tue",
|
||
"wed": "Wed",
|
||
"thu": "Thu",
|
||
"fri": "Fri",
|
||
"sat": "Sat",
|
||
"sun": "Sun"
|
||
},
|
||
"tooltip": "{day} {hour}:00 — {count} users",
|
||
"less": "Less",
|
||
"more": "More"
|
||
}
|
||
},
|
||
"guilds": {
|
||
"title": "Guilds",
|
||
"subtitle": "Hotel groups and membership",
|
||
"totalGuilds": "Guilds",
|
||
"searchPlaceholder": "Search by name, description or ID…",
|
||
"search": "Search",
|
||
"empty": "No guilds found.",
|
||
"loadError": "Could not load guilds (database unavailable).",
|
||
"colId": "ID",
|
||
"colBadge": "Badge",
|
||
"colName": "Name",
|
||
"colOwner": "Owner",
|
||
"colMembers": "Members",
|
||
"colCreated": "Created",
|
||
"colThreads": "Forum threads",
|
||
"colRoom": "Room",
|
||
"colUser": "User",
|
||
"colLevel": "Level",
|
||
"colJoined": "Joined",
|
||
"members": "Members",
|
||
"noMembers": "No members.",
|
||
"back": "Back to guilds",
|
||
"viewPublic": "Open public page",
|
||
"disband": "Disband guild"
|
||
}
|
||
},
|
||
"radioRequests": {
|
||
"formTitle": "Submit a request",
|
||
"formSubtitle": "Ask the DJ to play your favourite track",
|
||
"songLabel": "Song",
|
||
"songPlaceholder": "Title of the song",
|
||
"artistLabel": "Artist",
|
||
"artistPlaceholder": "Name of the artist (optional)",
|
||
"submitButton": "Submit request",
|
||
"loginToRequest": "Log in to submit a request.",
|
||
"latestTitle": "Recent requests",
|
||
"latestSubtitle": "The most recently requested songs",
|
||
"empty": "No requests yet.",
|
||
"colSong": "Song",
|
||
"colArtist": "Artist",
|
||
"colRequester": "Requester",
|
||
"colDate": "Date",
|
||
"colStatus": "Status",
|
||
"statusPending": "Pending",
|
||
"statusApproved": "Approved",
|
||
"statusPlayed": "Played",
|
||
"success": {
|
||
"posted": "Request submitted."
|
||
},
|
||
"errors": {
|
||
"empty": "Please enter a song title or artist.",
|
||
"invalid": "Invalid request.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"error": {
|
||
"code": "Error",
|
||
"title": "Something went wrong",
|
||
"subtitle": "The hotel hit an unexpected snag.",
|
||
"body": "Try again in a moment. If it keeps happening, contact staff with the reference below.",
|
||
"tryAgain": "Try again",
|
||
"backHome": "Back home",
|
||
"reference": "Reference: {digest}"
|
||
},
|
||
"notFound": {
|
||
"code": "404",
|
||
"title": "Page not found",
|
||
"subtitle": "This room doesn’t exist — or the furniture was moved.",
|
||
"body": "Check the link, or head back to the lobby.",
|
||
"backHome": "Back home",
|
||
"latestNews": "Latest news"
|
||
},
|
||
"sessions": {
|
||
"title": "Login activity",
|
||
"subtitle": "Recent sign-ins and failed attempts on your account",
|
||
"recentTitle": "Recent sign-ins",
|
||
"recentEmpty": "No sign-ins recorded yet.",
|
||
"colWhen": "When",
|
||
"colIp": "IP",
|
||
"colDevice": "Device",
|
||
"failedTitle": "Failed attempts",
|
||
"failedSubtitle": "Wrong password on your username",
|
||
"unknownDevice": "Unknown device",
|
||
"signOutEverywhereTitle": "Sign out everywhere",
|
||
"signOutEverywhereDescription": "Ends all website sessions on every device. You will need to sign in again here too.",
|
||
"signOutEverywhereButton": "Sign out all sessions",
|
||
"successSignedOutAll": "All sessions have been signed out."
|
||
},
|
||
"guildForumThread": {
|
||
"backToForum": "← Back to forum",
|
||
"unnamedGuild": "Unnamed guild",
|
||
"noSubject": "(no subject)",
|
||
"inGuildForum": "{guild} forum",
|
||
"pinned": "Pinned",
|
||
"locked": "Locked",
|
||
"postsTitle": "Posts",
|
||
"postsSubtitle": "{count, plural, one {# post} other {# posts}}",
|
||
"postsEmpty": "No posts in this thread.",
|
||
"userNumber": "User #{id}",
|
||
"replyTitle": "Reply",
|
||
"replySubtitle": "Add your message to this thread",
|
||
"replyPlaceholder": "Write your reply…",
|
||
"replySubmit": "Post reply",
|
||
"lockedHint": "This thread is locked — new replies are disabled.",
|
||
"loginToReply": "Sign in to reply.",
|
||
"loginLink": "Log in",
|
||
"success": {
|
||
"replied": "Reply posted."
|
||
},
|
||
"errors": {
|
||
"invalid": "Please enter a message.",
|
||
"notFound": "That thread was not found.",
|
||
"locked": "This thread is locked.",
|
||
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"helpTicketDetail": {
|
||
"backToList": "← Your tickets",
|
||
"ticketId": "Ticket #{id}",
|
||
"statusOpen": "Open",
|
||
"statusClosed": "Closed",
|
||
"messagesTitle": "Conversation",
|
||
"messagesSubtitle": "{count, plural, one {# message} other {# messages}}",
|
||
"you": "You",
|
||
"userNumber": "User #{id}",
|
||
"replyTitle": "Reply",
|
||
"replySubtitle": "Send a follow-up to staff",
|
||
"replyPlaceholder": "Write your message…",
|
||
"replySubmit": "Send reply",
|
||
"closeTitle": "Close ticket",
|
||
"closeSubtitle": "Mark this request as resolved when you no longer need help",
|
||
"closeSubmit": "Close ticket",
|
||
"closedHint": "This ticket is closed. Open a new ticket if you need more help.",
|
||
"success": {
|
||
"replied": "Reply sent.",
|
||
"closed": "Ticket closed."
|
||
},
|
||
"errors": {
|
||
"invalid": "Please enter a message.",
|
||
"notFound": "That ticket was not found.",
|
||
"closedTicket": "This ticket is closed.",
|
||
"moderated": "That message was blocked by moderation.",
|
||
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
|
||
"error": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"events": {
|
||
"title": "Events",
|
||
"subtitle": "Upcoming and recent hotel events you can join",
|
||
"empty": "No events yet.",
|
||
"back": "← Events",
|
||
"when": "When",
|
||
"status": "Status",
|
||
"statusPublished": "Open",
|
||
"statusCompleted": "Completed",
|
||
"registrations": "Registrations",
|
||
"registered": "{count} registered",
|
||
"spots": "{count} / {max} spots",
|
||
"registerTitle": "Register",
|
||
"registerSubtitle": "Save your spot for this event",
|
||
"register": "Register for event",
|
||
"registering": "Registering…",
|
||
"registerSuccess": "You are registered!",
|
||
"registerError": "Could not register for this event.",
|
||
"loginToRegister": "Log in to register for this event.",
|
||
"alreadyRegistered": "You are already registered.",
|
||
"eventEnded": "This event has ended.",
|
||
"eventFull": "This event is full.",
|
||
"cannotRegister": "Registration is not available.",
|
||
"prizesTitle": "Prizes",
|
||
"winnersTitle": "Winners",
|
||
"unknownUser": "User #{id}"
|
||
},
|
||
"polls": {
|
||
"title": "Polls",
|
||
"subtitle": "Share your opinion in community polls",
|
||
"empty": "No polls yet.",
|
||
"back": "← Polls",
|
||
"statusActive": "Open",
|
||
"statusClosed": "Closed",
|
||
"questionsCount": "{count} questions",
|
||
"ends": "Ends {date}",
|
||
"voteTitle": "Cast your vote",
|
||
"voteSubtitle": "Answer each question below",
|
||
"submitVote": "Submit vote",
|
||
"voting": "Submitting…",
|
||
"voteSuccess": "Thanks for voting!",
|
||
"voteError": "Could not submit your vote.",
|
||
"loginToVote": "Log in to vote in this poll.",
|
||
"alreadyVoted": "You have already voted.",
|
||
"pollClosed": "This poll is closed.",
|
||
"cannotVote": "Voting is not available.",
|
||
"textPlaceholder": "Your answer…",
|
||
"resultsTitle": "Results",
|
||
"voteCount": "{count} ({pct}%)",
|
||
"totalVotes": "{count} total votes",
|
||
"textResponses": "{count} free-text responses"
|
||
},
|
||
"mod": {
|
||
"title": "Moderation panel",
|
||
"badge": "Mod",
|
||
"overviewTitle": "Moderator overview",
|
||
"overviewSubtitle": "CFH, quick actions and bans without full admin access.",
|
||
"shortcutsTitle": "Shortcuts",
|
||
"nav": {
|
||
"overview": "Overview",
|
||
"cfh": "Call for Help",
|
||
"actions": "Quick actions",
|
||
"bans": "Bans",
|
||
"fullAdmin": "Full admin",
|
||
"backToSite": "Back to site",
|
||
"tickets": "Tickets",
|
||
"team": "Team",
|
||
"helpTickets": "Help-center tickets"
|
||
},
|
||
"stats": {
|
||
"openCfh": "Open CFH",
|
||
"bansToday": "Bans today",
|
||
"modsOnline": "Mods online",
|
||
"quickActions": "Quick actions",
|
||
"quickActionsHint": "Kick, mute, alert",
|
||
"openTickets": "Open tickets",
|
||
"team": "Mod team",
|
||
"teamHint": "Online staff & workload",
|
||
"openHelpTickets": "Open help tickets"
|
||
}
|
||
}
|
||
},
|
||
"emails": {
|
||
"verify": {
|
||
"subject": "Verify your email · {hotel}",
|
||
"heading": "Verify your email",
|
||
"body": "Welcome to {hotel}! Confirm this email address to finish setting up your account.",
|
||
"button": "Verify email",
|
||
"fallback": "If the button doesn't work, paste this link into your browser:"
|
||
}
|
||
}
|
||
}
|