CF2.5 の日本語化





昨日ようやく買えたので触ってみた。あたりまえだがいんたーふぇーすがぜんぶえいごである。にほんごらんぐふぁいるははいってなかった。でもふらんすごのラングファイルははいっていたので、これを元にすればラングファイルは自作できるだろう。

無ければ作ればいいんですよ

すでに日本語化ラングファイルについてはドット絵作家の利龍さんがニコ生で手がけている様子。エクセレント!

【祝CF2.5】Fusion2.5を日本語化する【MMF2乙】 (番組ID:lv162295148)

ラングファイルの仕様とかメモ

全体でどの程度の作業量になるのかが分からんからテキストの数とバイト数を確認。ラングファイルをざっと閲覧したら 97個のテキストファイル、サイズは 875,679 バイト。中を見たら BOM 付きの UTF-8 で保存されていて、書式は JSON。

“version” : 1,
“lang” : 1036,
“general” :

という 3つの要素が必ず先頭に来る。”lang” : 1036 については Locale IDである。1036 に割り当てられているのはフランスだから、日本語の場合「1041」にしてフォルダ名を「 ja-jp 」、かな。

一部エクステも日本語化できている件

起動したあと、メモリを直接触って書きなおしているのかもしれないし、どこかにキャッシュしたものを読み込んでいるのかもしれない。なんていうか、普通のラングファイルではなくて、ややこしい仕様のラングファイル。翻訳のための仕様がはっきりと分かれば現在ラングファイルが存在する以外のエクステンションでも日本語化することができるものもあるかもしれない。とりあえず現在はフランス語版のラングファイルで仕様を調べている。

dialog_109
dialog_111
dialog_113
dialog_149
dialog_150
dialog_1002
dialog_1003
dialog_1004
dialog_1005
dialog_1006
dialog_1007
dialog_1008
dialog_1009
dialog_1010
dialog_1011
ダイアログは法則性がさっぱりわからん
dialog_20003
dialog_30721
menu_20000
menu_20001
menu_20002

各エクステのメニューやらダイアログを指定しながらソースと翻訳の対になった形式。なんでわざわざフランス語化するのに英語のソースまで必要なのか不思議だったが、ソースを元に文字列を置換してるのだろうかという疑惑が発生。各要素にはおよそ明確な順番は無くて、すこし順番をひっくり返すくらいはできる。そこで実験したら明らかに順番は無視してもいい。配列の構造を崩すことさえなければ自由に順番は入れ替えられるし、ちゃんとフランス語化されている。

そこで自分で作ったエクステならエクステの仕様がはっきりとわかるので試しに実際やってみたらそれほど単純ではなかった。EDif 製の自家用エクステを使ってラングファイルを作ろうとしたけど作れなかった。

仕様

エクステも一部多言語対応化できるが、ソースにある英語は結構重要で、文字列検索に使われている。フランス語用ラングファイルで試しているが、ソースの英文を改竄してわざと全文一致させないようにするとその部分だけフランス語化されずに英語で出力される。つまり英語のソースで特定文字列を検索して一致させないといけないようだ。英語に関してはラングファイルが存在しないのでおそらくバイナリを直接弄るか何かしてデフォルトは英語で表示されているメニュー等を無理やり他言語に書き換えている気がする。エクステで考えると、最初からフランス語でメニュー等が作られたエクステを英語化させる場合には、フランス語>>英語という対の形が必要になる。

例えば
“File” : “Fichier”,
だがこれを
“Kile” : “Fichier”,

とかソースの英語部分を改竄すれば検索時に文字列が一致しないのでフランス語化させようとしても ” Fichier ” とは表示されなくなる。こんなめんどくさいラングファイル見たこと無いが、どうも現状のまま一部エクステまで含めた多言語化対応をさせるために力技を使ったような印象を持った。効率的に翻訳するためのインハウスツールもクリックチーム内には存在すると思う。手動では効率が明らかに悪い作業だからだ。

エクスポータの日本語化

HTML5 エクスポータを買ったら言語ファイルが付いてきた。もちろんフランス語版ラングファイルセットだ。つまり今後はエクスポータも翻訳ファイルを使った各国言語対応が可能になる。

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です