2019年12月14日土曜日

Mote-Includeは日本語に対応していない


Mote-includeはGearSwapをさらに使いやすくするためのライブラリであり、現在ではGearSwapにはMote-Includeが標準で含まれている。しかし、GearSwapは日本語対応しているのにたいしてMote-Includeは日本語非対応となっている。完全に動かないというわけではないが、正常動作しない部分がある。

たとえば、Mote-Includeではsets.idle.Townという装備セットを登録することで、街中に入ると自動で着替えるようになっているが、現在のエリアが街中かどうかを判断するコードが英語環境専用になっていて日本語環境の場合(set_language('japanese'))では正常には動作しない。

Mote-Mappings.luaの中で”街のエリア名”を格納する変数 areas.Cities が定義されているが、そこには英語のエリア名しか登録されていない。一方で、プレイヤーキャラが現在いるエリアの名前は日本語名で取得してしまう。言語の不一致で正常に動作しない。

また、「if buffactive.weakness then」というコードがあり、デバフ名を英語でハードコーディングしているため、衰弱時の自動着替え sets.idle.Weak も正常には動作しない。

加えて、「if spell.english == 'Spectral Jig' and buffactive.sneak then」というコードでは、スニークのバフ名を英語でハードコーディングしている。Mote-Includeでは”スペクトラルジグ”を実行するときにスニーク状態であれば、ジグを実行する前に自動的にスニークをcancelする処理が実装されている。日本語環境ではその処理が実行されない。

さらに、曜日や天候の属性(element)を処理する以下のコード(Mote-Utility.lua)でも、日本語と英語が混在することで動作不良を起こす。
    local world_elements = S{world.day_element}
    if world.weather_element ~= 'None' then
        world_elements:add(world.weather_element)
    end
world変数は本家GearSwapが提供する変数であり、日本語環境の場合は日本語名が格納されている。ところが、Mote-Includeは英語名を前提にして作られているため言語の不一致により正常には動作しない。









0 件のコメント:

コメントを投稿