// Every user-facing string lives here. export const fr = { title: 'GOÛTERMAGEDDON', subtitle: 'La baston la plus sucrée du LAN', nameLabel: 'Ton pseudo', chooseCharacter: 'Choisis ton gourmand', play: 'À table !', connecting: 'Mise au four du serveur…', loadingMap: 'Préparation du goûter…', disconnected: 'Connexion perdue. Le goûter est fini ?', rejectedVersion: (server: number, client: number) => `Version incompatible : le serveur est en v${server}, toi en v${client}. Mettez-vous à jour !`, rejectedFull: 'La table est pleine (8 joueurs max).', rejectedCharacter: 'Ce personnage n’existe pas sur ce serveur.', loadError: (msg: string) => `Impossible de charger la partie : ${msg}`, help: { generic: 'Q/D : courir · Espace/Z : sauter · Clic gauche : croquer le décor · F : lancer la bougie', castor: 'Q/D : courir · Espace/Z : sauter · Clic gauche : coup de dents · Clic droit (maintenu) : manger · F : lancer la bougie', } as Record, fps: (n: number) => `${n} FPS`, browser: { title: 'Les goûters du coin', searching: 'On renifle le réseau… Aucune partie pour l’instant.', host: 'Créer une partie', join: 'Rejoindre', back: 'Retour', players: (n: number, max: number) => `${n}/${max} gourmands`, phase: { lobby: 'à l’échauffement', playing: 'en pleine baston' } as Record, incompatible: 'version différente', full: 'complet', manualLabel: 'Ou par adresse :', manualPlaceholder: '192.168.1.42', gameName: (name: string) => `Goûter de ${name}`, }, lobby: { title: 'Échauffement', hint: 'Croquez le décor en attendant tout le monde !', ready: 'Je suis prêt !', notReady: 'Attends, pas encore !', countdown: (n: number) => `Ça commence dans ${n}…`, waiting: (n: number) => `En attente de ${n} gourmand${n > 1 ? 's' : ''}`, started: 'C’est parti !', }, desync: 'Oups, ton gâteau ne ressemble plus à celui du serveur (désynchronisation).', hud: { round: (n: number, total: number) => `Manche ${n}/${total}`, warmup: 'Échauffement', rush: 'LA CRÈME MONTE !', candleHint: 'F : lancer la bougie !', }, items: { candle: 'Bougie !', smarties: 'Smarties !', whisk: 'Fouet électrique !', cherry: 'La cerise !' } as Record, fxWords: { splash: ['PLOUF !', 'SPLOTCH !', 'GLOUB !'], explosion: ['BOUM !', 'KABOUM !', 'BADABOUM !'], whisk: ['BZZZT !', 'VRRRRR !'], drop: ['OUPS !', 'AÏE !', 'NOOON !'], }, results: { roundTitle: (n: number, total: number) => `Fin de la manche ${n}/${total}`, matchTitle: 'Le grand classement', player: 'Gourmand', round: 'Manche', total: 'Total', next: (s: number) => `Manche suivante dans ${s} s…`, lobby: (s: number) => `Retour à l’échauffement dans ${s} s… (« Je suis prêt ! » pour rejouer)`, trophies: 'Les trophées', noTrophy: 'Personne n’a rien fait de remarquable. Bravo.', winner: (name: string) => `${name} remporte le goûter !`, }, trophies: { glutton: { name: 'Le Glouton', desc: (v: number) => `${v.toLocaleString('fr-FR')} pixels de gâteau engloutis` }, kamikaze: { name: 'Le Kamikaze', desc: (v: number) => `${v} plongeon${v > 1 ? 's' : ''} dans la crème` }, developer: { name: 'Le Promoteur Immobilier', desc: (v: number) => `${v} pan${v > 1 ? 's' : ''} de gâteau effondré${v > 1 ? 's' : ''}` }, notMyFault: { name: 'Pas Sa Faute', desc: (v: number) => `${v} coup${v > 1 ? 's' : ''} et écrasement${v > 1 ? 's' : ''} encaissés` }, pyromaniac: { name: 'L’Artificier', desc: (v: number) => `${v} bougie${v > 1 ? 's' : ''} lancée${v > 1 ? 's' : ''}` }, cherryPicker: { name: 'Le Cueilleur', desc: (v: number) => `${v} s avec la cerise` }, } as Record string }>, defaultName: 'Gourmand', characters: { generic: { name: 'Le Testeur', desc: 'Court, saute, croque. Rien de plus, rien de moins.' }, castor: { name: 'Castor Glouton', desc: 'Mange le décor en avançant. Mais plus il mange, plus il grossit… jusqu’à passer à travers le sol.', }, } as Record, /** Comic-book sound effects shown on impacts. */ onomatopoeia: { crunch: ['CROC !', 'CRUNCH !', 'SCRONCH !', 'CRAC !'], munch: ['MIAM !', 'NOM NOM', 'GLOUPS', 'SLURP !'], hit: ['BONK !', 'PAF !', 'TCHAC !', 'BIM !'], thud: ['BOUM !', 'POUF !', 'BLAM !'], crush: ['SPLATCH !', 'CRÊPE !', 'SCHPLONK !'], }, };