対応エンジン · TyranoBuilder / TyranoScript
TyranoBuilder(および基盤となる TyranoScript)は、itch.io、DLsite、Steam のインディーリリースで人気の日本製ビジュアルノベルエンジンです。RuneTranslate は Electron ラップ版(tyrano/tyrano.js + data/scenario/*.ks を含む resources/app.asar)と HTML5 スタンドアロン版(ルートのルーズファイル)の両方を検出します。すべての .ks シナリオファイル(暗号化ビルドのゲームが使う _preview.ks や system/_*.ks のミラーを含む)、UI 文字列用の tyrano/lang.js、設定文字列用の data/system/Config.tjs を翻訳し、さらにキャラクターの表示名を chara_define.ks ブロックに注入します — インラインの [<JP-id>] 話者略記が適切な [chara_new name=... jname=...] エントリーに自動変換されます。Supporter プランの用語集機能と組み合わせれば、最初の翻訳バッチが走る前にキャスト一覧のすべてのキャラクター名を特定の表記に固定できます。ソース言語は既定で日本語ですが、プロジェクトごとの設定です — 中国語、韓国語、英語などすべて動作するので、日本語以外の Tyrano ビルドも同じように抽出されます。
TyranoBuilder のキャラクター名注入は、話者のきれいな一覧をすでに用意してくれます — が、スクリプト内のそれ以外(地名、組織名、必殺の術 / 呪文名)は既定でブレます。それらを用語集に登録しましょう。インライン KAG タグ([r]、[p]、[font color=...])はタグでマスクされるので、用語集の置換がインラインディレクティブを誤って壊すことはありません — 手動編集した tyrano 翻訳でよくある失敗モードです。 用語集の基本 →
ゲームルートを RuneTranslate に指定します。エンジン検出は両方のレイアウトに対応:Electron ラップ版(tyrano/ を含む resources/app.asar)と HTML5 スタンドアロン版(ルートの data/scenario/)。Electron ビルドでは RuneTranslate が @electron/asar で app.asar を透過的に読み取り・再パックします。
RuneTranslate は data/scenario/**/*.ks(暗号化ビルドが使う _preview.ks と system/_*.ks のミラーを含む)、エンジン UI 用の tyrano/lang.js、設定レベルの文字列用の data/system/Config.tjs をスキャンします。インライン KAG タグ([r]、[p]、[改ページ]、[font color])と日本語名のタグは Unicode 対応の正規表現でマスクされ、LLM が壊せません。
シナリオが対応する chara_define.ks エントリーなしにインラインの [<JP-id>] 話者略記を使う場合、RuneTranslate は [chara_new name="<EN>" jname="<JP>"] エントリーを含む chara_define.ks ブロックを生成します — エンジンのキャラクター参照を保ちます。インライン参照はそのまま残るので、セーブデータや CG ギャラリーも一致し続けます。
HTML5 ビルドでは、RuneTranslate は変更した .ks ファイルをその場で書き込みます。Electron ビルドでは、変更した app.asar が再パックされます。バイナリ / 暗号化された .ks ファイル(UTF-8 スニフで検出)は決して上書きされません。翻訳済みビルドは TyranoBuilder で日本語版とまったく同じように動作します。