はじめに
Neetpiaです。
現在、幻想郷ディフェンダーズというアクションタワーディフェンスをWindows/PlayStation4向けに開発しています。
今回、台湾展示のために中国語に対応しました。
UE4にはAsset Localizationという機能があり、楽に多言語化対応できるのですが、資料が少なく落とし穴がいっぱいありました。
今回、この資料に補足する感じで追加で対応したことを説明します。
http://historia.co.jp/archives/6158
言語の切り替え
Execute Console Command「culture=(言語別フォルダ名)」
で言語を切り替えれるとありますが、UE4.14では何故かできませんでした。代わりにC++で言語切り替えを実装しました。
中国語に切り替えています。
FInternationalization::Get().SetCurrentCulture(TEXT("zh-TW"));
フォルダの作成
L10Nフォルダに作成した各言語のフォルダにアセットファイルが作られるので
とありますが、UE4.14では自動生成されません。コンテンツブラウザからも作成できません。
例えば中国語を追加する場合、エクスプローラーから L10N/zh-TW
を作成し、かつこのフォルダを認識させるために適当なアセットを入れておきます。そうすると、Create Localized Asset
が表示されるようになります。
パッケージ化
パッケージ化を適切に設定しないと、パッケージにファイルが含まれずローカライズできません。
便利な機能なのですが、資料は少なく挙動がわかりにくいところも多いです。今回もかなり回りくどいことを行ってるので、実は他に適切な方法があったら教えていただけると助かります。