fr.ts 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // Every user-facing string lives here.
  2. export const fr = {
  3. title: 'GOÛTERMAGEDDON',
  4. subtitle: 'La baston la plus sucrée du LAN',
  5. nameLabel: 'Ton pseudo',
  6. chooseCharacter: 'Choisis ton gourmand',
  7. play: 'À table !',
  8. connecting: 'Mise au four du serveur…',
  9. loadingMap: 'Préparation du goûter…',
  10. disconnected: 'Connexion perdue. Le goûter est fini ?',
  11. rejectedVersion: (server: number, client: number) =>
  12. `Version incompatible : le serveur est en v${server}, toi en v${client}. Mettez-vous à jour !`,
  13. rejectedFull: 'La table est pleine (8 joueurs max).',
  14. rejectedCharacter: 'Ce personnage n’existe pas sur ce serveur.',
  15. loadError: (msg: string) => `Impossible de charger la partie : ${msg}`,
  16. help: {
  17. generic: 'Q/D : courir · Espace/Z : sauter · Clic gauche : croquer le décor · F : lancer la bougie',
  18. castor: 'Q/D : courir · Espace/Z : sauter · Clic gauche : coup de dents · Clic droit (maintenu) : manger · F : lancer la bougie',
  19. } as Record<string, string>,
  20. fps: (n: number) => `${n} FPS`,
  21. browser: {
  22. title: 'Les goûters du coin',
  23. searching: 'On renifle le réseau… Aucune partie pour l’instant.',
  24. host: 'Créer une partie',
  25. join: 'Rejoindre',
  26. back: 'Retour',
  27. players: (n: number, max: number) => `${n}/${max} gourmands`,
  28. phase: { lobby: 'à l’échauffement', playing: 'en pleine baston' } as Record<string, string>,
  29. incompatible: 'version différente',
  30. full: 'complet',
  31. manualLabel: 'Ou par adresse :',
  32. manualPlaceholder: '192.168.1.42',
  33. gameName: (name: string) => `Goûter de ${name}`,
  34. },
  35. lobby: {
  36. title: 'Échauffement',
  37. hint: 'Croquez le décor en attendant tout le monde !',
  38. ready: 'Je suis prêt !',
  39. notReady: 'Attends, pas encore !',
  40. countdown: (n: number) => `Ça commence dans ${n}…`,
  41. waiting: (n: number) => `En attente de ${n} gourmand${n > 1 ? 's' : ''}`,
  42. started: 'C’est parti !',
  43. },
  44. desync: 'Oups, ton gâteau ne ressemble plus à celui du serveur (désynchronisation).',
  45. hud: {
  46. round: (n: number, total: number) => `Manche ${n}/${total}`,
  47. warmup: 'Échauffement',
  48. rush: 'LA CRÈME MONTE !',
  49. candleHint: 'F : lancer la bougie !',
  50. },
  51. items: { candle: 'Bougie !', smarties: 'Smarties !', whisk: 'Fouet électrique !', cherry: 'La cerise !' } as Record<string, string>,
  52. fxWords: {
  53. splash: ['PLOUF !', 'SPLOTCH !', 'GLOUB !'],
  54. explosion: ['BOUM !', 'KABOUM !', 'BADABOUM !'],
  55. whisk: ['BZZZT !', 'VRRRRR !'],
  56. drop: ['OUPS !', 'AÏE !', 'NOOON !'],
  57. },
  58. results: {
  59. roundTitle: (n: number, total: number) => `Fin de la manche ${n}/${total}`,
  60. matchTitle: 'Le grand classement',
  61. player: 'Gourmand',
  62. round: 'Manche',
  63. total: 'Total',
  64. next: (s: number) => `Manche suivante dans ${s} s…`,
  65. lobby: (s: number) => `Retour à l’échauffement dans ${s} s… (« Je suis prêt ! » pour rejouer)`,
  66. trophies: 'Les trophées',
  67. noTrophy: 'Personne n’a rien fait de remarquable. Bravo.',
  68. winner: (name: string) => `${name} remporte le goûter !`,
  69. },
  70. trophies: {
  71. glutton: { name: 'Le Glouton', desc: (v: number) => `${v.toLocaleString('fr-FR')} pixels de gâteau engloutis` },
  72. kamikaze: { name: 'Le Kamikaze', desc: (v: number) => `${v} plongeon${v > 1 ? 's' : ''} dans la crème` },
  73. developer: { name: 'Le Promoteur Immobilier', desc: (v: number) => `${v} pan${v > 1 ? 's' : ''} de gâteau effondré${v > 1 ? 's' : ''}` },
  74. notMyFault: { name: 'Pas Sa Faute', desc: (v: number) => `${v} coup${v > 1 ? 's' : ''} et écrasement${v > 1 ? 's' : ''} encaissés` },
  75. pyromaniac: { name: 'L’Artificier', desc: (v: number) => `${v} bougie${v > 1 ? 's' : ''} lancée${v > 1 ? 's' : ''}` },
  76. cherryPicker: { name: 'Le Cueilleur', desc: (v: number) => `${v} s avec la cerise` },
  77. } as Record<string, { name: string; desc: (v: number) => string }>,
  78. defaultName: 'Gourmand',
  79. characters: {
  80. generic: { name: 'Le Testeur', desc: 'Court, saute, croque. Rien de plus, rien de moins.' },
  81. castor: {
  82. name: 'Castor Glouton',
  83. desc: 'Mange le décor en avançant. Mais plus il mange, plus il grossit… jusqu’à passer à travers le sol.',
  84. },
  85. } as Record<string, { name: string; desc: string }>,
  86. /** Comic-book sound effects shown on impacts. */
  87. onomatopoeia: {
  88. crunch: ['CROC !', 'CRUNCH !', 'SCRONCH !', 'CRAC !'],
  89. munch: ['MIAM !', 'NOM NOM', 'GLOUPS', 'SLURP !'],
  90. hit: ['BONK !', 'PAF !', 'TCHAC !', 'BIM !'],
  91. thud: ['BOUM !', 'POUF !', 'BLAM !'],
  92. crush: ['SPLATCH !', 'CRÊPE !', 'SCHPLONK !'],
  93. },
  94. };