執筆バージョン: Unreal Engine 4.22
|
概要
アプリケーション中に表示される各種テキストの翻訳データを外部ツールで編集したい場合があると思います。
自前でローカリゼーションシステムを組む方法も勿論ありますが、
UE4ではPortable Object(拡張子”.po”)のインポート/エクスポートという形でこれに対応しています。
この機能の扱いについて少し触れてみます。
Portable Objectとは
一般にはGetTextというローカライズのためのライブラリで扱われるフォーマットです。
翻訳先言語ごとに分けられたテキスト形式のデータで、
内容は
テキストのID、翻訳元の文字列、翻訳後の文字列
の羅列となっています。

↑Portable Object 内容の例
言語ごとにファイルが分かれているため、一覧には向きません。
一覧したい場合は、編集用のExcelシートからPortable Objectフォーマットで出力するマクロを組む等することになります。
Portable Objectの閲覧・編集方法
テキストエディタでも問題なく開くことができますが、
Poeditというツールが便利です。

↑Poeditの編集画面
UE4でのインポート/エクスポート

画像のImportText / ExportTextボタンでPortable Objectのインポート及びエクスポートが可能です
(カルチャー毎のインポート/エクスポートも右側の小さいボタンでできます)。
※)注意点として、マルチバイト文字に関してはエクスポートしたデータをそのままインポートしようとしても失敗します。
Poeditで編集したものは正常にインポートできるため、エクスポート機能に不備があるように思われます(Ver4.22で検証)。
翻訳データ取り扱いの注意点
上の画像において見慣れない言語(Esperanto)にNativeチェックが入っていますが、これには理由があります。
Native言語の文字列が変更されると対応する翻訳とのリンクが切れてしまう仕様であるため
(テキストに「キー」が設定されているにも関わらずオリジナルのテキストそのものもIDの一部として扱われるようです)、
Nativeには実際には使用しない言語を割り当て決して変わらないようにするのが望ましいのです。
まとめ
UE4の翻訳テキストデータ入出力フォーマットであるPortable Objectについて紹介しました。