openthebox/content/strings/fr.json
Samuel Bouchet 9c4fd0d73a Fix runtime deserialization bugs, add test suite and publish support
- Fix LootTable.GuaranteedRolls type (int -> List<string>) to match JSON schema
- Fix BoxEngine guaranteed rolls to iterate item IDs directly
- Fix BoxEngine resource condition evaluation for "any" targetId
- Make ItemDefinition.DescriptionKey optional
- Fix font meta item nameKeys to use proper localization keys
- Add 43 xUnit content validation tests (deserialization, cross-refs, localization)
- Add self-contained single-file publish via publish.ps1
- Update README with distribute and test sections
2026-03-10 19:25:02 +01:00

392 lines
20 KiB
JSON

{
"game.title": "OUVRE LA BOITE",
"game.subtitle": "Qu'est-ce qu'il y a dedans ? Un seul moyen de le savoir.",
"game.version": "v0.1.0",
"menu.new_game": "Nouvelle Partie",
"menu.load_game": "Charger une Partie",
"menu.language": "Langue",
"menu.quit": "Quitter",
"menu.back": "Retour",
"menu.continue": "Continuer",
"menu.save": "Sauvegarder",
"menu.settings": "Parametres",
"action.open_box": "Ouvrir une boite",
"action.inventory": "Voir l'inventaire",
"action.craft": "Fabriquer",
"action.adventure": "Partir a l'aventure",
"action.appearance": "Changer d'apparence",
"action.save": "Sauvegarder",
"action.quit": "Retourner au menu",
"prompt.name": "Quel est ton nom, brave ouvreur de boites ?",
"prompt.choose_action": "Que veux-tu faire ?",
"prompt.choose_box": "Quelle boite veux-tu ouvrir ?",
"prompt.choose_interaction": "Plusieurs interactions possibles ! Choisis-en une :",
"prompt.press_key": "Appuie sur une touche pour continuer...",
"box.opening": "Ouverture de {0}...",
"box.found": "Tu as trouve : {0} !",
"box.found_box": "A l'interieur il y avait... une autre boite ! {0} !",
"box.empty": "La boite est vide ! Philosophique.",
"box.no_boxes": "Tu n'as aucune boite. Comment t'as fait ?",
"box.auto_open": "{0} s'ouvre automatiquement !",
"box.starter": "Boite de depart",
"box.starter.desc": "Ta premiere boite. Le debut de tout. Ou de rien. Probablement de quelque chose quand meme.",
"box.box_of_boxes": "Boite a boite",
"box.box_of_boxes.desc": "Une boite qui contient... des boites. C'est des boites jusqu'en bas.",
"box.not_great": "Boite pas ouf",
"box.not_great.desc": "Elle est pas geniale. Elle est pas terrible. Elle... est.",
"box.ok_tier": "Boite ok tiers",
"box.ok_tier.desc": "La mediocrite n'a jamais ete aussi carree.",
"box.cool": "Boite coolos",
"box.cool.desc": "La on commence a causer. A causer cool.",
"box.epic": "Boite epique",
"box.epic.desc": "L'orchestre s'intensifie. La foule retient son souffle. C'est... une boite.",
"box.legendhair": "Boite legend'hair",
"box.legendhair.desc": "La coiffure la plus legendaire que tu deballeras jamais. Cheveu-jour-d'hui, legende demain.",
"box.legendary": "Boite legendaire",
"box.legendary.desc": "Les legendes parlent de cette boite. Doucement quand meme, c'est une boite.",
"box.adventure": "Boite aventure",
"box.adventure.desc": "Contient la cle de l'aventure ! Litteralement, parfois.",
"box.style": "Boite stylee",
"box.style.desc": "La mode est ephemere. Le style sorti d'une boite est eternel.",
"box.improvement": "Boite d'amelioration",
"box.improvement.desc": "On peut toujours s'ameliorer. Surtout avec des boites.",
"box.supply": "Boite de fourniture",
"box.supply.desc": "Des fournitures ! Le sang vital de tout passione d'ouverture de boites.",
"box.meta": "Boite Meta",
"box.meta.desc": "Cette boite ameliore... la facon dont tu vois les boites. Trop meta.",
"box.black": "Boite noire",
"box.black.desc": "Personne ne sait ce qu'il y a dedans. Meme pas la boite.",
"box.story": "Boite a histoire",
"box.story.desc": "Chaque boite a une histoire. Celle-ci plus que les autres.",
"box.music": "Boite a musique",
"box.music.desc": "Do do do do. La musique de boite c'est la meilleure musique.",
"box.cookie": "Boite a Cookies",
"box.cookie.desc": "La fortune sourit aux audacieux. Et a ceux qui ouvrent des boites.",
"box.adventure.space": "Boite d'aventure spatiale",
"box.adventure.space.desc": "Vers l'infini et au-dela ! (Boite non incluse dans l'infini)",
"box.adventure.medieval": "Boite d'aventure medievale",
"box.adventure.medieval.desc": "Oyez, oyez ! Une boite d'aventure d'antan !",
"box.adventure.pirate": "Boite d'aventure pirate",
"box.adventure.pirate.desc": "Arr ! X marque la boite !",
"box.adventure.contemporary": "Boite d'aventure contemporaine",
"box.adventure.contemporary.desc": "Une boite pour les temps modernes. Livree avec l'anxiete du WiFi.",
"box.adventure.sentimental": "Boite d'aventure sentimentale",
"box.adventure.sentimental.desc": "Cette boite te fait ressentir des choses. Surtout de la curiosite.",
"box.adventure.prehistoric": "Boite d'aventure prehistorique",
"box.adventure.prehistoric.desc": "Ouga bouga boite. Tres vieille. Beaucoup mystere.",
"box.adventure.cosmic": "Boite d'aventure cosmique",
"box.adventure.cosmic.desc": "L'univers est une boite. Cette boite est un univers.",
"box.adventure.microscopic": "Boite d'aventure microscopique",
"box.adventure.microscopic.desc": "La taille ne compte pas. Sauf quand si. Zoom !",
"box.adventure.darkfantasy": "Boite d'aventure dark fantasy",
"box.adventure.darkfantasy.desc": "Les tenebres t'attendent. Et aussi une boite. Une boite sombre.",
"meta.unlocked": "NOUVELLE FONCTIONNALITE : {0} !",
"meta.colors": "Couleurs de texte",
"meta.extended_colors": "Palette de couleurs etendue",
"meta.arrows": "Navigation avec les fleches",
"meta.inventory": "Panneau d'inventaire",
"meta.resources": "Panneau de ressources",
"meta.stats": "Panneau de statistiques",
"meta.portrait": "Panneau portrait",
"meta.chat": "Panneau de discussion",
"meta.layout": "Mise en page complete",
"meta.shortcuts": "Raccourcis clavier",
"meta.animation": "Animation d'ouverture de boite",
"meta.crafting": "Panneau de fabrication",
"item.rarity.common": "Commun",
"item.rarity.uncommon": "Peu commun",
"item.rarity.rare": "Rare",
"item.rarity.epic": "Epique",
"item.rarity.legendary": "Legendaire",
"item.rarity.mythic": "Mythique",
"resource.health": "Sante",
"resource.mana": "Mana",
"resource.food": "Nourriture",
"resource.stamina": "Endurance",
"resource.blood": "Sang",
"resource.gold": "Or",
"resource.oxygen": "Oxygene",
"resource.energy": "Energie",
"stat.strength": "Force",
"stat.intelligence": "Intelligence",
"stat.luck": "Chance",
"stat.charisma": "Charisme",
"stat.dexterity": "Dexterite",
"stat.wisdom": "Sagesse",
"item.meta_font_consolas": "Police : Consolas",
"item.meta_font_firetruc": "Police : Firetruc",
"item.meta_font_jetbrains": "Police : JetBrains Mono",
"cosmetic.hair.none": "Chauve",
"cosmetic.hair.short": "Cheveux courts",
"cosmetic.hair.long": "Cheveux longs",
"cosmetic.hair.ponytail": "Queue de cheval",
"cosmetic.hair.braided": "Tresses",
"cosmetic.hair.cyberpunk": "Cheveux neon cyberpunk",
"cosmetic.hair.fire": "Cheveux en feu",
"cosmetic.hair.stardust": "Coiffure Poussiere d'Etoile legendaire",
"cosmetic.eyes.none": "Pas d'yeux (mysterieux !)",
"cosmetic.eyes.blue": "Yeux bleus",
"cosmetic.eyes.green": "Yeux verts",
"cosmetic.eyes.redorange": "Yeux rouge-orange",
"cosmetic.eyes.brown": "Yeux marron",
"cosmetic.eyes.black": "Yeux noirs",
"cosmetic.eyes.sunglasses": "Lunettes de soleil",
"cosmetic.eyes.pilotglasses": "Lunettes d'aviateur",
"cosmetic.eyes.aircraftglasses": "Lunettes de pilote de chasse",
"cosmetic.eyes.cybernetic": "Yeux cybernetiques",
"cosmetic.eyes.magician": "Lunettes de magicien",
"cosmetic.body.naked": "Torse nu",
"cosmetic.body.regulartshirt": "T-shirt basique",
"cosmetic.body.sexytshirt": "T-shirt sexy",
"cosmetic.body.suit": "Costume",
"cosmetic.body.armored": "Armure",
"cosmetic.body.robotic": "Chassis robotique",
"cosmetic.legs.none": "Flottant (pas de jambes !)",
"cosmetic.legs.naked": "Jambes nues",
"cosmetic.legs.slip": "Slip",
"cosmetic.legs.short": "Short",
"cosmetic.legs.panty": "Culotte",
"cosmetic.legs.rocketboots": "Bottes a reaction",
"cosmetic.legs.pegleg": "Jambe de bois",
"cosmetic.legs.tentacles": "Tentacules",
"cosmetic.arms.none": "Pas de bras (mode T-Rex)",
"cosmetic.arms.short": "Bras courts",
"cosmetic.arms.regular": "Bras normaux",
"cosmetic.arms.long": "Bras longs extensibles",
"cosmetic.arms.mechanical": "Bras mecaniques",
"cosmetic.arms.wings": "Ailes",
"cosmetic.arms.extrapair": "Quatre bras",
"cosmetic.gender_error": "Nouveau genre (ERREUR : les boites n'ont pas de genre. La boite s'excuse pour la confusion.)",
"tint.none": "Naturel",
"tint.cyan": "Cyan",
"tint.orange": "Orange",
"tint.purple": "Violet",
"tint.warmpink": "Rose chaud",
"tint.light": "Clair",
"tint.dark": "Sombre",
"tint.rainbow": "Arc-en-ciel",
"tint.neon": "Neon",
"tint.silver": "Argent",
"tint.gold": "Or",
"tint.void": "Neant",
"material.wood": "Bois",
"material.bronze": "Bronze",
"material.iron": "Fer",
"material.steel": "Acier",
"material.titanium": "Titane",
"material.diamond": "Diamant",
"material.carbonfiber": "Fibre de carbone",
"material.form.raw": "Brut",
"material.form.refined": "Raffine",
"material.form.nail": "Clou",
"material.form.plank": "Planche",
"material.form.ingot": "Lingot",
"material.form.sheet": "Feuille",
"material.form.thread": "Fil",
"material.form.dust": "Poudre",
"material.form.gem": "Gemme",
"item.health_potion_small": "Petite Potion de Sante",
"item.health_potion_medium": "Potion de Sante Moyenne",
"item.health_potion_large": "Grande Potion de Sante",
"item.mana_crystal_small": "Petit Cristal de Mana",
"item.mana_crystal_medium": "Cristal de Mana Moyen",
"item.food_ration": "Ration alimentaire",
"item.stamina_drink": "Boisson d'endurance",
"item.blood_vial": "Fiole de sang",
"item.gold_pouch": "Bourse d'or",
"item.oxygen_tank": "Reservoir d'oxygene",
"item.energy_cell": "Cellule d'energie",
"item.space.badge": "Badge d'astronaute",
"item.space.phone": "Numero de telephone alien",
"item.space.key": "Cle d'acces au sas",
"item.space.map": "Carte stellaire",
"item.space.coordinates": "Coordonnees mysterieuses",
"item.space.helmet": "Casque spatial",
"item.medieval.crest": "Blason de chevalier",
"item.medieval.sword": "Replique d'Excalibur",
"item.medieval.scroll": "Parchemin ancien",
"item.medieval.seal": "Sceau royal",
"item.medieval.key": "Cle du donjon",
"item.pirate.map": "Carte au tresor",
"item.pirate.compass": "Boussole enchantee",
"item.pirate.feather": "Plume de perroquet",
"item.pirate.rum": "Bouteille de rhum",
"item.pirate.flag": "Jolly Roger",
"item.pirate.key": "Cle du coffre",
"item.contemporary.phone": "Smartphone",
"item.contemporary.card": "Carte de credit",
"item.contemporary.ticket": "Ticket de metro",
"item.contemporary.usb": "Cle USB suspecte",
"item.contemporary.key": "Cle d'appartement",
"item.contemporary.badge": "Badge d'entreprise",
"item.sentimental.letter": "Lettre d'amour",
"item.sentimental.flower": "Fleur sechee",
"item.sentimental.album": "Album photo",
"item.sentimental.melody": "Melodie de boite a musique",
"item.sentimental.teddy": "Vieil ours en peluche",
"item.sentimental.phone": "Numero de l'ex",
"item.prehistoric.tooth": "Dent de dinosaure",
"item.prehistoric.painting": "Fragment de peinture rupestre",
"item.prehistoric.amber": "Pierre d'ambre",
"item.prehistoric.club": "Massue en os",
"item.prehistoric.fossil": "Fossile de trilobite",
"item.cosmic.shard": "Eclat de nebuleuse",
"item.cosmic.fragment": "Fragment de trou noir",
"item.cosmic.crystal": "Cristal de quasar",
"item.cosmic.dust": "Poussiere cosmique",
"item.cosmic.core": "Coeur d'etoile",
"item.microscopic.bacteria": "Echantillon de bacterie sentiente",
"item.microscopic.dna": "Brin d'ADN luminescent",
"item.microscopic.membrane": "Membrane cellulaire renforcee",
"item.microscopic.mitochondria": "Mitochondrie hyperactive",
"item.microscopic.prion": "Prion amical (probablement)",
"item.darkfantasy.ring": "Anneau maudit",
"item.darkfantasy.rune": "Rune de sang",
"item.darkfantasy.cloak": "Cape d'ombre",
"item.darkfantasy.grimoire": "Grimoire du necromancien",
"item.darkfantasy.gem": "Gemme d'ame",
"item.darkfantasy.key": "Cle en os",
"item.resource_max_up": "{0} Max +1",
"item.resource_up": "{0} +1",
"item.stat_boost": "{0} +1",
"item.resource_max_health": "Amelioration Capacite Sante",
"item.resource_max_mana": "Amelioration Capacite Mana",
"item.resource_max_food": "Amelioration Capacite Nourriture",
"item.resource_max_stamina": "Amelioration Capacite Endurance",
"item.resource_max_gold": "Amelioration Capacite Or",
"item.resource_max_blood": "Amelioration Capacite Sang",
"item.resource_max_oxygen": "Amelioration Capacite Oxygene",
"item.resource_max_energy": "Amelioration Capacite Energie",
"item.music_melody": "Melodie de boite",
"item.cookie_fortune": "Fortune Cookie",
"item.mysterious_key": "Cle mysterieuse",
"item.mysterious_key.desc": "Une cle pour... quelque chose. La boite sait, mais la boite ne parle pas.",
"lore.fragment_1": "Au commencement, il y avait une boite. La boite contenait une autre boite. Et c'est ainsi que ca a ete, et que ca sera.",
"lore.fragment_2": "L'Ancien Ordre des Ouvreurs de Boites n'a qu'un seul commandement : Tu ouvriras tes boites.",
"lore.fragment_3": "Certains disent que l'univers lui-meme est une boite, attendant d'etre ouverte par quelqu'un d'assez curieux.",
"lore.fragment_4": "La premiere boite a ete ouverte par Farah, qui a trouve a l'interieur le concept d''interieur'.",
"lore.fragment_5": "Malkith a un jour ouvert une boite contenant le son d'une seule main qui applaudit. Personne ne sait ce que ca veut dire.",
"lore.fragment_6": "La legende dit qu'il existe une boite qui contient toutes les autres boites. L'ouvrir causerait un paradoxe. Ou un remboursement.",
"lore.fragment_7": "Duncan a essaye de fermer une boite un jour. Le syndicat des boites s'est mis en greve pendant trois semaines.",
"lore.fragment_8": "Pierrick a construit une machine a ouvrir des boites. Elle s'est ouverte elle-meme. Puis elle a ouvert la machine. Puis elle a ouvert le concept d'ouverture.",
"lore.fragment_9": "Samuel a ecrit le premier manuel d'ouverture de boites. Chapitre 1 : Ouvre la boite. Chapitre 2 : Voir Chapitre 1.",
"lore.fragment_10": "La Boite Noire contient un chat. Ou pas. Jusqu'a ce que tu l'ouvres, elle en contient et n'en contient pas. Le chat est aussi une boite.",
"cookie.1": "Une boite dans une boite reste une boite.",
"cookie.2": "ERREUR : Ce cookie ne contient aucune fortune. Reessayez.",
"cookie.3": "Vous ouvrirez beaucoup de boites. Cette prediction a un taux de precision de 100%.",
"cookie.4": "Le vrai tresor, c'etait les boites qu'on a ouvertes en chemin.",
"cookie.5": "ATTENTION : Les effets secondaires de l'ouverture de boites incluent la joie, la confusion et des bras-tentacules.",
"cookie.6": "Demain tu trouveras une boite. Puis une autre. Puis une autre. Envoyez de l'aide.",
"cookie.7": "Ton nombre porte-bonheur est le nombre de boites que tu as ouvertes. Donc... beaucoup.",
"cookie.8": "Confucius dit : celui qui ouvre boite trouve boite. Celui qui n'ouvre pas boite trouve aussi boite. Boite est inevitable.",
"cookie.9": "Un voyage de mille boites commence par une seule ouverture.",
"cookie.10": "Si tu lis ceci, tu as passe trop de temps a ouvrir des boites. Je rigole, ca n'existe pas.",
"cookie.11": "La boite donne, et la boite redonne des boites.",
"cookie.12": "En Russie sovietique, c'est la boite qui t'ouvre.",
"cookie.13": "Au secours je suis piege dans une usine a fortune cookies a l'interieur d'une boite.",
"cookie.14": "Cette fortune a ete intentionnellement laissee vide. Je rigole. Ou pas ?",
"cookie.15": "Tu es l'elu. Celui qui ouvre les boites. Vraiment une noble vocation.",
"cookie.16": "Plot twist : la boite c'etait les amis qu'on s'est faits en chemin.",
"cookie.17": "Schrodinger a appele. Il veut recuperer son concept de boite.",
"cookie.18": "Si tu ouvres une boite et que personne n'est la pour l'entendre, est-ce que ca fait un loot ?",
"cookie.19": "Aujourd'hui est un bon jour pour ouvrir des boites. Demain aussi. Tous les jours, en fait.",
"cookie.20": "Ton animal totem est une boite. Ton pouvoir special c'est l'ouverture.",
"character.farah": "Farah",
"character.malkith": "Malkith",
"character.linu": "Linu",
"character.chenda": "Chenda",
"character.duncan": "Duncan",
"character.sandrea": "Sandrea",
"character.samuel": "Samuel",
"character.pierrick": "Pierrick",
"character.nova": "Capitaine Nova",
"character.aria": "ARIA",
"character.blackbeard": "Barbe-Noire l'Indeboitable",
"character.mordecai": "Mordecai le Sinistre",
"character.zephyr": "Zephyr",
"character.quantum": "Dr. Quantum",
"adventure.start": "Commencer l'aventure {0}",
"adventure.resume": "Reprendre l'aventure {0}",
"adventure.completed": "Aventure terminee ! Tu es maintenant un aventurier de boites certifie.",
"adventure.item_granted": "Recu : {0} x{1}",
"adventure.item_removed": "Perdu : {0}",
"adventure.resource_added": "{0} +{1}",
"interaction.key_chest": "La cle rentre ! Le coffre s'ouvre automatiquement !",
"interaction.key_no_match": "Cette cle semble ouvrir quelque chose... mais tu ne l'as pas encore. Peut-etre qu'une future boite le fournira.",
"interaction.craft_available": "Nouvelle recette disponible a {0} !",
"save.saving": "Sauvegarde en cours...",
"save.saved": "Partie sauvegardee dans l'emplacement '{0}'.",
"save.loading": "Chargement...",
"save.loaded": "Partie chargee depuis l'emplacement '{0}'.",
"save.no_saves": "Aucune sauvegarde trouvee.",
"save.choose_slot": "Choisis un emplacement de sauvegarde :",
"error.invalid_input": "Entree invalide. Reessaie, brave ouvreur de boites.",
"error.no_boxes": "Tu n'as aucune boite a ouvrir. Comment t'as fait ? Ouvre plus de boites pour avoir des boites.",
"error.not_enough_resources": "Pas assez de {0}. Il t'en manque {1}.",
"misc.boxes_opened": "Total de boites ouvertes : {0}",
"misc.play_time": "Temps de jeu : {0}",
"misc.welcome_back": "Bon retour, {0} ! Tes boites se sont ennuyees.",
"recipe.refine_wood": "Raffiner le bois",
"recipe.smelt_bronze_ingot": "Fondre un lingot de bronze",
"recipe.smelt_iron_ingot": "Fondre un lingot de fer",
"recipe.smelt_steel_ingot": "Fondre un lingot d'acier",
"recipe.smelt_titanium_ingot": "Fondre un lingot de titane",
"recipe.forge_carbonfiber_sheet": "Presser une feuille de fibre de carbone",
"recipe.cut_diamond_gem": "Tailler une gemme de diamant",
"recipe.forge_wood_nail": "Forger des clous en bois",
"recipe.brew_health_potion_medium": "Brasser une potion de sante moyenne",
"recipe.brew_health_potion_large": "Brasser une grande potion de sante",
"recipe.brew_mana_crystal_medium": "Raffiner un cristal de mana moyen",
"recipe.brew_stamina_drink": "Brasser une boisson d'endurance",
"recipe.distill_blood_vial": "Distiller une fiole de sang",
"recipe.brew_pirate_rum": "Brasser une bouteille de rhum",
"recipe.synthesize_energy_cell": "Synthetiser une cellule d'energie",
"recipe.pressurize_oxygen_tank": "Pressuriser un reservoir d'oxygene",
"recipe.dye_hair_cyberpunk": "Teindre cheveux neon cyberpunk",
"recipe.tailor_body_suit": "Coudre un costume",
"recipe.craft_pilot_glasses": "Fabriquer des lunettes d'aviateur",
"recipe.forge_armored_plate": "Forger une armure",
"recipe.weld_mechanical_arms": "Souder des bras mecaniques",
"recipe.engineer_rocket_boots": "Concevoir des bottes a reaction",
"recipe.chart_star_navigation": "Cartographier la navigation stellaire",
"recipe.engrave_royal_seal": "Graver un sceau royal",
"recipe.enchant_dark_grimoire": "Enchanter le grimoire sombre",
"recipe.fuse_cosmic_crystal": "Fusionner un cristal cosmique",
"recipe.splice_glowing_dna": "Episser de l'ADN luminescent",
"recipe.preserve_amber": "Conserver une pierre d'ambre",
"recipe.craft_box_not_great": "Fabriquer une boite pas ouf",
"recipe.craft_box_ok_tier": "Fabriquer une boite ok tiers",
"recipe.craft_box_cool": "Fabriquer une boite coolos",
"recipe.craft_box_supply": "Fabriquer une boite de fourniture",
"recipe.craft_box_style": "Fabriquer une boite stylee",
"recipe.craft_box_epic": "Fabriquer une boite epique"
}