ゲームには日本語・簡体字中国語・繁体字中国語・英語・韓国語の 5 つの表示言語があります。言語パッケージでさらに追加できます。インストールして有効にし、ゲームを再起動すると、設定の言語メニューと言語切り替えキー(F7)に出てきます。パッケージが訳していない画面の文字・名前・セリフは、指定した代わりの言語で表示されます。代わりの言語にもないものは日本語の原文です。
既存の言語だけを変えるパッケージも作れます(別の英訳など)。
パッケージのインストールと管理は MOD パッケージ:導入と作り方 を見てください。バージョン 0.5.3 以降が必要です。
パッケージの中身
yourname.korean/
mod.json
dialogue/ko/language.json 言語の宣言(新しい言語には必須)
dialogue/ko/terms.json 画面の文字と名前
dialogue/ko/story/… シナリオのセリフ
dialogue/ko/battle/… 戦闘のセリフ
dialogue/ko/fonts/… フォント(こちらのフォントにない文字のとき)
art/ko/scene-images/… 言語ごとに差し替える画像(任意)
art/ko/plates/… ワールドマップの名札(任意)
ko は言語コードです。フォルダー名と language.json に書いたものを同じにしてください。使うものだけ入れれば十分で、訳さないセリフファイルや差し替えない画像は入れなくてかまいません。
完全な例「韓国語(第1話デモ)」のソースは config/recomp/mods/lang.ko にあります(韓国語はゲームに内蔵されたため、このパッケージ自体は配布していません)。リアル系男主人公の第1話のシナリオと戦闘セリフ、画面の文字すべてが韓国語で、残りは英語で表示されます。
作り方
ツールはソースコードのリポジトリにあり、Python 3 が必要です。
1. 既存の言語から出発点を書き出す
python3 tools/mods/language_template.py --locale ko --name 한국어 --fallback en --id yourname.korean -o korean-source
代わりの言語(ここでは英語)の文字をすべて、上の形で korean-source に書き出します。terms.json に画面の文字と名前、dialogue/ko/ の下にセリフファイル全部、mod.json と language.json も書かれます。--id はパッケージの一意な名前で、「作者.名前」の形にし、公開後は変えないでください。
2. 翻訳する
terms.json とセリフファイルの代わりの言語の文を、下の各節の決まりに従って自分の言語に置き換えます。訳さない項目は残しても消してもかまいません。パッケージにないところは代わりの言語で表示されます。一部だけの翻訳でも使えるパッケージで、例のパッケージも第1話だけを訳しています。
3. フォントと名前
こちらのフォントにない文字を使う言語は、フォントファイルを dialogue/ko/fonts/ に置き、language.json の fonts に書きます。mod.json に作者とライセンスを書きます(MOD パッケージを参照)。
4. 確認とパッケージ化
python3 tools/mods/validate.py korean-source
python3 tools/mods/pack.py korean-source -o build/mods
validate.py はゲームと同じ決まりでファイルの構成、言語コード、フォント、各項目を確認します。pack.py は yourname.korean-0.1.0.srw64mod を作り、もう一度確認します。制御コードやセリフのページ数が原文と合っているかは ROM を読むゲームの中でしか確かめられません。ログの SRW64_MOD_LANGUAGE_PROBLEM と、ユーザーフォルダーの dialogue/dialogue-report.txt(問題のあるセリフの一覧)を見てください。
5. インストールして言語を選ぶ
ほかの MOD と同じようにインストールし(PC ではゲームのウィンドウにドラッグ、Android では Documents/Marchwind64/mods に置くか MOD ページの「ファイルからインストール」)、ゲームを再起動して、設定の言語メニューか言語切り替えキー(F7)で選びます。選んだ言語は記憶され、次の起動からその言語になります。
直しながら確かめる:作業中のセリフファイルをユーザーフォルダーの dialogue/ko/ に置くとパッケージの上に重なり、ゲーム中に F5 で読み直すと、表示中のセリフがすぐ新しい文になります。できたらパッケージに戻してください。戦闘セリフはタイトル画面のバトルビューアで見るのがいちばん早く、そのステージまで遊ぶ必要はありません。
リポジトリの docs/guide/language-mods/ フォルダーに翻訳の手順、決まりのチェックリスト、韓国語デモが使った用語集があり、まるごと AI アシスタントに渡して訳してもらえます。
language.json
{
"schema": "srw64.language.v1",
"locale": "ko",
"name": "한국어",
"fallback": "en",
"fonts": { "text": ["fonts/MyGothic.ttf"], "title": "fonts/MyBrush.ttf" }
}
| 項目 | 説明 |
|---|---|
locale |
言語コード。ko、fr、pt-BR、es-419 のような書き方。ja、zh-Hans、zh-Hant、en は使えません |
name |
言語メニューに出る名前。その言語自身で書き、24 文字まで |
fallback |
任意。訳がないところに使う言語:ja、zh-Hans、zh-Hant、en。省略時は en |
fonts.text |
任意。本文と画面のフォント、4 つまで。代わりの言語のフォントより先に使われます |
fonts.title |
任意。章タイトルカードのフォント |
組版は代わりの言語に合わせます。 英語を代わりにする言語は単語の間に空白を入れ、空白で改行します。中国語や日本語を代わりにする言語はそれらと同じ組み方です。韓国語やフランス語のように空白で単語を区切る言語は en を選んでください。
フォントは fonts/ の中だけ、.ttf か .otf、1 つ 32 MB まで。ラテン文字はこちらのフォントにあるので、フランス語やスペイン語は持ち込み不要です。韓国語やタイ語など、こちらのフォントにない文字はフォントを入れないと表示されません。フォントのライセンスはパッケージと一緒に配布できるものにしてください。
terms.json:画面の文字と名前
{
"schema": "srw64.language-terms.v1",
"ui": { "title_start": "시작" },
"entries": { "base:t00_00000": "평지<END>" }
}
ui:画面の文字。キーはゲーム付属の言語と同じです(テンプレートに全部あります)。{A}(ボタン)や{n}(数字)などの印はそのまま残してください。減ったり増えたりしたものは使われません。entries:人物名、機体名、武器名、地形、能力名、システムメッセージなど、レコード 0〜5643。<BR>(改行)、<STOP>(改ページ)、<END>(終わり)などの制御コードは原文と同じにします。項目は文字列でも{"text": "…", "ja": "…"}でもかまいません。jaは対照用の日本語原文で、ゲームは読みません(ROM のテキスト書き出しがあるとき、テンプレートが入れます)。- 武器メニュー名(
entriesのうち「格」「射」で始まるもの)は先頭の文字を残してください。ゲームでは格闘・射撃のアイコンとして表示されます。 - 書かなかった項目は代わりの言語のものが出ます。
セリフ
シナリオと戦闘のセリフ、文字ページ(オープニング、エンディング)はプレーンテキストで、プレイヤーがセリフを書き換えるファイルと同じ形式です。リポジトリのセリフのテキスト形式を見てください。ファイルは dialogue/ko/ の下ならどこに置いてもよく、1 レコードで 1 ブロックです:
@17410 로렌스
“아가씨, 차가 준비되었습니다. 오늘은 러시안 티입니다.
---
어디로 가져다 드릴까요?”
ページ数(---)、選択肢の数、{HeroName} などの名前の置き換えは原文と同じにします。合わないレコードは使われず、代わりの言語のものが出ます。プレイヤー自身のセリフフォルダーに ko/ を作ると、パッケージの上に重なります。
言語ごとの画像
その言語で遊んでいるとき、次の画像がパッケージのものに替わります:
art/ko/scene-images/<ファイル名>:シーン画像。たとえばタイトル画面のロゴart/ko/scene-images/title-logo.png。ファイル名は HD パックのものと同じで、HD パックが入っている必要があります。art/ko/plates/<番号>.png:ワールドマップの艦や地点の名札。番号はこちらの名札のファイル名から.plate.ja.pngを除いた部分(5590、5599.6)で、サイズはこちらと同じにします。入れなかった名札は、HD パックにその言語の名札があればそれ(HD パックは次の版から韓国語の名札を持ちます)、なければ代わりの言語のものが出ます。
ほかのパッケージでのその言語
言語パッケージが入っていれば、ほかの MOD もその言語で文字を書けます:mod.json の名前と説明、追加シナリオの名前と章タイトル、名前 MOD、曲名。書かなかったものは代わりの言語の順で表示されます。
注意
- 言語パッケージの有効・無効の切り替えや更新は、ゲームを再起動すると反映されます。使用中の言語のパッケージを無効にしたり削除したりすると、次の起動ではシステムの言語に戻ります。
- 韓国語(
ko)は空白と句読点でのみ改行し、単語の途中では区切りません。 - 改行に辞書が必要な言語(タイ語、ラオ語、クメール語、ビルマ語)は空白でしか改行できません。右から左に書く言語(アラビア語、ヘブライ語)はまだ使えません。
- 問題のある言語パッケージは言語メニューに出てきません。理由はゲームのログ(
SRW64_MOD_LANGUAGE_PROBLEM)にあります。公開前にtools/mods/validate.pyで確認してください。