T-Engine4でローグライクゲームを作る(2)(日本語対応する)このエントリーをはてなブックマークに追加

|

T-Engine 4でローグライクゲームを作るのの続き。日本語対応する。

(これはRoguelike Advent Calendar 2021 15日目の記事です)

完成ソース

先に今回の変更を適用したソースを示します: Release v20211215

/moduleフォルダに(exampleフォルダと並びになる位置に)advent2021フォルダを 作り、その下にアーカイブを内容をコピーします。

事前準備

日本語化するに当たって、設定ファイルの追加が必要です。 手動で作成してもいいのですが、ToMEの機能で作るのが楽でしょう。 次の手順を行います。

  • オプションなしでt-engineを実行
  • Options->Language->日本語を選択
  • 一旦終了する

途中で「オンラインを有効にするか」を聞かれるので"Disable all"を 選んでおいた方が良いでしょう。

実行

モジュール名が変わっているので、起動方法も少し変わります:

t-engine -Madvent2021 -uplayer -n --flush-stdout

変更内容の解説

新しいモジュールにする f2f8051

サンプルモジュールに変更を加えるにあたり、モジュール名などを変更します。 詳しくは Howto - Getting Started にあります。

I18N化する 410cf60

基本的にはinit.luai18n_support = trueを追加すればよいのですが、 これだけだとフォントにロケール情報が適用されないため、 load.luaでデフォルトのフォントを再設定します。

次に、LogFlasherLogDisplayHotkeyDisplayの各機能はフォント指定を 省略した場合、デフォルトフォント設定に従わず固定で英文フォントを 使おうとするため、このままでは日本語が表示されません。 そこで、これらを呼び出すときには明示的にフォント指定をするようにします。

最後に、LogDisplayはI18Nに対応していないため、事前に表示文字列を I18N化してから渡すようにします。

これらの変更により日本語が表示されるようになります。

開発情報

ここまでの開発に使った情報源を記します。

前述したHowto。不完全ながらある程度情報がまとめられているので 最初に見る場所として。但しちょっと古いのでI18Nの話は載っていません。

APIドキュメント。あまり細かい記述はないのでざっくりどんな機能があるかを 見るために。

エンジンにI18Nが実装されたときの記事。雰囲気を知る用。

  • game/modules/tome-1.7.4.team

ToME本体のモジュール。実体はzipファイルなのでリネームすれば展開できます。 具体的なAPIの使用法のサンプルを見たいときに。

  • https://git.net-core.org/tome/t-engine4

T-Engine4のソースリポジトリ。ルーク、ソースを使え。

終わりに

これで一応開発の準備は整いました。ここからどうするかは未定です。