言語設定とは別のローカライズテキストをFTextを用いて表示する手法について

お世話になっております。

件名の件について、言語の指定(SetCurrentCulture,SetCurrentLanguage)とは別の翻訳言語のTextをWidget上から表示するためのベストプラクティスはございますでしょうか。

Localization Dashboardの使用を前提としています。

<br/>

使用したい例として、SetCurrentCultureをjaにします。

WBPにTextBlockを2つ配置しTextに同じストリングテーブルのキーを指定します。

enとjaのGame.locresでそれぞれローカライズ済みのテキストが存在するとします。

WBPをビューポートの追加します。

<br/>

この場合、TextはSetCurrentCultureに沿った翻訳内容(この場合ja)の文字が表示されると思いますが、

片方を英語(en)等の各指定言語の翻訳内容にしたいです。

<br/>

上記内容を実現するための手法をご教示いただければ幸いです。

<br/>

FTextLocalizationManagerとFLocalizationResourceTextSourceの実装を参考に、

FLocalizationResourceTextSource::LoadLocalizedResourcesを指定言語から取得できるInOutLocalizedResourceをバッファとして保持し、Entries内をFTextInspector::GetTextIdを元にFindする手法を検討していますが、他の望ましい方法や、この方法に問題がある場合等、その他の実現方法があればと思いご質問させていただいています。

お世話になっております。

なるほど、同時に二つのCultureを表示したいということですね。気をつけなきゃいけないですが、

UnrealEngineのFTextシステムは、SetCurrentCulture()で設定されたグローバルなアクティブCultureに基づいてテキストをローカライズするため、同一ウィジェット内で複数言語を同時に表示することは標準ではできません。

複数言語を同時に表示したい場合は、自動ローカライズを回避し、StringTableから特定カルチャのテキストを直接取得して表示します。

この方法はSetCurrentCulture()の影響を受けずに動作します。内部のローカライズAPIへの直接アクセスは将来的な仕様変更のリスクがあるため避けるべきです。

一般的には、StringTableで翻訳を管理し、FText::AsCultureInvariantを使ってCulture固定表示するのが最もシンプルで安定した方法だと思います。

お手数ですが、よろしくお願いします。

ご回答いただきありがとうございます。

複数言語を同時に表示することは標準では用意がない旨、承知致しました。

具体的な実装方法で質問事項出てきましたら、また相談させていただければと思います。