プログラムを変更する(3)
CK2のパッチ情報です。
前回
今回
このあたりの話です。
バグ直したら改善したヤッター pic.twitter.com/Zc1qNVpH8J
— matanki.saito (@matanki_saito) 2017年11月23日
localisationテキストについて
ローカライズテキストはlocalisationフォルダにcsvで入っています。区切り記号がカンマ(,)ではなく、セミコロン(;)で区切られているため、厳密にはSSV(semicolon-separated values)です。 CSVの1列目はキーです。2列目は英語、3列目はフランス語、3列目はドイツ語、1つ飛んで5列名にスペイン語が入っています。
注意点として、下記があります。
- 語尾にxが入っている。
- 4列目は空
- 文字列はダブルクオーテーションで囲まれていない
- 文字エンコーディングがCP1252である。
- セミコロンのエスケープがどうなっているか不明
- 変数やアイコン記号などはEU4と同じ
- CSV の仕様とおなじく#はコメント
翻訳してみる
文字エンコーディングがCP1252なため、残念ながらそのまま日本語を入れることはできません。EU4でやったような文字列のエスケープをする必要があります。文字列のエスケープアルゴリズムについては下記を参照してください。 popush.hatenablog.com
手動で行うのはつらみがあり、スクリプトで変換します。このスクリプトはEU4のprovince_nameのテキストを生成する時に使っているものです。 GASのコンソールは制御文字もそのまま表示してくれるため便利ですね。 適当な文字列を変換したらコピペしてcsvに貼り付けて保存します。今回はlランチャーのUIを変えてみます。EU4と異なり、ランチャーのテキストは別ファイルになっておらず、MonksAndMystics.csvにいました。
プログラムを変更する その1
簡単にわかるところから進めます。フォントの配列にブレークポイントを仕掛けて見つけます。やり方は下記を参照してください。 popush.hatenablog.com
下記は見つけた箇所のその1です。
ずびゃびーと書き換えます。このコードはコードポイントのチェックが入っていません。ちょっと前に修正したからです。
プログラムを変更する その2
下記は見つけた箇所のその2です。 そのちょっと上を見ます。 右下にbyte_2127670というのがいますね。これはやばいやつです。どういうことかは下記を見てください。 popush.hatenablog.com
修正すると下記のようになります。
プログラムを変更する その3
下記は見つけた箇所のその3です。
こいつはその2の下の方にいます。その2でコピーされた文字列が渡されるため、ここでは文字列のエスエープによるコードポイントのシフトは行いません。 ずびゃびーと書き換えます。
結果
テキスト(ログインとモッド)を日本語にすることができました。
一方で、ボタンは違うロジックで表示されている(過去のEU4の記事を参照)ため、まだそのまま出てきてしまいます。 よくわからないのが、文字がずびゃーと長くなっている箇所で、修正のどこかにバグがあります。
次回 プログラムを変更する(4)に続く