/* komyo i18n — Français (fr). Loaded by the i18n.js loader (active language synchronously,
   the rest lazily after load). Keys must stay a complete superset of pl — see test.mjs. */
window.KOMYO_I18N = window.KOMYO_I18N || {};
window.KOMYO_I18N.fr = {
  'cat.fhSections': 'Rayons',
  'changelog.e83.title': 'Une commande plus grande dans Chrome Runner, et la déplacer fonctionne enfin 🕹️',
  'changelog.e83.b0': 'Changement : la commande à l\'écran de Chrome Runner est bien plus grande — tu atteins chaque moitié sans quitter les cactus des yeux.',
  'changelog.e83.b1': 'Correction : déplacer la commande fonctionne enfin. Choisis « Déplacer la commande » dans le menu de départ ou celui de pause, fais-la glisser là où ton pouce se pose, puis touche « Terminé ». La faire glisser par la petite barre du milieu ne marchait pas du tout sur téléphone.',
  'changelog.e82.title': 'Chrome Runner : un pouce, une commande 🕹️',
  'changelog.e82.b0': 'Changement : les deux boutons dans les coins de Chrome Runner deviennent une seule commande ronde — la moitié haute saute, maintenir la moitié basse fait se baisser — le jeu entier tient donc sous un seul pouce. Fais-la glisser par la barre du milieu là où ton pouce se pose vraiment ; elle y restera la prochaine fois. Toucher n\'importe où ailleurs saute toujours.',
  'changelog.e81.title': 'Commandes tactiles pour Chrome Runner et Type Siege 📱',
  'changelog.e81.b0': 'Correction : Chrome Runner a enfin de vrais boutons à l\'écran sur téléphone — ⬆ pour sauter, maintenir ⬇ pour se baisser — et toucher n\'importe où ailleurs saute toujours. Avant, le haut de l\'écran sautait et le bas se baissait, avec une ligne de séparation invisible qui tombait à un endroit différent sur chaque téléphone.',
  'changelog.e81.b1': 'Correction : ouvrir le clavier dans Type Siege ne pousse plus le champ de bataille hors de l\'écran.',
  'changelog.e81.b2': 'Correction : Type Siege te demande maintenant de remettre le téléphone en portrait — en paysage, le clavier occupe tout l’écran et il ne reste plus rien pour jouer.',
  'changelog.e80.title': 'Rayons de la page d\'accueil, défis hebdomadaires et indices du Sudoku 🧹',
  'changelog.e80.b0': 'Nouveau : le panneau de filtres peut masquer les rayons dont vous ne voulez pas — Favoris, Joués récemment, ✨ Nouveautés et 💡 Pour vous — pour n\'afficher que Tous les jeux.',
  'changelog.e80.b1': 'Changement : les défis hebdomadaires portent désormais toujours sur la variété ou le volume (« jouez à 5 jeux différents cette semaine »). « Jouez à ce jeu », étalé sur sept jours, ne demandait rien.',
  'changelog.e80.b2': 'Changement : l\'indice de Sudoku utilise désormais le même bouton 🔍 INDICE que les autres puzzles (la touche 💡 du pavé a disparu, H fonctionne toujours) — touchez l\'explication pour la ranger.',
  'changelog.e79.title': 'Chaque jeu a son propre son 🎵',
  'changelog.e79.b0': 'Nouveau : Frog Bonk a enfin sa propre musique — il empruntait jusqu\'ici le thème de Keep Defender.',
  'changelog.e79.b1': 'Nouveau : chaque bande-son gagne une couche supplémentaire au plus fort de l\'action — tambour de guerre, cloche, shaker ou frappe grave — pour que le moment le plus intense d\'une partie sonne comme ce jeu-là, et pas comme tous les autres.',
  'changelog.e79.b2': 'Nouveau : de nouveaux arrangements pour Bubble Pop, Glow Says, Critter Match et le marais de Keep Defender — ils reposaient sur la même poignée de sons que leurs voisins.',
  'changelog.e77.title': 'Ton profil et les défis parlent ta langue 🌍',
  'changelog.e77.b0': 'Correction : ton profil est maintenant entièrement traduit — noms des jeux, tous les modes et difficultés, la ligne du titre, la barre Collection et la date « depuis » suivent la langue choisie.',
  'changelog.e77.b1': 'Correction : les défis terminés dans ton historique s’affichent désormais dans ta langue actuelle, et non dans celle où tu les as réussis.',
  'changelog.e76.title': 'Quatre aperçus de jeu en plus 🎬',
  'changelog.e76.b0': 'Nouveau : 2048, Ballons, Paires d\'Animaux et Stand de tir affichent maintenant un court extrait de jeu sur leur fiche — touche PLUS pour voir comment ça se joue vraiment avant de lancer.',
  'changelog.e75.title': 'Quitte et reviens — ta partie est sauvegardée 🔖',
  'changelog.e75.b0': 'Nouveau : 2048, Bulles et Démineur mémorisent désormais ta partie en cours — quitte quand tu veux et appuie sur « Continuer » sur l’écran d’accueil pour reprendre exactement où tu t’es arrêté. (Sudoku conservait déjà tes grilles inachevées.)',
  'nav.menu': '↩ Menu',
  'nav.leave': 'Quitter',
  'confirm.cancel': 'Annuler',
  'confirm.ok': 'OK',
  'confirm.leave': 'Quitter cette partie ? Vous perdrez votre progression.',
  'confirm.reset': 'Réinitialiser vos scores enregistrés pour ce jeu ?',
  'confirm.holdReset': 'Maintenez pour réinitialiser',
  'pause.paused': 'Pause',
  'pause.resume': 'Reprendre',
  'pause.pause': 'Pause',
  'sound.muteSfx': 'Couper les effets sonores',
  'sound.sfxVol': 'Volume des effets sonores',
  'sound.muteMusic': 'Couper la musique',
  'sound.musVol': 'Volume de la musique',
  'sound.settings': 'Paramètres audio',
  'kit.embed': '⧉ Intégrer ce jeu',
  'kit.embedTitle': 'Intégrez ce jeu sur votre site ou blog',
  'kit.fullscreen': 'Plein écran',
  'kit.exitFullscreen': 'Quitter le plein écran',
  'kit.fullscreenTitle': 'Basculer le plein écran',
  'kit.reset': '↺ Réinitialiser les données du jeu',
  'kit.resetTitle': 'Réinitialiser les scores enregistrés de ce jeu',
  'kit.gameMenu': 'Menu du jeu',
  'kit.rotate': 'Tournez votre téléphone pour jouer',
  'kit.tapToPlay': 'APPUYEZ POUR LIRE',
  'update.upToDate': '✓ À jour',
  'update.updateNow': '🔆 Mettre à jour',
  'update.updating': '⟳ Mise à jour…',
  'update.checking': '⟳ Vérification…',
  'update.offline': '⚠ Hors ligne — vérification impossible',
  'controls.title': 'Commandes',
  'controls.keyboard': 'Clavier',
  'controls.mouse': 'Souris',
  'controls.touch': 'Tactile',
  'controls.navTitle': 'Comment jouer — commandes',
  'embed.pick': 'Choisissez un jeu',
  'embed.titleGame': 'Intégrer un jeu',
  'embed.titleThis': 'Intégrer ce jeu',
  'embed.body': 'Collez ceci là où vous voulez le jeu sur votre site ou blog — il fonctionne directement, gratuitement, sans compte, sans pub.',
  'embed.copyCode': 'Copier le code',
  'embed.copied': 'Copié !',
  'challenges.title': 'Défis',
  'challenges.newBadge': '★ NOUVEAU',
  'challenges.todayTitle': 'Défis du jour',
  'challenges.today': 'Aujourd\'hui',
  'challenges.thisWeek': 'Cette semaine',
  'challenges.thisGame': 'CE JEU',
  'challenges.done': '✓ Terminé',
  'challenges.noneKind': 'Aucun défi {kind} pour le moment.',
  'challenges.notLoaded': 'Les défis ne sont pas chargés ici.',
  'challenges.goodRunHere': 'Une bonne partie ici = {n}+',
  'chal.goodRunWhat': 'C’est quoi, une bonne partie ?',
  'chal.goodRunExplain': 'Atteignez la marque du jeu en une partie — elle compte pour les défis de bonnes parties et le bonus quotidien ⚡.',
  'chal.resetsIn': 'se réinitialise dans {t}',
  'time.d': '{n}j',
  'time.h': '{n}h',
  'time.m': '{n}min',
  'challenges.trophies': '{count} trophées',
  'challenges.cosmeticsBtn': '🎨 Collection',
  'challenges.note': 'Tout mode compte — seul votre meilleur score du jour importe. Liste complète &amp; historique sur la page d\'accueil.',
  'challenges.playToday': 'Jouez à {game} aujourd\'hui',
  'challenges.playWeek': 'Jouez à {game} cette semaine',
  'challenges.aGame': 'un jeu',
  'grb.line': '⚡ Bonus de bonne partie : {count}/{cap} aujourd\'hui · +{per} 🏆 chacune',
  'grb.receipt': '✓ Bonne partie · +{per} 🏆 ({count}/{cap} aujourd\'hui)',
  'grb.maxed': '✓ Bonne partie · bonus 🏆 quotidien au max {cap}/{cap}',
  'grb.counts': '✓ Bonne partie — compte pour le défi du jour',
  'shop.title': 'Collection',
  'shop.titleGame': 'Collection {game}',
  'shop.searchPh': '🔍 Rechercher dans la collection…',
  'shop.searchAria': 'Rechercher dans la collection',
  'shop.filterAria': 'Filtrer par jeu',
  'shop.allGamesOpt': 'Tous les jeux',
  'shop.allGamesLink': 'Tous les jeux →',
  'shop.siteWide': 'Tout le site',
  'shop.titlesLine': '🏆 Les titres se débloquent automatiquement en gagnant des trophées.',
  'shop.seeTitles': 'Voir les titres',
  'shop.progress': '{owned} / {total} · {pct}%',
  'shop.equipped': '✓ ÉQUIPÉ',
  'shop.equip': 'ÉQUIPER {name}',
  'shop.buy': 'ACHETER {name} · 🏆 {price}',
  'shop.confirmBuy': 'Dépenser {price} 🏆 pour {name} ?',
  'shop.confirmBtn': 'ACHETER',
  'shop.on': '✓ Activé',
  'shop.owned': '✓ Possédé',
  'shop.default': '✓ Par défaut',
  'shop.free': 'Gratuit',
  'shop.noMatch': 'Aucun cosmétique ne correspond à « {q} ».',
  'shop.cosmeticsTitle': 'Collection — skins pour ce jeu',
  'shop.styleGroup': 'STYLE',
  'menu.best': 'Meilleur : {score}',
  'menu.newBest': '★ Nouveau record !',
  'menu.bestLabel': 'MEILLEUR',
  'menu.bestWord': 'Meilleur',
  'menu.choose': 'Choisir',
  'menu.pick': 'CHOISIR · {label}',
  'menu.unlock': 'DÉBLOQUER {label}',
  'menu.close': 'Fermer',
  'share.share': 'Partager',
  'share.onX': 'Partager sur X',
  'share.onReddit': 'Partager sur Reddit',
  'share.copy': 'Copier',
  'share.cardImage': 'Image de la carte de score',
  'share.copied': 'Copié !',
  'share.verb': 'J\'ai marqué',
  'share.line': '{verb} {score}{unit} sur {game}{emoji}',
  'card.score': 'SCORE',
  'card.time': 'TEMPS',
  'card.playOn': 'JOUEZ SUR',
  'card.anonymous': 'anonyme',
  'card.collection': '🎨 COLLECTION',
  'card.shareBtn': '📤 Partager…',
  'card.copyImage': '📋 Copier l\'image',
  'card.download': '💾 Télécharger',
  'card.copied': '✓ Copié !',
  'titles.title': '🏆 Titres',
  'titles.sub': 'Gagnez des trophées pour grimper l\'échelle — un nouveau titre est porté automatiquement, mais touchez n\'importe quel rang <b>débloqué</b> pour le porter à la place. Les titres comptent les trophées <b>à vie</b>, donc dépenser dans votre collection ne vous ralentit jamais.',
  'titles.worn': '✓ Porté',
  'titles.wear': 'Porter',
  'challenge.goal.snake-1': 'Marquez 150 dans Serpent Néon',
  'challenge.goal.snake-2': 'Marquez 300 dans Serpent Néon',
  'challenge.goal.bub-1': 'Marquez 3000 dans Bulles',
  'challenge.goal.bub-2': 'Marquez 5000 dans Bulles',
  'challenge.goal.brk-1': 'Marquez 500 dans Casse-Briques',
  'challenge.goal.brk-2': 'Marquez 1500 dans Casse-Briques',
  'challenge.goal.stk-1': 'Empilez 25 étages dans Tour',
  'challenge.goal.stk-2': 'Empilez 50 étages dans Tour',
  'challenge.goal.fly-1': 'Marquez 25 dans Vol des Prés',
  'challenge.goal.fly-2': 'Marquez 50 dans Vol des Prés',
  'challenge.goal.aim-1': 'Marquez 250 dans Stand de Tir',
  'challenge.goal.aim-2': 'Marquez 600 dans Stand de Tir',
  'challenge.goal.td-wave5': 'Atteignez la vague 5 dans Défenseur du Donjon',
  'challenge.goal.td-wave10': 'Atteignez la vague 10 dans Défenseur du Donjon',
  'challenge.goal.ast-1': 'Marquez 4000 dans Astéroïdes',
  'challenge.goal.ast-2': 'Marquez 8000 dans Astéroïdes',
  'challenge.goal.astp-1': 'Marquez 15000 dans Astéroïdes+',
  'challenge.goal.astp-2': 'Marquez 30000 dans Astéroïdes+',
  'challenge.goal.forcefield-1': 'Marquez 500 dans Champ de Force',
  'challenge.goal.forcefield-2': 'Marquez 1200 dans Champ de Force',
  'challenge.goal.play2': 'Jouez à 2 jeux différents aujourd\'hui',
  'challenge.goal.play3': 'Jouez à 3 jeux différents aujourd\'hui',
  'challenge.goal.genres2': 'Jouez à 2 genres différents aujourd\'hui',
  'challenge.goal.good3': 'Réalisez 3 bonnes parties aujourd\'hui',
  'challenge.goal.rand-daily': 'Jouez à la sélection aléatoire du jour',
  'challenge.goal.wk-distinct5': 'Jouez à 5 jeux différents cette semaine',
  'challenge.goal.wk-play12': 'Jouez à 12 jeux cette semaine',
  'challenge.goal.wk-genres3': 'Jouez à 3 genres différents cette semaine',
  'challenge.goal.wk-good10': 'Réalisez 10 bonnes parties cette semaine',
  'title.t0': 'Gobelin du Caniveau',
  'title.t1': 'Paysan des Champs',
  'title.t2': 'Écuyer du Donjon',
  'title.t3': 'Chevalier du Royaume',
  'title.t4': 'Sorcier de la Tour',
  'title.t5': 'Archimage de l\'Arcane',
  'title.t6': 'Oracle du Réseau',
  'title.t7': 'Ascendant des Étoiles',
  'title.t8': 'Empereur de l\'Éternité',
  'lang.header': 'Langue',
  'lang.soon': 'bientôt',
  'crt.label': 'Mode CRT',
  'crt.off': 'Désact.',
  'crt.green': 'Vert',
  'crt.amber': 'Ambre',
  'crt.cyan': 'Cyan',
  'crt.mono': 'Mono',
  'crt.pickColor': 'Choisir une couleur',
  'badge.new': 'NOUVEAU',
  'badge.updated': 'MIS À JOUR',
  'badge.challenge': 'DÉFI',
  'badge.pick': 'POPULAIRE',
  'tag.arcade': 'ARCADE',
  'tag.shooter': 'TIR',
  'tag.roguelike': 'ROGUELIKE',
  'tag.strategy': 'STRATÉGIE',
  'tag.puzzle': 'PUZZLE',
  'tag.casual': 'CASUAL',
  'tag.reflex': 'RÉFLEXES',
  'tag.logic': 'LOGIQUE',
  'tag.platformer': 'PLATEFORME',
  'tag.rhythm': 'RYTHME',
  'tag.skill': 'ADRESSE',
  'tag.action': 'ACTION',
  'tag.classic': 'CLASSIQUE',
  'tag.sport': 'SPORT',
  'tag.typing': 'FRAPPE',
  'tag.word': 'MOTS',
  'tag.racing': 'COURSE',
  'tag.kids': 'ENFANTS',
  'tag.idle': 'IDLE',
  'tag.party': 'FÊTE',
  'tag.game': 'JEU',
  'chal.play': '▶ Jouer',
  'chal.done': '✓ Terminé',
  'chal.cosmetics': '🎨 Skins',
  'chal.collection': '{owned} / {total} · {pct}%',
  'chal.goodRunBonus': '⚡ Bonus de bonne partie : {count}/{cap} aujourd\'hui · +{per} 🏆 chacune',
  'chal.lifetime': { one: '🏆 {count} Trophée', other: '🏆 {count} Trophées' },
  'cat.trophies': { one: '{count} trophée', other: '{count} trophées' },
  'cat.goodRuns': { one: '{count} bonne partie', other: '{count} bonnes parties' },
  'cat.plays': { one: '{count} partie', other: '{count} parties' },
  'cat.showMore': 'Afficher {n} de plus…',
  'cat.more': 'PLUS',
  'profile.statGames': { one: 'Jeu', other: 'Jeux' },
  'profile.statModes': { one: 'Mode', other: 'Modes' },
  'profile.statPlays': { one: 'Partie', other: 'Parties' },
  'profile.statDays': { one: 'Jour', other: 'Jours' },
  'profile.goodRunsWord': { one: 'bonne partie', other: 'bonnes parties' },
  'profile.playsWord': { one: 'partie', other: 'parties' },
  'cat.sub': 'jeux de navigateur gratuits — sans pub, sans compte, rien à acheter. pour toujours.',
  'cat.searchAria': 'Rechercher des jeux',
  'cat.searchTipsAria': 'Astuces de recherche',
  'cat.searchTip': 'Recherchez par <b>nom du jeu</b>, <b>genre</b> ou <b>étiquette</b> — essayez « arcade », « puzzle », « challenge », ou un titre comme « snake ».',
  'cat.searchPh': 'Rechercher…',
  'cat.filter': 'Filtrer',
  'cat.fhType': 'Type',
  'cat.typeAll': 'Tous',
  'cat.typeSingle': 'Solo',
  'cat.typeMulti': 'Multi',
  'cat.playersTip': 'Combien de joueurs peuvent jouer ensemble sur un seul appareil',
  'cat.fhHighlights': 'À la une',
  'cat.fhGenre': 'Genre',
  'cat.showSoon': 'Afficher les jeux à venir',
  'cat.clearFilters': 'Effacer les filtres',
  'cat.random': '🎲 Aléatoire',
  'cat.randomTitle': 'Jouer à un jeu au hasard (privilégie ceux que vous n\'avez pas essayés)',
  'cat.compact': '▦ Compact',
  'cat.compactTitle': 'Basculer entre tuiles cosy et compactes',
  'cat.share': 'Partager',
  'cat.footTag': 'fait pour le plaisir · des jeux à maîtriser · chaque jeu fonctionne hors ligne · sans compte · sans pub',
  'cat.coffee': '☕ Offrez-moi un café',
  'cat.close': 'Fermer',
  'cat.comingSoon': 'BIENTÔT',
  'cat.play': 'JOUER ▸',
  'cat.favorite': 'Ajouter en favori ',
  'cat.unfavorite': 'Retirer des favoris ',
  'cat.favorites': '★ Favoris',
  'cat.recentlyPlayed': 'Joués récemment',
  'cat.scrollRecent': 'Faire défiler les jeux récents',
  'cat.discoverNew': '✨ Nouveautés',
  'cat.discoverForYou': '💡 Pour vous',
  'cat.scrollDiscover': 'Faire défiler les jeux recommandés',
  'cat.allGames': 'Tous les jeux',
  'cat.comingSoonHead': 'Bientôt',
  'cat.profileBtn': 'Profil',
  'cat.collectionBtn': 'Collection',
  'cat.singlePlayer': 'Solo',
  'cat.multiplayer': 'Multijoueur',
  'cat.noMatch': 'Aucun jeu ne correspond.',
  'cat.copyLink': 'Copier le lien',
  'cat.resetAllConfirm': 'Réinitialiser vos scores, progrès et favoris enregistrés pour TOUS les jeux ? Cette action est irréversible.',
  'drawer.menuTitle': '☰ Komyo Games',
  'drawer.closeMenu': 'Fermer le menu',
  'drawer.myProfile': 'Mon profil',
  'drawer.connect': 'Contact',
  'drawer.feedback': 'Avis',
  'drawer.newsletter': 'Newsletter',
  'drawer.embed': 'Intégrer un jeu',
  'drawer.promote': 'Promouvoir',
  'drawer.about': 'À propos',
  'drawer.aboutKomyo': 'À propos de Komyo Games',
  'drawer.faq': 'FAQ',
  'drawer.changelog': 'Nouveautés',
  'drawer.legal': 'Mentions légales',
  'drawer.settingsGroup': 'Réglages',
  'drawer.settings': 'Réglages',
  'drawer.support': 'Nous soutenir',
  'drawer.coffee': 'Offrez-moi un café',
  'drawer.merch': 'Merch / Boutique',
  'drawer.challenges': '🏆 Défis',
  'drawer.closeChal': 'Fermer les défis',
  'drawer.history': 'Historique',
  'drawer.chalEmpty': 'Terminez un défi et il apparaîtra ici.',
  'drawer.loadMore': 'Charger plus',
  'drawer.cmock': 'Enregistré sur cet appareil — pas de compte, pas de classement. Juste pour le plaisir.',
  'fb.title': '💬 Envoyer un avis',
  'fb.intro': 'Trouvé un bug ou une idée ? Dites-le-moi — aucun compte requis.',
  'fb.name': 'Nom',
  'fb.emailLabel': 'E-mail <span style="text-transform:none;color:var(--faint)">(optionnel)</span>',
  'fb.message': 'Message',
  'fb.msgPh': 'Qu\'est-ce qui a bien marché ? Qu\'est-ce qui a cassé ? Que changeriez-vous ?',
  'fb.cancel': 'Annuler',
  'fb.send': 'Envoyer ▸',
  'fb.sending': 'Envoi…',
  'fb.sent': 'Merci ! Avis envoyé. ✓',
  'nl.title': '📬 S\'abonner',
  'nl.intro': 'Recevez un e-mail quand un nouveau jeu sort ou qu\'un bug est corrigé. Pas de spam, désabonnement à tout moment.',
  'nl.email': 'E-mail',
  'nl.emailPh': 'you@example.com',
  'nl.cancel': 'Annuler',
  'nl.subscribe': 'S\'abonner ▸',
  'nl.subscribing': 'Abonnement…',
  'nl.almost': 'Presque terminé — vérifiez votre boîte mail pour confirmer ✓',
  'cl.title': '🗒️ Nouveautés',
  'cl.searchAria': 'Rechercher dans les nouveautés',
  'cl.searchPh': 'Rechercher des changements…',
  'name.title': '👋 Bienvenue sur Komyo Games',
  'name.intro': 'Choisissez un nom d\'affichage (optionnel) — il apparaît quand vous publiez un score sur notre Discord. Laissez vide pour un <b>surnom aléatoire</b> (comme « Loutre Sournoise »).',
  'name.label': 'Nom d\'affichage',
  'name.ph': 'ex. FoxFan99',
  'name.skip': 'Passer',
  'name.save': 'Enregistrer ▸',
  'name.saved': 'Enregistré ✓',
  'about.title': '🦊 À propos de Komyo Games',
  'about.p1': 'Komyo Games est un petit catalogue de jeux de navigateur autonomes — créé uniquement pour le plaisir.',
  'about.li1': '<b>Gratuit pour toujours.</b> Pas de pub, pas de paiement, pas d\'abonnement — jamais.',
  'about.li2': '<b>Joue partout.</b> Fonctionne sur n\'importe quel navigateur moderne, sur n\'importe quel appareil — téléphone, tablette ou ordinateur. Visitez une fois et chaque jeu fonctionne hors ligne ; ajoutez-le à votre écran d\'accueil pour une icône comme une appli.',
  'about.li3': '<b>Code source disponible.</b> Chaque jeu est une seule page autonome — libre à lire et à modifier pour un usage non commercial. Le seul outil d\'analyse est Google Analytics, et seulement si vous acceptez la bannière de cookies ; refusez et rien n\'est suivi. <a href="https://github.com/N0zz/komyo.online" target="_blank" rel="noopener">Parcourir le code sur GitHub</a>.',
  'about.li4': '<b>À vous, pour toujours.</b> Vos scores et votre progression restent sur votre appareil — rien à créer, aucune inscription.',
  'about.foot': 'Fait pour le plaisir. Si vous aimez, partagez-le avec un ami 💛',
  'promote.title': '🎉 Promouvoir komyo',
  'promote.p1': 'Vous avez un site, un blog, une app ou une chaîne et cherchez du contenu gratuit pour votre audience ? Intégrez komyo — ou n\'importe quel jeu — directement sur votre page. Il fonctionne là, gratuitement, sans compte, sans pub.',
  'promote.p2': 'En retour, <b>nous vous mettons en avant</b> : envoyez-nous votre site/app/blog et nous ajouterons un lien ici, dans cet onglet. Un échange de promotion amical — vous nous envoyez des joueurs, nous vous en envoyons.',
  'promote.li1': '<b>Intégrez-nous.</b> Récupérez un extrait d\'intégration dans <b>Intégrer un jeu</b> (dans ce menu) et placez-le où vous voulez.',
  'promote.li2': '<b>Dites-le-nous.</b> Contactez-nous avec un lien vers l\'endroit où vous avez intégré ou lié komyo, et où vous souhaitez apparaître.',
  'promote.li3': '<b>Soyez mis en avant.</b> Nous ajoutons votre site/app/blog à la liste ci-dessous pour que les joueurs de komyo vous trouvent.',
  'promote.discord': 'Contactez-nous sur Discord',
  'promote.contact': 'Envoyez-nous un message',
  'promote.partnersTitle': '🤝 Partenaires mis en avant',
  'promote.foot': 'Soyez le premier — contactez-nous et nous vous ajouterons ici 💛',
  'promote.empty': 'Pas encore de partenaires — cette place vous attend.',
  'settings.note': 'S\'applique à tous les jeux · enregistré sur cet appareil',
  'settings.sfx': 'Effets sonores',
  'settings.music': 'Musique',
  'settings.discordName': 'Pseudo dans les publications Discord',
  'settings.discordHint': 'Anonyme sauf si activé · uniquement avec le consentement aux cookies',
  'settings.fullscreen': 'Plein écran',
  'settings.fullscreenHint': 'Utile quand la fenêtre d\'une appli installée n\'a pas d\'option plein écran du système',
  'settings.yourData': 'Vos données',
  'settings.yourDataHint': 'Transférez scores et progression vers un autre appareil — rien n\'est envoyé à un serveur',
  'settings.exportImport': 'Exporter / Importer',
  'settings.resetAll': 'Réinitialiser toutes les données',
  'settings.resetHint': 'Efface les scores et la progression de tous les jeux · conserve votre nom, le son et votre consentement',
  'settings.reset': 'Réinitialiser',
  'settings.version': 'Version',
  'settings.updateTitle': 'Récupérer la dernière version du site et de chaque jeu',
  'faq.title': '❓ FAQ',
  'faq.q1': 'Qu\'est-ce qui différencie komyo des autres sites de jeux ?',
  'faq.a1': 'La plupart des sites de jeux gratuits vivent de la pub, des trackers, des pop-ups et du « créez un compte pour sauvegarder votre score ». Pas komyo : <b>pas de pub, pas de compte, pas de pop-up, rien sur vous stocké sur un serveur.</b> Chaque jeu est une seule page propre et autonome, qui se charge vite et fonctionne même hors ligne. Ce n\'est pas le site avec <i>le plus</i> de jeux sur internet — c\'est une petite sélection choisie à la main, chacun vraiment soigné — mais ce sera toujours la façon calme et sans contrainte de simplement jouer. Fait pour le plaisir, pas pour capter votre attention.',
  'faq.q2': 'Ai-je besoin d\'un compte ? Où sont stockées mes données ?',
  'faq.a2': 'Il n\'y a <b>aucun compte</b> — komyo n\'a pas de connexion et pas de serveur qui garde vos affaires. Vos scores, votre progression, vos favoris et vos réglages vivent <b>uniquement dans votre navigateur, sur cet appareil</b>. Les exceptions optionnelles, seulement si vous acceptez la bannière de cookies : Google Analytics, et une publication anonyme de score sur notre Discord public quand vous terminez un jeu (votre pseudo n\'est ajouté que si vous l\'activez dans ⚙️ Réglages). Refusez la bannière et rien sur vous n\'est collecté ni envoyé.',
  'faq.q3': 'Y a-t-il des classements ou des tableaux en ligne ?',
  'faq.a3': 'Non — volontairement. Les classements nécessitent des comptes et un serveur pour stocker le score de tout le monde, et nous ne gardons rien de tout ça (voir ci-dessus). Vous jouez contre <b>votre propre meilleur score</b>. Les scores que vous choisissez de partager vont directement sur notre <a href="https://discord.gg/hz2fhpD5sz" target="_blank" rel="noopener">Discord</a>, pas dans une base de données.',
  'faq.q4': 'Que sont les défis, les trophées et les titres ?',
  'faq.a4': 'Le bouton 🏆 ouvre des <b>défis</b> quotidiens et hebdomadaires — de petits objectifs comme une bonne partie dans un jeu donné. Les terminer rapporte des <b>trophées</b> (un défi quotidien rapporte 10 🏆, un hebdomadaire 50 🏆, et chaque jour vos 3 premières bonnes parties rapportent un bonus de +5 🏆). Les trophées servent à deux choses : votre total <b>cumulé</b> débloque des <b>titres</b> (touchez la pastille des trophées pour voir l\'échelle), et votre solde dépensable achète des skins de <b>collection</b> dans la boutique 🎨 — des skins pour les jeux, choisis dans le menu de chaque jeu. Dépenser ne ralentit jamais l\'échelle des titres. Tout cela reste sur votre appareil, comme le reste.',
  'faq.q5': 'Est-ce vraiment gratuit ? Y a-t-il des pubs ou des paiements ?',
  'faq.a5': 'Gratuit pour toujours — pas de pub, pas de paiement, pas d\'abonnement, rien de « premium ». Si vous voulez participer, il y a un <a href="https://buymeacoffee.com/komyo.online" target="_blank" rel="noopener">Buy me a coffee</a> optionnel, mais chaque jeu est et restera toujours gratuit.',
  'faq.q6': 'Dois-je installer quelque chose ? Ça fonctionne hors ligne ?',
  'faq.a6': 'Aucune installation nécessaire — ça fonctionne dans n\'importe quel navigateur moderne. Vous pouvez éventuellement « Ajouter à l\'écran d\'accueil » pour une icône comme une appli. Et après une visite en ligne de la page d\'accueil, <b>chaque jeu fonctionne hors ligne</b> — tout le catalogue s\'enregistre discrètement pour plus tard, et continue donc de fonctionner en avion ou sans signal.',
  'faq.q7': 'Est-ce sûr pour les enfants ?',
  'faq.a7': 'Oui — pas de pub, pas de chat, pas de paiement, pas d\'inscription, et rien sur votre enfant n\'est stocké sur un serveur. Juste des jeux.',
  'faq.q8': 'Comment garder ma progression ou la transférer sur un autre appareil ?',
  'faq.a8': 'Votre progression est enregistrée dans ce navigateur, sur cet appareil — donc effacer les données de votre navigateur l\'efface aussi. Utilisez <b>Exporter / Importer</b> dans ⚙️ Réglages pour la sauvegarder ou la transférer entre téléphone et ordinateur. Il n\'y a pas de synchronisation cloud, car (voir ci-dessus) il n\'y a pas de comptes.',
  'legal.title': '⚖️ Mentions légales',
  'legal.lang.label': 'Langue',
  'legal.qLicense': 'Licence',
  'legal.aLicense': 'Komyo Games est à <b>code source disponible</b> sous licence <b>PolyForm Noncommercial 1.0.0</b> — libre à lire, utiliser et modifier pour tout usage <b>non commercial</b> ; l\'usage commercial n\'est pas autorisé. <a href="https://github.com/N0zz/komyo.online/blob/main/LICENSE" target="_blank" rel="noopener">Lire la licence complète</a>.',
  'legal.qPrivacy': 'Confidentialité',
  'legal.aPrivacy': 'Aucun compte, aucun serveur ne stocke vos données — vos données de jeu restent sur votre appareil. Le seul suivi tiers est Google Analytics, chargé uniquement si vous acceptez les cookies. <a href="privacy.html" target="_blank" rel="noopener">Lire la politique de confidentialité complète</a>.',
  'legal.qTerms': 'Conditions',
  'legal.aTerms': 'Gratuit, sans compte, fourni tel quel pour le plaisir. Jouez fair-play et gardez respectueux tout nom d\'affichage que vous partagez. <a href="tos.html" target="_blank" rel="noopener">Lire les conditions d\'utilisation complètes</a>.',
  'data.title': '⇄ Exporter et importer des données',
  'data.intro': 'Vos scores, votre progression et vos réglages vivent uniquement dans ce navigateur. Copiez ce code pour les sauvegarder ou les transférer vers un autre appareil, puis collez-le là-bas et importez. <b>Importer remplace</b> les données de cet appareil.',
  'data.export': 'Exporter',
  'data.exportAria': 'Votre code de sauvegarde',
  'data.copy': 'Copier',
  'data.download': 'Télécharger',
  'data.import': 'Importer',
  'data.importAria': 'Coller le code de sauvegarde',
  'data.importPh': 'Collez un code de sauvegarde ici…',
  'data.importBtn': 'Importer et recharger',
  'data.copied': 'Copié !',
  'data.invalid': 'Ça ne ressemble pas à un code de sauvegarde komyo valide.',
  'data.imported': 'Importé ! Rechargement…',
  'cookie.text': 'Nous utilisons Google Analytics pour voir quels jeux sont les plus joués — pas de pub, pas de vente de données. <a href="privacy.html">Politique de confidentialité</a>.',
  'cookie.decline': 'Refuser',
  'cookie.accept': 'Accepter',
  'profile.trophiesEarned': 'TROPHÉES GAGNÉS',
  'profile.noScores': 'Pas encore de scores — jouez à quelques jeux et vos meilleurs scores, favoris et statistiques apparaîtront ici, triés par temps de jeu. Tout reste sur cet appareil.',
  'profile.yourGames': 'Vos jeux',
  'profile.namePrompt': 'Nom d\'affichage',
  'profile.share': '📷 Partager mon profil',
  'profile.rendering': 'Génération…',
  'profile.renderErr': 'Impossible de générer',
  'profile.cardGames': 'Jeux',
  'profile.cardModes': 'Modes',
  'profile.cardPlays': 'Parties',
  'profile.cardDays': 'Jours',
  'form.netErr': 'Erreur réseau — veuillez réessayer.',
  'meta.title': 'Komyo — un arcade de navigateur gratuit · fonctionne hors ligne, sans compte',
  'meta.desc': 'Un petit arcade de navigateur soigneusement choisi, avec des jeux gratuits et soignés — Asteroids, tower defense, Sudoku, un tireur de bulles et plus encore. Débloque des cosmétiques et des titres, relève les défis quotidiens. Fonctionne hors ligne, sans compte, sans pub — du plaisir pour tous les âges.',
  'meta.ogTitle': 'Komyo — un arcade de navigateur gratuit',
  'meta.ogDesc': 'Un arcade de navigateur soigneusement choisi, avec des jeux gratuits et soignés — débloque des cosmétiques et des titres, relève les défis quotidiens. Fonctionne hors ligne, sans compte, sans pub.',
  'meta.ogAlt': 'Komyo — un arcade de navigateur gratuit',
  'meta.twTitle': 'Komyo — un arcade de navigateur gratuit',
  'meta.twDesc': 'Un arcade de navigateur soigneusement choisi, avec des jeux gratuits et soignés. Fonctionne hors ligne, sans compte, sans pub — du plaisir pour tous les âges.',
  'legal.privacy.metaTitle': 'Politique de confidentialité — Komyo Games',
  'legal.privacy.metaDesc': 'Politique de confidentialité de Komyo Games : aucun compte, aucun serveur ne stocke vos données ; vos données de jeu restent sur votre appareil ; les analyses et les publications anonymes de scores sur Discord n\'ont lieu que si vous acceptez les cookies.',
  'legal.privacy.h1': 'Politique de confidentialité',
  'legal.privacy.updated': 'Komyo Games · dernière mise à jour le 2 juillet 2026',
  'legal.privacy.tldr': '<b>En bref :</b> il n\'y a aucun compte et aucun serveur Komyo qui stocke quoi que ce soit sur vous. Vos données de jeu restent dans votre navigateur, sur votre appareil. Rien n\'en sort, sauf si vous appuyez sur <b>Accepter</b> sur la bannière de cookies — cela active <b>Google Analytics</b> et les <b>publications anonymes de scores</b> sur notre Discord public (votre pseudo uniquement avec une option supplémentaire activée dans les Réglages). Refusez et rien sur vous n\'est collecté ni envoyé.',
  'legal.privacy.note': 'Ceci est un résumé en langage simple de la façon dont Komyo Games traite les données. Il est écrit pour être honnête et lisible plutôt qu\'un jargon juridique exhaustif.',
  'legal.privacy.s1h': '1. Qui nous sommes et comment le site est hébergé',
  'legal.privacy.s1p': 'Komyo Games (<a href="https://komyo.online">komyo.online</a>) est un petit catalogue indépendant de jeux de navigateur autonomes. Il n\'y a ni connexion ni compte, et nous ne gérons pas de base de données ou de serveur qui stocke vos informations personnelles. Le site est servi par <b>GitHub Pages</b> et son réseau de diffusion de contenu (<b>Fastly</b>) ; comme tout hébergeur web, ils traitent des données techniques de base de la requête — comme votre adresse IP — afin de vous délivrer les pages. C\'est un hébergement standard, pas des données que Komyo collecte ou conserve.',
  'legal.privacy.s2h': '2. Ce qui est stocké sur votre appareil',
  'legal.privacy.s2p': 'Vos scores, votre progression, vos favoris, votre nom d\'affichage et vos réglages sont enregistrés dans le <b>stockage local</b> de votre navigateur, uniquement sur votre appareil. Nous ne recevons ni ne voyons jamais ces données. Elles restent jusqu\'à ce que vous effaciez les données de votre navigateur, utilisiez <b>Réinitialiser toutes les données</b> dans ⚙️ Réglages, ou les remplaciez via <b>Exporter / Importer</b> dans ⚙️ Réglages.',
  'legal.privacy.s3h': '3. Analyses (Google Analytics 4)',
  'legal.privacy.s3p1': 'Nous utilisons Google Analytics pour comprendre quels jeux sont populaires et comment le site est utilisé. Il ne se charge <b>qu\'après avoir accepté la bannière de cookies</b> — si vous refusez, aucun script d\'analyse ne s\'exécute et aucun cookie d\'analyse n\'est déposé.',
  'legal.privacy.s3p2': 'Lorsqu\'il est activé, Google Analytics collecte des données d\'utilisation standard (pages consultées, localisation approximative à partir de votre adresse IP, type d\'appareil et de navigateur, et similaire) et les traite sur les serveurs de Google en tant que notre sous-traitant de données. Nous ne l\'utilisons qu\'en agrégat, nous ne vendons pas de données, et il n\'y a pas de pub. Voir la <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">politique de confidentialité de Google</a>. Vous pouvez refuser en déclinant la bannière, en effaçant les cookies, en utilisant les contrôles de confidentialité de votre navigateur, ou le <a href="https://tools.google.com/dlpage/gaoptout" target="_blank" rel="noopener">module de désactivation de Google Analytics</a>.',
  'legal.privacy.s3p3': 'Au-delà des pages vues, nous envoyons aussi quelques événements <b>anonymes et agrégés</b> pour nous permettre d\'améliorer le site — par exemple : si le son ou la musique est activé ou désactivé, quels défis quotidiens/hebdomadaires sont affichés et terminés, quels jeux et modes sont joués, quels cosmétiques sont achetés avec des trophées (pour ajuster les prix), et quelles fonctionnalités sont ouvertes (comme le profil, les nouveautés, la FAQ, la newsletter, le formulaire d\'avis, ou l\'outil d\'export/import). Ce sont uniquement des <b>compteurs</b> — ils ne sont liés à aucun compte ni profil personnel (il n\'y a pas de comptes), et ils ne sont envoyés que si vous avez accepté la bannière de cookies. Ils nous aident à répondre à des questions comme « la musique doit-elle être activée par défaut ? » ou « un défi est-il trop difficile ? » sans rien collecter qui vous identifie.',
  'legal.privacy.s4h': '4. Cookies',
  'legal.privacy.s4p': 'Les seuls cookies sont ceux déposés par Google Analytics, et seulement après votre consentement. Votre choix de consentement lui-même est mémorisé dans le stockage local (pas un cookie) afin que nous ne redemandions pas à chaque visite.',
  'legal.privacy.s5h': '5. Scores partagés sur Discord',
  'legal.privacy.s5p1': 'Quand vous terminez un jeu, votre score (une petite image de carte de score avec le nom du jeu et les points) peut être publié sur notre <b>Discord public Komyo Games</b> afin que les joueurs voient les parties récentes. Ceci est soumis à consentement en deux étapes :',
  'legal.privacy.s5li1': '<b>Si vous n\'avez pas accepté la bannière de cookies, rien n\'est envoyé du tout.</b> La publication est une requête de votre navigateur vers les serveurs de Discord — qui, comme toute requête web, expose votre adresse IP à Discord — donc nous ne la faisons pas sans votre consentement.',
  'legal.privacy.s5li2': 'Avec le consentement aux cookies, les publications sont <b>anonymes</b> : la carte indique « anonyme » et ne contient rien sur vous au-delà du score lui-même.',
  'legal.privacy.s5li3': 'Le pseudo de votre appareil n\'est ajouté <b>que si vous activez en plus</b> « Afficher mon pseudo dans les publications de score Discord » dans ⚙️ Réglages. Ce pseudo est aléatoire et ludique (par ex. « Loutre Sournoise ») attribué sur votre appareil — <b>pas votre vrai nom ou identité</b> — sauf si vous en avez saisi un vous-même dans le menu (✏️) ; nous ne demandons jamais votre vrai nom.',
  'legal.privacy.s5p2': 'Les publications sont limitées à environ une par minute par joueur. Voir la <a href="https://discord.com/privacy" target="_blank" rel="noopener">politique de confidentialité de Discord</a> pour savoir comment Discord traite les données de son côté.',
  'legal.privacy.s6h': '6. Ce que vous choisissez de nous envoyer',
  'legal.privacy.s6li1': '<b>Newsletter :</b> si vous vous abonnez, l\'adresse e-mail que vous saisissez est envoyée à notre prestataire d\'e-mailing (<a href="https://kit.com" target="_blank" rel="noopener">Kit</a>) pour vous envoyer des mises à jour occasionnelles. Chaque e-mail comporte un lien de désabonnement, et nous n\'utilisons votre adresse pour rien d\'autre.',
  'legal.privacy.s6li2': '<b>Avis :</b> le formulaire d\'avis est géré par <a href="https://web3forms.com" target="_blank" rel="noopener">Web3Forms</a>, qui transmet votre message (et tout détail de contact que vous incluez) à notre boîte mail afin que nous puissions le lire et y répondre. Nous l\'utilisons uniquement pour répondre.',
  'legal.privacy.s7h': '7. Autres services et liens',
  'legal.privacy.s7p': 'Le site pointe vers des services qui ont leurs propres politiques de confidentialité et que nous ne contrôlons pas — notamment <a href="https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement" target="_blank" rel="noopener">GitHub</a> (hébergement et code source), Discord, et Buy Me a Coffee (dons optionnels).',
  'legal.privacy.s8h': '8. Où vos données sont traitées, et pour combien de temps',
  'legal.privacy.s8p': 'Les prestataires ci-dessus (Google, Kit, Web3Forms, Discord, GitHub) sont basés aux <b>États-Unis</b>, donc quand une fonctionnalité en utilise un, vos données peuvent y être traitées, selon leurs conditions standard de protection des données. Les analyses ne sont conservées que pour une durée limitée et en agrégat ; les e-mails de newsletter sont conservés jusqu\'à votre désabonnement ; les avis sont conservés le temps nécessaire pour y répondre ; et les données sur votre appareil restent jusqu\'à ce que vous les effaciez.',
  'legal.privacy.s9h': '9. Enfants',
  'legal.privacy.s9p': 'Certains jeux Komyo sont conçus pour les jeunes joueurs, et le site est adapté aux familles : pas de pub, pas de chat, pas de paiement, et pas d\'inscription. Nous ne collectons pas sciemment d\'informations personnelles sur des enfants. Comme les analyses sont optionnelles, un parent peut simplement <b>refuser la bannière de cookies</b> pour qu\'aucune analyse ne s\'exécute. Si vous pensez qu\'un enfant nous a envoyé des informations personnelles (par exemple, un e-mail à la newsletter), contactez-nous et nous les supprimerons.',
  'legal.privacy.s10h': '10. Vos choix',
  'legal.privacy.s10p': 'Vous pouvez refuser les analyses sur la bannière de cookies, effacer ou réinitialiser vos données sur l\'appareil à tout moment, les exporter pour votre propre sauvegarde, et vous désabonner de la newsletter quand vous le souhaitez. Si vous êtes dans une région avec des lois de protection des données (comme le RGPD ou le CCPA), l\'effet pratique est le même : nous ne détenons aucune donnée personnelle sur vous, ni en compte ni côté serveur, et les analyses sont opt-in.',
  'legal.privacy.s11h': '11. Contact',
  'legal.privacy.s11p': 'Des questions ? Utilisez l\'option <b>Avis</b> dans le menu, envoyez un e-mail à <a href="mailto:news@komyo.online">news@komyo.online</a>, ou ouvrez un ticket sur <a href="https://github.com/N0zz/komyo.online" target="_blank" rel="noopener">GitHub</a>.',
  'legal.privacy.s12h': '12. Modifications',
  'legal.privacy.s12p': 'Nous pouvons mettre à jour cette politique à mesure que le site évolue ; la date en haut reflète la dernière version.',
  'legal.privacy.back': '‹ Retour aux jeux',
  'legal.privacy.footer': 'Komyo Games — fait pour le plaisir. Pas de pub · pas de paiement · fonctionne hors ligne.',
  'legal.tos.metaTitle': 'Conditions d\'utilisation — Komyo Games',
  'legal.tos.metaDesc': 'Conditions d\'utilisation de Komyo Games : un site de jeux de navigateur gratuit, sans compte, fourni tel quel. Conditions en langage simple couvrant l\'usage acceptable, les noms d\'affichage, et les clauses de non-responsabilité habituelles.',
  'legal.tos.h1': 'Conditions d\'utilisation',
  'legal.tos.updated': 'Komyo Games · dernière mise à jour le 1er juillet 2026',
  'legal.tos.tldr': '<b>En bref :</b> Komyo Games est une collection gratuite de jeux de navigateur, sans compte et sans paiement. Jouez fair-play, soyez bienveillant dans tout ce que vous partagez, et sachez que les jeux sont fournis <b>tels quels</b> pour le plaisir. Si vous n\'acceptez pas ces conditions, merci de ne pas utiliser le site.',
  'legal.tos.note': 'Ceci est un résumé en langage simple des conditions d\'utilisation de Komyo Games. Il est écrit pour être honnête et lisible plutôt qu\'un jargon juridique dense.',
  'legal.tos.s1h': '1. Utilisation du site',
  'legal.tos.s1p': 'Komyo Games (<a href="https://komyo.online">komyo.online</a>) est un petit catalogue indépendant de jeux de navigateur autonomes, gratuits, sans compte requis. En utilisant le site, vous acceptez ces conditions. Elles peuvent évoluer avec le site (voir §9) ; continuer à utiliser le site après un changement signifie que vous acceptez les conditions mises à jour.',
  'legal.tos.s2h': '2. C\'est gratuit — pas de compte, pas de paiement',
  'legal.tos.s2p': 'Il n\'y a ni connexion, ni achat, ni pub. Vos scores, votre progression et vos réglages vivent dans votre navigateur, sur votre appareil (voir la <a href="privacy.html">politique de confidentialité</a>). Les pourboires optionnels via Buy Me a Coffee sont exactement cela — des dons optionnels, pas l\'achat de quoi que ce soit.',
  'legal.tos.s3h': '3. Usage acceptable',
  'legal.tos.s3p': 'Merci d\'utiliser Komyo Games pour un usage personnel et non commercial. Ne pas :',
  'legal.tos.s3li1': 'attaquer, perturber, surcharger, ou tenter de casser le site ou son hébergement ;',
  'legal.tos.s3li2': 'tenter d\'accéder à des parties du service qui ne vous sont pas destinées, ou perturber l\'expérience des autres joueurs ;',
  'legal.tos.s3li3': 'extraire ou réutiliser le contenu du site de façons non autorisées par ces conditions (voir §5) ;',
  'legal.tos.s3li4': 'utiliser le site pour enfreindre la loi.',
  'legal.tos.s4h': '4. Noms d\'affichage et contenus partagés',
  'legal.tos.s4p': 'Si vous définissez un nom d\'affichage, il peut être publié publiquement (par exemple, avec un score sur notre <a href="https://discord.com/privacy" target="_blank" rel="noopener">Discord</a> — ceci est optionnel ; l\'anonymat est activé par défaut). Gardez tout nom que vous choisissez respectueux : pas d\'usurpation d\'identité, de harcèlement, de haine, ou de contenu illégal ou obscène. Nous pouvons masquer ou supprimer tout ce qui enfreint cette règle, et il n\'y a aucune attente de confidentialité pour ce que vous choisissez de publier publiquement.',
  'legal.tos.s5h': '5. Notre contenu',
  'legal.tos.s5p': 'Les jeux, le code, les illustrations et la marque de Komyo Games nous appartiennent (ou sont utilisés sous licence). Vous êtes libre de jouer et d\'intégrer un jeu via la fonctionnalité <b>Intégrer</b> du site, mais merci de ne pas copier, vendre, ou vous approprier les jeux ou la marque. Si vous souhaitez faire autre chose que jouer ou intégrer, demandez-nous simplement.',
  'legal.tos.s6h': '6. Services tiers',
  'legal.tos.s6p': 'Certaines fonctionnalités reposent sur des tiers avec leurs propres conditions — hébergement (<b>GitHub Pages</b>), analyses (<b>Google Analytics</b>, uniquement si vous acceptez les cookies), notre newsletter (<b>Kit</b>), le formulaire d\'avis (<b>Web3Forms</b>), et <b>Discord</b>. Votre utilisation de ces fonctionnalités est également soumise à leurs propres conditions et politiques de confidentialité, que nous ne contrôlons pas.',
  'legal.tos.s7h': '7. Aucune garantie',
  'legal.tos.s7p': 'Komyo Games est fourni <b>« tel quel » et « selon disponibilité »</b>, sans garantie d\'aucune sorte. Nous faisons en sorte que ça reste amusant et fonctionnel, mais nous ne promettons pas une disponibilité constante, l\'absence d\'erreurs, ou que la progression sauvegardée ne puisse jamais être perdue (les navigateurs peuvent effacer le stockage local). Jouez en conséquence, et utilisez <b>Exporter les données</b> si une partie compte pour vous.',
  'legal.tos.s8h': '8. Limitation de responsabilité',
  'legal.tos.s8p': 'Dans toute la mesure permise par la loi, Komyo Games et son créateur ne sont pas responsables de toute perte indirecte ou accessoire résultant de l\'utilisation (ou de l\'impossibilité d\'utiliser) le site — c\'est un site de jeux gratuit fait pour le plaisir. Rien dans ces conditions ne limite les droits que vous avez et qui ne peuvent être limités selon la loi qui vous est applicable.',
  'legal.tos.s9h': '9. Enfants',
  'legal.tos.s9p': 'Komyo Games est adapté aux familles : pas de pub, pas de chat, pas de paiement, pas d\'inscription. Certains jeux sont conçus pour les jeunes joueurs. Si vous êtes parent ou tuteur, vous pouvez refuser la bannière de cookies pour qu\'aucune analyse ne s\'exécute. Voir la <a href="privacy.html">politique de confidentialité</a> pour savoir comment (le peu de) données sont traitées.',
  'legal.tos.s10h': '10. Modifications',
  'legal.tos.s10p': 'Nous pouvons mettre à jour ces conditions à mesure que le site grandit ; la date en haut reflète la dernière version.',
  'legal.tos.s11h': '11. Contact',
  'legal.tos.s11p': 'Des questions ? Utilisez l\'option <b>Avis</b> dans le menu, envoyez un e-mail à <a href="mailto:news@komyo.online">news@komyo.online</a>, ou ouvrez un ticket sur <a href="https://github.com/N0zz/komyo.online" target="_blank" rel="noopener">GitHub</a>.',
  'legal.tos.back': '‹ Retour aux jeux',
  'legal.tos.footer': 'Komyo Games — fait pour le plaisir. Pas de pub · pas de paiement · fonctionne hors ligne.',
  'cat.cozy': '▤ Cosy',
  'cat.install': '📱 Installer',
  'cat.installed': '✓ Installé',
  'cat.embedAll': 'Toute la salle de jeux (tous les jeux)',
  'profile.colMode': 'Mode',
  'profile.colBest': 'Meilleur',
  'profile.titleWord': 'Titre',
  'profile.titleLadder': 'Titre · échelle ›',
  'profile.since': 'Depuis',
  'profile.nameEditAria': 'Changer votre nom d’affichage',
  'profile.nameEditHint': 'Cliquez pour changer votre nom',
  'profile.openStore': 'Ouvrir la Collection',
  'profile.goodRunsHint': 'Parties ayant dépassé le seuil du jeu',
  'cl.noMatch': 'Aucun changement ne correspond.',
  'cat.challengesBtn': 'DÉFIS',
  'cat.openChallenges': 'Ouvrir les défis',
  'game.bubbles.mode.arcade': 'Arcade',
  'game.bubbles.mode.endless': 'Sans fin',
  'game.bubbles.mode.zen': 'Zen',
  'game.bubbles.hintArcade': 'Éclate des groupes de 3+ ; vide le plateau pour avancer.',
  'game.bubbles.hintEndless': 'Les rangées avancent sans fin — survis et marque des points.',
  'game.bubbles.hintZen': 'Détends-toi et éclate. Pas d\'échec, pas de descente.',
  'game.bubbles.gameName': 'Bulles',
  'game.bubbles.timedShare': ' (chronométré)',
  'game.bubbles.shareLevel': 'niveau {level}',
  'game.bubbles.title': 'Bulles',
  'game.bubbles.controlsTitle': 'Bulles — Commandes',
  'game.bubbles.modeArcade': 'ARCADE',
  'game.bubbles.mechArcade1': 'Vide pour avancer',
  'game.bubbles.mechArcade2': 'La grille descend',
  'game.bubbles.modeEndless': 'SANS FIN',
  'game.bubbles.mechEndless1': 'Sans fin',
  'game.bubbles.mechEndless2': 'Les rangées avancent',
  'game.bubbles.modeZen': 'ZEN',
  'game.bubbles.mechZen1': 'Sans échec',
  'game.bubbles.mechZen2': 'Sans descente',
  'game.bubbles.timedToggle': 'Descente chronométrée',
  'game.bubbles.timedCaption': '— descend au chrono, pas à chaque tir',
  'game.bubbles.timedSuffix': ' · chronométré',
  'game.bubbles.cleared': 'TERMINÉ ! ✨',
  'game.bubbles.gameOver': 'FIN DE PARTIE',
  'game.bubbles.wonLine': 'Niveau {level} · tous les niveaux terminés',
  'game.bubbles.reachedLine': 'Niveau {level} atteint',
  'game.bubbles.pauseLine': 'Score {score} · Niveau {level}',
  'game.bubbles.hudScore': 'Score',
  'game.bubbles.hudBest': 'Meilleur',
  'game.bubbles.hudLevel': 'Niveau',
  'game.bubbles.hudMode': 'Mode',
  'game.bubbles.charge': 'CHARGE',
  'game.bubbles.specialReady': '⚡ SPÉCIAL PRÊT',
  'game.bubbles.dropFloat': '+{pts} CHUTE !',
  'game.bubbles.boomFloat': 'BOUM +{pts}',
  'game.bubbles.boardCleared': 'PLATEAU VIDÉ !',
  'game.bubbles.levelUp': 'NIVEAU {level} !',
  'game.bubbles.next': 'SUIVANT',
  'game.bubbles.ctrlMove': 'Déplacer',
  'game.bubbles.ctrlAim': 'Viser',
  'game.bubbles.ctrlShoot': 'Tir',
  'game.bubbles.ctrlAimKeys': '← →  ·  A D',
  'game.bubbles.ctrlMoveDrag': 'Déplacer / glisser',
  'game.asteroids.classicCard': 'CLASSIQUE',
  'game.asteroids.classicPlusCard': 'CLASSIQUE+',
  'game.asteroids.complete': 'TERMINÉ',
  'game.asteroids.controlsTitle': 'Astéroïdes — Commandes',
  'game.asteroids.fire': 'FEU',
  'game.asteroids.fireButton': 'Bouton FEU',
  'game.asteroids.gameName': 'Astéroïdes',
  'game.asteroids.gameOver': 'FIN DE PARTIE',
  'game.asteroids.goalChip': 'Objectif {pts}',
  'game.asteroids.hintClassic': 'Classique — sans fin ; vise le meilleur score possible.',
  'game.asteroids.hintEnh': 'Classique+ — sans fin ; marque des points pour améliorer ton arme.',
  'game.asteroids.hintSpeedrun': 'Speedrun — atteins {pts} points le plus vite possible.',
  'game.asteroids.keySpace': 'Espace',
  'game.asteroids.keysRotate': '← →  ·  A D',
  'game.asteroids.keysThrust': '↑  ·  W',
  'game.asteroids.levelExtra': 'niveau {level}',
  'game.asteroids.lifeIcon': '▲ ',
  'game.asteroids.mechEndless': 'Sans fin',
  'game.asteroids.mechOneWeapon': 'Une arme',
  'game.asteroids.mechScreenWraps': 'Écran en boucle',
  'game.asteroids.mechWeaponTiers': 'Paliers d\'arme',
  'game.asteroids.modeClassic': 'Classique',
  'game.asteroids.modeClassicPlus': 'Classique+',
  'game.asteroids.modeSpeedrun': 'Speedrun',
  'game.asteroids.pauseIcon': 'II',
  'game.asteroids.play': 'JOUER ▶',
  'game.asteroids.pointsReached': '{pts} points atteints',
  'game.asteroids.reachedPts': 'atteint {pts} pts',
  'game.asteroids.reachedWave': 'Vague {level} atteinte',
  'game.asteroids.rotate': 'Rotation',
  'game.asteroids.runFailedAt': 'partie terminée à {time}',
  'game.asteroids.scoreLabel': 'SCORE',
  'game.asteroids.shoot': 'Tir',
  'game.asteroids.speedrunCaption': '— course jusqu\'à {pts} pts contre le chrono',
  'game.asteroids.speedrunToggle': 'SPEEDRUN',
  'game.asteroids.srFailedLine': 'Speedrun — partie terminée à {time}',
  'game.asteroids.steerThrust': 'Direction et poussée',
  'game.asteroids.thrust': 'Poussée',
  'game.asteroids.timerGoal': 'OBJECTIF : {pts} PTS',
  'game.asteroids.title': 'Astéroïdes',
  'game.asteroids.touchDrag': 'Glisse sur la moitié gauche',
  'game.asteroids.upgradesTag': 'AMÉLIORATIONS',
  'game.asteroids.verbCleared': 'J\'ai terminé',
  'game.asteroids.verbReached': 'J\'ai atteint',
  'game.asteroids.waveSuffix': ' · Vague {level}',
  'game.asteroids.weapon1': 'ARME I',
  'game.asteroids.weapon2': 'ARME II — DOUBLE',
  'game.asteroids.weapon3': 'ARME III — DISPERSION',
  'game.asteroids.weaponUpgraded': 'ARME AMÉLIORÉE',
  'game.asteroids-plus.buyCost': 'ACHETER · ◈ {cost}',
  'game.asteroids-plus.chooseAnUpgrade': 'Choisir une amélioration',
  'game.asteroids-plus.chooseUpgrade': 'CHOISIR UNE AMÉLIORATION',
  'game.asteroids-plus.continue': 'CONTINUER ▶',
  'game.asteroids-plus.cost': '◈ {cost}',
  'game.asteroids-plus.creditsBanner': '◈ {credits} CRÉDITS',
  'game.asteroids-plus.drydock': 'CALE SÈCHE',
  'game.asteroids-plus.expW': ' · {w}v',
  'game.asteroids-plus.extraCleared': 'vague {wave} terminée',
  'game.asteroids-plus.extraFailed': 'partie terminée à {time}',
  'game.asteroids-plus.extraVictory': 'VICTOIRE · les {waves} vagues',
  'game.asteroids-plus.fire': 'FEU',
  'game.asteroids-plus.flashFinalStand': '⚠ DERNIER COMBAT — DOUBLE BOSS',
  'game.asteroids-plus.flashFrenzy': 'FRÉNÉSIE !',
  'game.asteroids-plus.flashPulse': 'IMPULSION',
  'game.asteroids-plus.flashRepair': 'RÉPARATION +1 PV',
  'game.asteroids-plus.flashSecondBoss': '⚠ DEUXIÈME BOSS',
  'game.asteroids-plus.flashShield': 'BOUCLIER RESTAURÉ',
  'game.asteroids-plus.flashWave': 'VAGUE {wave}',
  'game.asteroids-plus.flashWaveBoss': '⚠ VAGUE {wave} — BOSS',
  'game.asteroids-plus.gameOver': 'FIN DE PARTIE',
  'game.asteroids-plus.goalChip': 'Terminer V{wave}',
  'game.asteroids-plus.hintFallback': 'Choisis comment tu te renforces.',
  'game.asteroids-plus.hintLevelup': 'Montée de niveau — récolte des gemmes, monte de niveau, choisis des améliorations.',
  'game.asteroids-plus.hintMilestones': 'Jalons — franchis des paliers de score pour choisir des améliorations.',
  'game.asteroids-plus.hintShop': 'Boutique de vague — gagne des crédits et dépense-les entre les vagues.',
  'game.asteroids-plus.hintSpeedrun': 'Speedrun — termine la vague {wave} le plus vite possible.',
  'game.asteroids-plus.hudCredits': '◈ {credits}',
  'game.asteroids-plus.hudGoal': 'OBJECTIF : TERMINER LA VAGUE {wave}',
  'game.asteroids-plus.hudLevel': 'NIV {level}',
  'game.asteroids-plus.hudScore': 'SCORE',
  'game.asteroids-plus.hudWave': 'VAGUE {wave} · {left} restants',
  'game.asteroids-plus.lapsed': 'EXPIRÉ : {names}',
  'game.asteroids-plus.lineFailed': 'Speedrun — partie terminée à {time}',
  'game.asteroids-plus.lineScore': 'score {score}',
  'game.asteroids-plus.lvOf': 'NIV {lv}/{max}',
  'game.asteroids-plus.lvUp': 'NIV {from} → {to}',
  'game.asteroids-plus.max': 'MAX',
  'game.asteroids-plus.maxed': 'MAX',
  'game.asteroids-plus.mechAutoOffer': 'Choix proposés automatiquement',
  'game.asteroids-plus.mechBuyBetween': 'Achète entre les vagues',
  'game.asteroids-plus.mechCollectGems': 'Récolte des gemmes XP',
  'game.asteroids-plus.mechEarnCredits': 'Gagne des crédits',
  'game.asteroids-plus.mechPickUpgrades': 'Choisis des améliorations',
  'game.asteroids-plus.mechScoreThresholds': 'Paliers de score',
  'game.asteroids-plus.menuTitle': 'ASTÉROÏDES+',
  'game.asteroids-plus.modeLevelup': 'MONTÉE',
  'game.asteroids-plus.modeMilestones': 'JALONS',
  'game.asteroids-plus.modeShop': 'BOUTIQUE',
  'game.asteroids-plus.modeSpeedrun': 'Speedrun',
  'game.asteroids-plus.new': 'NOUVEAU',
  'game.asteroids-plus.pauseGlyph': 'II',
  'game.asteroids-plus.pauseLine': 'Vague {wave} · Score {score}',
  'game.asteroids-plus.pickerLevel': 'NIVEAU {level}',
  'game.asteroids-plus.picksPending': ' · {count} en attente',
  'game.asteroids-plus.play': 'JOUER ▶',
  'game.asteroids-plus.reachedWave': 'Vague {wave} atteinte',
  'game.asteroids-plus.renewShort': 'RENOUVELER {w}v',
  'game.asteroids-plus.renewW': 'RENOUVELER · {w}v',
  'game.asteroids-plus.shareModeLevelup': 'Montée de niveau',
  'game.asteroids-plus.shareModeMilestones': 'Jalons',
  'game.asteroids-plus.shareModeRoguelite': 'Roguelite',
  'game.asteroids-plus.shareModeShop': 'Boutique de vague',
  'game.asteroids-plus.shopHint': 'Vague {wave} terminée — achète des améliorations, puis continue.',
  'game.asteroids-plus.shopPreview': 'BOUTIQUE',
  'game.asteroids-plus.speedrun': 'SPEEDRUN',
  'game.asteroids-plus.speedrunCaption': '— termine la vague {wave} (premier boss) contre le chrono',
  'game.asteroids-plus.splashControls': '<strong>&larr;&rarr;</strong> / <strong>A&nbsp;D</strong> rotation &middot; <strong>&uarr;</strong> / <strong>W</strong> poussée &middot; <strong>ESPACE</strong> tir &middot; <strong>ÉCHAP</strong> pause',
  'game.asteroids-plus.splashHint': 'Détruis les ennemis, récolte des gemmes XP, monte de niveau et choisis des améliorations. Survis aux vagues.',
  'game.asteroids-plus.splashStart': 'appuie sur ENTRÉE ou ESPACE pour commencer',
  'game.asteroids-plus.splashSubtitle': 'ROGUELITE — MONTÉE PAR GEMMES',
  'game.asteroids-plus.splashTitle': 'ASTÉROÏDES',
  'game.asteroids-plus.splashTouch': '📱 Téléphone : glisse sur le côté gauche pour diriger et pousser &middot; touche FEU pour tirer',
  'game.asteroids-plus.tagCredits': 'CRÉDITS',
  'game.asteroids-plus.tagGems': 'GEMMES',
  'game.asteroids-plus.takeLabel': 'PRENDRE {label} ▶',
  'game.asteroids-plus.title': 'Astéroïdes+',
  'game.asteroids-plus.verbBeat': 'J\'ai vaincu',
  'game.asteroids-plus.verbCleared': 'J\'ai terminé',
  'game.asteroids-plus.verbReached': 'J\'ai atteint',
  'game.asteroids-plus.verbScored': 'J\'ai marqué',
  'game.asteroids-plus.victory': 'VICTOIRE',
  'game.asteroids-plus.victoryLine': 'Tu as terminé les {waves} vagues et vaincu le duo de boss final.',
  'game.asteroids-plus.waveClearedTitle': 'VAGUE {wave} TERMINÉE',
  'game.asteroids-plus.waveN': 'vague {wave}',
  'game.asteroids-plus.up.rapid.name': 'Tir rapide',
  'game.asteroids-plus.up.rapid.desc': 'Tire plus vite (-temps de recharge).',
  'game.asteroids-plus.up.spread.name': 'Tir dispersé',
  'game.asteroids-plus.up.spread.desc': '+1 projectile sur un arc plus large.',
  'game.asteroids-plus.up.heavy.name': 'Munitions lourdes',
  'game.asteroids-plus.up.heavy.desc': '+dégâts des projectiles.',
  'game.asteroids-plus.up.long.name': 'Tir longue portée',
  'game.asteroids-plus.up.long.desc': '+portée et +vitesse des projectiles.',
  'game.asteroids-plus.up.pierce.name': 'Perforation',
  'game.asteroids-plus.up.pierce.desc': 'Les projectiles traversent +1 ennemi supplémentaire.',
  'game.asteroids-plus.up.shield.name': 'Bouclier',
  'game.asteroids-plus.up.shield.desc': '+1 couche de bouclier régénérant.',
  'game.asteroids-plus.up.hull.name': 'Coque renforcée',
  'game.asteroids-plus.up.hull.desc': '+1 PV max (et soigne 1 PV).',
  'game.asteroids-plus.up.thrust.name': 'Propulseurs',
  'game.asteroids-plus.up.thrust.desc': '+vitesse de rotation et accélération.',
  'game.asteroids-plus.up.orbital.name': 'Éclat orbital',
  'game.asteroids-plus.up.orbital.desc': '+1 éclat en orbite autour de ton vaisseau.',
  'game.asteroids-plus.up.drone.name': 'Drone',
  'game.asteroids-plus.up.drone.desc': '+1 drone d\'escorte à tir automatique.',
  'game.asteroids-plus.up.nova.name': 'Impulsion nova',
  'game.asteroids-plus.up.nova.desc': 'Une onde de choc périodique endommage les ennemis proches.',
  'game.asteroids-plus.up.auto.name': 'Tir automatique',
  'game.asteroids-plus.up.auto.desc': 'Le vaisseau tire seul — plus besoin de maintenir Espace.',
  'game.asteroids-plus.up.magnet.name': 'Aimant',
  'game.asteroids-plus.up.magnet.desc': 'Rayon de collecte d\'XP plus large.',
  'game.asteroids-plus.upShort.rapid': 'RAPIDE',
  'game.asteroids-plus.upShort.spread': 'DISPERSION',
  'game.asteroids-plus.upShort.heavy': 'LOURD',
  'game.asteroids-plus.upShort.orbital': 'ORBITE',
  'game.asteroids-plus.upShort.drone': 'DRONE',
  'game.asteroids-plus.upShort.nova': 'NOVA',
  'game.tower-defense.auraBuff': 'bonus d\'aura',
  'game.tower-defense.autoOff': 'Auto : Non',
  'game.tower-defense.autoOn': 'Auto : Oui',
  'game.tower-defense.bestWave': 'Meilleure vague <b>{wave}</b>',
  'game.tower-defense.bestWaveNone': 'Meilleure vague <b>—</b>',
  'game.tower-defense.bossIncoming': '⚠ BOSS IMMINENT ⚠',
  'game.tower-defense.buffed': '🎵 renforcée',
  'game.tower-defense.chooseMap': 'CHOISIS UNE CARTE',
  'game.tower-defense.controls.clickGrass': 'Clique sur l\'herbe',
  'game.tower-defense.controls.clickTower': 'Clique sur une tour',
  'game.tower-defense.controls.collect': 'Récupérer',
  'game.tower-defense.controls.pickTower': 'Choisis une tour',
  'game.tower-defense.controls.place': 'Placer',
  'game.tower-defense.controls.placeTower': 'Placer la tour',
  'game.tower-defense.controls.select': 'Sélectionner',
  'game.tower-defense.controls.selectToBuild': 'Sélectionne pour construire',
  'game.tower-defense.controls.tapDrop': 'Touche un butin',
  'game.tower-defense.controls.tapGrass': 'Touche l\'herbe',
  'game.tower-defense.controls.tapPlacedTower': 'Touche une tour placée',
  'game.tower-defense.controls.tapTowerType': 'Touche un type de tour',
  'game.tower-defense.controls.towerActions': 'Améliorer / vendre / ciblage',
  'game.tower-defense.controlsTitle': 'Défenseur du Donjon — Commandes',
  'game.tower-defense.defend': 'Défendre',
  'game.tower-defense.diffLabel': 'DIFFICULTÉ',
  'game.tower-defense.endTitle': 'LE DONJON EST TOMBÉ',
  'game.tower-defense.event.bog': 'Fleur des marais — de l\'or, mais réveille une bête des marais',
  'game.tower-defense.event.freeze': 'Gel — glace tous les ennemis à l\'écran',
  'game.tower-defense.event.meteor': 'Météore — détruis-le pour un gros tas d\'or (brûle les ennemis)',
  'game.tower-defense.event.oasis': 'Oasis — grosse réserve d\'or',
  'game.tower-defense.event.rally': 'Bannière de ralliement — or + hâte brève',
  'game.tower-defense.event.relic': 'Relique — or + hâte',
  'game.tower-defense.fastSurface': 'terrain rapide',
  'game.tower-defense.frozen': '❄ GELÉS !',
  'game.tower-defense.haste': '⚡ HÂTE !',
  'game.tower-defense.hasteTimer': '⚡ Hâte {n}s',
  'game.tower-defense.hint': 'Construis des tours sur l\'herbe · touche une tour pour l\'améliorer, la vendre ou changer sa cible.',
  'game.tower-defense.hud.gold': 'OR',
  'game.tower-defense.hud.keep': 'DONJON',
  'game.tower-defense.hud.remain': 'RESTANT',
  'game.tower-defense.hud.score': 'SCORE',
  'game.tower-defense.hud.threat': 'MENACE',
  'game.tower-defense.hud.wave': 'VAGUE',
  'game.tower-defense.interest': 'Intérêts +{g}g',
  'game.tower-defense.kills': 'Éliminations : {n}',
  'game.tower-defense.lv': 'Niv {n}',
  'game.tower-defense.mapArrow': '{arrow} carte',
  'game.tower-defense.mapLabel': 'CARTE',
  'game.tower-defense.maxed': 'Max',
  'game.tower-defense.meteorStrike': '☄️ FRAPPE DE MÉTÉORE !',
  'game.tower-defense.mudBeast': '🐸 bête des marais !',
  'game.tower-defense.name': 'Défenseur du Donjon',
  'game.tower-defense.normalSurface': 'terrain normal',
  'game.tower-defense.pauseLine': 'Vague {wave} · Score {score} · {gold}g',
  'game.tower-defense.playAgain': 'Rejouer',
  'game.tower-defense.sell': 'Vendre +{g}g',
  'game.tower-defense.shareWave': 'vague {wave}',
  'game.tower-defense.slowSurface': 'terrain lent',
  'game.tower-defense.splash': 'zone',
  'game.tower-defense.startWave': 'Lancer la vague',
  'game.tower-defense.stat.cost': 'Coût',
  'game.tower-defense.stat.damage': 'Dégâts',
  'game.tower-defense.stat.dmg': 'Dég. {n}',
  'game.tower-defense.stat.mapMod': ' ({pct}% carte)',
  'game.tower-defense.stat.range': 'Portée',
  'game.tower-defense.stat.rangeVal': 'Portée {n}',
  'game.tower-defense.stat.rate': 'Cadence',
  'game.tower-defense.stat.rateVal': 'Cad. {n}/s',
  'game.tower-defense.stat.upgrade': 'Améliorer',
  'game.tower-defense.targetBtn': 'Cible : {label}',
  'game.tower-defense.threatEasing': '🛡 Menace en baisse — {v}×',
  'game.tower-defense.threatRising': '⚔ Menace en hausse — {v}×',
  'game.tower-defense.title': 'Défenseur du Donjon',
  'game.tower-defense.upgradeCost': 'Améliorer {g}g',
  'game.tower-defense.victory': 'VICTOIRE ! Mode sans fin...',
  'game.tower-defense.victoryBonus': '+200g de bonus !',
  'game.tower-defense.waveAnnounce': 'VAGUE {n}',
  'game.tower-defense.waveCleared': 'Vague {wave} terminée ! +{g}g',
  'game.tower-defense.waveInProgress': 'Vague {wave}...',
  'game.tower-defense.wavesSurvived': 'Vagues survécues : {wave} · {map} · {diff}',
  'game.tower-defense.diff.easy': 'Facile',
  'game.tower-defense.diff.medium': 'Moyen',
  'game.tower-defense.diff.hard': 'Difficile',
  'game.tower-defense.map.grassland.name': 'Prairie',
  'game.tower-defense.map.grassland.desc': 'Terrain dégagé. Les archers sont dans leur élément (+25%).',
  'game.tower-defense.map.ice.name': 'Glace',
  'game.tower-defense.map.ice.desc': 'Les ennemis glissent 25% plus vite. Le givre est plus puissant (+25%).',
  'game.tower-defense.map.lava.name': 'Lave',
  'game.tower-defense.map.lava.desc': 'Roche calcinée. Le givre perd en puissance (-40%), le canon excelle (+25%).',
  'game.tower-defense.map.desert.name': 'Désert',
  'game.tower-defense.map.desert.desc': 'Le sable profond ralentit les ennemis (-10%). Les canons frappent fort (+30%).',
  'game.tower-defense.map.dungeon.name': 'Cachot',
  'game.tower-defense.map.dungeon.desc': 'Couloirs sombres. Les mages canalisent leur pouvoir arcanique (+25%).',
  'game.tower-defense.map.marsh.name': 'Marais',
  'game.tower-defense.map.marsh.desc': 'La boue épaisse ralentit les ennemis (-20%), mais des bêtes des marais en sortent.',
  'game.tower-defense.tower.archer.name': 'Archer',
  'game.tower-defense.tower.archer.special': 'Flèches rapides à cible unique. Faible contre l\'armure.',
  'game.tower-defense.tower.archer.tag': 'rapide · cible unique',
  'game.tower-defense.tower.cannon.name': 'Canon',
  'game.tower-defense.tower.cannon.special': 'Dégâts de zone dans un rayon d\'explosion. Perce l\'armure.',
  'game.tower-defense.tower.cannon.tag': 'lent · zone',
  'game.tower-defense.tower.frost.name': 'Givre',
  'game.tower-defense.tower.frost.special': 'Ralentit tous les ennemis à portée. Faible contre l\'armure.',
  'game.tower-defense.tower.frost.tag': 'ralentit à proximité',
  'game.tower-defense.tower.mage.name': 'Mage',
  'game.tower-defense.tower.mage.special': 'Éclair arcanique : dégâts de zone. Perce l\'armure.',
  'game.tower-defense.tower.mage.tag': 'arc · magie',
  'game.tower-defense.tower.bard.name': 'Barde',
  'game.tower-defense.tower.bard.special': 'N\'attaque pas. Son aura renforce les tours proches : +35% de dégâts, +35% de portée, +20% de cadence.',
  'game.tower-defense.tower.bard.tag': 'renforce à proximité',
  'game.tower-defense.target.first': 'Premier',
  'game.tower-defense.target.last': 'Dernier',
  'game.tower-defense.target.strongest': 'Le plus fort',
  'game.tower-defense.target.weakest': 'Le plus faible',
  'game.tower-defense.target.closest': 'Le plus proche',
  'game.asteroids.blurb': 'Vole, tire, survis. Arcade classique — vagues sans fin et course en speedrun.',
  'game.asteroids-plus.blurb': 'Astéroïdes façon roguelite — XP, améliorations, boss et boutique entre les vagues. Construis ta run, survis aux vagues.',
  'game.tower-defense.blurb': 'Tiens la ligne. Construis des tours, dépense ton or et défends le donjon vague après vague.',
  'game.bubbles.blurb': 'Tirez des bulles et éclatez les groupes de 3+ — Arcade, Endless et Zen, avec tirs spéciaux.',
  'game.common.menu': 'Menu',
  'game.common.paused': 'PAUSE',
  'game.common.resume': 'REPRENDRE (ESC)',
  'game.common.quitToMenu': 'QUITTER LE MENU',
  'game.common.best': 'RECORD',
  'game.common.score': 'SCORE',
  'game.common.time': 'TEMPS',
  'game.common.gameOver': 'FIN DE PARTIE',
  'game.common.move': 'Déplacer',
  'game.common.pause': 'Pause',
  'game.common.drag': 'Glisser',
  'game.common.scoreLine': 'Score {score}',
  'game.common.play': 'Jouer',
  'game.common.continue': 'Continuer',
  'game.common.newGame': 'Nouvelle partie',
  'game.common.playAgain': 'Rejouer',
  'game.common.modeLabel': 'MODE',
  'game.common.touchScheme': 'Commandes par boutons',
  'game.common.touchSchemeCap': '— touchez pour tourner, propulser et tirer',
  'game.common.click': 'Clic',
  'game.common.tap': 'Toucher',
  'game.common.done': 'TERMINÉ',
  'game.common.esc': 'Échap',
  'game.common.spaceEnter': 'Espace · Entrée',
  'game.flappy.menuTitle': '🌸 Vol des Prés',
  'game.flappy.startLine': 'Guide l\'oiseau à travers la prairie en fleurs.',
  'game.flappy.todLabel': 'MOMENT DE LA JOURNÉE',
  'game.flappy.day': '☀️ Jour',
  'game.flappy.night': '🌙 Nuit',
  'game.flappy.play': 'Vole !',
  'game.flappy.hint': 'Record {best} · choisis ton oiseau dans 🎨 · touche / clique / Espace pour battre des ailes.',
  'game.flappy.verb': 'J\'ai volé jusqu\'à',
  'game.flappy.title': 'Vol des Prés',
  'game.flappy.endTitle': 'Oh non !',
  'game.flappy.again': 'VOLE ENCORE',
  'game.flappy.controlsTitle': 'Vol des Prés — Commandes',
  'game.flappy.flap': 'Battre des ailes',
  'game.stacker.mode.classic': 'Classique',
  'game.stacker.mode.time': 'Chrono',
  'game.stacker.mode.zen': 'Zen',
  'game.stacker.menuTitle': 'TOUR',
  'game.stacker.mech.endless': 'Sans fin',
  'game.stacker.mech.highScore': 'Meilleur score',
  'game.stacker.mech.sixtySeconds': '60 secondes',
  'game.stacker.mech.slow': 'Lent',
  'game.stacker.mech.forgiving': 'Indulgent',
  'game.stacker.themeLabel': 'THÈME',
  'game.stacker.themeLight': 'Clair',
  'game.stacker.themeDark': 'Sombre',
  'game.stacker.hint': 'Touche / clique / Espace pour lâcher le bloc.',
  'game.stacker.verb': 'J\'ai empilé',
  'game.stacker.unit': ' de haut',
  'game.stacker.title': 'Tour',
  'game.stacker.endTitleTime': 'TEMPS ÉCOULÉ !',
  'game.stacker.endTitle': 'OUPS !',
  'game.stacker.combo': '{n}x COMBO!',
  'game.stacker.controlsTitle': 'Tour — Commandes',
  'game.stacker.dropAction': 'Lâcher le bloc',
  'game.snake.speedSlow': 'Lent',
  'game.snake.speedNormal': 'Normal',
  'game.snake.speedFast': 'Rapide',
  'game.snake.sizeSmall': 'Petit',
  'game.snake.sizeMedium': 'Moyen',
  'game.snake.sizeLarge': 'Grand',
  'game.snake.menuTitle': 'SERPENT NÉON',
  'game.snake.wallsLabel': 'MURS',
  'game.snake.solidLabel': 'Murs solides',
  'game.snake.solidMech': 'Classique',
  'game.snake.wrapLabel': 'Sans bords',
  'game.snake.wrapMech': 'Sans limites',
  'game.snake.enhancedLabel': 'Amélioré',
  'game.snake.enhancedTag': 'BIENTÔT',
  'game.snake.enhancedMech': 'Bonus déchaînés',
  'game.snake.enhancedDesc': 'Des bonus dingues — murs désactivés un moment, sprints à vitesse 2×, rétrécissement du serpent…',
  'game.snake.speedLabel': 'VITESSE',
  'game.snake.boardLabel': 'PLATEAU',
  'game.snake.hint': 'Flèches / WASD · glisse · pavé tactile sur mobile.',
  'game.snake.wrapShort': 'Sans bords',
  'game.snake.wallsShort': 'Murs',
  'game.snake.title': 'Serpent Néon',
  'game.snake.shareLength': 'longueur {n}',
  'game.snake.gameOver': 'FIN DE PARTIE',
  'game.snake.lengthWord': 'Longueur',
  'game.snake.solidShort': 'Solides',
  'game.snake.dir_up': 'vers le haut',
  'game.snake.dir_down': 'vers le bas',
  'game.snake.dir_left': 'vers la gauche',
  'game.snake.dir_right': 'vers la droite',
  'game.snake.gripMoveLR': 'Glisse pour déplacer le pavé à gauche ou à droite',
  'game.snake.gripMoveUD': 'Glisse pour déplacer le pavé vers le haut ou le bas',
  'game.snake.moveControls': 'Déplacer les commandes',
  'game.snake.showControls': 'Afficher les commandes tactiles',
  'game.snake.controlsTitle': 'Serpent Néon — Commandes',
  'game.snake.ctrlArrows': 'Flèches · WASD',
  'game.snake.turn': 'Tourner',
  'game.snake.ctrlSwipe': 'Glisser',
  'game.snake.ctrlDpad': 'Pavé tactile',
  'game.snake.ctrlDragHandle': 'Glisser la poignée ↕/↔',
  'game.snake.ctrlSlideBoard': 'Déplacer le pavé',
  'game.breakout.modeClassic': 'Classique',
  'game.breakout.modeEndless': 'Sans fin',
  'game.breakout.modeSurvival': 'Survie',
  'game.breakout.menuTitle': 'CASSE-BRIQUES',
  'game.breakout.mechLevels': 'Niveaux',
  'game.breakout.mechClearAdvance': 'Nettoie pour avancer',
  'game.breakout.mechRowsDrop': 'Des rangées tombent',
  'game.breakout.mechScoreChase': 'Chasse au score',
  'game.breakout.mechWallDescends': 'Le mur descend',
  'game.breakout.mechBeatBack': 'Repousse-le',
  'game.breakout.speed2x': 'Vitesse 2×',
  'game.breakout.speed2xCaption': 'balle et raquette plus rapides',
  'game.breakout.insertCoin': 'INSÉREZ UNE PIÈCE',
  'game.breakout.descClassic': 'Progression par niveaux — casse toutes les briques',
  'game.breakout.descEndless': 'Des rangées sans fin descendent — marque des points aussi longtemps que tu survis',
  'game.breakout.descSurvival': 'Le mur descend — détruis-le avant qu\'il n\'atteigne ta raquette',
  'game.breakout.title': 'Casse-Briques',
  'game.breakout.gameOver': 'FIN DE PARTIE',
  'game.breakout.endLine': '{mode} · niveau {level}',
  'game.breakout.pauseLine': 'Score {score} · niveau {level}',
  'game.breakout.controlsTitle': 'Casse-Briques — Commandes',
  'game.breakout.ctrlMove': 'Déplacer',
  'game.breakout.ctrlSlidePaddle': 'Déplacer la raquette',
  'game.breakout.ctrlLaunch': 'Lancer',
  'game.breakout.ctrlMovePaddle': 'Bouger la raquette',
  'game.breakout.ctrlHoldSide': 'Maintenir le côté G / D',
  'game.aim-trainer.bestTimeLine': 'Record {time}',
  'game.aim-trainer.controlsTitle': 'Stand de tir — Commandes',
  'game.aim-trainer.ctrlAim': 'Viser',
  'game.aim-trainer.ctrlMove': 'Déplacer',
  'game.aim-trainer.ctrlShoot': 'Tirer',
  'game.aim-trainer.ctrlTapShoot': 'Tire où tu touches',
  'game.aim-trainer.duration': 'DURÉE',
  'game.aim-trainer.endReact': ' · {ms}ms',
  'game.aim-trainer.endStats': '{acc}% de précision · {hits} touchés · {misses} manqués',
  'game.aim-trainer.fireAgain': 'TIRER ENCORE',
  'game.aim-trainer.gameName': 'Stand de tir',
  'game.aim-trainer.hintSprint': 'Abats le nombre de cibles requis aussi vite que possible.',
  'game.aim-trainer.hintTimed': 'Marque le plus de touches possible avant la fin du temps.',
  'game.aim-trainer.hudBestTime': 'MEILLEUR TEMPS',
  'game.aim-trainer.hudElapsed': 'ÉCOULÉ',
  'game.aim-trainer.hudModeSprint': 'Sprint {n}',
  'game.aim-trainer.hudModeTimed': 'Chrono {n}s',
  'game.aim-trainer.hudMoving': ' · mobiles',
  'game.aim-trainer.hudScore': 'SCORE',
  'game.aim-trainer.hudTargets': 'CIBLES',
  'game.aim-trainer.hudTime': 'TEMPS',
  'game.aim-trainer.mechAvgReaction': 'Réaction moy. en ms',
  'game.aim-trainer.mechBeatClock': 'Course contre le temps',
  'game.aim-trainer.mechPopups': 'Cibles aléatoires',
  'game.aim-trainer.mechRace': 'Course jusqu\'au total',
  'game.aim-trainer.modeReaction': 'Réaction',
  'game.aim-trainer.modeSprint': 'Sprint',
  'game.aim-trainer.modeTimed': 'Chrono',
  'game.aim-trainer.movingCaption': 'elles se déplacent une fois que tu es lancé',
  'game.aim-trainer.movingToggle': 'Cibles mobiles',
  'game.aim-trainer.reactionDesc': 'Les cibles apparaissent à des moments aléatoires — ton temps de réaction moyen est ton score.',
  'game.aim-trainer.readyUp': 'EN POSITION',
  'game.aim-trainer.shareAccuracy': '{pct}% de précision',
  'game.aim-trainer.shareModeTimed': '{n}s Chrono',
  'game.aim-trainer.shareMoving': 'cibles mobiles',
  'game.aim-trainer.shareTargets': '{n} cibles',
  'game.aim-trainer.shareTime': '{s}s',
  'game.aim-trainer.shareVerb': 'J\'ai éliminé',
  'game.aim-trainer.soon': 'BIENTÔT',
  'game.aim-trainer.sprintClear': 'SPRINT TERMINÉ',
  'game.aim-trainer.timesUp': 'TEMPS ÉCOULÉ',
  'game.aim-trainer.title': 'Stand de tir',
  'game.breakout.blurb': 'Fais rebondir la balle, pulvérise chaque brique. Néon synthwave, bonus et murs de plus en plus coriaces.',
  'game.invaders.title': 'Envahisseurs',
  'game.invaders.blurb': 'Des aliens en rangs descendent sur un écran CRT vert. Évite, tire, tiens la ligne.',
  'game.sudoku.title': 'Sudoku',
  'game.sudoku.blurb': 'Remplis la grille 9×9 : 1 à 9 dans chaque ligne, colonne et carré — puzzles quotidiens, indices et mode zen.',
  'game.crossy.title': 'Sauts de Grenouille',
  'game.crossy.blurb': 'Saute par-dessus routes et rivières sans te faire écraser. Cubique et sans fin.',
  'game.stacker.blurb': 'Chronomètre la chute pour empiler la tour. Un tap, un style pastel épuré, et l\'envie d\'y retourner.',
  'game.icy-tower.title': 'Tour de Glace',
  'game.icy-tower.blurb': 'Prends de la vitesse, saute toujours plus haut, rebondis sur les murs et enchaîne les combos dans une tour sans fin.',
  'game.pulse-dash.title': 'Course Rythmée',
  'game.pulse-dash.blurb': 'Course automatique et sauts en rythme — plateforme rythmique en un tap à travers des couloirs néon.',
  'game.trap-the-cat.title': 'Piège le Chat',
  'game.trap-the-cat.blurb': 'Bloque le plateau hexagonal pour coincer le chat avant qu\'il ne s\'échappe par le bord.',
  'game.flappy.blurb': 'Un vol au clic unique dans une douce prairie de conte de fées.',
  'game.aim-trainer.blurb': 'Entraînement au headshot à la volée sur un stand de tir tactique, contre la montre.',
  'game.spellcaster.title': 'Arcanes',
  'game.spellcaster.blurb': 'Lance des sorts contre des vagues de ténèbres. Runes, sceaux et filigranes dorés.',
  'game.snake.blurb': 'Le classique, en néon lumineux. Grandis sans te mordre la queue.',
  'game.2048.title': '2048',
  'game.2048.blurb': 'Glisse et fusionne les tuiles — double ta mise jusqu\'au légendaire 2048.',
  'game.word-hunt.title': 'Chasse aux Mots',
  'game.word-hunt.blurb': 'Trouve les mots cachés dans la grille de lettres. Glisse pour encercler, bats la montre, packs thématiques.',
  'game.dusk-runner.title': 'Coureur Chromé',
  'game.dusk-runner.blurb': 'Dino en chrome poli : sautez, baissez-vous, visez un 1000 m plus rapide.',
  'game.sky-sling.title': 'Fronde Céleste',
  'game.sky-sling.blurb': 'Tire en arrière, règle ta puissance, lâche — éclate des ballons flottants contre la gravité et un vent changeant.',
  'game.pump-stop.title': 'Plein et Stop',
  'game.pump-stop.blurb': 'Maintiens pour remplir, arrête-toi exactement sur la cible — dépasse d\'un centime et la manche est perdue.',
  'game.blink.title': 'Clin d\'œil',
  'game.blink.blurb': 'Observe la scène puis réponds — combien de canards ? de quelle couleur était le ciel ?',
  'game.pocket-rally.title': 'Rallye de Poche',
  'game.pocket-rally.blurb': 'Pied au plancher sur une ligne droite à plusieurs voies — slalome dans le trafic, vise la distance.',
  'game.market-parking.title': 'Parking du Marché',
  'game.market-parking.blurb': 'Un parking bondé, trop peu de places — prends la place libre avant les autres. Des bots complètent le solo.',
  'game.floodgate.title': 'Vanne',
  'game.floodgate.blurb': 'Fais pivoter les tuyaux pour mener l\'eau de la source à l\'égout — colmate les fuites, bats le chrono.',
  'game.minesweeper.title': 'Démineur',
  'game.minesweeper.blurb': 'Démine le terrain — signale les bombes, lis les chiffres, déduis le reste. Le classique de la logique.',
  'game.balloon-pop.title': 'Ballons',
  'game.balloon-pop.blurb': 'Touche les ballons flottants — couleurs éclatantes, pops joyeux, impossible de perdre.',
  'game.critter-match.title': 'Paires d\'Animaux',
  'game.critter-match.blurb': 'Retourne les cartes, trouve les animaux qui se ressemblent. Évolue avec toi, doux et joyeux.',
  'game.glow-says.title': 'Lumino Dit',
  'game.glow-says.blurb': 'Observe les lumières, répète la mélodie — combien de temps peux-tu retenir la séquence ?',
  'game.color-pop.title': 'Coloriage',
  'game.color-pop.blurb': 'Touche pour remplir l\'image de couleur. Pas de règles, pas d\'échec — juste peindre.',
  'game.tap-learn.title': 'Touche et Apprends',
  'game.tap-learn.blurb': 'Compte les canards, touche la lettre, trouve la forme — l\'apprentissage tout en jouant.',
  'game.maze-pals.title': 'Copains du Labyrinthe',
  'game.maze-pals.blurb': 'Guide la petite souris jusqu\'au fromage. Grandes cases, pas de chrono, juste trouver le chemin.',
  'game.foxden.title': 'Tanière du Renard',
  'game.foxden.blurb': 'Fais grandir ta tanière de renard — récolte, construis, améliore. Elle produit même en ton absence.',
  'game.tron.title': 'Motos Lumineuses',
  'game.tron.blurb': 'Des traînées néon envahissent l\'arène — enferme tes rivaux, la dernière moto en piste gagne. En local, 2 à 4 joueurs.',
  'game.air-hockey.title': 'Hockey sur Air',
  'game.air-hockey.blurb': 'Envoie le palet devant ton ami sur une piste lumineuse. Rapide, frénétique, jeu local à deux pouces.',
  'game.slime-volley.title': 'Volley des Gluants',
  'game.slime-volley.blurb': 'Deux blobs, une balle, un filet — renvoie-la de leur côté. Un duel local rigolo et rebondissant.',
  'game.ring-out.title': 'Hors du Ring',
  'game.ring-out.blurb': 'Pousse tes rivaux hors du disque — le dernier blob debout gagne. Un sumo rebondissant et loufoque.',
  'game.gravity-duel.title': 'Duel Gravitationnel',
  'game.gravity-duel.blurb': 'Deux vaisseaux, une étoile qui vous attire — orbite, vise et tire autour du puits gravitationnel.',
  'game.flap-fight.title': 'Combat Ailé',
  'game.flap-fight.blurb': 'Bats des ailes pour voler plus haut que ton rival et l\'écraser — un Joust sur un seul écran.',
  'game.mash-dash.title': 'Frappe et Fonce',
  'game.mash-dash.blurb': 'Martèle ton bouton, le premier à la ligne gagne. Le chaos pur du pouce.',
  'game.forcefield.title': 'Champ de Force',
  'game.forcefield.blurb': 'Faites glisser le dôme pour bloquer les tirs de la station de combat — en solo ou à 2.',
  'game.forcefield.menuTitle': 'CHAMP DE FORCE',
  'game.forcefield.intro1': 'Une station de combat charge son canon vers ta planète.',
  'game.forcefield.intro2': 'Balaie ton dôme sur la cible et verrouille-le avant qu\'elle ne tire.',
  'game.forcefield.modeTimed': 'Chrono',
  'game.forcefield.modeLives': 'Boucliers',
  'game.forcefield.modeDouble': 'Double',
  'game.forcefield.modeTimedMech': 'Chrono 60 s',
  'game.forcefield.modeLivesMech': '3 boucliers',
  'game.forcefield.modeDoubleMech': '1–2 joueurs · 60 s',
  'game.forcefield.diffLabel': 'DIFFICULTÉ',
  'game.forcefield.diffEasy': 'Facile',
  'game.forcefield.diffMedium': 'Moyen',
  'game.forcefield.diffHard': 'Difficile',
  'game.forcefield.startHint': 'Touche / Espace · A et L pour les deux voies · Échap pour pause',
  'game.forcefield.perfect': 'PARFAIT',
  'game.forcefield.breach': 'BRÈCHE',
  'game.forcefield.tapHint': 'Balaie jusqu\'au repère · touche pour verrouiller avant le tir',
  'game.forcefield.tapHintDouble': 'Défendez les deux — gauche : A / ← · droite : L / →',
  'game.forcefield.hudShields': 'BOUCLIERS',
  'game.forcefield.deflectedLine': 'Déviés : {n}',
  'game.forcefield.timesUp': 'TEMPS ÉCOULÉ',
  'game.forcefield.generatorDown': 'PLANÈTE PERDUE',
  'game.forcefield.left': 'Gauche',
  'game.forcefield.right': 'Droite',
  'game.forcefield.splitLine': '{left} {a} ({pa}%) · {right} {b} ({pb}%)',
  'game.forcefield.tie': 'Égalité !',
  'game.forcefield.winner': '{name} gagne !',
  'game.forcefield.you': 'TOI',
  'game.forcefield.leave': 'Quitter cette partie ? Vous perdrez votre progression.',
  'game.forcefield.controlsTitle': 'Champ de Force — Commandes',
  'game.forcefield.ctrlStop': 'Verrouiller le dôme',
  'game.forcefield.ctrlHalves': 'Moitié gauche / droite',
  'game.forcefield.ctrlStopHalf': 'Défendre cette planète (Double)',
  'game.forcefield.ctrlAL': 'A · L (ou ← · →)',
  'cos.site.cursor.classic.name': 'Classique',
  'cos.site.cursor.classic.desc': 'La bonne vieille flèche, telle que la nature l\'a voulue.',
  'cos.site.cursor.crosshair.name': 'Réticule',
  'cos.site.cursor.crosshair.desc': 'Un réticule vert au poil — tout devient une cible.',
  'cos.site.cursor.paw.name': 'Patte',
  'cos.site.cursor.paw.desc': 'Une douce patte rose trottine sur votre écran.',
  'cos.site.cursor.sword.name': 'Épée Pixel',
  'cos.site.cursor.sword.desc': 'Pointez avec la lame d\'un minuscule héros.',
  'cos.site.cursor.comet.name': 'Comète Néon',
  'cos.site.cursor.comet.desc': 'Une tête de comète lumineuse avec une traîne néon.',
  'cos.site.cursor.rainbow.name': 'Traînée Arc-en-ciel',
  'cos.site.cursor.rainbow.desc': 'Laisse un sillage arc-en-ciel scintillant à chaque mouvement.',
  'cos.site.cursor.terminal.name': 'Terminal',
  'cos.site.cursor.terminal.desc': 'Un curseur bloc clignotant, comme un vieux terminal. Brille dans votre couleur CRT quand le mode CRT est activé.',
  'cos.site.fx.off.name': 'Standard',
  'cos.site.fx.off.desc': 'Aucun filtre d\'écran — l\'apparence brute.',
  'cos.site.fx.crt.name': 'Mode CRT',
  'cos.site.fx.crt.desc': 'Une lueur phosphorescente rétro sur tout le site — touchez ▾ pour choisir une couleur.',
  'cos.snake.food.apple.name': 'Pomme',
  'cos.snake.food.apple.desc': 'Le classique point néon.',
  'cos.snake.food.cherry.name': 'Cerise',
  'cos.snake.food.cherry.desc': 'Une paire juteuse sur une seule tige.',
  'cos.snake.food.golden.name': 'Pomme Dorée',
  'cos.snake.food.golden.desc': 'La nourriture de Neon Snake brille d\'or.',
  'cos.snake.food.gem.name': 'Gemme',
  'cos.snake.food.gem.desc': 'Un joyau taillé qui vaut la chasse.',
  'cos.snake.food.star.name': 'Fruit Étoilé',
  'cos.snake.food.star.desc': 'Un en-cas à cinq branches venu de l\'espace.',
  'cos.snake.food.rainbow.name': 'Orbe Arc-en-ciel',
  'cos.snake.food.rainbow.desc': 'Défile à travers toutes les couleurs néon.',
  'cos.breakout.paddle.synthwave.name': 'Synthwave',
  'cos.breakout.paddle.synthwave.desc': 'La lueur cyan originale.',
  'cos.breakout.paddle.wood.name': 'Bois Classique',
  'cos.breakout.paddle.wood.desc': 'Bois vernis chaleureux, style borne d\'arcade.',
  'cos.breakout.paddle.ice.name': 'Glace Néon',
  'cos.breakout.paddle.ice.desc': 'Verre givré avec un éclat bleu glacial.',
  'cos.breakout.paddle.lava.name': 'Cœur de Lave',
  'cos.breakout.paddle.lava.desc': 'Roche en fusion, incandescente de l\'intérieur.',
  'cos.breakout.paddle.chrome.name': 'Chrome',
  'cos.breakout.paddle.chrome.desc': 'Poli comme un miroir et intouchable.',
  'cos.breakout.ball.neon.name': 'Néon',
  'cos.breakout.ball.neon.desc': 'La traînée cyan classique.',
  'cos.breakout.ball.eight.name': 'Boule 8',
  'cos.breakout.ball.eight.desc': 'On les aligne. On les casse.',
  'cos.breakout.ball.comet.name': 'Comète',
  'cos.breakout.ball.comet.desc': 'Une boule de feu avec une traîne flamboyante.',
  'cos.breakout.ball.disco.name': 'Disco',
  'cos.breakout.ball.disco.desc': 'Change de couleur à chaque rebond.',
  'cos.breakout.ball.plasma.name': 'Plasma',
  'cos.breakout.ball.plasma.desc': 'Énergie violette crépitante.',
  'cos.tower-defense.castle.stone.name': 'Donjon de Pierre',
  'cos.tower-defense.castle.stone.desc': 'Le donjon tel que les maçons l\'ont bâti.',
  'cos.tower-defense.castle.oak.name': 'Fort de Chêne',
  'cos.tower-defense.castle.oak.desc': 'Murs de bois, esprit de la frontière.',
  'cos.tower-defense.castle.sand.name': 'Château de Sable',
  'cos.tower-defense.castle.sand.desc': 'Bâti au seau, étonnamment solide.',
  'cos.tower-defense.castle.ice.name': 'Donjon de Glace',
  'cos.tower-defense.castle.ice.desc': 'Taillé dans un glacier, froid jusqu\'au cœur.',
  'cos.tower-defense.castle.obsidian.name': 'Citadelle d\'Obsidienne',
  'cos.tower-defense.castle.obsidian.desc': 'Des murs de verre noir qui avalent la lumière.',
  'cos.bubbles.pop.classic.name': 'Classique',
  'cos.bubbles.pop.classic.desc': 'Un éclatement net et satisfaisant.',
  'cos.bubbles.pop.confetti.name': 'Confettis',
  'cos.bubbles.pop.confetti.desc': 'Chaque éclatement lance une petite fête.',
  'cos.bubbles.pop.stars.name': 'Étoiles',
  'cos.bubbles.pop.stars.desc': 'Les bulles éclatent en étoiles scintillantes.',
  'cos.bubbles.pop.fireworks.name': 'Feux d\'Artifice',
  'cos.bubbles.pop.fireworks.desc': 'Un final complet de fusées à chaque combo.',
  'cos.bubbles.base.aqua.name': 'Aqua',
  'cos.bubbles.base.aqua.desc': 'Le lanceur aqua standard.',
  'cos.bubbles.base.candy.name': 'Bonbon',
  'cos.bubbles.base.candy.desc': 'Rayé de sucre et tout doux.',
  'cos.bubbles.base.gold.name': 'Or Royal',
  'cos.bubbles.base.gold.desc': 'Un lanceur digne de la royauté des bulles.',
  'cos.aim-trainer.target.rings.name': 'Anneaux',
  'cos.aim-trainer.target.rings.desc': 'Des anneaux réglementaires, sans excuses.',
  'cos.aim-trainer.target.donut.name': 'Donut Néon',
  'cos.aim-trainer.target.donut.desc': 'Un anneau glacé de néon pur.',
  'cos.aim-trainer.target.fruit.name': 'Fruit',
  'cos.aim-trainer.target.fruit.desc': 'Tranches de pastèque. Touches juteuses.',
  'cos.aim-trainer.target.alien.name': 'Blob Alien',
  'cos.aim-trainer.target.alien.desc': 'Il tremblote. Il fixe. Tirez dessus.',
  'cos.aim-trainer.target.goldstar.name': 'Étoile d\'Or',
  'cos.aim-trainer.target.goldstar.desc': 'Chaque touche a des airs de médaille d\'or.',
  'cos.aim-trainer.marker.classic.name': 'Classique',
  'cos.aim-trainer.marker.classic.desc': 'Un marqueur de touche blanc et net.',
  'cos.aim-trainer.marker.spark.name': 'Étincelle',
  'cos.aim-trainer.marker.spark.desc': 'Les touches projettent des étincelles électriques.',
  'cos.aim-trainer.marker.boom.name': 'Boum',
  'cos.aim-trainer.marker.boom.desc': 'De minuscules explosions de bande dessinée.',
  'cos.stacker.palette.pastel.name': 'Pastel',
  'cos.stacker.palette.pastel.desc': 'Doux pastels de coucher de soleil.',
  'cos.stacker.palette.synthwave.name': 'Synthwave',
  'cos.stacker.palette.synthwave.desc': 'Roses néon sur fond bleu minuit.',
  'cos.stacker.palette.forest.name': 'Forêt',
  'cos.stacker.palette.forest.desc': 'Verts moussus et écorce chaleureuse.',
  'cos.stacker.palette.candy.name': 'Bonbons',
  'cos.stacker.palette.candy.desc': 'Chewing-gum, menthe et bonbons au citron.',
  'cos.stacker.palette.gilded.name': 'Monochrome Doré',
  'cos.stacker.palette.gilded.desc': 'Marbre noir veiné d\'or.',
  'cos.asteroids.ship.cyan.name': 'Cyan',
  'cos.asteroids.ship.cyan.desc': 'Le classique en fil de fer.',
  'cos.asteroids.ship.emerald.name': 'Émeraude',
  'cos.asteroids.ship.emerald.desc': 'Éclairé de vert et prêt à foncer.',
  'cos.asteroids.ship.crimson.name': 'Cramoisi',
  'cos.asteroids.ship.crimson.desc': 'Décalage vers le rouge, pleine poussée.',
  'cos.asteroids.ship.violet.name': 'Violet',
  'cos.asteroids.ship.violet.desc': 'Le pourpre profond de l\'espace.',
  'cos.asteroids.ship.crt.name': 'Vert CRT',
  'cos.asteroids.ship.crt.desc': 'Tout le jeu en phosphore vert, comme en 1979.',
  'cos.asteroids.ship.gold.name': 'Or',
  'cos.asteroids.ship.gold.desc': 'Une coque dorée pour une légende.',
  'cos.asteroids-plus.hull.violet.name': 'Violet',
  'cos.asteroids-plus.hull.violet.desc': 'La coque signature du mode roguelite.',
  'cos.asteroids-plus.hull.teal.name': 'Bleu Sarcelle',
  'cos.asteroids-plus.hull.teal.desc': 'Tête froide sous le feu.',
  'cos.asteroids-plus.hull.blood.name': 'Rouge Sang',
  'cos.asteroids-plus.hull.blood.desc': 'Pour les pilotes qui ne freinent jamais.',
  'cos.asteroids-plus.hull.crt.name': 'Vert CRT',
  'cos.asteroids-plus.hull.crt.desc': 'Toute la partie en phosphore vert, comme en 1979.',
  'cos.asteroids-plus.hull.gold.name': 'Or',
  'cos.asteroids-plus.hull.gold.desc': 'Gagné, pas acheté. Bon… acheté.',
  'cos.asteroids-plus.trail.ion.name': 'Ion',
  'cos.asteroids-plus.trail.ion.desc': 'Un flux ionique bleu et régulier.',
  'cos.asteroids-plus.trail.ember.name': 'Braise',
  'cos.asteroids-plus.trail.ember.desc': 'Étincelles et braises dans votre sillage.',
  'cos.asteroids-plus.trail.rainbow.name': 'Arc-en-ciel',
  'cos.asteroids-plus.trail.rainbow.desc': 'Postcombustion en spectre complet.',
  'cos.flappy.bird.bee.name': 'Abeille',
  'cos.flappy.bird.bee.desc': 'Pas vraiment un oiseau. Vole quand même.',
  'cos.flappy.bird.robin.name': 'Rouge-gorge',
  'cos.flappy.bird.robin.desc': 'Un habitué joyeux de la prairie.',
  'cos.flappy.bird.bluebird.name': 'Oiseau Bleu',
  'cos.flappy.bird.bluebird.desc': 'Rapide, élancé et couleur du ciel.',
  'cos.flappy.bird.parrot.name': 'Perroquet',
  'cos.flappy.bird.parrot.desc': 'Bruyant en couleur comme en caractère.',
  'cos.flappy.bird.owl.name': 'Hibou',
  'cos.flappy.bird.owl.desc': 'Chasseur nocturne silencieux aux battements lents et lourds.',
  'cos.flappy.bird.bielik.name': 'Bielik',
  'cos.flappy.bird.bielik.desc': 'Le pygargue à queue blanche, roi des cieux polonais.',
  'cos.flappy.bird.rarog.name': 'Raróg',
  'cos.flappy.bird.rarog.desc': 'Un esprit de faucon ardent tiré des légendes slaves.',
  'cos.flappy.bird.raven.name': 'Corbeau',
  'cos.flappy.bird.raven.desc': 'Plumes noires comme la nuit, secrets ancestraux.',
  'cos.flappy.bird.phoenix.name': 'Phénix',
  'cos.flappy.bird.phoenix.desc': 'Celui dont on rêve. Renaît de chaque partie perdue.',
  'cos.set.site.cursor': 'Skins de curseur',
  'cos.set.site.fx': 'Mode d\'affichage',
  'cos.set.snake.food': 'Skins de nourriture',
  'cos.set.snake.track': 'Musique',
  'cos.snake.track.remaster.name': 'Néon',
  'cos.snake.track.remaster.desc': 'Le thème néon classique — batterie percutante, sub-basse et stéréo.',
  'cos.snake.track.banger.name': 'Néon Banger',
  'cos.snake.track.banger.desc': 'Un remix électro dopé — basse roulante et un motif accrocheur en onde carrée.',
  'cos.set.breakout.paddle': 'Skins de raquette',
  'cos.set.breakout.ball': 'Skins de balle',
  'cos.set.tower-defense.castle': 'Skins de château',
  'cos.set.bubbles.pop': 'Effets d\'éclatement',
  'cos.set.bubbles.base': 'Bases de lanceur',
  'cos.set.aim-trainer.target': 'Skins de cible',
  'cos.set.aim-trainer.marker': 'Marqueurs de touche',
  'cos.set.stacker.palette': 'Palettes de blocs',
  'cos.set.asteroids.ship': 'Couleurs de vaisseau',
  'cos.set.asteroids-plus.hull': 'Couleurs de coque',
  'cos.set.asteroids-plus.trail': 'Traînées de moteur',
  'cos.set.flappy.bird': 'Oiseaux',
  'cos.set.forcefield.marker': 'Couleurs de projectile',
  'cos.forcefield.marker.default.name': 'Classique',
  'cos.forcefield.marker.default.desc': 'Un projectile doré et net.',
  'cos.forcefield.marker.magma.name': 'Magma',
  'cos.forcefield.marker.magma.desc': 'Un projectile orange incandescent.',
  'cos.forcefield.marker.lime.name': 'Citron Vert',
  'cos.forcefield.marker.lime.desc': 'Un projectile vert plein de pep.',
  'cos.set.forcefield.planet': 'Skins de planète',
  'cos.forcefield.planet.azure.name': 'Azur',
  'cos.forcefield.planet.azure.desc': 'Un monde océanique bleu profond.',
  'cos.forcefield.planet.verdant.name': 'Verdoyant',
  'cos.forcefield.planet.verdant.desc': 'Un monde luxuriant et vert.',
  'cos.forcefield.planet.amber.name': 'Ambre',
  'cos.forcefield.planet.amber.desc': 'Un monde désertique et doré.',
  'cos.forcefield.planet.violet.name': 'Violet',
  'cos.forcefield.planet.violet.desc': 'Une géante gazeuse violette.',
  'changelog.e21.title': 'komyo parle aussi le portugais maintenant ! 🇧🇷',
  'changelog.e21.b0': 'Nouveau : komyo parle maintenant aussi portugais ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Português dans les ⚙️ Réglages de la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais, le polonais et l\'espagnol sont là aussi, et d\'autres langues arrivent.',
  'changelog.e20.title': 'komyo parle espagnol ! 🇪🇸',
  'changelog.e20.b0': 'Nouveau : komyo parle maintenant aussi espagnol ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Español dans les ⚙️ Réglages de la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais et le polonais sont là aussi, et d\'autres langues arrivent.',
  'changelog.e19.title': 'Nouveau jeu : Forcefield 🛡️',
  'changelog.e19.b0': 'Nouveau : Forcefield — une station de combat charge son canon vers votre planète et marque l\'endroit où elle va frapper. Balayez votre dôme atmosphérique jusqu\'à la marque et appuyez pour bloquer le tir — déviez-le, ou votre planète prend le coup. Jouez contre le chrono, avec 3 boucliers, ou en mode Double à 1-2 joueurs, où la station tire des deux côtés vers une planète de chaque côté. Du facile au difficile, avec des skins de planète et des couleurs d\'éclair à débloquer dans la Collection.',
  'changelog.e18.title': 'Encore plus soigné 🧽',
  'changelog.e18.b0': 'Correction : mettre à jour depuis la page d\'accueil met désormais vraiment à jour tous les jeux — ouvrez n\'importe quel jeu après coup, il est déjà sur la dernière version, sans devoir faire de mise à jour jeu par jeu.',
  'changelog.e18.b1': 'Correction : sur téléphone, les boutons Filtrer, Aléatoire et Compact tiennent maintenant proprement sur une seule ligne au lieu de déborder sur une autre.',
  'changelog.e18.b2': 'Correction : la boutique Collection tenue à l\'horizontale (paysage) ne laisse plus de vide sous le titre et ne coupe plus le bouton « Voir les titres » en bas de l\'écran.',
  'changelog.e17.title': 'Jouez dans votre langue 🌍',
  'changelog.e17.b0': 'Nouveau : komyo parle maintenant aussi polonais ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez votre langue dans les ⚙️ Réglages de la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais reste la langue par défaut, et d\'autres langues arrivent.',
  'changelog.e16.title': 'Mode CRT 🖥️',
  'changelog.e16.b0': 'Nouveau : débloquez le mode d\'affichage CRT dans la 🎨 Collection — une lueur phosphorescente rétro sur tout le site (jeux, menus, tout). Activez-le depuis la boutique ou le menu ☰ et choisissez une couleur : vert, ambre, cyan ou mono. Survolez une couleur pour la prévisualiser en direct avant de choisir.',
  'changelog.e16.b1': 'Changement : le badge DÉFI sur les tuiles est maintenant doré pour aller avec vos trophées ; le badge NOUVEAU est vert.',
  'changelog.e16.b2': 'Nouveau : un skin de curseur Terminal dans la 🎨 Collection — un curseur bloc clignotant comme une vieille invite de terminal ; il s\'illumine dans votre couleur CRT quand le mode CRT est activé.',
  'changelog.e15.title': 'Des corrections grandes et petites 🛠️',
  'changelog.e15.b0': 'Correction : dans le mode Sans fin de Brick Breaker, les briques qui tombent peuvent désormais vraiment vous avoir — si une rangée atteint la ligne de votre raquette, la partie se termine, au lieu de glisser sans danger hors de l\'écran.',
  'changelog.e15.b1': 'Correction : le sélecteur d\'améliorations d\'Asteroids+ n\'affiche plus son titre deux fois.',
  'changelog.e15.b2': 'Nouveau : les mises à jour sont entièrement entre vos mains — une nouvelle version ne recharge jamais la page toute seule ; elle allume juste le point du menu ☰ jusqu\'à ce que vous appuyiez sur Mettre à jour. Mettre à jour depuis la page d\'accueil actualise maintenant aussi tous les jeux, pas seulement ceux que vous avez ouverts.',
  'changelog.e15.b3': 'Correction : les pastilles de trophées et de Collection dans le panneau 🏆 d\'un jeu correspondent maintenant à celles de la page d\'accueil.',
  'changelog.e15.b4': 'Correction : la boutique Collection s\'affiche maintenant correctement sur un téléphone tenu à l\'horizontale — les objets ont la place, plutôt que la barre de recherche et les barres de progression.',
  'changelog.e15.b5': 'Correction : les badges des jeux (NOUVEAU, POPULAIRE…) ne chevauchent plus l\'icône dans la vue compacte — ils apparaissent là sous forme de petits points brillants.',
  'changelog.e15.b6': 'Nouveau : vous pouvez faire un lien direct vers la boutique Collection ou l\'échelle des Titres (komyo.online/?m=cosmetics · ?m=titles).',
  'changelog.e15.b7': 'Correction : l\'espacement du menu de Meadow Flyer — un peu plus de place entre les boutons Jour/Nuit et le texte en dessous.',
  'changelog.e14.title': 'La boutique Cosmétiques est ouverte 🎨',
  'changelog.e14.b0': 'Nouveau : dépensez vos trophées de défis dans la boutique 🎨 Cosmétiques — des skins pour chaque jeu. Ouvrez-la depuis le panneau 🏆 Défis (la pastille dorée COSMÉTIQUES) ou votre profil. Vos points s\'appellent maintenant des trophées : votre total à vie continue de faire monter l\'échelle des titres, et votre solde dépensable achète des cosmétiques. Dépenser ne ralentit jamais votre titre.',
  'changelog.e14.b1': 'Nouveau : choisissez votre skin directement dans le menu de chaque jeu — achetez-en un verrouillé sur place avec vos trophées. Nourriture de Neon Snake (Cerise, Pomme dorée, Gemme, Fruit étoilé, Orbe arc-en-ciel), raquettes et balles de Brick Breaker (Bois, Glace néon, Lave, Chrome · 8-Ball, Comète, Disco, Plasma), châteaux de Keep Defender (Chêne, Château de sable, Glace, Obsidienne), effets d\'éclatement et lanceurs de Bubble Pop, cibles et marqueurs d\'impact de Range, palettes de blocs de Stack, couleurs de vaisseau d\'Asteroids (plus un mode rétro CRT vert pour tout le jeu), et coques et traînées de moteur d\'Asteroids+.',
  'changelog.e14.b2': 'Nouveau : les oiseaux de Meadow Flyer ont rejoint les cosmétiques — achetez n\'importe quel oiseau dans n\'importe quel ordre avec vos trophées. Vos anciennes pièces mises de côté se sont converties directement en trophées (1:1) et chaque oiseau déjà débloqué reste le vôtre.',
  'changelog.e14.b3': 'Nouveau : des skins de curseur pour ordinateur sur tout le site — Réticule, Patte, Épée pixel, Comète néon et une Traînée arc-en-ciel (les deux derniers laissent un petit sillage quand vous bougez).',
  'changelog.e14.b4': 'Nouveau : les bonnes parties rapportent maintenant un bonus — vos 3 premières bonnes parties de la journée donnent chacune +5 trophées. L\'écran de fin de partie affiche le bonus au moment où vous le gagnez.',
  'changelog.e14.b5': 'Nouveau : votre profil affiche la part de la collection que vous avez débloquée, et le panneau Défis affiche votre barre de collection ainsi que le bonus de bonnes parties du jour.',
  'changelog.e13.title': 'Hors ligne partout et révélations de titres ✨',
  'changelog.e13.b0': 'Nouveau : visitez la page d\'accueil une seule fois et TOUS les jeux se sauvegardent pour le mode hors ligne — jouez à tout le catalogue en avion ou sans réseau, même à des jeux que vous n\'avez jamais ouverts.',
  'changelog.e13.b1': 'Correction : les boutons « Mettre à jour maintenant » (Réglages et le menu ☰ dans le jeu) ne restent plus bloqués sur « Mise à jour… » — la mise à jour se termine maintenant par un rechargement automatique rapide.',
  'changelog.e13.b2': 'Nouveau : gagner un nouveau titre allume un petit point doré sur le menu ☰ — ouvrez-le et votre nouveau titre est révélé avec un effet brillant.',
  'changelog.e13.b3': 'Nouveau : dans Neon Snake sur un téléphone tenu à l\'horizontale, la poignée du plateau fait maintenant glisser l\'arène de gauche à droite (le haut-bas reste réservé au portrait).',
  'changelog.e13.b4': 'Correction : le bouton 🏆 dans le jeu ne s\'illumine que tant que le défi de ce jeu n\'est pas terminé — le compléter éteint la lueur.',
  'changelog.e13.b5': 'Correction : la lueur du lanceur de Bubble Pop correspond maintenant à la couleur de la bulle que vous allez tirer (elle était toujours verte et vous mentait).',
  'changelog.e13.b6': 'Correction : Keep Defender à l\'horizontale sur téléphone — la carte ne démarre plus cachée sous la barre de score.',
  'changelog.e13.b7': 'Correction : la barre de score/vie d\'Asteroids+ est maintenant une fine bande sur téléphone, dans les deux orientations, au lieu de recouvrir le haut de l\'action.',
  'changelog.e13.b8': 'Correction : les indications tactiles ◀ ▶ de Brick Breaker s\'affichent maintenant de façon fiable sur les écrans tactiles (certains appareils ne les affichaient jamais).',
  'changelog.e13.b9': 'Correction : les boutons Menu et Komyo dans les jeux ne déclenchent plus un « glissement » au lieu d\'un clic.',
  'changelog.e13.b10': 'Amélioration : l\'étiquette de version du ☰ tient de nouveau sur une seule ligne, et le petit (i) du profil a disparu — appuyez sur vos points dans le panneau Défis pour parcourir l\'échelle des titres.',
  'changelog.e13.b11': 'Nouveau : les menus des jeux sur téléphone tenu à l\'horizontale ont eu droit à une refonte complète — les modes et les grilles de déblocage (comme les oiseaux de Meadow Flyer) remplissent le côté gauche, tandis que le nom du jeu, les options et le bouton Jouer s\'empilent dans une colonne à droite. Plus besoin de faire défiler pour trouver un mode.',
  'changelog.e13.b12': 'Nouveau : le ⏸ de Keep Defender ouvre maintenant le même menu pause que tous les autres jeux (reprendre / quitter vers le menu), au lieu d\'une simple superposition nue.',
  'changelog.e13.b13': 'Amélioration : les boîtes « Quitter cette partie ? » et de réinitialisation adoptent maintenant l\'apparence du jeu où vous êtes, et le bouton destructeur s\'illumine en rouge quand il est sélectionné, plus en bleu.',
  'changelog.e13.b14': 'Aperçu : le menu de Neon Snake affiche un mode « Amélioré » verrouillé (des bonus déchaînés), et Range laisse deviner un mode « Réaction » verrouillé (test de temps de réaction moyen) — les deux arrivent bientôt.',
  'changelog.e13.b15': 'Correction : fermer l\'écran « touchez pour jouer » ne clique plus sur ce qui se trouvait dessous (plus de démarrage accidentel d\'un jeu ou de changement de mode avec ce premier appui).',
  'changelog.e13.b16': 'Nouveau : 2048 a rejoint l\'étagère « bientôt disponible » — le classique puzzle où l\'on glisse et fusionne.',
  'changelog.e13.b17': 'Nouveau : les améliorations d\'Asteroids+ ont maintenant de petites icônes laser dans le sélecteur de niveau et au Drydock — repérez votre build d\'un coup d\'œil, sans avoir à lire.',
  'changelog.e13.b18': 'Nouveau : le Drydock affiche maintenant toutes les améliorations sur un seul écran (plus besoin de faire défiler pour trouver Continuer), dans les deux orientations.',
  'changelog.e13.b19': 'Nouveau : sur écrans tactiles, les cartes de boutique et de montée de niveau fonctionnent en appui pour sélectionner, appui à nouveau pour acheter — lisez ce que fait une amélioration avant de vous engager, et plus de choix accidentels. Un gros bouton ACHETER/PRENDRE apparaît pour la carte sélectionnée.',
  'changelog.e13.b20': 'Correction : les menus et panneaux ouverts ne laissent plus défiler la page derrière eux.',
  'changelog.e13.b21': 'Correction : les étiquettes de genre sur les tuiles des jeux sont plus faciles à lire (meilleur contraste), et la page d\'accueil ne bouge plus pendant le chargement des tuiles sur téléphone.',
  'changelog.e13.b22': 'Nouveau : les points de défi sont maintenant 10 fois plus élevés — les défis quotidiens rapportent 10 points, les hebdomadaires 50, et chaque seuil de titre a été ajusté en conséquence. Vos points enregistrés ont aussi été multipliés, personne n\'a rien perdu.',
  'changelog.e13.b23': 'Nouveau : les défis quotidiens sont maintenant correctement mélangés — une surprise différente chaque jour (la même pour tout le monde), au lieu de traverser une semaine facile puis une semaine brutale.',
  'changelog.e13.b24': 'Nouveau : les objectifs des défis ont été retravaillés dans tous les jeux après un passage en revue — les objectifs d\'Asteroids+ sont passés d\'un marathon 50k/150k à 15k/30k, Keep Defender demande la vague 5 ou la vague 10 (plus d\'objectif en double), Asteroids a gagné un palier plus dur à 8k, et les objectifs de Snake/Bubble Pop/Stack/Meadow Flyer ont été ajustés. Une « bonne partie » signifie maintenant franchir la barre quotidienne plus exigeante.',
  'changelog.e13.b25': 'Correction : la barre de score de Keep Defender occupe sa propre ligne en portrait sur toutes les tailles d\'écran (elle pouvait se glisser sous les boutons du haut sur tablette), et c\'est maintenant une fine bande sur téléphone.',
  'changelog.e13.b26': 'Amélioration : sur téléphone tenu à l\'horizontale, l\'en-tête de la page d\'accueil est compact, pour que les jeux soient visibles tout de suite.',
  'changelog.e12.title': 'Titres et meilleur partage 👑',
  'changelog.e12.b0': 'Nouveau : les oiseaux de Meadow Flyer sont maintenant de vrais personnages, et il y en a neuf — abeille, rouge-gorge, oiseau bleu, perroquet, plus un nouveau corbeau, une chouette, Bielik (le pygargue à queue blanche) et Raróg (le faucon de feu des légendes slaves), le tout couronné par un phénix de feu avec une traînée de braises incandescentes. Les icônes du menu montrent les vrais oiseaux (plus d\'icône jaune sur un oiseau bleu), et les déblocages forment une véritable échelle jusqu\'à 1 000 points mis de côté.',
  'changelog.e12.b1': 'Nouveau : chaque jeu a maintenant un menu ☰ (en haut à droite) qui affiche votre version du jeu et un bouton de mise à jour — grisé sur « À jour » quand vous êtes à jour, allumé quand une nouvelle version est prête (avec aussi un petit point sur ☰). Les mises à jour n\'interrompent plus jamais votre partie. Insérer et Réinitialiser les scores ont aussi été déplacés là-dedans.',
  'changelog.e12.b2': 'Nouveau : les Réglages affichent maintenant la version du site avec un bouton « Mettre à jour maintenant » qui actualise le site et tous les jeux d\'un coup — et les étiquettes de version partout indiquent quand la version a été déployée.',
  'changelog.e12.b3': 'Nouveau : gagnez un titre avec vos points de défi — du Gobelin des Caniveaux à l\'Empereur de l\'Éternité. Votre profil l\'affiche avec une lueur toujours plus brillante (et des étincelles aux rangs les plus élevés).',
  'changelog.e12.b4': 'Nouveau : appuyez sur le petit (i) à côté de votre titre pour voir toute l\'échelle — chaque rang, sa lueur, et les points qu\'il demande.',
  'changelog.e12.b5': 'Nouveau : dans le panneau Défis, appuyez sur votre total de points pour voir à quoi ils servent — l\'échelle des titres s\'ouvre directement là (d\'autres récompenses sont prévues).',
  'changelog.e12.b6': 'Amélioration : la page de profil a un look plus épuré — votre titre, nom, points de défi, bonnes parties et statistiques de jeu sont tous en haut.',
  'changelog.e12.b7': 'Nouveau : les cartes de score ont été entièrement repensées — chaque jeu partage une carte tape-à-l\'œil dans ses propres couleurs, avec un cadre lumineux, des étincelles et votre nom. Les speedruns affichent votre temps.',
  'changelog.e12.b8': 'Nouveau : le journal des parties sur Discord poste maintenant la carte de score elle-même, avec le lien de jeu juste en dessous.',
  'changelog.e12.b9': 'Nouveau : partager une carte de score ou votre profil ouvre maintenant un petit menu — envoyez-la directement vers une application, copiez l\'image, ou téléchargez-la.',
  'changelog.e12.b10': 'Correction : l\'image de profil partagée est maintenant recadrée sur son contenu (plus d\'image à moitié vide) et inclut les étincelles du titre.',
  'changelog.e12.b11': 'Correction : copier une image partagée ne la colle plus deux fois dans Discord et les autres messageries.',
  'changelog.e12.b12': 'Amélioration : les jeux s\'affichent parfaitement nets sur téléphone et les autres écrans haute densité (ils étaient légèrement flous avant).',
  'changelog.e12.b13': 'Nouveau : chaque jeu affiche maintenant le mode que vous jouez directement dans la barre de score (carte, difficulté, mode).',
  'changelog.e12.b14': 'Nouveau : réinitialiser vos données enregistrées demande maintenant de maintenir le bouton enfoncé pendant 3 secondes — plus d\'effacements accidentels.',
  'changelog.e12.b15': 'Correction : le mode Zen de Bubble Pop n\'arrive plus dans une impasse — vider le plateau célèbre votre réussite et en amène un tout neuf.',
  'changelog.e12.b16': 'Correction : Keep Defender sur téléphone tenu à l\'horizontale — la liste des tours défile maintenant, donc l\'Archer ne reste plus coincé hors de l\'écran.',
  'changelog.e12.b17': 'Correction : dans Neon Snake, faire glisser le plateau tout en haut ou tout en bas ne peut plus le cacher sous la barre de score ni pousser le mur du bas hors de l\'écran.',
  'changelog.e12.b18': 'Correction : dans Range, tourner votre téléphone en pleine partie ramène la cible actuelle à l\'écran.',
  'changelog.e12.b19': 'Correction : dans Neon Snake, les doubles virages rapides tombent maintenant exactement comme appuyés (les entrées sont mises en mémoire tampon, aucune n\'est perdue).',
  'changelog.e12.b20': 'Correction : Meadow Flyer sur grand écran ne démarre plus par un long vol vide — les premiers arbres sont à une distance raisonnable, comme sur téléphone.',
  'changelog.e12.b21': 'Correction : les cartes de score sont plus nettes — l\'image partagée garde maintenant sa pleine résolution, elle ne paraît plus pixelisée en zoomant ou postée sur Discord depuis un mobile.',
  'changelog.e12.b22': 'Correction : dans Asteroids+, « Réinitialiser les scores » réinitialise maintenant bien Asteroids+ — cela effaçait à la place les meilleurs scores d\'Asteroids Classique (pardon !) en laissant les siens intacts.',
  'changelog.e12.b23': 'Correction : le bouton 🏆 défis dans Asteroids+ affiche enfin vraiment les objectifs quotidiens et hebdomadaires (il ouvrait un panneau vide avant).',
  'changelog.e12.b24': 'Correction : la banderole « ★ Nouveau record ! » dans Meadow Flyer et Stack apparaît maintenant quand vous battez votre record — elle ne s\'affichait jamais avant.',
  'changelog.e12.b25': 'Correction : les sons de montée de niveau et de balle perdue de Brick Breaker, ainsi que le son de fin de partie de Bubble Pop, sont de retour (ils étaient devenus muets).',
  'changelog.e12.b26': 'Correction : les chronos de speedrun dans les deux Asteroids ne continuent plus de tourner quand le jeu est en pause ou dans un menu — et terminer un speedrun sur l\'image exacte où vous vous crashez compte maintenant comme la victoire que c\'est.',
  'changelog.e12.b27': 'Correction : le bouton de vitesse de Keep Defender affiche maintenant honnêtement 1x/2x (il n\'y a pas de 3x), et la carte Marais n\'affaiblit plus secrètement vos archers — elle se joue exactement comme sa description le dit.',
  'changelog.e12.b28': 'Correction : « Réinitialiser toutes les données » sur la page d\'accueil conserve maintenant le nom de joueur que vous avez choisi.',
  'changelog.e12.b29': 'Correction : les défis « Faire 3 bonnes parties aujourd\'hui » et « 10 bonnes parties cette semaine » suivent enfin vraiment vos bonnes parties et attribuent leurs points — ils ne pouvaient jamais se terminer avant. La progression des défis ne peut plus non plus compter une partie deux fois.',
  'changelog.e12.b30': 'Amélioration : le score de Keep Defender récompense maintenant la difficulté — les points comptent ×1,5 en Moyen et ×2 en Difficile, pour qu\'une partie difficile ne soit plus battue par une partie facile tranquille (les récompenses en or restent inchangées).',
  'changelog.e12.b31': 'Correction : les boss de Keep Defender étaient presque impossibles à tuer en Difficile — ils ont maintenant moitié moins de points de vie en Difficile et 30 % de moins en Moyen (les boss en Facile restent inchangés), se déplacent 20 % plus lentement, et ne reçoivent plus le boost de vitesse caché lié à la jauge de menace (les ennemis normaux, eux, l\'ont toujours).',
  'changelog.e12.b32': 'Amélioration : Keep Defender reste lisible et audible en fin de partie — avec un plateau plein de tours, les effets de sorts/explosions se raréfient au-delà d\'un certain budget visuel, et les sons de tir rapide sont limités en fréquence au lieu de s\'empiler en cacophonie.',
  'changelog.e12.b33': 'Amélioration : les publications de score sur Discord respectent maintenant vos choix de confidentialité — rien n\'est envoyé sans l\'acceptation de la bannière de cookies, les publications sont anonymes par défaut, et un nouvel interrupteur dans les ⚙️ Réglages n\'affiche votre pseudo que si vous voulez la gloire. Les publications sont aussi limitées à environ une par minute.',
  'changelog.e12.b34': 'Correction : sur les écrans à haute fréquence de rafraîchissement (téléphones et moniteurs 90/120/144 Hz), cinq jeux tournaient jusqu\'à deux fois trop vite — Meadow Flyer, Stack, Range, Bubble Pop et Keep Defender se jouent maintenant à la bonne vitesse sur tous les écrans. Les temps de réaction et de sprint enregistrés dans Range y sont aussi précis, et le Time Attack de Stack dure bien ses 60 secondes complètes.',
  'changelog.e11.title': 'Lancez les dés 🎲',
  'changelog.e11.b0': 'Nouveau : un bouton 🎲 Aléatoire sur la page d\'accueil choisit un jeu pour vous — il privilégie ceux que vous n\'avez pas encore essayés, une façon simple de découvrir quelque chose de nouveau.',
  'changelog.e11.b1': 'Nouveau : un défi quotidien et hebdomadaire à tirage aléatoire — « jouez au choix du jour » — qui vous pousse vers des jeux que vous auriez pu manquer.',
  'changelog.e11.b2': 'Correction : dans Bubble Pop, les bulles s\'accrochent maintenant correctement à la rangée du haut au lieu de disparaître parfois ou de se coller au mauvais endroit.',
  'changelog.e10.title': 'Votre profil de joueur 👤',
  'changelog.e10.b0': 'Nouveau : une page Mon profil (menu → 👤 Mon profil) — voyez vos totaux, votre jeu et genre préférés, vos bonnes parties, et votre meilleur score dans chaque mode de chaque jeu, présentés en tuiles et classés selon votre temps de jeu. Partagez le tout sous forme d\'image.',
  'changelog.e10.b1': 'Tout reste sur votre appareil (pas d\'inscription nécessaire), et se transfère grâce à Exporter / importer.',
  'changelog.e9.title': 'Le son est activé 🔊',
  'changelog.e9.b0': 'Nouveau : chaque jeu a maintenant de la musique — une piste de fond thématique qui joue dans le menu et continue pendant que vous jouez. Keep Defender change même d\'air selon la carte (prairie, glace, lave, désert, donjon, marais).',
  'changelog.e9.b1': 'Amélioration : des effets sonores plus percutants dans tous les jeux — des coups, éclatements, explosions et bonus plus riches, avec une touche d\'espace. Les tirs d\'Asteroids sonnent maintenant comme un vrai laser.',
  'changelog.e9.b2': 'Nouveau : de petites fanfares de victoire / défaite / montée de niveau sur les écrans de fin.',
  'changelog.e9.b3': 'Nouveau : une page Réglages (menu → ⚙️ Réglages) pour activer ou couper les effets sonores et la musique — ou régler leur volume — pour tout le site d\'un coup. Chaque jeu garde aussi son propre menu son.',
  'changelog.e8.title': 'Asteroids+ rejoint le nouveau menu',
  'changelog.e8.b0': 'Nouveau : Asteroids+ s\'ouvre maintenant avec le même menu à cartes en un seul écran que tous les autres jeux — choisissez Montée de niveau, Jalons ou Boutique de vague (plus le Speedrun) sur un seul écran, au-dessus d\'un champ d\'astéroïdes et de vaisseaux ennemis à la dérive. Son sélecteur de montée de niveau et sa boutique entre les vagues ont aussi eu droit au même look.',
  'changelog.e8.b1': 'Nouveau : Asteroids+ vous demande confirmation avant de quitter une partie depuis le menu, pour que vous ne perdiez jamais une partie par accident.',
  'changelog.e7.title': 'Un menu tout neuf pour chaque jeu',
  'changelog.e7.b0': 'Nouveau : chaque jeu s\'ouvre maintenant avec un menu repensé — choisissez votre mode et vos options via des cartes, curseurs et interrupteurs, sur un doux fond animé du jeu lui-même (astéroïdes à la dérive, serpent qui erre, feuilles de prairie le jour et lucioles la nuit, votre carte de Keep Defender, et plus encore). Jouer, pause, 🎮 Contrôles et 🏆 Défis fonctionnent de la même façon dans chaque jeu.',
  'changelog.e7.b1': 'Nouveau : Range — choisissez Chronométré (10 / 30 / 60 s) ou un objectif Sprint (10 / 50 / 100 cibles), avec un interrupteur pour des cibles mobiles.',
  'changelog.e7.b2': 'Nouveau : Keep Defender — choisissez votre carte via un sélecteur avec aperçu et réglez la difficulté sur un curseur.',
  'changelog.e7.b3': 'Nouveau : Meadow Flyer — choisissez Jour ou Nuit et votre oiseau dans une grille ; les journées ensoleillées ont maintenant des feuilles qui dérivent au vent.',
  'changelog.e7.b4': 'Nouveau : Neon Snake, Brick Breaker et Stack — les mêmes menus à cartes/curseurs, avec vos choix enregistrés dans le lien pour que vous puissiez partager exactement la même configuration.',
  'changelog.e7.b5': 'Nouveau : vous commencez maintenant avec un pseudo aléatoire et amusant (comme « Loutre Sournoise ») au lieu de « anonyme » — changez-le à tout moment dans le menu (✏️).',
  'changelog.e7.b6': 'Nouveau : une page Conditions d\'utilisation — retrouvez-la dans le menu sous Licence et confidentialité.',
  'changelog.e7.b7': 'Correction : la recherche dans le journal des modifications se limite maintenant aux lignes qui correspondent à vos mots et les surligne.',
  'changelog.e6.title': 'Des défis dans vos jeux',
  'changelog.e6.b0': 'Nouveau : Asteroids et Bubble Pop — un bouton 🏆 Défis directement dans le jeu affiche les objectifs quotidiens et hebdomadaires du jour (et s\'illumine doucement quand le jeu où vous êtes est celui du défi), pour que vous puissiez vérifier l\'objectif sans revenir au menu.',
  'changelog.e6.b1': 'Nouveau : un bouton retour en haut sur la page d\'accueil — il apparaît une fois que vous avez fait défiler la liste des jeux vers le bas.',
  'changelog.e6.b2': 'Amélioration : plus de fenêtre pour votre nom à l\'arrivée — vous commencez anonyme, et ne définissez un nom d\'affichage que si vous le voulez (menu → ✏️). Une chose de moins entre vous et les jeux.',
  'changelog.e6.b3': 'Changement : Bubble Pop — Speedrun est maintenant un interrupteur « Descente chronométrée » que vous pouvez activer pour Arcade ou Sans fin (laissez-le désactivé et la grille avance selon vos tirs plutôt que sur un chrono). Zen ne descend jamais.',
  'changelog.e5.title': 'Murs, appuis et rotation',
  'changelog.e5.b0': 'Nouveau : Asteroids et Bubble Pop — un bouton 🎮 Contrôles (en haut à droite) montre comment jouer (clavier, souris, tactile) à tout moment, même en pleine partie ; et le bouton Jouer est maintenant plus grand et toujours accessible.',
  'changelog.e5.b1': 'Nouveau : un badge DÉFI sur les tuiles des jeux — quand un jeu est au centre du défi quotidien du jour ou du défi hebdomadaire de la semaine, sa tuile est marquée pour le repérer d\'un coup d\'œil, avec un filtre DÉFI correspondant pour n\'afficher que ces jeux.',
  'changelog.e5.b2': 'Amélioration : la recherche correspond maintenant aussi aux étiquettes d\'un jeu — tapez « défi », « populaire », « nouveau » ou « mise à jour » pour n\'afficher que ces jeux-là.',
  'changelog.e5.b3': 'Nouveau : Bubble Pop — un menu de démarrage repensé. Choisissez votre mode via des cartes (Arcade / Speedrun / Sans fin / Zen) qui montrent à quoi chacun ressemble, avec une petite icône et votre meilleur score ; tout le menu se pilote bien au clavier, la pause fonctionne pareil avec Échap ou le bouton ⏸, et appuyer sur Menu en pleine partie demande confirmation avant d\'abandonner votre partie.',
  'changelog.e5.b4': 'Nouveau : Asteroids — un menu de démarrage repensé. Choisissez votre mode via des cartes (Classique / Classique+) qui montrent à quoi chacun ressemble ainsi que votre meilleur score, activez Speedrun avec une case à cocher, et pilotez tout le menu au clavier. Appuyer sur Menu en pleine partie demande maintenant confirmation avant d\'abandonner votre partie, et vos choix vivent dans le lien pour que vous puissiez partager exactement la même configuration.',
  'changelog.e5.b5': 'Correction : Asteroids et Asteroids+ — en mode Speedrun, votre résultat partagé/Discord met maintenant en avant votre temps de complétion (le véritable objectif), au lieu de votre score et de votre vague.',
  'changelog.e5.b6': 'Amélioration : le jeu hors ligne — ouvrez komyo une fois en ligne et tous les jeux sont sauvegardés pour jouer hors ligne (même ceux que vous n\'avez pas encore ouverts), et actualiser sans connexion ne casse plus l\'application. Essayez en mode avion !',
  'changelog.e5.b7': 'Nouveau : Bubble Pop — la zone de jeu a maintenant de vrais murs et un plafond, en portrait comme en paysage. Les tirs rebondissent sur les murs latéraux et se collent en haut, et sur les grands écrans les bulles sont dans une colonne centrée.',
  'changelog.e5.b8': 'Correction : Bubble Pop — sur téléphone, toucher un nouvel endroit tire maintenant vers cet endroit. Avant, un nouvel appui pouvait encore tirer vers l\'endroit visé précédemment.',
  'changelog.e5.b9': 'Nouveau : Neon Snake — sur téléphone, faites glisser la poignée ↕ dans le coin du plateau pour déplacer la zone de jeu vers un endroit plus confortable. C\'est mémorisé pour la prochaine fois.',
  'changelog.e5.b10': 'Correction : les jeux installés respectent maintenant le verrouillage de rotation de votre téléphone — si vous avez désactivé la rotation automatique, l\'application reste en place au lieu de tourner. (Réinstallez le jeu pour en profiter.)',
  'changelog.e4.title': 'Peaufinage et corrections',
  'changelog.e4.b0': 'Nouveau : Asteroids+ — un gros rééquilibrage. C\'est maintenant une partie finie qui se termine par une finale à deux boss à la vague 30 (battez-les pour une Victoire), les améliorations sont plus douces et expirent maintenant après quelques vagues pour que vous continuiez à choisir, et un nouvel ennemi kamikaze rouge (dès la vague 6) charge et explose — ne le faites pas exploser en pleine face.',
  'changelog.e4.b1': 'Nouveau : Asteroids+ — une légère assistance de visée : les tirs qui frôlent à peine un ennemi se courbent pour le toucher.',
  'changelog.e4.b2': 'Amélioration : Asteroids+ — votre vaisseau est maintenant d\'un blanc éclatant pour ne jamais se perdre parmi les astéroïdes, les boss peuvent riposter aussi loin que vous pouvez tirer, et les bonus sont ajustés pour qu\'une bonne partie soit récompensée sans vous enterrer sous les power-ups.',
  'changelog.e4.b3': 'Nouveau : Meadow Flyer — les longues parties ne stagnent plus. Au-delà d\'un score de 55, le monde accélère, culminant vers 100, pour qu\'une superbe partie reste un vrai défi.',
  'changelog.e4.b4': 'Correction : sur les téléphones étroits, la barre du haut ne s\'entasse plus — le bouton Menu et les boutons son/pause restent bien séparés.',
  'changelog.e4.b5': 'Correction : le bouton ‹ Menu ne s\'affiche maintenant que pendant que vous jouez réellement, pas dans le propre menu d\'un jeu (où on pouvait facilement le confondre avec « retour au site »).',
  'changelog.e4.b6': 'Correction : Range — sur téléphone, le marqueur de tir reste maintenant exactement là où vous avez tiré, au lieu de dériver avec votre doigt.',
  'changelog.e4.b7': 'Correction : Bubble Pop — la grille garde maintenant sa forme quand une nouvelle rangée descend (plus de saut latéral), et votre tir se colle à l\'endroit visé au lieu de parfois glisser derrière le groupe.',
  'changelog.e4.b8': 'Amélioration : Bubble Pop — les bulles s\'affichent nettes et précises sur les écrans haute résolution.',
  'changelog.e4.b9': 'Amélioration : les sections Points forts et Genres du panneau Filtres sont maintenant des puces à appuyer (comme les boutons Type) au lieu de cases à cocher — et le panneau peut être redimensionné.',
  'changelog.e4.b10': 'Nouveau : vous pouvez maintenant insérer toute l\'arcade sur votre site, pas seulement un seul jeu (menu → « Insérer un jeu »).',
  'changelog.e4.b11': 'Nouveau : des liens directs vers les pages du menu — par exemple komyo.online/?m=faq ou ?m=changelog ouvrent directement ce panneau.',
  'changelog.e4.b12': 'Nouveau : une petite astuce « ? » dans la barre de recherche — recherchez par nom de jeu ou par genre (arcade, puzzle, enfants…).',
  'changelog.e4.b13': 'Amélioration : les publications de score sur notre Discord affichent maintenant un lien soigné « ▶ Jouer à ce jeu sur Komyo » au lieu d\'une longue adresse brute.',
  'changelog.e4.b14': 'Correction : les défis terminés apparaissent maintenant de façon fiable dans votre Historique — même si vous en avez terminé un dans un jeu sans rouvrir la page d\'accueil ce jour-là.',
  'changelog.e4.b15': 'Nouveau : Keep Defender — choisissez une difficulté (Facile / Moyen / Difficile) sur l\'écran de démarrage. Les niveaux plus durs rendent les ennemis plus résistants (les points de vie s\'accumulent maintenant à chaque vague) et resserrent votre or, pour que ça reste un vrai combat.',
  'changelog.e4.b16': 'Nouveau : Keep Defender — réglez la priorité de ciblage de chaque tour (Premier / Dernier / Plus fort / Plus faible / Plus proche) depuis son panneau.',
  'changelog.e4.b17': 'Amélioration : Keep Defender — votre résultat partagé/Discord affiche maintenant votre Score en plus des vagues survécues (pour qu\'une difficulté plus dure se lise vraiment comme la performance qu\'elle est).',
  'changelog.e3.title': 'Défis, cartes de score et plus encore',
  'changelog.e3.b0': 'Nouveau : les tuiles des jeux affichent maintenant jusqu\'à trois étiquettes de genre, chacune dans sa propre couleur cohérente, et vous pouvez filtrer par n\'importe laquelle.',
  'changelog.e3.b1': 'Nouveau : tout un tas de nouveaux jeux arrive — jetez un œil aux tuiles « bientôt disponible » pour voir ce qu\'on prépare.',
  'changelog.e3.b2': 'Correction : Keep Defender — le château et le chemin ne sont plus coupés par le bord de l\'écran, et le plateau ne touche plus la barre de score.',
  'changelog.e3.b3': 'Correction : Bubble Pop — en paysage sur téléphone, les bulles de départ n\'encombrent plus le lanceur.',
  'changelog.e3.b4': 'Correction : Asteroids+ — le boss ne chevauche plus la barre de score sur les écrans de téléphone.',
  'changelog.e3.b5': 'Nouveau : Asteroids+ — l\'Asteroids roguelite (XP, améliorations, boss, boutique de vague) est maintenant un jeu à part entière. Asteroids tout court reste le classique d\'arcade. Choisissez votre mode directement dans chaque jeu.',
  'changelog.e3.b6': 'Nouveau : Défis quotidiens et hebdomadaires — appuyez sur 🏆 pour le défi du jour ainsi qu\'un défi hebdomadaire plus important. Gagnez des points (1 par défi quotidien, 5 par hebdomadaire) qui ne font que monter, avec une liste Historique de tout ce que vous avez accompli (jusqu\'à un an en arrière, « Charger plus » pour remonter).',
  'changelog.e3.b7': 'Nouveau : cartes de score — partagez une image de votre score depuis l\'écran de fin (📷), directement vers vos applications.',
  'changelog.e3.b8': 'Nouveau : insérez des jeux sur votre propre site ou blog — un bouton Insérer dans le menu son de chaque jeu, ainsi que « Insérer un jeu » dans le menu principal.',
  'changelog.e3.b9': 'Nouveau : un bouton pause ⏸ dans chaque jeu (en haut à droite, à côté du son).',
  'changelog.e3.b10': 'Nouveau : exportez / importez vos données — sauvegardez-les ou déplacez-les entre appareils, sans besoin de compte (dans le menu sous « Vos données »).',
  'changelog.e3.b11': 'Nouveau : une vue en tuiles Compacte (bouton près des filtres) pour que plus de jeux tiennent à l\'écran, plus une FAQ et une politique de confidentialité dans le menu.',
  'changelog.e3.b12': 'Nouveau : Neon Snake a des boutons flèches à l\'écran sur téléphone — appuyez pour tourner au lieu de glisser ; déplacez le pad où vous voulez, ou rangez-le (et faites-le revenir) avec le bouton ✕ / 🎮.',
  'changelog.e3.b13': 'Nouveau : Brick Breaker sur téléphone — maintenez le côté gauche ou droit de l\'écran pour faire glisser la raquette (au lieu de la traîner).',
  'changelog.e3.b14': 'Nouveau : modes de Bubble Pop — Arcade et Sans fin montent maintenant en pression selon vos tirs plutôt que sur un chrono, avec un nouveau mode Speedrun qui garde le minuteur. Votre bulle chargée change aussi automatiquement si sa couleur n\'est plus sur le plateau.',
  'changelog.e3.b15': 'Correction : les jeux se réajustent maintenant correctement quand vous tournez votre téléphone entre portrait et paysage — Stack reste centré, Brick Breaker garde de la place pour réagir, Bubble Pop reste en portrait sur téléphone, le menu et le donjon de Tower Defense tiennent dans l\'écran, l\'écran de fin d\'Asteroids tient en paysage.',
  'changelog.e3.b16': 'Correction : Brick Breaker — la raquette se déplace maintenant instantanément et s\'arrête au moment où vous relâchez ; en portrait, les briques du haut ne se cachent plus sous la barre de score.',
  'changelog.e3.b17': 'Correction : Brick Breaker — la raquette attend centrée jusqu\'à ce que vous lanciez la balle, et les indications de déplacement ◀ ▶ à l\'écran s\'affichent maintenant aussi en portrait (pas seulement en paysage).',
  'changelog.e3.b18': 'Correction : Asteroids et Asteroids+ — un mode est présélectionné pour que Jouer fonctionne tout de suite, et choisir un mode fonctionne maintenant sur téléphone.',
  'changelog.e3.b19': 'Correction : le panneau Filtres tient maintenant dans l\'écran sur téléphone en paysage — il ne dépasse plus du bord, et la liste des genres défile.',
  'changelog.e3.b20': 'Correction : la barre de progression « course à 100 » de Range suit maintenant les cibles touchées, pas les points.',
  'changelog.e3.b21': 'Correction : Keep Defender — le bouton d\'amélioration est grisé jusqu\'à ce que vous puissiez vous le permettre, puis apparaît.',
  'changelog.e2.title': 'Nous sommes maintenant Komyo Games',
  'changelog.e2.b0': 'Nouveau nom et logo : funyo devient Komyo Games — les mêmes jeux, avec une nouvelle mascotte renard.',
  'changelog.e2.b1': 'Nouveau : votre score se publie automatiquement sur notre Discord à la fin de la partie — maintenant avec le mode de jeu et les statistiques (précision, niveau, vague…). Définissez un nom d\'affichage dans le menu, ou restez anonyme.',
  'changelog.e1.title': 'Refonte de l\'accueil et peaufinage',
  'changelog.e1.b0': 'Nouveau : page d\'accueil repensée — menu coulissant, recherche instantanée et filtres de genre (vos filtres s\'enregistrent maintenant dans le lien, pour que vous puissiez les mettre en favoris).',
  'changelog.e1.b1': 'Nouveau : des badges NOUVEAU et MISE À JOUR sur les tuiles des jeux, pour repérer facilement les jeux récents et récemment améliorés.',
  'changelog.e1.b2': 'Nouveau : « Réinitialiser toutes les données » pour effacer vos scores, votre progression et vos favoris dans tous les jeux.',
  'changelog.e1.b3': 'Nouveau : ce journal des modifications 🙂',
  'changelog.e1.b4': 'Correction : Brick Breaker tournait trop vite sur certains téléphones — la vitesse est maintenant cohérente partout.',
  'changelog.e1.b5': 'Correction : le mode « Sprint » de Range est maintenant une vraie course à 100 cibles.',
  'changelog.e0.title': 'Lancement des premiers jeux',
  'changelog.e0.b0': 'Ajout de 8 jeux : Asteroids, Keep Defender, Bubble Pop, Brick Breaker, Stack, Meadow Flyer, Range et Neon Snake.',
  'changelog.e22.title': 'komyo parle aussi français ! 🇫🇷',
  'changelog.e22.b0': 'Nouveau : komyo parle maintenant aussi français ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Français dans ⚙️ Paramètres sur la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais, le polonais, l\'espagnol et le portugais sont aussi disponibles, et d\'autres langues arrivent bientôt.',
  'changelog.e23.title': 'komyo parle aussi italien maintenant ! 🇮🇹',
  'changelog.e23.b0': 'Nouveau : komyo parle maintenant aussi italien ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Italiano dans ⚙️ Paramètres sur la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais, le polonais, l\'espagnol, le portugais et le français sont aussi disponibles, et d\'autres langues arrivent bientôt.',
  'changelog.e24.title': 'komyo parle aussi tchèque maintenant ! 🇨🇿',
  'changelog.e24.b0': 'Nouveau : komyo parle maintenant aussi tchèque ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Čeština dans ⚙️ Paramètres sur la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais, le polonais, l\'espagnol, le portugais, le français et l\'italien sont aussi disponibles, et d\'autres langues arrivent bientôt.',
  'changelog.e25.title': 'komyo parle aussi ukrainien maintenant ! 🇺🇦',
  'changelog.e25.b0': 'Nouveau : komyo parle maintenant aussi ukrainien ! Tout le site — chaque jeu, chaque menu et chaque écran — est traduit. Choisissez Українська dans ⚙️ Paramètres sur la page d\'accueil, ou dans le menu ☰ de n\'importe quel jeu. L\'anglais, le polonais, l\'espagnol, le portugais, le français et l\'italien sont aussi disponibles, et d\'autres langues arrivent bientôt.',
  'changelog.e30.title': 'Boucliers plus précis et site plus rapide ⚡',
  'changelog.e30.b0': 'Correctif : Forcefield bloque désormais chaque tir que le bouclier croise visiblement — le test suit le vrai trajet du laser à travers le dôme, ce qui échouait surtout aux bords du plateau.',
  'changelog.e30.b1': 'Correctif : enregistrer votre nom affiche un « Enregistré ✓ » et le nouveau nom apparaît partout immédiatement.',
  'changelog.e30.b2': 'Nouveau : le site charge nettement plus vite — seule VOTRE langue est téléchargée au départ (environ un huitième de l\'ancien paquet) ; les autres arrivent discrètement en arrière-plan, le changement de langue hors ligne fonctionne donc toujours.',
  'changelog.e29.title': 'Une maison et une boutique plus rangées 🧹',
  'changelog.e29.b0': 'Nouveau : les sections de la page d\'accueil se replient — cliquez sur le nom d\'une section pour la plier (la flèche ▸ montre qu\'elle se rouvre). Vos plis sont mémorisés.',
  'changelog.e29.b1': 'Nouveau : le menu du bord droit en montre plus d\'un coup d\'œil — votre nom sous Profil, vos 🏆 cumulés sous Défis et la progression de la collection sous Collection.',
  'changelog.e29.b2': 'Changement : des menus allégés — la carte de profil a quitté le ☰ de l\'accueil (le Profil vit dans le menu rapide), les Réglages affichent aussi le point de mise à jour, et le ☰ de chaque jeu devient Mettre à jour · Plein écran · Langue · Intégrer · Réinitialiser.',
  'changelog.e29.b3': 'Correctif : les vignettes de la Collection montrent le VRAI rendu en jeu des objets par défaut — les anneaux et le marqueur de Range, l\'abeille, le château de pierre, les bulles qui éclatent et le tir doré de Forcefield.',
  'changelog.e29.b4': 'Correctif : les publications de score sur Discord ne spamment plus — bien espacées, et une partie à zéro point ne publie rien.',
  'changelog.e29.b5': 'Correctif : la flèche » de Joués récemment n\'apparaît que s\'il y a vraiment quelque chose à faire défiler.',
  'changelog.e28.title': 'Trophées, favoris et correctifs 🛠️',
  'changelog.e28.b0': 'Correctif : les défis hebdomadaires terminés dans un jeu versent désormais toujours leurs trophées — même si vous n\'ouvrez la page d\'accueil que quelques jours plus tard. Les défis aléatoires « jouez au choix du jour » affichent enfin leur jeu et leur progression dans les jeux aussi.',
  'changelog.e28.b1': 'Correctif : réorganiser les ★ Favoris avec une recherche ou un filtre actif pouvait effacer en silence les favoris masqués — ils restent en place désormais.',
  'changelog.e28.b2': 'Correctif : changer de langue en pleine partie ne redémarre plus le jeu — votre run continue et le changement s\'applique aussitôt. Les liens ?lang= fonctionnent enfin.',
  'changelog.e28.b3': 'Nouveau : acheter un objet à 🏆 100+ dans la Collection demande d\'abord « dépenser ? » — fini de perdre des semaines de trophées sur un appui malheureux.',
  'changelog.e28.b4': 'Changement : Importer dans les Réglages remplace désormais entièrement les données de l\'appareil par la sauvegarde, comme promis — plus de mélange entre deux profils.',
  'changelog.e28.b5': 'Correctif : au retour d\'un jeu, la page d\'accueil affiche votre partie immédiatement — Joués récemment et les points de notification ne restent plus à la traîne.',
  'changelog.e28.b6': 'Correctif : Forcefield — le bouclier est un peu plus indulgent (les tirs qui semblaient bloqués SONT bloqués), la station de combat ne se cache plus sous la pastille de score sur les téléphones en paysage, et les touches pressées avec un menu ouvert ne glissent plus de tir en douce.',
  'changelog.e27.title': 'Page d\'accueil repensée 🏠',
  'changelog.e27.b0': 'Nouveau : les jeux se rangent désormais sur quatre étagères — ★ Favoris, Joués récemment, Tous les jeux et Bientôt. Solo et multijoueur cohabitent dans Tous les jeux (les vignettes multijoueur gardent leur badge 👥, et le filtre Type les sépare toujours).',
  'changelog.e27.b1': 'Nouveau : Joués récemment — les cartes complètes des jeux auxquels vous avez vraiment joué, du plus récent au plus ancien, dans une rangée à défilement latéral avec un bouton ». Ce qui compte, c\'est de lancer une partie (choisir un mode et appuyer sur Jouer).',
  'changelog.e27.b2': 'Nouveau : réorganisez vos ★ Favoris par glisser-déposer — sur téléphone, maintenez une vignette un instant pour la soulever. Une copie translucide de la carte montre exactement où elle atterrira.',
  'changelog.e27.b3': 'Nouveau : un menu rapide sur le bord droit — Profil (portant votre titre actuel), Défis et Collection en gros boutons. Il se replie derrière un onglet ‹‹ quand l\'écran est étroit ou quand vous le masquez — et il retient votre choix.',
  'changelog.e27.b4': 'Nouveau : des points de notification — Profil s\'allume quand vous gagnez un nouveau titre, Défis quand un défi quotidien ou hebdomadaire frais arrive (avec un badge ★ NOUVEAU dessus à l\'intérieur), et l\'onglet ‹‹ porte le point tant que le menu est masqué.',
  'changelog.e27.b5': 'Nouveau : les boutons Installer, Langue et Plein écran en haut à droite — le plein écran dépanne quand la fenêtre de l\'appli installée n\'a pas sa propre option. Le menu ☰ de chaque jeu a aussi reçu un interrupteur plein écran.',
  'changelog.e26.title': 'Corrections et finitions 🔧',
  'changelog.e26.b0': 'Correction : mettre à jour met vraiment tout à jour — fini le « Paramètres dit que tout est à jour, mais un jeu affiche encore le point de mise à jour » (un lutin de cache nourrissait les jeux fraîchement mis à jour de fichiers périmés). La page d\'accueil allume aussi le ☰ quand une mise à jour est prête.',
  'changelog.e26.b1': 'Correction : Range — l\'horloge avance en temps réel et plus seulement quand vous tirez, finir un Sprint montre la barre se remplir avec un éclat doré avant l\'écran de fin, et une partie record affiche enfin son « ★ Nouveau record ! ».',
  'changelog.e26.b2': 'Changement : l\'icône de Forcefield est désormais 🌐 (au lieu de 🛡️) — le globe colle mieux à la défense de l\'atmosphère d\'une planète.',
  'changelog.e26.b3': 'Correction : sur téléphone, les boutons de filtre, de jeu aléatoire et de vue compacte centrent correctement leur libellé.',

  // ---- Frog Siege (frog-bonk) ----
  'game.frog-bonk.title': 'Tape la Grenouille',
  'game.frog-bonk.blurb': 'Tape les grenouilles envahisseuses avec le marteau tout doux du roi avant qu\'elles ne grignotent le château.',
  'game.frog-bonk.menuTitle': 'TAPE LA GRENOUILLE',
  'game.frog-bonk.modeWaves': 'Vagues',
  'game.frog-bonk.modeEndless': 'Sans fin',
  'game.frog-bonk.modeZen': 'Zen',
  'game.frog-bonk.diffLabel': 'DIFFICULTÉ',
  'game.frog-bonk.diffEasy': 'Facile',
  'game.frog-bonk.diffMedium': 'Moyen',
  'game.frog-bonk.diffHard': 'Difficile',
  'game.frog-bonk.mechWaves15': '15 vagues',
  'game.frog-bonk.mechShop': 'Boutique d\'améliorations',
  'game.frog-bonk.mechRamps': 'De plus en plus vite',
  'game.frog-bonk.mechScoreChase': 'Course au score',
  'game.frog-bonk.mechNoLose': 'Impossible de perdre',
  'game.frog-bonk.mechChill': 'Tapes tranquilles',
  'game.frog-bonk.hintWaves': 'Tape chaque grenouille avant qu\'elle ne grignote le château. Dépense les mouches entre les vagues.',
  'game.frog-bonk.hintEndless': 'Elles n\'arrêtent jamais d\'arriver — combien de temps le château tiendra-t-il ?',
  'game.frog-bonk.hintZen': 'Pas de dégâts, pas de stress. Juste toi, un marteau et quelques grenouilles rigolotes.',
  'game.frog-bonk.defend': 'DÉFENDRE !',
  'game.frog-bonk.verbDefended': 'J\'ai tenu le château avec',
  'game.frog-bonk.waveN': 'vague {wave}',
  'game.frog-bonk.bonksN': '{kills} coups',
  'game.frog-bonk.victory': 'VICTOIRE !',
  'game.frog-bonk.zenDone': 'BELLE SESSION',
  'game.frog-bonk.endWavesWon': 'Les 15 vagues repoussées — la prairie est sauvée !',
  'game.frog-bonk.endWavesLost': 'Le château est tombé à la vague {wave}.',
  'game.frog-bonk.endEndless': 'Tenu {time} · {kills} grenouilles tapées.',
  'game.frog-bonk.endZen': '{kills} joyeux coups de marteau. À la prochaine.',
  'game.frog-bonk.finishSave': 'TERMINER ET SAUVER',
  'game.frog-bonk.hudCastle': 'CHÂTEAU',
  'game.frog-bonk.hudWave': 'VAGUE',
  'game.frog-bonk.hudFlies': 'MOUCHES',
  'game.frog-bonk.comboBadge': 'COMBO ×{n}',
  'game.frog-bonk.waveBanner': 'VAGUE {n}',
  'game.frog-bonk.shopTitle': 'VAGUE {wave} REPOUSSÉE !',
  'game.frog-bonk.fliesBanner': '{flies} mouches',
  'game.frog-bonk.shopHint': 'Dépense des mouches pour le château, puis sonne du cor.',
  'game.frog-bonk.nextWave': 'VAGUE SUIVANTE ▶',
  'game.frog-bonk.upRepair': 'Réparation',
  'game.frog-bonk.upRepairDesc': 'Rafistole les murs : +5 PV du château.',
  'game.frog-bonk.upWalls': 'Murs de Pierre',
  'game.frog-bonk.upWallsDesc': 'Des murs plus épais : +5 PV max (et +5 tout de suite).',
  'game.frog-bonk.upMoat': 'Douves',
  'game.frog-bonk.upMoatDesc': 'Les grenouilles qui traversent les douves se reposent bien plus longtemps.',
  'game.frog-bonk.upBallista': 'Baliste à Petits Pois',
  'game.frog-bonk.upBallistaDesc': 'Lance automatiquement des petits pois qui repoussent les grenouilles. Aucun dégât — taper, c\'est ton travail.',
  'game.frog-bonk.upMax': 'MAX',
  'game.frog-bonk.upMaxed': 'AU MAX',
  'game.frog-bonk.upLv': 'NV {lv}/{max}',
  'game.frog-bonk.buyCost': 'ACHETER · 🪰 {cost}',
  'game.frog-bonk.controlsTitle': 'Tape la Grenouille — Commandes',
  'game.frog-bonk.ctrlBonk': 'Taper une grenouille',
  'cos.set.frog-bonk.hammer': 'Habillages de marteau',
  'cos.set.frog-bonk.meadow': 'Saisons de la prairie',
  'cos.frog-bonk.hammer.wood.name': 'En Bois',
  'cos.frog-bonk.hammer.wood.desc': 'Le tapoteur royal, taillé dans le chêne.',
  'cos.frog-bonk.hammer.fluffy.name': 'Peluche',
  'cos.frog-bonk.hammer.fluffy.desc': 'Un maillet rose tout doux. Douceur maximale.',
  'cos.frog-bonk.hammer.candy.name': 'Sucre d\'Orge',
  'cos.frog-bonk.hammer.candy.desc': 'Rayé menthe et parfait pour taper.',
  'cos.frog-bonk.hammer.balloon.name': 'Gonflable',
  'cos.frog-bonk.hammer.balloon.desc': 'Il couine, il rebondit, et il marche étonnamment bien.',
  'cos.frog-bonk.hammer.gold.name': 'Or Royal',
  'cos.frog-bonk.hammer.gold.desc': 'De l\'or massif. Les grenouilles se sentent honorées.',
  'cos.frog-bonk.meadow.sunny.name': 'Ensoleillée',
  'cos.frog-bonk.meadow.sunny.desc': 'La prairie dans son plus beau jour.',
  'cos.frog-bonk.meadow.autumn.name': 'Automne',
  'cos.frog-bonk.meadow.autumn.desc': 'Herbes dorées et feuilles au vent.',
  'cos.frog-bonk.meadow.rain.name': 'Jour de Pluie',
  'cos.frog-bonk.meadow.rain.desc': 'Une pluie fine sur l\'herbe vert sombre.',
  'cos.frog-bonk.meadow.snow.name': 'Hiver',
  'cos.frog-bonk.meadow.snow.desc': 'Une neige silencieuse sur la prairie gelée.',
  'challenge.goal.frog-1': 'Marquez 800 dans Tape la Grenouille',
  'challenge.goal.frog-2': 'Marquez 2000 dans Tape la Grenouille',
  'changelog.e42.title': 'Plus fluide dans toute l\'arcade 🧈',
  'changelog.e42.b0': 'Correctif : la balle de Brick Breaker (et les bonus qui tombent) ainsi que le dôme de Forcefield glissent désormais parfaitement entre les pas de physique — le même remède anti micro-saccades que Vol des Prés ; visible sur tout écran, surtout à 120 Hz.',
  'changelog.e41.title': 'Nouveau titre, vraie fanfare ✨',
  'changelog.e41.b0': 'Correctif : décrocher un nouveau titre rallume le point doré sur le bouton Profil ET rejoue l\'éclat « ★ NOUVEAU TITRE » sur la carte de profil à l\'ouverture — l\'éclat s\'était perdu lors du passage du profil au panneau latéral.',
  'changelog.e40.title': 'Vol des Prés : fluide comme du beurre 🧈',
  'changelog.e40.b0': 'Correctif : le défilement est soyeux — tiges, collines, nuages et volatile glissent entre les pas de physique au lieu de micro-saccader, et les tapotements répondent plus vite. Surtout visible sur les écrans 120 Hz.',
  'changelog.e39.title': 'Tape la Grenouille : sièges plus spectaculaires 🪄',
  'changelog.e39.b0': 'Nouveau : les éclairs des grenouilles mages filent avec une traînée arcanique scintillante, un cœur incandescent et des étincelles en orbite, et éclatent à l\'impact.',
  'changelog.e39.b1': 'Nouveau : les pierres des brutes sont de vrais rochers qui tournoient — ombrés, mouchetés, avec un nuage de poussière en frappant les murs.',
  'changelog.e39.b2': 'Correctif : les grenouilles qui se faufilent derrière le château réapparaissent en silhouettes pâles au lieu de surgir devant la tour.',
  'changelog.e38.title': 'Défenseur du Donjon : des rôles plus nets 🧙',
  'changelog.e38.b0': 'Changement : le Mage ne ralentit plus les ennemis — geler, c\'est le travail de la tour de Givre. Les éclairs arcaniques gardent leurs dégâts de zone et leur perce-armure.',
  'changelog.e37.title': 'Bulles, encore plus brillantes 🫧',
  'changelog.e37.b0': 'Nouveau : les bulles sont de vrais bonbons — posées sur des ombres douces, éclairées par en dessous, avec double reflet et liseré de lumière. Couleurs et symboles restent tout aussi lisibles.',
  'changelog.e37.b1': 'Nouveau : le plateau a de la profondeur — de douces lueurs bonbon derrière le champ, des murs ombrés et un léger vignettage.',
  'changelog.e36.title': 'Vol des Prés façon livre d\'images 🌼',
  'changelog.e36.b0': 'Nouveau : la prairie a désormais des plans — nuages ombrés aux sommets ensoleillés, collines lointaines fondues dans la brume, soleil bas le jour et halo de lune la nuit, plus un léger étalonnage des couleurs.',
  'changelog.e36.b1': 'Nouveau : les tiges des fleurs ont des stries, des bords ensoleillés et des collerettes de feuilles aux passages, les fleurs sont ombrées et des touffes d\'herbe bordent le sol.',
  'changelog.e36.b2': 'Nouveau : chaque volatile a des yeux brillants et un doux ombrage du corps — mêmes silhouettes, plus de vie.',
  'changelog.e35.title': 'Défenseur du Donjon a de vraies tours 🏰',
  'changelog.e35.b0': 'Nouveau : les tours sont désormais des constructions dessinées — des plateformes de pierre qui grandissent visiblement à chaque amélioration (anneau de dalles → tambour de briques → couronne crénelée) et portent arcs, canons, aiguilles de glace, orbes arcaniques et harpes. Les emoji continuent de les marquer dans la barre de construction.',
  'changelog.e35.b1': 'Nouveau : les ennemis sont des créatures dessinées — le rat, la chauve-souris, le troll, le dragon, la tortue cuirassée et la fourmi gardent leur espèce mais gagnent des corps ombrés, des yeux brillants et des ombres au sol.',
  'changelog.e35.b2': 'Nouveau : les six cartes ont reçu la passe de texture — taches de couleur du terrain, micro-détail par carte (brins d\'herbe, scintillement de neige, grain de sable, braises de lave), une route usée aux pierres incrustées, un donjon en pierre et un léger étalonnage des couleurs.',
  'changelog.e35.b3': 'Nouveau : de meilleurs retours de bataille — les tours boostées par le barde scintillent d\'or avec une note flottante au lieu d\'un simple cercle, les ennemis gelés se couvrent de vrais éclats de glace au givre scintillant, et les flèches soulèvent des éclats à l\'impact.',
  'changelog.e35.b4': 'Changement : le multiplicateur adaptatif de MENACE n\'est plus plafonné à 5,0× — continuez de dominer et le jeu continue de grimper (et de rapporter plus de points).',
  'changelog.e35.b5': 'Nouveau : les bonus à ramasser ont été relookés — pièces d\'or frappées au reflet mouvant, orbe de hâte translucide et médaillons de bronze pour les événements, tous ancrés par une ombre douce.',
  'changelog.e34.title': 'Petites retouches pour Vol des Prés 🌼',
  'changelog.e34.b0': 'Correctif : les lucioles flottent désormais derrière les tiges des fleurs au lieu de briller devant.',
  'changelog.e34.b1': 'Correctif : les collines d\'arrière-plan ne disparaissent plus alors qu\'elles sont encore à moitié à l\'écran — elles sortent entièrement avant de revenir.',
  'changelog.e33.title': 'Tape la Grenouille passe en mode peinture 🎨🐸',
  'changelog.e33.b0': 'Nouveau : toute la prairie a reçu une passe de texture — des milliers de brins d\'herbe, de douces taches de couleur et une seule lumière chaude avec de vraies ombres portées, dans les quatre saisons.',
  'changelog.e33.b1': 'Nouveau : le château est désormais bâti en vraies pierres — briques patinées, mousse, fenêtre et porte chaleureusement éclairées, et une longue ombre du soir.',
  'changelog.e33.b2': 'Nouveau : les grenouilles (et le roi) ont des yeux brillants, des corps ombrés et des casques et équipements peaufinés ; un léger étalonnage des couleurs et un vignettage parachèvent la scène.',
  'changelog.e32.title': 'Tape la Grenouille joue franc jeu sur mobile 🐸📱',
  'changelog.e32.b0': 'Correctif : les grenouilles ne rôdent plus loin hors de l\'écran sur mobile — elles apparaissent juste au bord, et les brutes et mages ne lancent jamais pierres ni sorts depuis l\'extérieur de la vue.',
  'changelog.e32.b1': 'Correctif : le recul de la baliste à petits pois est désormais un bond en arrière visible au lieu d\'un saut instantané — fini de taper une grenouille qui s\'est téléportée en plein geste (et de perdre son combo sur ce raté).',
  'changelog.e32.b2': 'Correctif : les grenouilles repoussées ne peuvent plus être éjectées hors du bord de la prairie.',
  'changelog.e31.title': 'Nouveau jeu : Tape la Grenouille 🐸',
  'changelog.e31.b0': 'Nouveau : Tape la Grenouille — le roi grenouille défend son château de la prairie avec un marteau tout doux. Tape les grenouilles envahisseuses (chevaliers, mages, brutes et plus) avant qu\'elles ne grignotent les murs ; les grenouilles tapées rebondissent au loin avec une traînée arc-en-ciel.',
  'changelog.e31.b1': 'Trois façons de jouer : Vagues (15 vagues à vaincre avec une boutique d\'améliorations entre les vagues — douves, baliste à petits pois, murs de pierre), Sans fin (elles n\'arrêtent jamais) et Zen (impossible de perdre, que des coups joyeux). Facile, Moyen et Difficile.',
  'changelog.e31.b2': 'Collection : cinq habillages de marteau (peluche ! gonflable ! sucre d\'orge !) et quatre saisons de la prairie — soleil, automne, pluie et neige.',
  'changelog.e31.b3': 'Changement : la vignette de Sauts de Grenouille porte désormais l\'icône 🚧 — la grenouille a déménagé dans Tape la Grenouille.',
  'changelog.e31.b4': 'Correctif : couper la musique la coupe vraiment — un léger écho de réverbération continuait de jouer dans tous les jeux.',
  'changelog.e43.title': 'Une mise à jour pour les gouverner toutes 🔄',
  'changelog.e43.b0': 'Correctif : appuyer sur « Mettre à jour » (dans les Réglages ou le menu ☰ de n\'importe quel jeu) met désormais TOUT le site à la dernière version d\'un coup — avant, un jeu resté longtemps fermé pouvait garder une ancienne version jusqu\'à une mise à jour séparée.',
  'changelog.e43.b1': 'Nouveau : le stockage hors ligne est bien plus léger — les jeux partagent désormais un seul cache hors ligne au lieu de garder chacun sa copie des fichiers communs, et chaque jeu fonctionne toujours parfaitement hors ligne.',
  'changelog.e44.title': 'Tape la Grenouille : Zen plus soigné 🐸',
  'changelog.e44.b0': 'Correctif : en mode Zen de Tape la Grenouille, le sélecteur de difficulté est désormais grisé — en Zen on ne peut pas perdre, la difficulté n\'y changeait donc rien, et le menu le montre enfin au lieu de proposer un choix mort.',
  'changelog.e45.title': 'Partage ta partie sous forme de carte 📤',
  'changelog.e45.b0': 'Nouveau : le partage en fin de partie s\'articule désormais autour de ta carte de score — la carte s\'affiche directement, et un seul bouton Partager envoie l\'image elle-même (vers n\'importe quelle appli via le menu de partage du téléphone, ou copier/télécharger sur ordinateur). Fini le partage d\'une simple ligne de texte.',
  'changelog.e45.b1': 'Changement : le bouton de partage du site est lui aussi unique désormais — il ouvre le menu de partage sur mobile (toutes les applis) ou copie le lien sur ordinateur, au lieu d\'une rangée d\'icônes de réseaux.',
  'changelog.e46.title': 'Range : visée plus vive 🎯',
  'changelog.e46.b0': 'Correctif : dans Range, le réticule suit désormais la souris instantanément au lieu d\'accuser une image de retard — la visée est nette et réactive.',
  'changelog.e46.b1': 'Changement : l\'écran de fin a retiré un chiffre de temps déroutant — il n\'affiche plus que la précision, les touches et les ratés.',
  'changelog.e52.title': 'Une barre de collection plus claire 🎨',
  'changelog.e52.b0': 'Changement : votre barre de Collection indique désormais combien de skins vous avez débloqués sur le total (comme 20 / 90), pour voir d’un coup d’œil ce qu’il reste à collectionner — les trophées servent seulement à acheter et aux titres.',
  'changelog.e52.b1': 'Correction : sur les cartes de score partagées, le mode et la difficulté ne sont plus coupés dans les langues aux mots plus longs — la ligne se réduit pour tenir.',
  'changelog.e51.title': 'Promouvoir komyo + une barre de collection plus sympa 🎉',
  'changelog.e51.b0': 'Nouveau : un onglet « 🎉 Promouvoir » dans le menu — vous avez un site, un blog, une app ou une chaîne ? Intégrez komyo (ou n\'importe quel jeu) et nous mettrons un lien vers vous en avant. Contactez-nous et nous vous ajouterons à la liste.',
  'changelog.e51.b1': 'Changement : votre barre de Collection compte désormais les skins par défaut gratuits que vous possédez déjà, donc un nouveau profil affiche un vrai % de départ au lieu de 0 %.',
  'changelog.e50.title': 'Une musique qui monte avec l’action 🎵',
  'changelog.e50.b0': 'Nouveau : chaque jeu a désormais une musique plus riche et travaillée qui monte et redescend avec l’action — plus d’ennemis, plus de vitesse et d’enjeu font entrer le rythme et des couches supplémentaires, puis ça s’apaise quand le calme revient.',
  'changelog.e50.b1': 'Nouveau : chaque jeu a sa propre piste et son ambiance — deux jeux ne partagent plus la même mélodie.',
  'changelog.e50.b2': 'Nouveau : la musique de Neon Snake est désormais plus riche et plus pleine, et tu peux débloquer une version « Neon Banger » dans la Collection (🏆 100).',
  'changelog.e50.b3': 'Nouveau : écoute n’importe quelle piste dans la Collection avant de dépenser — appuie sur ▶ pour l’entendre d’abord.',
  'changelog.e49.title': 'Comment fonctionne la barre de Collection 🎨',
  'changelog.e49.b0': 'Précision : la barre de Collection mesure la progression selon les trophées dépensés par rapport au coût total de tous les skins — ainsi les skins plus chers la font avancer davantage, proportionnellement à leur coût, et un profil tout neuf reste à un vrai 0 %.',
  'changelog.e48.title': 'Progression de collection plus juste 🎨',
  'changelog.e48.b0': 'Changement : la barre de Collection mesure désormais les trophées dépensés par rapport au coût total de tous les skins, au lieu de compter les objets — ainsi un profil tout neuf démarre à un vrai 0 %, et un seul déblocage coûteux ne fait plus bondir la barre.',
  'changelog.e47.title': 'Cartes de score à scanner 📇',
  'changelog.e47.b0': 'Nouveau : ta carte de score porte désormais un QR code « scanne et joue » — vise une carte partagée (ou imprimée) avec ton téléphone et tu sautes directement dans le jeu.',
  'changelog.e47.b1': 'Correctif : la carte de score affiche maintenant le mode et la difficulté dans ta langue, au lieu de toujours en anglais.',
  'changelog.e47.b2': 'Correctif : Forcefield ouvre exactement le mode indiqué par un lien partagé — le mode/la difficulté du lien étaient ignorés au chargement.',
  'challenge.goal.sudoku-1': 'Résolvez une grille de Sudoku',
  'challenge.goal.sudoku-2': 'Marquez 1500 dans Sudoku',
  'game.sudoku.menuTitle': 'SUDOKU',
  'game.sudoku.modeClassic': 'Classique',
  'game.sudoku.modeDaily': 'Quotidien',
  'game.sudoku.modeZen': 'Zen',
  'game.sudoku.diffLabel': 'DIFFICULTÉ',
  'game.sudoku.diffEasy': 'Facile',
  'game.sudoku.diffMedium': 'Moyen',
  'game.sudoku.diffHard': 'Difficile',
  'game.sudoku.diffExpert': 'Expert',
  'game.sudoku.descClassic': 'Remplis chaque ligne, colonne et bloc 3×3 avec les chiffres 1 à 9. Trois erreurs et la partie s\'arrête.',
  'game.sudoku.descDaily': 'La grille du jour ({diff}) — la même pour tout le monde, une nouvelle chaque jour.',
  'game.sudoku.descZen': 'Pas de chrono, pas de fautes, pas de score. Juste toi et la grille.',
  'game.sudoku.solved': 'RÉSOLU !',
  'game.sudoku.outOfMistakes': 'TROP D\'ERREURS',
  'game.sudoku.tryAgain': 'Réessayer',
  'game.sudoku.endStats': '⏱ {time} · ✗ {mistakes} · 💡 {hints}',
  'game.sudoku.shareMsg': 'J\'ai résolu le Sudoku {diff} en {time} — score {score} !',
  'game.sudoku.hudMistakes': 'ERREURS',
  'game.sudoku.toolHint': 'Indice logique',
  'game.sudoku.toolPencil': 'Notes au crayon',
  'game.sudoku.toolErase': 'Effacer',
  'game.sudoku.toolUndo': 'Annuler',
  'game.sudoku.unitRow': 'la ligne {n}',
  'game.sudoku.unitCol': 'la colonne {n}',
  'game.sudoku.unitBox': 'le bloc {n}',
  'game.sudoku.techLocked': 'candidats verrouillés',
  'game.sudoku.techSets': 'paires et triplets',
  'game.sudoku.techWings': 'X-wing / XY-wing',
  'game.sudoku.hintWrong': 'Cette case est fausse — efface-la d\'abord.',
  'game.sudoku.hintNaked': 'Seul le {digit} peut aller dans cette case.',
  'game.sudoku.hintHidden': 'Dans {unit}, le {digit} ne peut aller que dans cette case.',
  'game.sudoku.hintReveal': 'Celle-ci est offerte.',
  'game.sudoku.hintVia': '(nécessite d\'abord {tech})',
  'game.sudoku.hintApplyBtn': 'APPLIQUER',
  'game.sudoku.hintApply': 'touchez encore pour appliquer',
  'game.sudoku.controlsTitle': 'Sudoku — Commandes',
  'game.sudoku.ctrlSelect': 'Sélectionner une case / appliquer un indice',
  'game.sudoku.ctrlPad': 'Pavé numérique',
  'game.sudoku.ctrlPlace': 'Placer un chiffre ou une note',
  'game.sudoku.ctrlMoveSel': 'Déplacer la sélection',
  'cos.set.sudoku.board': 'Thèmes de grille',
  'cos.set.sudoku.digits': 'Styles de chiffres',
  'cos.sudoku.board.paper.name': 'Papier',
  'cos.sudoku.board.paper.desc': 'Papier blanc cassé et encre chaleureuse.',
  'cos.sudoku.board.slate.name': 'Ardoise',
  'cos.sudoku.board.slate.desc': 'Une grille sombre pour jouer tard le soir.',
  'cos.sudoku.board.blueprint.name': 'Bleu d\'Architecte',
  'cos.sudoku.board.blueprint.desc': 'Quadrillage cyan sur bleu de plan.',
  'cos.sudoku.board.pastel.name': 'Pastel',
  'cos.sudoku.board.pastel.desc': 'Papier rose tendre et encre prune.',
  'cos.sudoku.digits.ink.name': 'Encre Serif',
  'cos.sudoku.digits.ink.desc': 'Les chiffres classiques du journal.',
  'changelog.e53.title': 'Nouveau jeu : Sudoku 🔢',
  'changelog.e53.b0': 'Nouveau : Sudoku — remplissez la grille 9×9 pour que chaque ligne, colonne et bloc contienne les chiffres 1 à 9. Quatre vraies difficultés (de Facile à Expert, classées selon la logique réellement nécessaire pour chaque grille), une grille Quotidienne identique pour tout le monde, et un mode Zen détendu sans chrono ni fautes.',
  'changelog.e53.b1': 'Nouveau : des indices logiques qui enseignent — appuyez sur 💡 et le jeu surligne où regarder et explique le raisonnement (jamais une révélation au hasard), puis appuyez à nouveau pour l\'appliquer.',
  'changelog.e53.b2': 'Nouveau : notes au crayon, annulation, compteurs par chiffre, et des thèmes de grille et styles de chiffres à débloquer dans la Collection.',
  'cos.sudoku.digits.animals.name': 'Animaux',
  'cos.sudoku.digits.animals.desc': 'Neuf petits animaux à la place des chiffres.',
  'cos.sudoku.digits.shapes.name': 'Formes',
  'cos.sudoku.digits.shapes.desc': 'Neuf formes colorées à la place des chiffres.',
  'game.sudoku.shareMsgLost': 'Ce Sudoku ({diff}) m\'a eu — saurez-vous le résoudre ?',
  'game.sudoku.continue': 'Continuer',
  'game.sudoku.newGame': 'Nouvelle partie',
  'game.sudoku.inProgress': '📂 En cours ({n})',
  'game.sudoku.historyTitle': 'EN COURS',
  'game.sudoku.historyHint': 'Grilles laissées en cours de route — choisissez-en une pour continuer.',
  'game.sudoku.clearHistory': '🗑 Tout effacer',
  'game.sudoku.back': '‹ Retour',
  'changelog.e53.b3': 'Nouveau : interrompez quand vous voulez — les grilles inachevées sont gardées dans « En cours » (50 dernières) pour les reprendre plus tard ; et deux nouveaux styles de chiffres dans la Collection : Animaux et Formes.',
  'game.sudoku.shareMsgZen': 'Sudoku zen résolu en {time} — pur moment de calme.',
  'game.sudoku.resume': 'REPRENDRE',
  'game.sudoku.clearConfirm': 'Supprimer TOUTES les grilles inachevées, y compris la grille en cours ?',
  'game.sudoku.deleteConfirm': 'Supprimer cette grille ? ({board})',
  'game.sudoku.deleteYes': 'Supprimer',
  'changelog.e54.title': 'Les menus changent de langue instantanément 🌐',
  'changelog.e54.b0': 'Changement : changer de langue avec un menu de jeu ouvert le met désormais à jour immédiatement, dans tous les jeux — fini le texte périmé jusqu\'à l\'écran suivant.',
  'changelog.e55.title': 'Sudoku : les chiffres corrects se verrouillent 🔢',
  'changelog.e55.b0': 'Correction : un chiffre correct placé dans Sudoku se verrouille — fini de l\'effacer ou de l\'écraser par accident (et de perdre sa progression) en pleine partie. Les entrées erronées restent modifiables, et Annuler fonctionne toujours si vous le voulez vraiment.',
  // --- changelog e56 (2026-07-11 release) ---
  'changelog.e56.title': 'Champ de Force relooké + votre profil dans chaque jeu 🌐',
  'changelog.e56.b0': 'Nouveau : Champ de Force a fière allure — la station de combat a désormais une vraie coque, avec blindage tournant, feux clignotants et un canon qui se charge à vue ; les tirs sont des salves d’énergie superposées avec éclair de départ, ligne de visée animée et un réticule qui se resserre à l’approche du tir.',
  'changelog.e56.b1': 'Nouveau : les skins de planète de Champ de Force habillent toute la bataille — choisissez un monde dans la Collection et votre dôme, la jauge de charge et la station s’accordent. En prime : étoiles scintillantes, étoile filante occasionnelle et nuages dérivant sur la planète.',
  'changelog.e56.b2': 'Nouveau : le menu rapide de l’accueil (Profil · Défis · Collection) vous suit désormais dans chaque jeu — consultez votre profil ou dépensez vos trophées sans quitter ; en pleine partie il se replie derrière l’onglet ‹‹, et l’ouvrir met le jeu en pause.',
  'changelog.e56.b3': 'Changement : le plein écran ⛶ est maintenant à un geste dans la barre du haut du jeu, au lieu de se cacher dans le menu ☰.',
  'changelog.e56.b4': 'Changement : la pause a le même look et le même comportement partout — le jeu figé reste visible derrière un léger voile « Pause » pour préparer votre prochain coup, et toucher hors d’un panneau reprend la partie.',
  'changelog.e56.b5': 'Correction : la tête de la mascotte est désormais bien centrée dans le logo et le favicon.',
  // --- changelog e57 (2026-07-11 sudoku rebalance) ---
  'changelog.e57.title': 'Des difficultés de Sudoku bien étagées 🔢',
  'changelog.e57.b0': 'Correction : Moyen se jouait presque comme Difficile — les grilles étaient creusées bien au-delà du nombre d’indices prévu. Chaque difficulté garde désormais une fourchette garantie d’indices de départ (Facile ~36, Moyen 30–34, Difficile 26–30, Expert 22–26), l’échelle monte donc vraiment marche par marche.',
  'changelog.e57.b1': 'Changement : Moyen demande exactement une déduction futée au-delà des bases, et la grille de départ montre chaque chiffre au moins une fois (en Facile aussi) — fini les débuts « mais où sont les 1 ? ».',
  'changelog.e57.b2': 'Changement : le puzzle du Jour utilise le nouveau calibrage à partir d’aujourd’hui — toujours la même grille pour tout le monde.',
  'cat.holdClearFilters': 'Maintiens pour effacer les filtres',
  'challenge.goal.2048-1': 'Créez une tuile 256 dans 2048',
  'challenge.goal.2048-2': 'Marquez 12 000 en une partie de 2048',
  'challenge.goal.bal-pop-1': 'Éclatez 30 ballons en une partie de Ballons',
  'challenge.goal.bal-pop-2': 'Éclatez 60 ballons en une partie de Ballons',
  'challenge.goal.cat-1': 'Piégez le chat',
  'challenge.goal.cat-2': 'Marquez 50 dans Piège le Chat',
  'challenge.goal.critter-1': 'Associez tous les animaux d\'un plateau',
  'challenge.goal.critter-2': 'Marquez 160 dans Paires d\'Animaux',
  'challenge.goal.glow-1': 'Retenez une mélodie de 5 notes dans Lumino Dit',
  'challenge.goal.glow-2': 'Retenez 8 notes dans Lumino Dit',
  'challenge.goal.mines-1': 'Terminez une grille Facile dans Démineur',
  'challenge.goal.mines-2': 'Découvrez 118 cases en une partie de Démineur',
  'changelog.e58.b0': 'Nouveau jeu : Démineur 💣 — le grand classique de la logique dans un thème sonar. Votre premier coup de pioche est toujours sûr, les drapeaux et les accords fonctionnent comme dans vos souvenirs, quatre tailles de grille de Facile à Expert, et une option Détendu vous offre trois cœurs avant le boum.',
  'changelog.e58.b1': 'Nouveau jeu : 2048 🧮 — glissez et fusionnez jusqu\'à la tuile légendaire, puis continuez sur votre lancée. Le 4×4 classique plus des grilles Mini 3×3 et Grande 5×5, avec des thèmes de tuiles miel, néon et kraft dans la Collection.',
  'changelog.e58.b2': 'Nouveau jeu : Piège le Chat 🐱 — encerclez le chat vagabond avec des haies de roses sur un jardin hexagonal ; moins de haies, plus gros score. Le mode Chaton tout somnolent (il fait la sieste en pleine fuite !) est pensé pour les plus jeunes, et les chats premium Braise et Néant laissent derrière eux de vraies flammes et de l\'ombre.',
  'changelog.e58.b3': 'Nouveau jeu : Lumino Dit 🏮 — regardez les lanternes s\'illuminer, puis rejouez la mélodie du bout du doigt. Le mode Tranquille ne vous fait jamais échouer, Difficile ajoute deux lanternes, Expert en aligne neuf dans une grille 3×3.',
  'changelog.e58.b4': 'Nouveau jeu : Ballons 🎈 — un éclatage tout joyeux et sans défaite pour les plus petits, avec des séries de couleurs, des confettis, un petit coup de vent de temps en temps et un feu d\'artifice tous les 50 ballons en Zen. Le mode Abeilles vous met au défi de NE PAS toucher l\'abeille.',
  'changelog.e58.b5': 'Nouveau jeu : Paires d\'Animaux 🐾 — retournez les cartes et trouvez les paires d\'animaux identiques. Trois tailles de plateau, un mode Chacun son tour pour 2 à 4 joueurs sur un seul écran, et un mode Speedrun contre le chrono.',
  'changelog.e58.b6': 'Nouveau : la Collection s\'est agrandie partout — de nouveaux skins pas chers pour chacun des jeux, trois curseurs-viseurs aux couleurs des jeux, et un palier premium : le Chat de Braise enflammé, le Chat du Néant vaporeux et une Citadelle d\'Obsidienne nimbée de feu du néant.',
  'changelog.e58.b7': 'Correction : le catalogue se souvient de vos filtres quand vous entrez dans un jeu puis revenez.',
  'changelog.e58.title': 'SIX nouveaux jeux ! 💣🧮🐱🏮🎈🐾',
  'cos.2048.tiles.honey.desc': 'Du crème chaud à l\'ambre — le classique douillet.',
  'cos.2048.tiles.honey.name': 'Miel',
  'cos.2048.tiles.kraft.desc': 'Carton estampé et encres vert mousse.',
  'cos.2048.tiles.kraft.name': 'Kraft',
  'cos.2048.tiles.mint.desc': 'Une fraîcheur du bleu sarcelle au vert citron.',
  'cos.2048.tiles.mint.name': 'Menthe',
  'cos.2048.tiles.neon.desc': 'Des tuiles vitrées et lumineuses sur bleu nuit.',
  'cos.2048.tiles.neon.name': 'Néon',
  'cos.2048.tiles.rose.desc': 'Des roses poudrés qui se réchauffent en or.',
  'cos.2048.tiles.rose.name': 'Rose',
  'cos.asteroids-plus.hull.copper.desc': 'Un éclat de cuivre tout droit sorti de l\'atelier.',
  'cos.asteroids-plus.hull.copper.name': 'Cuivre',
  'cos.balloon-pop.balloons.classic.desc': 'Des ballons de fête éclatants.',
  'cos.balloon-pop.balloons.classic.name': 'Classique',
  'cos.balloon-pop.balloons.critters.desc': 'Des ballons avec de petites oreilles d\'animaux.',
  'cos.balloon-pop.balloons.critters.name': 'Animaux',
  'cos.balloon-pop.balloons.dots.desc': 'De joyeux ballons à pois.',
  'cos.balloon-pop.balloons.dots.name': 'Pois',
  'cos.balloon-pop.balloons.planets.desc': 'Des planètes-ballons à anneaux dans le ciel.',
  'cos.balloon-pop.balloons.planets.name': 'Planètes',
  'cos.balloon-pop.balloons.stripes.desc': 'Des ballons aux rayures de carnaval.',
  'cos.balloon-pop.balloons.stripes.name': 'Rayures',
  'cos.critter-match.critters.birds.desc': 'Hiboux, canards et flamants roses.',
  'cos.critter-match.critters.birds.name': 'Oiseaux',
  'cos.critter-match.critters.farm.desc': 'Vaches, poussins et moutons tout doux.',
  'cos.critter-match.critters.farm.name': 'Amis de la Ferme',
  'cos.critter-match.critters.jungle.desc': 'Lions, singes et perroquets.',
  'cos.critter-match.critters.jungle.name': 'Bande de la Jungle',
  'cos.critter-match.critters.ocean.desc': 'Poissons, pieuvres et baleines.',
  'cos.critter-match.critters.ocean.name': 'Copains de l\'Océan',
  'cos.critter-match.critters.woodland.desc': 'Renards, ours et amis de la forêt.',
  'cos.critter-match.critters.woodland.name': 'Forêt',
  'cos.forcefield.planet.nova.desc': 'Un monde-étoile rouge rosé incandescent.',
  'cos.forcefield.planet.nova.name': 'Nova',
  'cos.glow-says.pads.diamonds.desc': 'Des lanternes taillées comme des gemmes.',
  'cos.glow-says.pads.diamonds.name': 'Diamants',
  'cos.glow-says.pads.hearts.desc': 'De chaleureuses lanternes en forme de cœur.',
  'cos.glow-says.pads.hearts.name': 'Cœurs',
  'cos.glow-says.pads.moons.desc': 'Des lanternes en croissant de lune ensommeillées.',
  'cos.glow-says.pads.moons.name': 'Lunes',
  'cos.glow-says.pads.orbs.desc': 'Des lanternes rondes et lumineuses.',
  'cos.glow-says.pads.orbs.name': 'Orbes Lumineux',
  'cos.glow-says.pads.stars.desc': 'Des lanternes étoiles scintillantes.',
  'cos.glow-says.pads.stars.name': 'Étoiles',
  'cos.minesweeper.board.abyss.desc': 'Des cartes de fosse sans lumière, pings violets.',
  'cos.minesweeper.board.abyss.name': 'Abysses',
  'cos.minesweeper.board.coral.desc': 'Un relevé de récif ensoleillé aux tons de sable chaud.',
  'cos.minesweeper.board.coral.name': 'Corail',
  'cos.minesweeper.board.meadow.desc': 'Creuse un champ ensoleillé — les marguerites signalent les taupes.',
  'cos.minesweeper.board.meadow.name': 'Prairie',
  'cos.minesweeper.board.retro.desc': 'Le classique beige de bureau, biseaux pixelisés inclus.',
  'cos.minesweeper.board.retro.name': 'Rétro',
  'cos.minesweeper.board.sonar.desc': 'Des cartes des grands fonds et des pings cyan lumineux.',
  'cos.minesweeper.board.sonar.name': 'Sonar',
  'cos.set.2048.tiles': 'Thèmes de tuiles',
  'cos.set.balloon-pop.balloons': 'Styles de ballons',
  'cos.set.critter-match.critters': 'Familles d\'animaux',
  'cos.set.glow-says.pads': 'Formes de lanternes',
  'cos.set.minesweeper.board': 'Thèmes de grille',
  'cos.set.trap-the-cat.cat': 'Couleurs de chat',
  'cos.site.cursor.reticle.desc': 'Le réticule mil-dot ambré du Stand de Tir, pour une visée bien stable.',
  'cos.site.cursor.reticle.name': 'Lunette de Tireur',
  'cos.site.cursor.sonar.desc': 'L\'anneau sonar cyan du Démineur — balaie l\'écran du bout du curseur.',
  'cos.site.cursor.sonar.name': 'Ping Sonar',
  'cos.site.cursor.starfighter.desc': 'Les crochets de visée d\'Astéroïdes+, cible verrouillée.',
  'cos.site.cursor.starfighter.name': 'Verrouillage',
  'cos.sudoku.board.mint.desc': 'Du papier menthe fraîche pour les matins tout frais.',
  'cos.sudoku.board.mint.name': 'Menthe',
  'cos.tower-defense.castle.rose.desc': 'Du granit rose, taillé pour une princesse.',
  'cos.tower-defense.castle.rose.name': 'Donjon Rose',
  'cos.trap-the-cat.cat.caramel.desc': 'Gourmand et chauffé au soleil.',
  'cos.trap-the-cat.cat.caramel.name': 'Caramel',
  'cos.trap-the-cat.cat.ember.desc': 'Nimbé de flammes vivantes — des étincelles suivent chacun de ses bonds.',
  'cos.trap-the-cat.cat.ember.name': 'Chat de Braise',
  'cos.trap-the-cat.cat.ginger.desc': 'Une menace couleur marmelade en cavale.',
  'cos.trap-the-cat.cat.ginger.name': 'Roux',
  'cos.trap-the-cat.cat.noir.desc': 'L\'artiste de l\'évasion classique, noir comme minuit.',
  'cos.trap-the-cat.cat.noir.name': 'Noir',
  'cos.trap-the-cat.cat.smoke.desc': 'Une douce ombre grise de chat.',
  'cos.trap-the-cat.cat.smoke.name': 'Fumée',
  'cos.trap-the-cat.cat.snow.desc': 'Tout doux, élégant et insaisissable.',
  'cos.trap-the-cat.cat.snow.name': 'Neige',
  'cos.trap-the-cat.cat.void.desc': 'Un trou dans la nuit, traînant des volutes violettes.',
  'cos.trap-the-cat.cat.void.name': 'Chat du Néant',
  'game.2048.controlsTitle': '2048 — Commandes',
  'game.2048.ctrlSlide': 'Faire glisser les tuiles',
  'game.2048.keepGoing': 'CONTINUER',
  'game.2048.share': 'J\'ai fusionné jusqu\'à la tuile {tile} ({score} pts) dans 2048 🧮',
  'game.2048.startHint': 'Fais glisser les tuiles — les nombres égaux fusionnent et doublent. Atteins 2048 !',
  'game.2048.tileLine': 'plus grande tuile {tile}',
  'game.2048.win': 'TU AS ATTEINT 2048 !',
  'game.balloon-pop.beesHint': 'Éclate les ballons — mais ne touche PAS les abeilles ! Une piqûre coûte 5 ballons.',
  'game.balloon-pop.comboLine': 'meilleure série ×{combo}',
  'game.balloon-pop.controlsTitle': 'Ballons — Commandes',
  'game.balloon-pop.ctrlPop': 'Éclater un ballon',
  'game.balloon-pop.end': 'QUELLE FÊTE !',
  'game.balloon-pop.finish': 'TERMINER ET SAUVER',
  'game.balloon-pop.menuTitle': 'BALLONS',
  'game.balloon-pop.noEnd': 'pas de chrono 💚',
  'game.balloon-pop.share': 'J\'ai éclaté {score} ballons dans Ballons 🎈',
  'game.balloon-pop.startHint': 'Touche les ballons pour les éclater ! Même couleur d\'affilée = ballons bonus. Impossible de perdre.',
  'game.balloon-pop.stingsLine': '{count} piqûres 🐝',
  'game.common.difficulty': 'DIFFICULTÉ',
  'game.common.swipe': 'Balayer',
  'game.critter-match.boardLabel': 'PLATEAU',
  'game.critter-match.controlsTitle': 'Paires d\'Animaux — Commandes',
  'game.critter-match.ctrlFlip': 'Retourner une carte',
  'game.critter-match.end': 'TOUS LES AMIS TROUVÉS !',
  'game.critter-match.endMp': 'TOUTES LES PAIRES TROUVÉES !',
  'game.critter-match.flipsLine': '{flips} coups',
  'game.critter-match.menuTitle': 'PAIRES D\'ANIMAUX',
  'game.critter-match.mpHint': 'Chacun son tour : trouve une paire et rejoue — un raté passe la main. Le plus de paires gagne !',
  'game.critter-match.playLabel': 'JOUEURS',
  'game.critter-match.share': 'J\'ai associé tous les animaux en {flips} coups ({score} pts) — Paires d\'Animaux 🐾',
  'game.critter-match.shareSpeed': 'J\'ai associé tous les animaux en {time} ({flips} coups) — Paires d\'Animaux, Speedrun 🐾',
  'game.critter-match.solo': 'Solo',
  'game.critter-match.speedHint': 'Vide tout le plateau contre le chrono — le meilleur TEMPS gagne.',
  'game.critter-match.speedrun': 'Speedrun',
  'game.critter-match.startHint': 'Retourne deux cartes — trouve les animaux identiques ! Moins de coups, plus gros score. Tu gagnes toujours.',
  'game.critter-match.tie': 'Égalité ! 🤝',
  'game.critter-match.winner': 'Le joueur {p} gagne ! 🏆',
  'game.glow-says.controlsTitle': 'Lumino Dit — Commandes',
  'game.glow-says.ctrlKeys': 'Toucher les lanternes',
  'game.glow-says.ctrlTap': 'Répéter la mélodie des lanternes',
  'game.glow-says.endGreat': 'MÉMOIRE INCROYABLE !',
  'game.glow-says.endNice': 'JOLIE MÉLODIE !',
  'game.glow-says.finish': 'TERMINER ET SAUVER',
  'game.glow-says.menuTitle': 'LUMINO DIT',
  'game.glow-says.noFail': 'pas d\'échec 💚',
  'game.glow-says.roundLine': '{round} notes retenues',
  'game.glow-says.share': 'J\'ai retenu une mélodie de {round} notes dans Lumino Dit 🏮',
  'game.glow-says.startHint': 'Regarde les lanternes s\'illuminer, puis rejoue la même mélodie. Elle s\'allonge d\'une note à chaque manche !',
  'game.glow-says.tryAgain': 'regarde encore…',
  'game.glow-says.watch': '👀 REGARDE',
  'game.glow-says.yourTurn': '● À TOI',
  'game.minesweeper.boom': 'BOUM !',
  'game.minesweeper.cleared': 'BAIE NETTOYÉE !',
  'game.minesweeper.clickNumber': 'Cliquer sur un chiffre',
  'game.minesweeper.controlsTitle': 'Démineur — Commandes',
  'game.minesweeper.ctrlChord': 'Accord : ouvrir autour d\'un chiffre satisfait',
  'game.minesweeper.ctrlDig': 'Creuser (révéler une case)',
  'game.minesweeper.ctrlFlag': 'Poser / retirer un drapeau',
  'game.minesweeper.ctrlFlagMode': 'Basculer le mode drapeau',
  'game.minesweeper.dig': 'CREUSER',
  'game.minesweeper.flag': 'DRAPEAU',
  'game.minesweeper.longPress': 'Appui long',
  'game.minesweeper.menuTitle': 'DÉMINEUR',
  'game.minesweeper.minesLeft': '{count} mines restantes',
  'game.minesweeper.relaxed': 'Détendu — 3 vies',
  'game.minesweeper.rightClick': 'Clic droit',
  'game.minesweeper.shareLose': 'J\'ai découvert {count} cases avant le boum — Démineur 💣',
  'game.minesweeper.shareWin': 'J\'ai nettoyé une grille {diff} en {time} — Démineur 💣',
  'game.minesweeper.startHint': 'Nettoie la baie sans toucher de mine. Le premier coup de pioche est toujours sûr.',
  'game.minesweeper.tilesLine': '{count} cases découvertes',
  'game.minesweeper.togglePill': '⛏/🚩 basculer',
  'game.trap-the-cat.controlsTitle': 'Piège le Chat — Commandes',
  'game.trap-the-cat.ctrlPlant': 'Planter une haie',
  'game.trap-the-cat.hedgesLine': '{count} haies plantées',
  'game.trap-the-cat.lose': 'LE CHAT S\'EST ÉCHAPPÉ !',
  'game.trap-the-cat.menuTitle': 'PIÈGE LE CHAT',
  'game.trap-the-cat.shareLose': 'Le chat m\'a filé entre les doigts… — Piège le Chat 🐱',
  'game.trap-the-cat.shareWin': 'J\'ai coincé le chat avec {count} haies ({score} pts, {diff}) — Piège le Chat 🐱',
  'game.trap-the-cat.startHint': 'Plante des haies de roses pour encercler le chat — chaque haie le laisse bondir une fois. Moins de haies, plus gros score !',
  'game.trap-the-cat.win': 'COINCÉ ! 😸',
  'grb.head': 'Bonus quotidien de bonnes parties',
  'grb.sub': '+{per} 🏆 chacune',
  'shop.gift': '🎁 Cadeau de bienvenue — un coup de pouce unique de {n} 🏆',
  'shop.giftClaim': 'RÉCLAMER {n} 🏆',
  'shop.giftClaimed': '🎁 +{n} 🏆 réclamés — dépensez-les bien !',
  'shop.freePlay': '✨ Essai libre — tout est débloqué',
  'shop.freePlaySub': 'Portez n\'importe quel cosmétique sans dépenser de trophées. Votre solde et votre collection restent tels quels — les titres se gagnent toujours en jouant.',
  'shop.freePlayBadge': '✨ essai libre',
  'shop.freePlayAria': 'Activer ou désactiver l\'essai libre',
  'changelog.e59.title': 'Cadeau de bienvenue, essai libre & bonus plus brillants 🎁✨',
  'changelog.e59.b0': 'Nouveau : un 🎁 Cadeau de bienvenue vous attend en haut de la Collection — réclamez 100 🏆 une seule fois pour lancer votre collection avec un skin ou deux.',
  'changelog.e59.b1': 'Nouveau : ✨ Essai libre — un interrupteur en bas de la Collection qui débloque tous les cosmétiques pour les essayer et les porter, sans dépenser de trophées. Désactivez-le et votre vraie collection et votre solde sont exactement comme vous les avez laissés ; les titres se gagnent toujours en jouant.',
  'changelog.e59.b2': 'Changement : le bonus ⚡ de bonne partie s\'affiche désormais sous forme de trois grands éclairs qui s\'illuminent au fil de vos bonnes parties — dans le tiroir des défis et le panneau 🏆 en jeu — au lieu d\'une petite ligne de compteur.',
  'changelog.e59.b3': 'Changement : pendant une partie, l\'onglet ‹‹ du menu rapide s\'estompe en un léger fantôme pour ne rien cacher derrière lui (on vous voit, petit fruit sournois du serpent) — il retrouve toute sa force au survol et sur les écrans de menu.',
  'kit.howto': 'Comment jouer',
  'seo.h.faq': 'Questions fréquentes',
  'seo.h.more': 'Plus de jeux gratuits',
  'seo.q.free': 'Ce jeu est-il gratuit ?',
  'seo.a.free': 'Oui — chaque jeu sur Komyo est entièrement gratuit : pas de pubs, pas de paiements, pas de comptes.',
  'seo.q.offline': 'Puis-je jouer hors ligne ?',
  'seo.a.offline': 'Oui — après votre première visite, le jeu fonctionne sans internet, et vous pouvez l\'installer comme une appli directement depuis votre navigateur.',
  'seo.q.saves': 'Où mes scores sont-ils enregistrés ?',
  'seo.a.saves': 'Uniquement sur votre appareil — meilleurs scores, trophées et cosmétiques vivent dans votre navigateur et ne sont jamais envoyés nulle part.',
  'seo.titleTail': 'jeu gratuit en ligne, sans pub',
  'seo.allGames': 'Tous les jeux gratuits de Komyo',
  'seo.2048.howto': 'Glisse ou utilise les flèches pour faire glisser toutes les tuiles d\'un coup — quand deux nombres identiques se percutent, ils fusionnent en leur somme. Anticipe : le plateau gagne une tuile à chaque coup, et sans coup possible, c\'est la fin de partie. Atteins 2048 pour gagner, puis continue sur ta lancée ; Mini 3×3 est un puzzle éclair, Grande 5×5 une longue partie stratégique.',
  'seo.asteroids.howto': 'Fais pivoter ton vaisseau, accélère et tire sur les astéroïdes avant qu\'ils ne te percutent — les gros rochers se brisent en morceaux plus petits et plus rapides. Termine une vague et la suivante grossit. Joue en Classique aux flèches ou en commandes tactiles, essaie la variante Classique+ avec ses bonus, ou lance-toi dans le Speedrun de 10 vagues pour le meilleur temps.',
  'seo.asteroids-plus.howto': 'Pilote aux flèches ou au joystick tactile et détruis astéroïdes, chasseurs et boss. Chaque vague rapporte de l\'XP — monte de niveau et choisis une amélioration, puis dépense tes crédits dans la boutique de vague pour bâtir ta partie. Survis aux 30 vagues jusqu\'au grand final pour gagner ; ton score, c\'est jusqu\'où tu es arrivé.',
  'seo.tower-defense.howto': 'Les ennemis avancent sur le chemin vers ton donjon — construis des tours d\'archer, de canon, de givre et de mage à côté pour les arrêter. Chaque élimination rapporte de l\'or ; place et améliore entre les vagues, et change le ciblage (premier, le plus fort, le plus faible) selon la menace. Choisis une carte et une difficulté, survis à toutes les vagues pour gagner.',
  'seo.forcefield.howto': 'La station charge son canon et tire sur ta planète — balaie le dôme atmosphérique jusqu\'au point d\'impact marqué et touche l\'écran pour dévier le tir. Le mode Chrono compte les déviations contre la montre, Boucliers est de la pure survie, et Double place une planète de chaque côté pour deux joueurs sur un seul écran.',
  'seo.bubbles.howto': 'Vise avec le canon, fais rebondir tes tirs sur les murs et aligne trois bulles ou plus de la même couleur pour les éclater — fais tomber des grappes entières pour de gros combos. Les tirs spéciaux débloquent les coins difficiles. Arcade grimpe niveau par niveau, Sans fin fait descendre le plafond pour toujours, et Zen te laisse simplement éclater.',
  'seo.frog-bonk.howto': 'Touche ou clique les grenouilles quand elles surgissent pour les taper avant qu\'elles ne grignotent les murs — enchaîne les coups pour des combos, attrape les mouches (c\'est ta monnaie) et guette les attaques à distance annoncées. Vagues, c\'est 15 manches avec une boutique d\'améliorations, Sans fin ne s\'arrête jamais, et en Zen les visiteurs ne font que se promener, sans château en danger.',
  'seo.breakout.howto': 'Déplace la raquette à la souris, au doigt ou aux flèches et garde la balle en jeu — chaque brique rapporte des points, et les murs se corsent niveau après niveau. Attrape les bonus qui tombent (multi-balles, raquette large, lasers) et évite les mauvais. Perds ta dernière balle et la partie s\'arrête.',
  'seo.sudoku.howto': 'Remplis la grille 9×9 pour que chaque ligne, colonne et bloc 3×3 contienne les chiffres 1 à 9 exactement une fois. Touche une case et saisis un chiffre, utilise les notes au crayon pour les candidats, et demande un indice quand tu bloques — il éclaire le raisonnement au lieu de révéler la réponse. Quotidien sert la même grille à tout le monde ; Zen, c\'est l\'entraînement sans chrono, à n\'importe quelle difficulté.',
  'seo.stacker.howto': 'Un bloc glisse d\'un côté à l\'autre au-dessus de ta tour — touche, clique ou appuie sur Espace pour le lâcher. Tout ce qui dépasse du bord est tranché, et la tour se rétrécit à chaque raté ; réussis un lâcher parfait pour garder ta largeur et lancer une série. Encore un bloc, à chaque fois.',
  'seo.trap-the-cat.howto': 'Le chat veut sortir — à chaque tour tu plantes une haie de roses sur le jardin hexagonal, puis le chat fait un pas vers le bord. Coupe toutes ses issues pour le coincer ; moins tu utilises de haies, plus gros est le score. En mode Chaton, il fait la sieste en pleine course pour les plus jeunes ; les chats plus durs réfléchissent plus loin.',
  'seo.flappy.howto': 'Touche, clique ou appuie sur Espace pour battre des ailes et te faufiler entre les tiges des fleurs — chaque passage rapporte un point, et la prairie accélère tout doucement. Touche une tige ou le sol et le vol s\'arrête. Les petits sauts valent mieux que les longs appuis ; trouve ton rythme et laisse-toi porter.',
  'seo.aim-trainer.howto': 'Des cibles surgissent sur le stand — touche-les vite et en plein centre pour le multiplicateur ; le tir soutenu disperse tes balles, alors reprends ta visée entre deux tirs. Les Sprints courent après un nombre fixe de cibles, les défis chronométrés marquent des points contre la montre. Souris ou tactile ; précision et meilleurs temps sont suivis par mode.',
  'seo.snake.howto': 'Dirige le serpent aux flèches, en WASD, par glissements ou avec le pavé tactile à l\'écran — mange les fruits lumineux pour t\'allonger et accélérer. Les murs et ta propre queue mettent fin à la partie. Choisis la vitesse qui te convient et pars chasser le record de longueur.',
  'seo.minesweeper.howto': 'Révèle les cases et lis les chiffres — chacun compte les mines qui le touchent. Pose un drapeau sur les mines que tu as déduites (appui long en tactile), et fais un accord sur un chiffre satisfait pour ouvrir tous ses voisins d\'un coup. Ton premier coup de pioche est toujours sûr ; nettoie tout le terrain sans boum pour gagner. Le mode Détendu te donne trois cœurs.',
  'seo.balloon-pop.howto': 'Touche les ballons qui s\'envolent — éclate plusieurs ballons de la même couleur d\'affilée pour des étincelles de série, et gare aux coups de vent. Impossible de perdre : le mode Fête célèbre pendant 60 secondes, Zen flotte pour toujours avec un feu d\'artifice tous les 50 ballons, et le mode Abeilles te met au défi de ne PAS toucher l\'abeille.',
  'seo.critter-match.howto': 'Retourne deux cartes par tour et retiens ce que tu as vu — associe les paires d\'animaux pour vider le plateau en aussi peu de coups que possible. Les plateaux grandissent du rapide 4×3 à la grille défi, Speedrun court contre le chrono, et Chacun son tour distribue les tours à 2–4 joueurs sur un seul écran.',
  'seo.glow-says.howto': 'Les lanternes s\'illuminent en séquence — répète-la en les touchant dans le même ordre, et chaque manche ajoute une étape de plus. Le mode Tranquille ne met jamais fin à ta partie sur une erreur, Classique est le test pur, Difficile ajoute deux lanternes de plus et Expert en aligne neuf dans une grille. Le son aide : chaque lanterne chante sa propre note.',
  'changelog.e60.title': 'Chaque jeu s’explique tout seul 📖',
  'changelog.e60.b0': 'Nouveau : chaque jeu a désormais une entrée ℹ️ « Comment jouer » dans son menu ☰ — ce qu’est le jeu, comment on y joue, et des réponses rapides : est-il gratuit ? (oui), fonctionne-t-il hors ligne ? (oui), où vivent vos scores ? (sur votre appareil). Dans les 8 langues.',
  'changelog.e61.title': 'Téléphones en paysage, réparés 📱',
  'changelog.e61.b0': 'Correctif : jouer en mode paysage sur téléphone a eu droit à une passe complète — la boutique de la Collection tient à nouveau (avec un vrai anneau de progression), le menu latéral rapide s\'ouvre en version compacte et démarre replié quand la place manque, et les écrans de fin de partie affichent la carte de score à côté des boutons au lieu de déborder de l\'écran.',
  'changelog.e61.b1': 'Démineur : en paysage, l\'interrupteur CREUSER/DRAPEAU se trouve maintenant sur le bord gauche — le champ de mines occupe toute la hauteur, avec des cases nettement plus grandes.',
  'settings.easyPicks': 'Choix faciles',
  'settings.easyPicksHint': 'Marque et présélectionne l\'option la plus douce de chaque jeu · les jeux pour enfants en premier sur l\'accueil',
  'settings.lock': 'Contrôle parental',
  'settings.lockHint': 'Demande un PIN avant de dépenser des trophées, réinitialiser les données ou exporter/importer',
  'lock.set': 'Définir un PIN',
  'lock.change': 'Changer le PIN',
  'lock.turnOff': 'Désactiver',
  'lock.supportBtn': '⌨ Saisir le code du support',
  'lock.supportTitle': '🔒 Saisissez le code du support du jour',
  'lock.wrongCode': 'Code incorrect · {n} essais restants',
  'lock.enter': '🔒 Saisissez le PIN',
  'lock.choose': '🔒 Choisissez un PIN à 4 chiffres',
  'lock.repeat': '🔒 Répétez le PIN',
  'lock.mismatch': 'Les PIN ne correspondent pas — recommencez.',
  'lock.freshPin': 'Choisissez un PIN inédit — pas celui de votre téléphone ni de votre banque.',
  'lock.wrong': 'PIN incorrect · {n} essais restants',
  'lock.cooldown': 'Trop d\'essais — attendez {s}s',
  'lock.backspace': 'Effacer le dernier chiffre',
  'lock.forgot': 'PIN oublié ?',
  'lock.forgotHelp': 'Demandez sur le Discord de komyo (lien dans le pied de page et le menu ☰) — le support vous donnera le code de déverrouillage du jour. Il retire le verrou sans révéler le PIN ; votre progression est conservée.',
  'changelog.e62.title': '🐣 Choix faciles pour les petits',
  'changelog.e62.b0': 'Nouveau : 🐣 Choix faciles — un interrupteur dans les Réglages pour les jeunes joueurs (ou les détendus) : chaque jeu marque son mode et sa difficulté les plus doux d\'un 🐣 et les choisit pour vous, et les jeux pour enfants remontent en haut de l\'accueil. Désactivez-le et tout redevient normal.',
  'changelog.e65.title': 'Les titres débloqués, enfin visibles 🎖️',
  'changelog.e65.b0': 'Nouveau : quand vous débloquez un titre, le bouton Profil (le menu de droite) l’affiche désormais — une pastille, une légère pulsation à l’ouverture du menu et une lueur teintée selon le rang du titre. Il s’allume aussi dans les jeux, pas seulement sur la page d’accueil.',
  'changelog.e65.b1': 'Correction : l’animation « ★ NOUVEAU TITRE » dans votre profil était rognée en haut et sur les côtés — elle s’affiche maintenant en entier.',
  'changelog.e64.title': 'Asteroids sur mobile : commandes classiques par boutons 🕹️',
  'changelog.e64.b0': 'Nouveau : les deux jeux Asteroids proposent désormais des commandes classiques par boutons sur mobile — ◀ ▶ pour tourner, un bouton de poussée 🚀 et tirer — pour tourner sur place puis avancer comme sur la borne d’arcade d’origine. Activez-les avec « Commandes par boutons » sur l’écran de départ ; le joystick vise-et-fonce reste par défaut.',
  'changelog.e63.title': 'Chronos de speedrun réparés sur les cartes de score ⏱️',
  'changelog.e63.b0': 'Correctif : les cartes de score du speedrun de Paires d\'Animaux affichaient un temps farfelu du genre 00:00.01 au lieu de votre vrai temps — la carte (et le record du profil) affichent désormais le temps que vous avez réellement réalisé.',
  'changelog.e63.b1': 'Correctif : terminer un speedrun d\'Astéroïdes+ imprime désormais votre TEMPS sur la carte de score partagée, comme le fait Astéroïdes classique — elle affichait le score auparavant.',
  'changelog.e63.b2': 'Changement : partager un speedrun de Paires d\'Animaux met désormais en avant votre temps (avec les coups à côté) plutôt que les points — dans un speedrun, c\'est le temps qui compte.',
  'settings.offline': 'Jouer hors ligne',
  'settings.offlineHint': 'Enregistrez komyo sur une clé USB — décompressez et ouvrez index.html. Fonctionne sans internet.',
  'settings.download': 'Télécharger',
  'changelog.e67.title': 'Minuteurs de défis, bonnes parties plus justes et un chat plus joli ⏳🐱',
  'changelog.e67.b0': 'Nouveau : les défis affichent désormais un compte à rebours ⏳ jusqu’à la réinitialisation quotidienne et hebdomadaire — dans le tiroir 🏆 de l’accueil et dans le panneau en jeu.',
  'changelog.e67.b1': 'Nouveau : « C’est quoi, une bonne partie ? » — le tiroir des défis 🏆 liste la marque de bonne partie de chaque jeu, et en jeu le panneau 🏆 affiche toujours celle du jeu en cours.',
  'changelog.e67.b2': 'Changement : marques de bonnes parties rééquilibrées après tests — Champ de Force demande désormais 1200 points et Défenseur du Donjon 8000 (les deux étaient trop faciles à farmer), 2048 demande 12 000 (4500 tombait presque tout seul sur le grand plateau) et Piège le Chat descend à 50 (90 était quasi impossible). Les défis quotidiens correspondants suivent.',
  'changelog.e67.b3': 'Changement : Piège le Chat a eu droit à une refonte graphique — un chat tout en poils aux yeux ambrés, la queue qui remue, des haies de roses plus luxuriantes et un plateau de jardin avec une vraie profondeur.',
  'changelog.e67.b4': 'Nouveau : komyo peut désormais apparaître dans les recherches web dans les 8 langues — et quand vous jouez dans une autre langue, l’onglet du navigateur affiche le nom du jeu dans votre langue.',
  'changelog.e66.title': 'Emportez komyo hors ligne — téléchargez tout l’arcade 📥',
  'changelog.e66.b0': 'Nouveau : ⚙️ Paramètres → Jouer hors ligne télécharge tout komyo en un seul fichier — décompressez-le sur une clé USB et ouvrez index.html pour jouer à tous les jeux sans internet, sans installation et sans compte.',
  'changelog.e68.title': 'komyo est maintenant sur YouTube, TikTok, Instagram et Facebook 📣',
  'changelog.e68.b0': 'Nouveau : suivez komyo ! Les liens vers nos réseaux se trouvent dans le pied de page et en bas du menu ☰ — YouTube, TikTok, Instagram et Facebook, juste à côté de notre Discord. Les clips de jeu et les bandes-annonces y arrivent en premier.',
  'changelog.e71.title': 'Découvrir, deux fois plus malin ✨💡',
  'changelog.e71.b0': 'Nouveau : la rangée ✨ Découvrir se scinde en deux — « Nouveautés » montre les sorties et les jeux fraîchement mis à jour du dernier mois que vous n’avez pas encore essayés, et « Pour vous » suggère des jeux assortis aux genres auxquels vous jouez déjà (tout est calculé sur votre appareil — rien n’en sort). Les deux disparaissent une fois que vous avez tout essayé.',
  'changelog.e70.title': 'Découvrir — des jeux que vous n’avez pas encore essayés ✨',
  'changelog.e70.b0': 'Nouveau : une rangée ✨ Découvrir sur la page d’accueil — une petite étagère de jeux que vous n’avez pas encore essayés (les nouveaux et les populaires d’abord). Elle disparaît une fois que vous avez tout essayé.',
  'changelog.e69.title': 'Contrôle parental — prêtez votre téléphone à un enfant sans souci 🔒',
  'changelog.e69.b0': 'Nouveau : ⚙️ Réglages → Contrôle parental. Définissez un PIN à 4 chiffres et komyo le demandera avant de dépenser des trophées dans la boutique 🎨, avant de réinitialiser les données des jeux et avant Exporter / Importer — un enfant peut ainsi jouer sur votre téléphone ou ordinateur sans vider vos trophées ni effacer votre progression.',
  'game.2048.modeclassic': 'Classique',
  'game.2048.modemini': 'Mini 3×3',
  'game.2048.modebig': 'Grand 5×5',
  'game.balloon-pop.modeParty': 'Fête',
  'game.balloon-pop.modeZen': 'Zen',
  'game.balloon-pop.modeBees': 'Abeilles',
  'game.glow-says.modeClassic': 'Classique',
  'game.glow-says.modeChill': 'Détente',
  'game.glow-says.modeHard': 'Difficile',
  'game.glow-says.modeExpert': 'Expert',
  'game.critter-match.modeSmall': 'Petit',
  'game.critter-match.modeMedium': 'Moyen',
  'game.critter-match.modeLarge': 'Grand',
  'game.trap-the-cat.diffKitten': 'Chaton',
  'game.trap-the-cat.diffEasy': 'Facile',
  'game.trap-the-cat.diffMedium': 'Moyen',
  'game.trap-the-cat.diffHard': 'Difficile',
  'game.minesweeper.diffEasy': 'Facile',
  'game.minesweeper.diffMedium': 'Moyen',
  'game.minesweeper.diffHard': 'Difficile',
  'game.minesweeper.diffExpert': 'Expert',
  'game.minesweeper.relaxedShort': 'Détendu',
  'changelog.e73.title': 'Des menus qui tiennent sur tous les écrans 📐',
  'changelog.e74.title': 'Un aperçu avant de jouer — bandes-annonces et previews 🎬',
  'changelog.e74.b0': 'Nouveau : appuie sur « PLUS » sur n’importe quel jeu pour ouvrir une fiche avec une bande-annonce ou un aperçu du jeu et comment y jouer — directement sur la page d’accueil, sans quitter le site.',
  'changelog.e73.b0': 'Correction : les menus des jeux tiennent maintenant sur les petits écrans et en paysage — plus besoin de faire défiler pour atteindre Jouer.',
  'changelog.e73.b1': 'Correction : chevauchements de mise en page corrigés sur les écrans étroits et en paysage dans plusieurs jeux.',
  'changelog.e73.b2': 'Changement : la jauge de charge de Ballons est passée dans une barre nette en bas.',
  'changelog.e73.b3': 'Changement : boutons plus clairs en haut à gauche — ↩ Menu et un bouton d’accueil Komyo.',
  'changelog.e72.title': 'Les cartes de score parlent ta langue 🌍',
  'changelog.e72.b0': 'Correction : les noms des modes (« Classique », « Facile », « Speedrun »…) s\'affichent désormais dans ta langue sur les cartes de score, dans ton profil et dans les menus de 2048, Ballons, Paires d\'Animaux, Lumino Dit, Piège le Chat et Démineur — ils restaient en anglais.',
  'changelog.e72.b1': 'Correction : les cartes de score speedrun et sprint affichent de nouveau ton TEMPS quand tu joues en ukrainien.',
  // ---- 🦖 Dusk Runner ----
  'game.dusk-runner.menuTitle': 'COUREUR CHROMÉ',
  'game.dusk-runner.modeEndless': 'SANS FIN',
  'game.dusk-runner.modeSprint': 'SPRINT',
  'game.dusk-runner.paceLabel': 'ALLURE',
  'game.dusk-runner.paceGentle': 'Tranquille',
  'game.dusk-runner.paceNormal': 'Normale',
  'game.dusk-runner.paceBrisk': 'Rapide',
  'game.dusk-runner.go': 'EN PISTE',
  'game.dusk-runner.hintEndless': 'Sautez les cactus, baissez-vous sous les portiques. Frôlez un obstacle pour une accélération.',
  'game.dusk-runner.hintSprint': 'Course jusqu\'à 1000 m — le chrono est votre score.',
  'game.dusk-runner.mechEndless1': 'Sans fin',
  'game.dusk-runner.mechEndless2': 'L\'allure monte',
  'game.dusk-runner.mechSprint1': 'Course de 1000 m',
  'game.dusk-runner.mechSprint2': 'Chronométré',
  'game.dusk-runner.cleared': '1000 m BOUCLÉS',
  'game.dusk-runner.endLine': '{mode} · {pace}',
  'game.dusk-runner.pauseLine': '{score} m parcourus',
  'game.dusk-runner.shareSprint': 'J\'ai couru 1000 m en {time} dans Dusk Runner 🦖',
  'game.dusk-runner.controlsTitle': 'Dusk Runner — commandes',
  'game.dusk-runner.ctrlJump': 'Sauter',
  'game.dusk-runner.ctrlDuck': 'Se baisser',
  'game.dusk-runner.movePad': 'DÉPLACER LA COMMANDE',
  'game.dusk-runner.placeHint': 'Fais glisser la commande là où ton pouce se pose',
  'game.dusk-runner.ctrlHoldPad': 'Maintenir ⬇',
  'seo.dusk-runner.howto': 'Courez vers la droite sans jamais vous arrêter : touchez l\'écran ou appuyez sur Espace pour sauter les cactus, maintenez Bas pour passer sous les portiques d\'acier et les oiseaux. Passer au ras déclenche une accélération d\'aspiration, l\'allure grimpe à mesure que vous avancez et le ciel passe du grand jour au crépuscule puis à une nuit étoilée. Le mode Sans fin dure jusqu\'au premier choc ; le Sprint est un contre-la-montre de 1000 m où chaque choc coûte un trébuchement.',
  'cos.set.dusk-runner.runner': 'Coureurs',
  'cos.dusk-runner.runner.dino.name': 'Dino',
  'cos.dusk-runner.runner.dino.desc': 'Le petit lézard du désert.',
  'cos.dusk-runner.runner.fox.name': 'Renard',
  'cos.dusk-runner.runner.fox.desc': 'Oreilles pointues, queue touffue.',
  'cos.dusk-runner.runner.robot.name': 'Robot',
  'cos.dusk-runner.runner.robot.desc': 'Que des boîtes et des angles droits.',
  'challenge.goal.dusk-1': 'Courez 400 m dans Dusk Runner',
  'challenge.goal.dusk-2': 'Courez 900 m dans Dusk Runner',

  // ---- 🦖 Dusk Runner look skins ----
  'cos.set.dusk-runner.style': 'Apparence',
  'cos.dusk-runner.style.chrome.name': 'Chrome',
  'cos.dusk-runner.style.chrome.desc': 'Chrome poli — la finition d\'usine.',
  'cos.dusk-runner.style.paper.name': 'Croquis sur papier',
  'cos.dusk-runner.style.paper.desc': 'Encre plate sur papier chaud.',

  // ---- 🦖 Chrome Runner sprint stumbles ----
  'game.dusk-runner.stumbles': 'TRÉBUCHEMENTS',
  'game.dusk-runner.endStumbles': '{n} trébuchements',

  // ---- 🔆 Mirror Maze ----
  'game.mirror-maze.title': 'Labyrinthe de Miroirs',
  'game.mirror-maze.blurb': 'Pivote les miroirs, divise le faisceau, allume chaque cible dans sa couleur. Un puzzle laser néon.',
  'game.mirror-maze.menuTitle': 'LABYRINTHE DE MIROIRS',
  'game.mirror-maze.tip1': 'Touche un miroir pour le retourner — le faisceau tourne de 90°.',
  'game.mirror-maze.newPrism': 'NOUVEAU · PRISME — divise la lumière blanche : rouge à gauche, vert tout droit, bleu à droite.',
  'game.mirror-maze.newFilter': 'NOUVEAU · FILTRE — seule sa propre couleur passe. Envoie-lui le faisceau qui correspond.',
  'game.mirror-maze.newCombiner': 'NOUVEAU · COMBINATEUR — additionne les faisceaux qui arrivent et envoie le mélange dans le sens de sa flèche. Rouge + vert = jaune.',
  'game.mirror-maze.modeDaily': 'Quotidien',
  'game.mirror-maze.modeEndless': 'Sans fin',
  'game.mirror-maze.modeCampaign': 'Campagne',
  'game.mirror-maze.descDaily': 'Un labyrinthe par jour — le même pour tout le monde.',
  'game.mirror-maze.descEndless': 'Labyrinthe après labyrinthe, chacun plus grand et plus retors.',
  'game.mirror-maze.descCampaign': '12 labyrinthes choisis à la main qui enseignent une pièce à la fois.',
  'game.mirror-maze.goalDaily': 'un plateau, le même pour tous',
  'game.mirror-maze.goalCampaign': '{done} / {total} terminés',
  'game.mirror-maze.pcLaser': 'LASER',
  'game.mirror-maze.pcLaserD': 'Envoie de la lumière blanche dans la grille.',
  'game.mirror-maze.pcMirror': 'MIROIR',
  'game.mirror-maze.pcMirrorD': 'Touche-le pour alterner / et \\. Dévie le faisceau de 90°. Flèche dans le coin = tu peux le pivoter.',
  'game.mirror-maze.pcTarget': 'CIBLE',
  'game.mirror-maze.pcTargetD': 'Il lui faut la couleur de sa lettre. Anneau vide = éteinte, rempli + coche = allumée.',
  'game.mirror-maze.pcPrism': 'PRISME',
  'game.mirror-maze.pcPrismD': 'Divise la lumière blanche : le rouge part à gauche, le vert continue tout droit, le bleu part à droite.',
  'game.mirror-maze.pcFilter': 'FILTRE',
  'game.mirror-maze.pcFilterD': 'Seule sa propre couleur passe. Tout le reste s\'arrête ici.',
  'game.mirror-maze.pcCombiner': 'COMBINATEUR',
  'game.mirror-maze.pcCombinerD': 'Additionne les faisceaux qui arrivent et envoie le mélange dans le sens de sa flèche. Rouge + vert = jaune.',
  'game.mirror-maze.pcWall': 'MUR',
  'game.mirror-maze.pcWallD': 'Bloque le faisceau. Les pièces rivetées ne pivotent jamais.',
  'game.mirror-maze.legendTitle': 'COMMENT FONCTIONNENT LES PIÈCES',
  'game.mirror-maze.legendGo': 'TOUCHE POUR COMMENCER',
  'game.mirror-maze.pieceGuide': 'GUIDE DES PIÈCES',
  'game.mirror-maze.pickMaze': 'Choisis un labyrinthe',
  'game.mirror-maze.lockedDesc': 'Termine le labyrinthe {n} pour débloquer celui-ci.',
  'game.mirror-maze.nextMaze': 'LABYRINTHE SUIVANT',
  'game.mirror-maze.outOfPower': 'Le laser n\'a plus d\'énergie.',
  'game.mirror-maze.powerOut': 'ÉNERGIE ÉPUISÉE',
  'game.mirror-maze.underPar': 'PAR OU MIEUX !',
  'game.mirror-maze.solvedTitle': 'LABYRINTHE RÉSOLU !',
  'game.mirror-maze.shareMany': 'J\'ai résolu {count} labyrinthes laser en une partie de Labyrinthe de Miroirs 🔆',
  'game.mirror-maze.shareOne': 'J\'ai résolu un labyrinthe laser {size}×{size} dans Labyrinthe de Miroirs 🔆',
  'game.mirror-maze.controlsTitle': 'Labyrinthe de Miroirs — Commandes',
  'game.mirror-maze.ctrlNote': 'Seuls les miroirs pivotent. Prismes, filtres et combinateurs sont fixes.',
  'game.mirror-maze.ctrlSpin': 'Faire pivoter un miroir',
  'game.mirror-maze.ctrlMoveCursor': 'Déplacer le curseur',
  'game.mirror-maze.hudLit': 'ALLUMÉES',
  'game.mirror-maze.hudSpins': 'TOURS',
  'game.mirror-maze.hudPar': 'PAR',
  'game.mirror-maze.hudPower': 'ÉNERGIE',
  'seo.mirror-maze.howto': 'Un laser tire dans la grille depuis un bord. Touche n\'importe quel miroir pour l\'alterner entre / et \\ et dévier le faisceau de quatre-vingt-dix degrés — allume chaque cible dans la couleur exacte qu\'elle demande et le labyrinthe est résolu. Un prisme divise la lumière blanche : le rouge part à gauche, le vert continue tout droit, le bleu part à droite. Les filtres ne laissent passer qu\'un seul canal de couleur, et un combinateur additionne les faisceaux qui l\'atteignent, donc rouge plus vert donne jaune. Les faisceaux qui se croisent à angle droit se traversent tout simplement. Joue douze labyrinthes de campagne, un labyrinthe quotidien commun ou une série sans fin de grilles toujours plus grandes.',
  'cos.set.mirror-maze.beam': 'Palettes du faisceau',
  'cos.mirror-maze.beam.neon.name': 'Néon',
  'cos.mirror-maze.beam.neon.desc': 'Le spectre arcade par défaut — rose vif, menthe et bleu glacé.',
  'cos.mirror-maze.beam.sunset.name': 'Coucher de soleil',
  'cos.mirror-maze.beam.sunset.desc': 'Lumière chaude du désert : rouge braise, citron vert et violet.',
  'cos.mirror-maze.beam.spectrum.name': 'Spectre',
  'cos.mirror-maze.beam.spectrum.desc': 'RVB pur et saturé, tout droit sorti du prisme.',
  'cos.mirror-maze.beam.aurora.name': 'Aurore',
  'cos.mirror-maze.beam.aurora.desc': 'Douce lueur polaire — faisceaux pastel sur un ciel noir.',
  'challenge.goal.mirror-1': 'Marquez 200 points dans une partie de Labyrinthe de Miroirs',
  'challenge.goal.mirror-2': 'Marquez 1200 points dans une partie de Labyrinthe de Miroirs',

  // ---- changelog: four new games ----
  'changelog.e78.title': 'Quatre nouveaux jeux 🦖 🚰 🔆 ⌨️',
  'changelog.e78.b0': 'Nouveau : Chrome Runner 🦖, un dino en chrome poli sur une plaine d\'acier. Sautez les cactus, baissez-vous sous les portiques suspendus et frôlez les obstacles pour gagner de la vitesse. Courez sans fin ou tentez un Sprint de 1000 m contre le par pour une médaille.',
  'changelog.e78.b1': 'Nouveau : Floodgate 🚰, tournez les tuyaux pour sceller la ligne de l\'entrée à la sortie, sans aucune extrémité ouverte. Douze plans, un plateau du jour identique pour tous et un mode sans fin où le chrono se resserre. Les plateaux suivants ajoutent une ligne d\'eau chaude et un câble qui ne doit jamais partager une case avec l\'eau.',
  'changelog.e78.b2': 'Nouveau : Mirror Maze 🔆, tournez les miroirs pour dévier le laser, divisez-le avec des prismes et allumez chaque cible dans sa propre couleur. Douze labyrinthes qui enseignent une pièce à la fois, un labyrinthe du jour et un mode sans fin. Bloqué ? Un indice entoure un miroir mal orienté.',
  'changelog.e78.b3': 'Nouveau : Type Siege ⌨️, des armées griffonnées assiègent votre donjon. Tapez le mot au-dessus d\'un ennemi pour l\'abattre ; sans cela, ils tiennent leur ligne et martèlent le mur. Plus de 1400 mots anglais, huit langues au choix, et les accents restent facultatifs sauf si vous activez Accents exacts.',
  'changelog.e78.b4': 'Nouveau : aide daltonisme dans Mirror Maze — les faisceaux et les anneaux des cibles indiquent combien de couleurs ils portent (trait plein, pointillé ou double), vous n\'avez donc jamais à distinguer le vert du cyan à la seule teinte ; une palette daltonienne est aussi disponible.',
  'changelog.e78.b5': 'Nouveau : des cosmétiques pour les quatre jeux — silhouettes de coureur et deux looks complets — croquis sur papier et bande dessinée — pour Chrome Runner, métaux de tuyauterie, palettes de faisceau et styles d\'encre et de papier dans Type Siege.',

  // ---- ⌨️ Type Siege ----
  'game.type-siege.title': 'Siège des Mots',
  'game.type-siege.blurb': 'Des armées de gribouillis assiègent ton donjon — tape le mot au-dessus de chacune pour l’abattre.',
  'game.type-siege.menuTitle': 'SIÈGE DES MOTS',
  'game.type-siege.insertCoin': 'INSÉREZ UNE PIÈCE',
  'game.type-siege.modeStages': 'Étapes',
  'game.type-siege.modeEndless': 'Sans fin',
  'game.type-siege.modeRain': 'Pluie',
  'game.type-siege.diffEasy': 'Recrue',
  'game.type-siege.diffNormal': 'Soldat',
  'game.type-siege.diffHard': 'Vétéran',
  'game.type-siege.stageN': 'ÉTAPE {n} / {of}',
  'game.type-siege.waveN': 'VAGUE {n}',
  'game.type-siege.warlord': '⚔ CHEF DE GUERRE',
  'game.type-siege.beatBreather': 'un instant de répit',
  'game.type-siege.beatSpike': 'ils arrivent en masse',
  'game.type-siege.beatFinal': 'le dernier assaut',
  'game.type-siege.beatScouts': 'des éclaireurs sur la colline',
  'game.type-siege.beatFlood': 'une averse',
  'game.type-siege.beatSiege': 'le siège continue',
  'game.type-siege.hudWall': 'MUR',
  'game.type-siege.hudWave': 'VAGUE',
  'game.type-siege.hintType': 'Tape un mot pour viser',
  'game.type-siege.typeHere': 'Tape ici',
  'game.type-siege.tapToType': 'touche pour écrire',
  'game.type-siege.wordLang': 'LANGUE DES MOTS',
  'game.type-siege.wordLangDesc': 'Les accents sont facultatifs — taper "zolw" tue aussi "żółw".',
  'game.type-siege.held': 'LE MUR A TENU',
  'game.type-siege.endWin': '{mode} · {diff} · toutes les étapes tenues',
  'game.type-siege.endLine': '{mode} · {diff} · vague {wave}',
  'game.type-siege.endTyping': '{wpm} WPM · {acc}% de précision',
  'game.type-siege.endPb': 'Ton record : {wpm} WPM · vague {wave}',
  'game.type-siege.endCombo': 'Plus longue chaîne : {n} mots',
  'game.type-siege.shareMsg': 'J’ai abattu {score} points d’armée de gribouillis dans Siège des Mots ⌨️ à {wpm} WPM.',
  'game.type-siege.controlsTitle': 'Siège des Mots — Commandes',
  'game.type-siege.controlsNote': 'Ta première lettre vise l’ennemi correspondant le PLUS PROCHE — celui qui s’acharne sur ton mur. Les assaillants gardent leur position et frappent jusqu’à ce que tu finisses leur mot : les épéistes au mur, les archers derrière, les trébuchets au fond. Les accents sont facultatifs ("zolw" tue "żółw") et l’ukrainien accepte l’écriture latine ("zhaba" tue "жаба").',
  'game.type-siege.ctrlLetters': 'Lettres',
  'game.type-siege.ctrlLock': 'Vise et tape le mot',
  'game.type-siege.ctrlDrop': 'Abandonne la cible (encore = pause)',
  'game.type-siege.ctrlBack': 'Effacer / abandonner la cible',
  'game.type-siege.ctrlOpenKb': 'Ouvre le clavier à l’écran',
  'cos.set.type-siege.ink': 'Encre et papier',
  'cos.type-siege.ink.pencil.name': 'Crayon',
  'cos.type-siege.ink.pencil.desc': 'Graphite sur papier ligné chaud — le gribouillis par défaut.',
  'cos.type-siege.ink.blueprint.name': 'Plan Technique',
  'cos.type-siege.ink.blueprint.desc': 'Des traits blancs comme la craie sur papier quadrillé bleu marine : le siège comme plan de bataille.',
  'cos.type-siege.ink.marker.name': 'Marqueur',
  'cos.type-siege.ink.marker.desc': 'Gros marqueur noir sur carton kraft, avec des bannières orange rouille.',
  'challenge.goal.siege-1': 'Marquez 400 dans Siège des Mots',
  'challenge.goal.siege-2': 'Marquez 900 dans Siège des Mots',
  'seo.type-siege.howto': 'Des soldats crayonnés traversent la page du cahier et assiègent ton donjon, chacun portant un mot. Tape sa première lettre et le jeu vise l’ennemi correspondant le plus proche — finis le mot et il tombe. Ils ne chargent pas pour disparaître aussitôt : les épéistes s’arrêtent au mur et le martèlent, les archers restent en arrière et tirent, et les trébuchets lancent des rochers marqués de petits mots urgents, donc plus tu laisses un mot inachevé, plus les assaillants s’accumulent. Les mots viennent de la langue que tu choisis parmi huit, accents facultatifs ; joue huit étapes écrites à la main, un siège sans fin, ou Pluie, où les mots tombent du haut de la page.',

  // ---- 🚰 Floodgate ----
  'game.floodgate.menuTitle': 'VANNE',
  'game.floodgate.modeCampaign': 'Campagne',
  'game.floodgate.modeDaily': 'Quotidien',
  'game.floodgate.modeEndless': 'Sans fin',
  'game.floodgate.mechLevels': '12 plans',
  'game.floodgate.mechOneBoard': 'Un plateau par jour',
  'game.floodgate.mechTimed': 'Chrono · ça grandit',
  'game.floodgate.descCampaign': 'Douze plans fixes, un réseau à la fois.',
  'game.floodgate.descDaily': 'Aujourd\'hui, tout le monde a le même plateau.',
  'game.floodgate.descEndless': 'Grilles plus grandes, chrono plus serré, jusqu\'à ce qu\'il te batte.',
  'game.floodgate.hints': 'Repères de fuite',
  'game.floodgate.bannerCampaign': '{done} plans sur {total} colmatés',
  'game.floodgate.bannerDaily': 'Plateau du {date}',
  'game.floodgate.bannerEndless': 'Étapes : froid → chaud → câble → {stage}',
  'game.floodgate.selectLevel': 'CHOISIS UN PLAN',
  'game.floodgate.briefLine': 'PAR {par} · {goal}',
  'game.floodgate.goalTier1': 'Mène la ligne froide de bout en bout, sans extrémité ouverte.',
  'game.floodgate.goalTier2': 'Froid et chaud — croise-les, ne les relie jamais.',
  'game.floodgate.goalTier3': 'Froid, chaud et le câble — seules les gaines partagent une case.',
  'game.floodgate.lockedTile': 'Les arrivées et les évacuations sont boulonnées.',
  'game.floodgate.fixedTile': 'Les croisements sont fixes — ils ne font que croiser.',
  'game.floodgate.hintScald': 'Le chaud a touché le froid — croise-les, ne les relie jamais.',
  'game.floodgate.hintShort': 'Câble dans l\'eau — fais-le passer par une gaine.',
  'game.floodgate.hudBoard': 'PLATEAU',
  'game.floodgate.hudTurns': 'TOURS',
  'game.floodgate.hudLeaks': 'FUITES',
  'game.floodgate.legendCold': 'FROID',
  'game.floodgate.legendHot': 'CHAUD',
  'game.floodgate.legendPower': 'COURANT',
  'game.floodgate.legendLeak': 'FUITE',
  'game.floodgate.statusDry': 'À SEC',
  'game.floodgate.statusSealed': 'ÉTANCHE',
  'game.floodgate.statusScald': 'BRÛLURE',
  'game.floodgate.statusShort': 'COURT-JUS',
  'game.floodgate.stageCold': 'LIGNE FROIDE',
  'game.floodgate.stageHotCold': 'CHAUD & FROID',
  'game.floodgate.stageFull': 'SERVICE COMPLET',
  'game.floodgate.stageExpansion': 'EXTENSION',
  'game.floodgate.stageMains': 'PRESSION DU RÉSEAU',
  'game.floodgate.stageLine': 'Étape atteinte : {stage}',
  'game.floodgate.boardSealed': 'LIGNE ÉTANCHE',
  'game.floodgate.campaignDone': 'JEU DE PLANS TERMINÉ',
  'game.floodgate.timeUp': 'TEMPS ÉCOULÉ',
  'game.floodgate.runEnded': 'PARTIE TERMINÉE',
  'game.floodgate.endLineCampaign': 'Campagne · plan {level} sur {total}',
  'game.floodgate.endLineDaily': 'Plan quotidien',
  'game.floodgate.endLineEndless': 'Sans fin · plateau {count}',
  'game.floodgate.turnsLine': 'Tours {moves} · par {par} · {vs}',
  'game.floodgate.underPar': '{n} sous le par',
  'game.floodgate.onPar': 'pile sur le par',
  'game.floodgate.overPar': '{n} au-dessus du par',
  'game.floodgate.pauseLine': 'Fuites : {leaks} · Tours : {moves}',
  'game.floodgate.shareDaily': 'J\'ai colmaté le plan du jour — Vanne 🚰',
  'game.floodgate.shareCampaign': 'J\'ai colmaté {count} plans en une partie — Vanne 🚰',
  'game.floodgate.shareEndless': 'J\'ai colmaté {count} plateaux avant que le chrono gagne — Vanne 🚰',
  'game.floodgate.controlsTitle': 'Vanne — Commandes',
  'game.floodgate.ctrlRotate': 'Tourner un tuyau dans le sens horaire',
  'game.floodgate.ctrlRotateCcw': 'Tourner dans le sens antihoraire',
  'game.floodgate.ctrlHints': 'Basculer les repères de fuite',
  'game.floodgate.rightClick': 'Clic droit',
  'game.floodgate.longPress': 'Appui long',
  'cos.set.floodgate.pipe': 'Métaux des tuyaux',
  'cos.floodgate.pipe.copper.name': 'Cuivre',
  'cos.floodgate.pipe.copper.desc': 'Du cuivre classique, chaud et bien posé.',
  'cos.floodgate.pipe.brass.name': 'Laiton',
  'cos.floodgate.pipe.brass.desc': 'Des raccords en laiton poli pour une chaufferie d\'époque.',
  'cos.floodgate.pipe.neon.name': 'Plan',
  'cos.floodgate.pipe.neon.desc': 'De l\'acier froid qui brille comme le plan dont il sort.',
  'challenge.goal.flood-1': 'Colmate 3 plateaux en une partie de Vanne',
  'challenge.goal.flood-2': 'Colmate 5 plateaux en une partie de Vanne',
  'seo.floodgate.howto': 'Touche un tuyau ou clique dessus pour le faire pivoter d\'un quart de tour dans le sens horaire ; le clic droit ou un appui long le tourne dans l\'autre sens. Relie chaque arrivée boulonnée à son évacuation par un tracé de tuyaux sans rupture et ne laisse aucune extrémité ouverte — une extrémité ouverte est une fuite, et une ligne qui fuit ne sera jamais étanche. Les plans suivants ajoutent une deuxième ligne, la chaude, avec des croisements qui font passer deux réseaux par une même case, plus un câble électrique qui part en court-jus s\'il partage une case avec l\'eau hors d\'une gaine isolante. Campagne enchaîne douze plans fixes, Quotidien donne le même plateau à tout le monde chaque jour, et Sans fin agrandit la grille jusqu\'à ce que le chrono te batte.',

  // ---- 🦖 Chrome Runner par/chain ----
  'game.dusk-runner.endPar': 'Par {par}',
  'game.dusk-runner.endChain': 'Meilleure chaîne d\'aspiration ×{n}',

  // ---- 🚰 Floodgate picker UX ----
  'game.floodgate.playCampaign': 'JOUER · CHOISIR UN PLAN',
  'game.floodgate.playDaily': 'JOUER LE PLATEAU DU JOUR',
  'game.floodgate.playEndless': 'LANCER LA PARTIE SANS FIN',
  'game.floodgate.hintCampaign': 'Jouer ouvre le choix des plans — {done} sur {total} scellés, le prochain est le #{n}.',
  'game.floodgate.hintDaily': 'Un plateau, le même pour tous aujourd\'hui — terminez près du par pour trois étoiles.',
  'game.floodgate.hintEndless': 'Les grilles s\'agrandissent et le chrono se resserre — scellez autant de plateaux que possible.',
  'game.floodgate.bannerNext': 'PLAN {n} · PAR {par}',

  // ---- 🔆 Mirror Maze hints + CVD + points ----
  'game.mirror-maze.hint': 'INDICE',
  'game.mirror-maze.hintPower': 'INDICE −{n}⚡',
  'game.mirror-maze.hintTip': 'INDICE — le miroir entouré est mal orienté. Redemandez pour en voir un autre.',
  'game.mirror-maze.hintNone': 'Rien à indiquer — tous les miroirs sont déjà bien orientés.',
  'game.mirror-maze.hintNoPower': 'Plus assez d\'énergie pour un indice — résolvez ce labyrinthe pour refaire le plein.',
  'game.mirror-maze.hudHints': 'INDICES',
  'game.mirror-maze.hudScore': 'POINTS',
  'game.mirror-maze.pcBeam': 'FAISCEAU',
  'game.mirror-maze.pcBeamD': 'Une couleur trace un trait plein, deux couleurs mêlées un pointillé, le blanc un double trait. Les anneaux suivent.',
  'game.mirror-maze.clrLetters': 'Lettres de couleur',
  'game.mirror-maze.clrCb': 'Daltonisme',
  'game.mirror-maze.clrPlain': 'Sans lettres',
  'game.mirror-maze.endLine': '{spins}/{par} rotations · {size}×{size} · +{award}',
  'game.mirror-maze.goalEndlessPts': 'meilleure partie : {best} points',

  // ---- ⌨️ Type Siege exact mode + goals ----
  'game.type-siege.hintPlay': 'Tapez le mot au-dessus d\'un assaillant pour l\'abattre.',
  'game.type-siege.goalStages': 'Tenez le mur pendant les 8 étapes.',
  'game.type-siege.goalEndless': 'Survivez à un siège sans fin.',
  'game.type-siege.goalRain': 'Tapez les mots qui tombent avant qu\'ils n\'atterrissent.',
  'game.type-siege.exact': 'Accents exacts',
  'game.type-siege.exactOn': 'Les accents doivent être tapés exactement — « zolw » ne tuera pas « żółw ».',
  'game.type-siege.exactBadge': 'Exact',

  // ---- changelog: CVD help bullet ----
  'changelog.e78.b6': 'Correction : la pastille de score et les libellés « meilleur » sur les cartes de mode sont plus lisibles dans tous les jeux — ils se fondaient trop dans le fond sombre.',

  // ---- kit: shared level select + hint ----
  'menu.levelSelect': 'CHOISIR UN NIVEAU',
  'menu.levelPar': 'PAR {par}',
  'menu.levelOf': 'Niveau {n} sur {total}',
  'menu.levelDone': 'TERMINÉ',
  'menu.levelNext': 'SUIVANT',
  'menu.hint': 'INDICE',
  'game.common.back': 'RETOUR',

  // ---- 🦖 comic look ----
  'cos.dusk-runner.style.comic.name': 'Bande dessinée',
  'cos.dusk-runner.style.comic.desc': 'Points de trame, encre épaisse et un KABOOM quand vous accrochez.',
  'game.dusk-runner.powCrash': 'BOUM !',
  'game.dusk-runner.powNear': 'VLAN !',
  'game.dusk-runner.powMile': 'SUPER !',

  // ---- 🚰 Floodgate hints ----
  'game.floodgate.hintTip': 'INDICE — le tuyau entouré est tourné du mauvais côté. Redemandez pour en voir un autre.',
  'game.floodgate.hintNone': 'Rien à indiquer — tous les tuyaux sont déjà bien tournés.',
  'game.floodgate.hintCost': 'INDICE −{n}s',
  'game.floodgate.ctrlHint': 'Entourer un tuyau mal tourné',

  // ---- ⌨️ boss word sequence ----
  'game.type-siege.warlordSeq': 'tapez chaque mot à la suite',

  'changelog.e84.title': 'Un point quand il y a du nouveau à lire 🔔',
  'changelog.e84.b0': 'Nouveau : le menu ☰ affiche un petit point quand une nouveauté que tu n\'as pas encore lue t\'attend, et le point se répète à l\'intérieur, sur la ligne 🗒️ Nouveautés. L\'ouvrir éteint les deux.',
  'changelog.e84.b1': 'Correction : le point sur ⚙️ Réglages qui annonce « une nouvelle version du site est prête » apparaît maintenant tout seul. Avant, il ne s\'allumait qu\'après l\'ouverture des Réglages — précisément là où il voulait t\'envoyer.',
  'game.snake.hudScore': 'SCORE',
  'game.breakout.hudScore': 'SCORE',
  'game.snake.hudLength': 'LONGUEUR',
  'game.breakout.hudLevel': 'NIVEAU',
  'game.breakout.hudLives': 'VIES',
  'game.2048.hudTile': 'TUILE',
  'game.trap-the-cat.hudHedges': 'HAIES',
  'game.balloon-pop.hudPops': 'ÉCLATÉS',
  'game.critter-match.hudPairs': 'PAIRES',
  'game.glow-says.hudRound': 'MANCHE',
  'game.minesweeper.hudMines': 'MINES',
  'game.dusk-runner.slipstream': 'ASPIRATION',
  'cat.openMenuAria': 'Ouvrir le menu',
  'cat.installAria': 'Installer Komyo Games',
  'cat.installTip': 'Installe Komyo Games sur ton écran d\'accueil — plein écran et hors ligne',
  'cat.mascotAria': 'Mascotte de Komyo Games',
  'cat.githubAria': 'Komyo Games sur GitHub',
  'cat.githubTitle': 'Voir le code sur GitHub',
  'cat.shareSiteAria': 'Partager komyo',
  'cat.buildCommitAria': 'Voir le commit de cette version sur GitHub',
  'cat.dragResize': 'Glisse pour redimensionner',
  'cat.chalDrawerAria': 'Défis',
  'cat.trophiesHelp': 'À quoi servent les trophées ?',
  'cat.backToTop': 'Retour en haut',
  'shop.preview': 'Aperçu',
  'side.showQuick': 'Afficher le menu rapide',
  'nav.homeAria': 'Komyo — accueil',
  'lang.label': 'Langue',
  'cos.setnote.site.cursor': 'sur ordinateur seulement',
  'cos.setnote.site.fx': 'sur tout le site',
  'cat.installHelp': '<b>Installe sur ton écran d\'accueil</b> — plein écran et hors ligne :<br><b>Android (Chrome) :</b> menu ⋮ → « Ajouter à l\'écran d\'accueil »<br><b>iPhone (Safari) :</b> Partager → « Sur l\'écran d\'accueil »<br><b>Ordinateur (Chrome/Edge) :</b> ce bouton, ou l\'icône d\'installation dans la barre d\'adresse.<br><span style="opacity:.8">Tu ne veux qu\'un seul jeu ? Chaque jeu s\'installe aussi tout seul — ouvre-le et utilise Ajouter à l\'écran d\'accueil / Installer.</span><br><span style="opacity:.8">Déjà installé ? Ouvre-le depuis ton écran d\'accueil, ou via l\'icône « Ouvrir dans l\'application » de la barre d\'adresse.</span>',
  'game.minesweeper.hudLives': 'VIES',
  'changelog.e85.title': 'Ta langue, jusque dans les jeux 🌍',
  'changelog.e85.b0': 'Correction : quatre jeux gardaient partout leur nom anglais — Arcanes, Siège des Mots, Coureur Chromé et Labyrinthe de Miroirs portent enfin un vrai nom dans ta langue : sur la tuile, sur l\'écran d\'accueil du jeu, dans les défis et sur la carte de score que tu partages.',
  'changelog.e85.b1': 'Correction : Coureur Chromé se présentait comme « DUSK RUNNER » — son ancien nom de travail — sur l\'écran de démarrage, dans toutes les langues sauf l\'anglais.',
  'changelog.e85.b2': 'Correction : le panneau de score dans les jeux restait en anglais où que tu joues. LONGUEUR, VIES, NIVEAU, MINES, PAIRES, MANCHE et les autres sont traduits.',
  'changelog.e85.b3': 'Correction : les instructions d\'installation 📱 sont dans ta langue, avec les mots qu\'utilise le menu de ton propre téléphone — et avec elles les boutons et les infobulles du site qui étaient encore en anglais.',
  'changelog.e85.b4': 'Correction : en portugais, le menu de départ de Serpent Néon n\'a plus besoin d\'être défilé sur un petit téléphone.',
  // ---- 🌀 Tube Racer ----
  'game.tube-racer.title': 'Coureur de Tube',
  'game.tube-racer.blurb': 'Filez dans un tuyau géant à Mach 2 : trouvez la brèche, puis refroidissez le moteur.',
  'seo.tube-racer.howto': 'Vous êtes collé magnétiquement à l\'intérieur d\'un tuyau géant : il n\'y a donc ni bord gauche ni bord droit — vous roulez tout autour de la paroi pour vous aligner sur la brèche de chaque barrière. Maintenez le turbo pour dépasser Mach 1 et marquer plus vite, mais le turbo chauffe le moteur, et une jauge de chaleur pleine détruit la moto ; passez sur les bandes de refroidissement bleues pour évacuer cette chaleur. Jouez le Classique sans fin, courez un Sprint de 30 km contre le chrono, survivez à la Zone Rouge turbo bloqué, ou détendez-vous en Balade.',
  'game.tube-racer.menuTitle': 'COUREUR DE TUBE',
  'game.tube-racer.insertCoin': 'INSÉREZ UNE PIÈCE',
  'game.tube-racer.controlsTitle': 'Coureur de Tube — Commandes',
  'game.tube-racer.heat': 'CHALEUR',
  'game.tube-racer.hull': 'COQUE',
  'game.tube-racer.destroyed': 'DÉTRUIT',
  'game.tube-racer.overheated': 'SURCHAUFFE',
  'game.tube-racer.finished': 'TUNNEL BOUCLÉ',
  'game.tube-racer.endDist': '{dist} km de tuyau',
  'game.tube-racer.mach': 'MACH',
  'game.tube-racer.endMach': 'Vitesse max Mach {mach} · {kmh} km/h',
  'game.tube-racer.shareRun': 'J\'ai marqué {score} dans Coureur de Tube, en poussant jusqu\'à Mach {mach} !',
  'game.tube-racer.shareSprint': 'J\'ai fini le sprint de 30 km dans le tube en {time} !',
  'game.tube-racer.ctrlRoll': 'Tourner autour du tuyau',
  'game.tube-racer.ctrlBoost': 'Turbo',
  'game.tube-racer.ctrlHoldSide': 'Maintenez le tiers G / D',
  'game.tube-racer.ctrlHoldMid': 'Maintenez le centre bas',
  'game.tube-racer.ctrlTapSide': 'Maintenez à gauche / droite',
  'game.tube-racer.ctrlTapMid': 'Maintenez le centre bas',
  'game.tube-racer.modeClassic': 'Classique',
  'game.tube-racer.modeSprint': 'Sprint',
  'game.tube-racer.modeRedline': 'Zone Rouge',
  'game.tube-racer.modeCruise': 'Balade',
  'game.tube-racer.mechClassic': 'Sans fin',
  'game.tube-racer.mechSprint': '30 km',
  'game.tube-racer.mechRedline': 'Sans freins',
  'game.tube-racer.mechCruise': 'Tranquille',
  'game.tube-racer.descClassic': 'Course sans fin. Le turbo fait monter le score plus vite — les bandes de refroidissement sont le seul moyen de tenir.',
  'game.tube-racer.descSprint': 'Parcourez 30 km de tuyau contre le chrono. Seule une course terminée enregistre un temps.',
  'game.tube-racer.descRedline': 'Le turbo est bloqué. Impossible de ralentir — seulement de refroidir.',
  'game.tube-racer.descCruise': 'Le moteur n\'explose jamais et vous avez cinq coques. Apprenez le tuyau.',
  'cos.set.tube-racer.tube': 'Couleurs du tuyau',
  'cos.set.tube-racer.bike': 'Coques de moto',
  'cos.tube-racer.tube.ion.name': 'Ion',
  'cos.tube-racer.tube.ion.desc': 'Le tunnel de service cyan standard.',
  'cos.tube-racer.tube.magma.name': 'Magma',
  'cos.tube-racer.tube.magma.desc': 'Un conduit de refroidissement percé en pleine roche brûlante.',
  'cos.tube-racer.tube.vapor.name': 'Vapeur',
  'cos.tube-racer.tube.vapor.desc': 'Néon violet et longues nuits chromées.',
  'cos.tube-racer.tube.toxic.name': 'Toxique',
  'cos.tube-racer.tube.toxic.desc': 'Vert liquide de refroidissement, et les voyants d\'alerte sont d\'accord.',
  'cos.tube-racer.bike.arrow.name': 'Flèche',
  'cos.tube-racer.bike.arrow.desc': 'La coque delta réglementaire.',
  'cos.tube-racer.bike.wasp.name': 'Guêpe',
  'cos.tube-racer.bike.wasp.desc': 'Courte, à ailes larges, et mauvaise.',
  'cos.tube-racer.bike.delta.name': 'Delta',
  'cos.tube-racer.bike.delta.desc': 'Une aile en flèche nette, sans un gramme de métal en trop.',
  'cos.tube-racer.bike.fox.name': 'Renard',
  'cos.tube-racer.bike.fox.desc': 'Des oreilles, une queue, et une quantité suspecte de vitesse.',
  'cos.tube-racer.bike.ghost.name': 'Fantôme',
  'cos.tube-racer.bike.ghost.desc': 'À peine là, et parti avant que vous n\'ayez regardé.',
  'challenge.goal.tube-1': 'Marquez 800 dans Coureur de Tube',
  'challenge.goal.tube-2': 'Marquez 2 000 dans Coureur de Tube',
  'changelog.e88.title': 'Battre son record est enfin un événement ★',
  'changelog.e88.b0': 'Nouveau : battre votre propre record est enfin célébré — à l\'instant où vous le dépassez, l\'écran clignote et une bannière « Nouveau record ! » apparaît, et l\'écran de score vous accueille avec des confettis et un son. Dans tous les jeux.',
  'changelog.e87.title': 'Coureur Chromé : votre record de sprint, en temps ⏱️',
  'changelog.e87.b0': 'Correction : après avoir terminé un sprint dans Coureur Chromé, la ligne MEILLEUR sous votre temps final affichait une distance au lieu de votre meilleur temps — elle ne vous disait donc jamais si vous aviez vraiment battu votre record.',
  'changelog.e86.title': 'Nouveau jeu : Coureur de Tube 🌀',
  'changelog.e86.b0': 'Nouveau : Coureur de Tube — vous êtes collé magnétiquement à l\'intérieur d\'un tuyau géant, à vitesse supersonique. Il n\'y a ni bord gauche ni bord droit : vous roulez tout autour de la paroi pour vous aligner sur la brèche de chaque barrière. Le turbo fait monter le score, mais il fait fondre le moteur, et les bandes bleues lumineuses sont le seul moyen de le refroidir. Classique sans fin, un Sprint de 30 km contre le chrono, Zone Rouge turbo bloqué, et Balade pour rouler tranquille.',
  'game.tube-racer.camOrbit': 'Tube fixe',
  'game.tube-racer.invert': 'Inverser la direction',
  'game.tube-racer.ctrlBrake': 'Frein — évacue la chaleur, coûte des points',
  'game.tube-racer.ctrlTapMidUp': 'Maintenez le centre haut',
  'cos.set.tube-racer.engine': 'Sons de moteur',
  'cos.tube-racer.engine.reactor.name': 'Pulsation de Réacteur',
  'cos.tube-racer.engine.reactor.desc': 'Un battement qui s\'accélère avec vous : la propulsion de série.',
  'cos.tube-racer.engine.maglev.name': 'Maglev',
  'cos.tube-racer.engine.maglev.desc': 'Presque sans grain. Deux tons purs et un scintillement.',
  'cos.tube-racer.engine.twostroke.name': 'Deux-Temps',
  'cos.tube-racer.engine.twostroke.desc': 'Bourdonnant et méchant. Ça sonne petit, ça sonne enragé.',
  'changelog.e89.title': 'Tes records, annoncés comme il faut ★',
  'changelog.e89.b0': 'Changement : le salon Discord partagé recevait une carte de score de chaque partie terminée. C\'est un best-of maintenant : une carte n\'est publiée que lorsque tu bats ton propre record, une fois par partie, et elle porte le tampon ★ NOUVEAU RECORD pour continuer à dire ce qu\'elle était où qu\'elle finisse.',
  'changelog.e89.b1': 'Correction : Serpent Néon ne te disait jamais que tu avais battu ton propre meilleur score — le badge « ★ Nouveau record ! » de l\'écran de fin n\'était en fait jamais apparu une seule fois. C\'est corrigé.',
  'shop.tabShop': 'Boutique',
  'shop.tabAch': 'Succès',
  'shop.tabTitles': 'Titres',
  'shop.balSpend': '🏆 {n} à dépenser',
  'shop.balAch': '🏅 {done}/{total} · {n} 🏆',
  'shop.balLifetime': '🏆 {n} au total',
  'changelog.e90.title': 'Tout ce que tu collectionnes, dans une seule fenêtre 🎨',
  'changelog.e90.b0': 'Changement : ton échelle de titres vit maintenant dans la fenêtre Collection au lieu d\'ouvrir la sienne — un sélecteur Boutique · Succès · Titres est en haut, et tous les liens vers tes titres y mènent. Succès n\'est pour l\'instant qu\'un avant-goût, et le dit.',
  'changelog.e90.b1': 'Changement : les Défis s\'ouvrent comme une fenêtre au milieu de l\'écran, comme le profil et les nouveautés, au lieu de glisser depuis le bord droit. Le panneau dans les jeux a aussi perdu ses pastilles, donc les objectifs que tu poursuis sont la première chose que tu vois.',
  'profile.openAch': 'Ouvrir vos succès',
  'ach.sub': 'Des objectifs uniques qui n\'expirent jamais. Chacun verse ses trophées une seule fois, dans votre total <b>à vie</b> — les débloquer fait donc aussi grimper l\'échelle des titres.',
  'ach.none': 'Aucun succès chargé.',
  'ach.receipt': '{icon} {name} débloqué · +{n} 🏆',
  'ach.receiptMany': '🏅 {n} succès débloqués · +{pay} 🏆',
  'ach.site.first-cosmetic.name': 'Premier achat',
  'ach.site.first-cosmetic.desc': 'Achetez votre premier cosmétique.',
  'ach.site.collector25.name': 'Collectionneur',
  'ach.site.collector25.desc': 'Possédez un quart de tous les cosmétiques achetables.',
  'ach.site.collector50.name': 'Conservateur',
  'ach.site.collector50.desc': 'Possédez la moitié de tous les cosmétiques achetables.',
  'ach.site.collector100.name': 'Complétiste',
  'ach.site.collector100.desc': 'Possédez tous les cosmétiques de la boutique.',
  'ach.site.cursors.name': 'Toutes les mains',
  'ach.site.cursors.desc': 'Possédez tous les curseurs du site.',
  'ach.site.tourist5.name': 'Petit tour',
  'ach.site.tourist5.desc': 'Jouez à 5 jeux différents.',
  'ach.site.tourist15.name': 'Visiteur régulier',
  'ach.site.tourist15.desc': 'Jouez à 15 jeux différents.',
  'ach.site.tourist-all.name': 'Toutes les bornes',
  'ach.site.tourist-all.desc': 'Jouez à tous les jeux de l\'arcade.',
  'ach.site.genres8.name': 'Goûts éclectiques',
  'ach.site.genres8.desc': 'Jouez à des jeux de 8 catégories différentes.',
  'ach.site.regular.name': 'Habitué',
  'ach.site.regular.desc': 'Terminez 50 parties dans l\'arcade.',
  'ach.site.veteran.name': 'Vétéran',
  'ach.site.veteran.desc': 'Terminez 500 parties dans l\'arcade.',
  'ach.site.goodrun1.name': 'Bonne partie',
  'ach.site.goodrun1.desc': 'Franchissez la barre de bonne partie d\'un jeu.',
  'ach.site.allrounder.name': 'Touche-à-tout',
  'ach.site.allrounder.desc': 'Réalisez une bonne partie dans 5 jeux différents.',
  'ach.site.titled.name': 'Titré',
  'ach.site.titled.desc': 'Portez un rang gagné sur l\'échelle des titres.',
  'ach.site.rich.name': 'Trésor de trophées',
  'ach.site.rich.desc': 'Gagnez 2 500 trophées au total.',
  'ach.asteroids.wave5.name': 'Champ balayé',
  'ach.asteroids.wave5.desc': 'Atteignez la vague 5.',
  'ach.asteroids.wave10.name': 'Champ profond',
  'ach.asteroids.wave10.desc': 'Atteignez la vague 10.',
  'ach.asteroids.wave15.name': 'Coureur de ceinture',
  'ach.asteroids.wave15.desc': 'Atteignez la vague 15.',
  'ach.asteroids-plus.wave10.name': 'Amélioré',
  'ach.asteroids-plus.wave10.desc': 'Atteignez la vague 10.',
  'ach.asteroids-plus.wave20.name': 'Bordure extérieure',
  'ach.asteroids-plus.wave20.desc': 'Atteignez la vague 20.',
  'ach.asteroids-plus.win.name': 'Partie bouclée',
  'ach.asteroids-plus.win.desc': 'Gagnez une partie complète.',
  'ach.tower-defense.wave10.name': 'Le donjon tient',
  'ach.tower-defense.wave10.desc': 'Survivez à la vague 10.',
  'ach.tower-defense.hard20.name': 'Vingt en Difficile',
  'ach.tower-defense.hard20.desc': 'Atteignez la vague 20 en Difficile.',
  'ach.tower-defense.nosell.name': 'Aucun regret',
  'ach.tower-defense.nosell.desc': 'Atteignez la vague 10 sans vendre une seule tour.',
  'ach.tower-defense.kills5000.name': 'Briseur de siège',
  'ach.tower-defense.kills5000.desc': 'Vainquez 5 000 assaillants au total.',
  'ach.forcefield.min3.name': 'Trois minutes',
  'ach.forcefield.min3.desc': 'Survivez trois minutes en une partie.',
  'ach.forcefield.blocks500.name': 'Déflecteur',
  'ach.forcefield.blocks500.desc': 'Déviez 500 tirs au total.',
  'ach.bubbles.pops5000.name': 'Machine à éclater',
  'ach.bubbles.pops5000.desc': 'Éclatez 5 000 bulles au total.',
  'ach.bubbles.clear.name': 'Les cinq niveaux',
  'ach.bubbles.clear.desc': 'Terminez les cinq niveaux en une partie.',
  'ach.frog-bonk.wave10.name': 'Dix vagues',
  'ach.frog-bonk.wave10.desc': 'Atteignez la vague 10.',
  'ach.frog-bonk.bonks300.name': 'Ça vient !',
  'ach.frog-bonk.bonks300.desc': 'Tapez 300 grenouilles au total.',
  'ach.frog-bonk.bonks1500.name': 'Chasseur de mages',
  'ach.frog-bonk.bonks1500.desc': 'Tapez 1 500 grenouilles au total.',
  'ach.breakout.bricks5k.name': 'Démolition',
  'ach.breakout.bricks5k.desc': 'Cassez 5 000 briques au total.',
  'ach.breakout.flawless.name': 'Niveau parfait',
  'ach.breakout.flawless.desc': 'Terminez un niveau sans perdre de balle.',
  'ach.sudoku.clean.name': 'Sans une faute',
  'ach.sudoku.clean.desc': 'Résolvez une grille sans erreur ni indice.',
  'ach.sudoku.expert.name': 'Expert sans aide',
  'ach.sudoku.expert.desc': 'Résolvez une grille Expert sans indice.',
  'ach.sudoku.solved20.name': 'Amateur de grilles',
  'ach.sudoku.solved20.desc': 'Résolvez 20 grilles.',
  'ach.stacker.streak10.name': 'Dix d\'affilée',
  'ach.stacker.streak10.desc': 'Réussissez 10 lâchers parfaits d\'affilée.',
  'ach.stacker.high75.name': 'Gratte-ciel',
  'ach.stacker.high75.desc': 'Atteignez un score de 75 en une partie.',
  'ach.trap-the-cat.quick.name': 'Coincé vite',
  'ach.trap-the-cat.quick.desc': 'Piégez le chat en 15 clics ou moins.',
  'ach.trap-the-cat.cats25.name': 'Dresseur de chats',
  'ach.trap-the-cat.cats25.desc': 'Piégez 25 chats.',
  'ach.flappy.gates100.name': 'Cap des cent',
  'ach.flappy.gates100.desc': 'Passez 100 portiques en une partie.',
  'ach.flappy.gates1000.name': 'Grand voyageur',
  'ach.flappy.gates1000.desc': 'Passez 1 000 portiques au total.',
  'ach.aim-trainer.acc90.name': 'Main sûre',
  'ach.aim-trainer.acc90.desc': 'Terminez une partie avec 90 % de précision ou mieux.',
  'ach.aim-trainer.hits2500.name': 'Tireur d\'élite',
  'ach.aim-trainer.hits2500.desc': 'Touchez 2 500 cibles au total.',
  'ach.snake.len50.name': 'Long serpent',
  'ach.snake.len50.desc': 'Atteignez la longueur 50.',
  'ach.snake.len100.name': 'Grand Serpent',
  'ach.snake.len100.desc': 'Atteignez la longueur 100.',
  'ach.2048.t1024.name': 'Quatre chiffres',
  'ach.2048.t1024.desc': 'Créez une tuile 1024.',
  'ach.2048.t2048.name': '2048',
  'ach.2048.t2048.desc': 'Créez une tuile 2048.',
  'ach.2048.t4096.name': 'Au-delà',
  'ach.2048.t4096.desc': 'Créez une tuile 4096.',
  'ach.type-siege.wpm40.name': 'Dactylo',
  'ach.type-siege.wpm40.desc': 'Tapez à 40 WPM en une partie.',
  'ach.type-siege.wpm60.name': 'Doigts rapides',
  'ach.type-siege.wpm60.desc': 'Tapez à 60 WPM en une partie.',
  'ach.type-siege.wpm80.name': 'Éclair',
  'ach.type-siege.wpm80.desc': 'Tapez à 80 WPM en une partie.',
  'ach.type-siege.acc100.name': 'Pas une faute',
  'ach.type-siege.acc100.desc': 'Terminez la vague 3 avec 100 % de précision.',
  'ach.type-siege.chars10k.name': 'Dix mille touches',
  'ach.type-siege.chars10k.desc': 'Tapez 10 000 lettres au total.',
  'ach.dusk-runner.m2000.name': 'Deux kilomètres',
  'ach.dusk-runner.m2000.desc': 'Courez 2 000 m en une partie.',
  'ach.dusk-runner.marathon.name': 'Marathon',
  'ach.dusk-runner.marathon.desc': 'Courez 42 195 m au total.',
  'ach.dusk-runner.clean500.name': 'Pied sûr',
  'ach.dusk-runner.clean500.desc': 'Courez 500 m sans trébucher.',
  'ach.floodgate.par.name': 'Dans le par',
  'ach.floodgate.par.desc': 'Colmatez un plateau au par ou mieux.',
  'ach.floodgate.boards25.name': 'Plombier',
  'ach.floodgate.boards25.desc': 'Colmatez 25 plateaux au total.',
  'ach.floodgate.boards100.name': 'Service des eaux',
  'ach.floodgate.boards100.desc': 'Colmatez 100 plateaux au total.',
  'ach.mirror-maze.tier5.name': 'Cinquième palier',
  'ach.mirror-maze.tier5.desc': 'Atteignez le palier 5.',
  'ach.mirror-maze.nohint.name': 'Sans aide',
  'ach.mirror-maze.nohint.desc': 'Résolvez un labyrinthe sans indice.',
  'ach.mirror-maze.mazes50.name': 'Plieur de lumière',
  'ach.mirror-maze.mazes50.desc': 'Résolvez 50 labyrinthes au total.',
  'ach.mirror-maze.mazes250.name': 'Maître des prismes',
  'ach.mirror-maze.mazes250.desc': 'Résolvez 250 labyrinthes au total.',
  'ach.minesweeper.expert.name': 'Expert nettoyé',
  'ach.minesweeper.expert.desc': 'Terminez une grille Expert.',
  'ach.minesweeper.noflags.name': 'Sans un drapeau',
  'ach.minesweeper.noflags.desc': 'Terminez une grille sans poser de drapeau.',
  'ach.minesweeper.wins25.name': 'Vingt-cinq grilles',
  'ach.minesweeper.wins25.desc': 'Terminez 25 grilles au total.',
  'ach.balloon-pop.combo10.name': 'Combo dix',
  'ach.balloon-pop.combo10.desc': 'Atteignez un combo ×10.',
  'ach.balloon-pop.nobees.name': 'Sans piqûre',
  'ach.balloon-pop.nobees.desc': 'Marquez 20 sans une seule piqûre d\'abeille.',
  'ach.critter-match.sharp.name': 'Mémoire d\'éléphant',
  'ach.critter-match.sharp.desc': 'Videz un plateau presque sans coup perdu.',
  'ach.critter-match.boards25.name': 'Ami des animaux',
  'ach.critter-match.boards25.desc': 'Videz 25 plateaux au total.',
  'ach.glow-says.notes12.name': 'Douze notes',
  'ach.glow-says.notes12.desc': 'Répétez une mélodie de 12 notes.',
  'ach.glow-says.notes250.name': 'Oreille absolue',
  'ach.glow-says.notes250.desc': 'Cumulez 250 notes retenues sur vos parties.',
  'ach.tube-racer.mach1.name': 'Mach 1',
  'ach.tube-racer.mach1.desc': 'Franchissez le mur du son.',
  'ach.tube-racer.mach15.name': 'Mach 1,5',
  'ach.tube-racer.mach15.desc': 'Atteignez Mach 1,5.',
  'ach.tube-racer.mach2.name': 'Zone rouge',
  'ach.tube-racer.mach2.desc': 'Atteignez Mach 2 — la limite du tube.',
  'ach.tube-racer.km1000.name': 'Mille bornes',
  'ach.tube-racer.km1000.desc': 'Parcourez 1 000 km au total.',
  'ach.tube-racer.clean.name': 'Pas une éraflure',
  'ach.tube-racer.clean.desc': 'Terminez un sprint sans encaisser un seul coup.',
  'changelog.e91.title': 'Succès 🏅',
  'changelog.e91.b0': 'Nouveau : les succès — 79 objectifs uniques qui n\'expirent jamais, dans la fenêtre Collection à côté de la boutique et de vos titres. Chacun verse ses trophées dès que vous le remplissez, la plupart affichent une barre de progression en direct, et tout ce que vous aviez déjà accompli avant aujourd\'hui a été débloqué automatiquement.',
  'changelog.e92.title': 'Vois Coureur de Tube avant de foncer 🎬',
  'changelog.e92.b0': 'Nouveau : Coureur de Tube affiche maintenant aussi un court extrait de jeu sur sa fiche — touche PLUS pour voir comment ça se pilote vraiment avant de lancer.',
  'changelog.e93.title': 'Une deuxième bande-son pour chaque jeu 🎵',
  'changelog.e93.b0': 'Nouveau : chaque jeu a désormais une bande-son reconstruite à débloquer. Au lieu d’une courte boucle qui se répète, elle suit ce que tu fais : elle démarre tout doux, monte quand ça s’emballe, bascule sur son thème principal quand la pression grimpe, retombe quand tu as un moment de répit, puis repart. Elle est dans Collection → Musique, 100 trophées par jeu, et tu peux la choisir pour un jeu sans changer un autre.',
  'changelog.e93.b1': 'Rien ne change sans toi : chaque jeu démarre toujours avec la bande-son qu’il a toujours eue. Les deux morceaux de Serpent Néon ont aussi une version reconstruite, et tout ce que tu as déjà acheté reste à toi.',
  'cos.asteroids.track.classic.name': 'Classique',
  'cos.asteroids.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.asteroids.track.rebuilt.name': 'Reconstruite',
  'cos.asteroids.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.asteroids-plus.track.classic.name': 'Classique',
  'cos.asteroids-plus.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.asteroids-plus.track.rebuilt.name': 'Reconstruite',
  'cos.asteroids-plus.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.forcefield.track.classic.name': 'Classique',
  'cos.forcefield.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.forcefield.track.rebuilt.name': 'Reconstruite',
  'cos.forcefield.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.aim-trainer.track.classic.name': 'Classique',
  'cos.aim-trainer.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.aim-trainer.track.rebuilt.name': 'Reconstruite',
  'cos.aim-trainer.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.breakout.track.classic.name': 'Classique',
  'cos.breakout.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.breakout.track.rebuilt.name': 'Reconstruite',
  'cos.breakout.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.bubbles.track.classic.name': 'Classique',
  'cos.bubbles.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.bubbles.track.rebuilt.name': 'Reconstruite',
  'cos.bubbles.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.frog-bonk.track.classic.name': 'Classique',
  'cos.frog-bonk.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.frog-bonk.track.rebuilt.name': 'Reconstruite',
  'cos.frog-bonk.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.tower-defense.track.classic.name': 'Classique',
  'cos.tower-defense.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.tower-defense.track.rebuilt.name': 'Reconstruite',
  'cos.tower-defense.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.stacker.track.classic.name': 'Classique',
  'cos.stacker.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.stacker.track.rebuilt.name': 'Reconstruite',
  'cos.stacker.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.sudoku.track.classic.name': 'Classique',
  'cos.sudoku.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.sudoku.track.rebuilt.name': 'Reconstruite',
  'cos.sudoku.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.minesweeper.track.classic.name': 'Classique',
  'cos.minesweeper.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.minesweeper.track.rebuilt.name': 'Reconstruite',
  'cos.minesweeper.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.2048.track.classic.name': 'Classique',
  'cos.2048.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.2048.track.rebuilt.name': 'Reconstruite',
  'cos.2048.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.trap-the-cat.track.classic.name': 'Classique',
  'cos.trap-the-cat.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.trap-the-cat.track.rebuilt.name': 'Reconstruite',
  'cos.trap-the-cat.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.glow-says.track.classic.name': 'Classique',
  'cos.glow-says.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.glow-says.track.rebuilt.name': 'Reconstruite',
  'cos.glow-says.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.balloon-pop.track.classic.name': 'Classique',
  'cos.balloon-pop.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.balloon-pop.track.rebuilt.name': 'Reconstruite',
  'cos.balloon-pop.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.critter-match.track.classic.name': 'Classique',
  'cos.critter-match.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.critter-match.track.rebuilt.name': 'Reconstruite',
  'cos.critter-match.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.floodgate.track.classic.name': 'Classique',
  'cos.floodgate.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.floodgate.track.rebuilt.name': 'Reconstruite',
  'cos.floodgate.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.mirror-maze.track.classic.name': 'Classique',
  'cos.mirror-maze.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.mirror-maze.track.rebuilt.name': 'Reconstruite',
  'cos.mirror-maze.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.type-siege.track.classic.name': 'Classique',
  'cos.type-siege.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.type-siege.track.rebuilt.name': 'Reconstruite',
  'cos.type-siege.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.dusk-runner.track.classic.name': 'Classique',
  'cos.dusk-runner.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.dusk-runner.track.rebuilt.name': 'Reconstruite',
  'cos.dusk-runner.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.tube-racer.track.classic.name': 'Classique',
  'cos.tube-racer.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.tube-racer.track.rebuilt.name': 'Reconstruite',
  'cos.tube-racer.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.flappy.track.classic.name': 'Classique',
  'cos.flappy.track.classic.desc': 'La bande-son d’origine — une courte boucle sèche qui tourne, tout simplement.',
  'cos.flappy.track.rebuilt.name': 'Reconstruite',
  'cos.flappy.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.snake.track.rebuilt.name': 'Néon · Reconstruite',
  'cos.snake.track.rebuilt.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.snake.track.rebuiltbanger.name': 'Néon Banger · Reconstruite',
  'cos.snake.track.rebuiltbanger.desc': 'La bande-son reconstruite — mix plus plein, une vraie mélodie, et elle monte et retombe avec ta partie.',
  'cos.set.asteroids.track': 'Musique',
  'cos.set.asteroids-plus.track': 'Musique',
  'cos.set.forcefield.track': 'Musique',
  'cos.set.aim-trainer.track': 'Musique',
  'cos.set.breakout.track': 'Musique',
  'cos.set.bubbles.track': 'Musique',
  'cos.set.frog-bonk.track': 'Musique',
  'cos.set.tower-defense.track': 'Musique',
  'cos.set.stacker.track': 'Musique',
  'cos.set.sudoku.track': 'Musique',
  'cos.set.minesweeper.track': 'Musique',
  'cos.set.2048.track': 'Musique',
  'cos.set.trap-the-cat.track': 'Musique',
  'cos.set.glow-says.track': 'Musique',
  'cos.set.balloon-pop.track': 'Musique',
  'cos.set.critter-match.track': 'Musique',
  'cos.set.floodgate.track': 'Musique',
  'cos.set.mirror-maze.track': 'Musique',
  'cos.set.type-siege.track': 'Musique',
  'cos.set.dusk-runner.track': 'Musique',
  'cos.set.tube-racer.track': 'Musique',
  'cos.set.flappy.track': 'Musique',
};
