pop↑ push↓

☆ (ゝω・)v

プログラムを変更する(3)

CK2のパッチ情報です。

前回

popush.hatenablog.com

今回

このあたりの話です。

localisationテキストについて

ローカライズテキストはlocalisationフォルダにcsvで入っています。区切り記号がカンマ(,)ではなく、セミコロン(;)で区切られているため、厳密にはSSV(semicolon-separated values)です。 CSVの1列目はキーです。2列目は英語、3列目はフランス語、3列目はドイツ語、1つ飛んで5列名にスペイン語が入っています。 f:id:saito-matanki:20171203135852p:plain

注意点として、下記があります。

  • 語尾にxが入っている。
  • 4列目は空
  • 文字列はダブルクオーテーションで囲まれていない
  • 文字エンコーディングがCP1252である。
  • セミコロンのエスケープがどうなっているか不明
  • 変数やアイコン記号などはEU4と同じ
  • CSV の仕様とおなじく#はコメント

翻訳してみる

 文字エンコーディングがCP1252なため、残念ながらそのまま日本語を入れることはできません。EU4でやったような文字列のエスケープをする必要があります。文字列のエスケープアルゴリズムについては下記を参照してください。 popush.hatenablog.com

手動で行うのはつらみがあり、スクリプトで変換します。このスクリプトはEU4のprovince_nameのテキストを生成する時に使っているものです。 f:id:saito-matanki:20171203141048p:plain GASのコンソールは制御文字もそのまま表示してくれるため便利ですね。 f:id:saito-matanki:20171203141244p:plain 適当な文字列を変換したらコピペしてcsvに貼り付けて保存します。今回はlランチャーのUIを変えてみます。EU4と異なり、ランチャーのテキストは別ファイルになっておらず、MonksAndMystics.csvにいました。 f:id:saito-matanki:20171203141404p:plain

プログラムを変更する その1

 簡単にわかるところから進めます。フォントの配列にブレークポイントを仕掛けて見つけます。やり方は下記を参照してください。 popush.hatenablog.com

下記は見つけた箇所のその1です。 f:id:saito-matanki:20171203142452p:plain

ずびゃびーと書き換えます。このコードはコードポイントのチェックが入っていません。ちょっと前に修正したからです。 f:id:saito-matanki:20171203143724p:plain

プログラムを変更する その2

 下記は見つけた箇所のその2です。 f:id:saito-matanki:20171203152916p:plain そのちょっと上を見ます。 f:id:saito-matanki:20171203151756p:plain 右下にbyte_2127670というのがいますね。これはやばいやつです。どういうことかは下記を見てください。 popush.hatenablog.com

修正すると下記のようになります。 f:id:saito-matanki:20171203152735p:plain f:id:saito-matanki:20171203152826p:plain

プログラムを変更する その3

 下記は見つけた箇所のその3です。 f:id:saito-matanki:20171203153104p:plain

こいつはその2の下の方にいます。その2でコピーされた文字列が渡されるため、ここでは文字列のエスエープによるコードポイントのシフトは行いません。 ずびゃびーと書き換えます。 f:id:saito-matanki:20171203153339p:plain

結果

テキスト(ログインとモッド)を日本語にすることができました。 f:id:saito-matanki:20171203153430p:plain

一方で、ボタンは違うロジックで表示されている(過去のEU4の記事を参照)ため、まだそのまま出てきてしまいます。 よくわからないのが、文字がずびゃーと長くなっている箇所で、修正のどこかにバグがあります。

次回 プログラムを変更する(4)に続く