Moteur pris en charge · TyranoBuilder / TyranoScript
TyranoBuilder (et le TyranoScript sous-jacent) est un moteur de visual novel japonais populaire pour les sorties indépendantes sur itch.io, DLsite et Steam. RuneTranslate détecte à la fois les versions encapsulées dans Electron (resources/app.asar contenant tyrano/tyrano.js + data/scenario/*.ks) et les versions HTML5 autonomes (fichiers en vrac à la racine). Il traduit chaque fichier de scénario .ks (y compris _preview.ks et les miroirs system/_*.ks utilisés par les jeux à build chiffré), tyrano/lang.js pour les chaînes d'interface, data/system/Config.tjs pour les chaînes de configuration, ET injecte les noms d'affichage des personnages dans un bloc chara_define.ks — le raccourci de locuteur inline [<JP-id>] devient automatiquement des entrées [chara_new name=... jname=...] en bonne et due forme. Combinez-le avec la fonction Glossaire de l'offre Supporter pour verrouiller chaque nom de personnage de la distribution sur un rendu précis avant le premier lot de traduction. La langue source est le japonais par défaut, mais c'est un réglage par projet — chinois, coréen, anglais et plus fonctionnent tous, donc un build Tyrano non japonais s'extrait de la même façon.
L'injection des noms de personnages de TyranoBuilder vous donne déjà une liste propre de locuteurs — mais tout le reste du script (noms de lieux, noms d'organisations, noms de jutsu / sorts signature) dérive quand même par défaut. Ajoutez-les au glossaire. Les balises KAG inline ([r], [p], [font color=...]) sont masquées en tant que balises, donc les substitutions de glossaire n'écrasent jamais accidentellement une directive inline — un mode d'échec courant des traductions Tyrano faites à la main. Le glossaire : les bases →
Pointez RuneTranslate vers la racine du jeu. La détection du moteur gère les deux structures : encapsulée dans Electron (resources/app.asar contenant tyrano/) et HTML5 autonome (data/scenario/ à la racine). Pour les builds Electron, RuneTranslate lit et ré-empaquette app.asar de façon transparente via @electron/asar.
RuneTranslate scanne data/scenario/**/*.ks (y compris _preview.ks et les miroirs system/_*.ks qu'utilisent les builds chiffrés), tyrano/lang.js pour l'interface du moteur, et data/system/Config.tjs pour les chaînes de configuration. Les balises KAG inline ([r], [p], [改ページ], [font color]) et les balises à nom japonais sont masquées via une expression régulière compatible Unicode pour que le LLM ne puisse pas les corrompre.
Quand le scénario utilise le raccourci de locuteur inline [<JP-id>] sans entrées chara_define.ks correspondantes, RuneTranslate génère un bloc chara_define.ks avec des entrées [chara_new name="<EN>" jname="<JP>"] — préservant la recherche de personnages du moteur. Les références inline restent intactes, donc les sauvegardes et les galeries CG correspondent toujours.
Pour les builds HTML5, RuneTranslate écrit les fichiers .ks modifiés sur place. Pour les builds Electron, l'app.asar modifié est ré-empaqueté. Les fichiers .ks binaires / chiffrés (détectés par reniflage UTF-8) ne sont jamais écrasés. La version traduite tourne dans TyranoBuilder à l'identique de l'original japonais.