ゲームが一通り完成しました。日本語で遊べます。海外にも届けたいので英語対応したい。ところが、UI上の文字列を1つずつ手で英訳して差し替えるのかと思うと、気が遠くなります。
UE5には Localization Dashboard という専用の仕組みがあって、ゲーム中の文字列を自動で集め、言語ごとの翻訳を持たせ、実行中に切り替えられます。 ただし、この仕組みには入口で1つ大きな前提があります。翻訳されるのは Text 型だけで、String 型は無視される ということです。ここを知らずに作り進めると、公開直前に「半分だけ日本語のまま」という状態になって作り直しになります。この記事では、ローカライズの全体像と、設定画面で日本語と英語を切り替えるところまでを解説します。
この記事でわかること
- Text と String の違い:翻訳されるのはTextだけ
- Localization Dashboard の3ステップ:Gather → Translate → Compile
- 実行中に言語を切り替える Set Current Culture
- 日本語が豆腐(□)になるフォントの落とし穴
- 実践: 設定画面のコンボボックスで日本語↔英語を切り替える
- 数値や変数を混ぜた文でも翻訳を壊さない Format Text
TextとStringの違い
UE5の文字列には、大きく2つの型があります。ローカライズではこの区別が決定的に重要です。
- Text(FText):表示用の文字列。翻訳される のはこちら。UMGのText Blockの中身や、Data TableのFText列などはText型で持つ。
- String(FString):処理用の文字列。ファイル名やデバッグログなど、翻訳が要らないもの向き。収集も翻訳もされない。
つまり、プレイヤーの目に触れる文字は、すべてText型で持つのが原則です。String型で組み立てた文字列は、どれだけ翻訳作業をしても日本語のまま画面に残ります。

特に事故が多いのが、文字列の連結 です。「所持金:」+ 数値を String で Append してしまうと、その一文まるごとが翻訳対象から外れます。数値や変数を混ぜたいときは、後述の Format Text を使ってText型のまま組み立てます。
Dashboardの3ス テップ
Localization Dashboard は、メニューの Tools > Localization Dashboard から開きます。やることは3ステップです。
- Gather(収集):Gather設定で指定した範囲から、収集対象のText型文字列を拾い集める。Widgetを保存(Save All)してから「Gather Text」ボタンを押す。
- Translate(翻訳):集まった文字列に、言語ごとの訳を入れる。追加した言語(カルチャー)の「Edit Translations for this culture」(鉛筆アイコン)から翻訳エディタを開き、日本語の原文に対して英訳を打ち込む。
- Compile(コンパイル):翻訳を、ゲームが読める形(
.locresファイル)に変換する。「Compile Text」ボタンを押す。

最初に言語(カルチャー)を設定します。日本語で原稿を書いているなら、Native Culture(原文の言語)を ja に設定 し、翻訳先として en を追加します。Native Cultureを決めておかないと、翻訳エディタが日本語を原文として正しく扱えません。Gatherする範囲は「Gather Text」設定で指定できますが、最初はプロジェクトのContent全体が対象に入っていれば大丈夫です。
大事なのは、文字列を足したら、保存してから Gather し直す ことです。新しいセリフやボタンを追加したのに保存やGatherを忘れると、その文字列は翻訳リストに現れず、翻訳できません。
実行中に言語を切り替える
コンパイルまで済めば、ゲーム中に言語を切り替えられます。使うのは Set Current Culture ノードです。カルチャー名の文字列("en" や "ja")を渡すだけで、その場で表示言語が変わります。

Text Blockに直接入力したテキストは、言語を切り替えると自動で対応する訳に差し替わります。UIを作り直す必要はありません。ここが、最初からText型で作っておく最大のご褒美です。
切り替えを保存したい場合は、Set Current Culture の Save to Config を true にするだけで、選んだ言語がユーザー設定に保存され、次回起動時も維持されます。もっと自分で管理したいなら、自作のセーブデータ に言語名を記録する方法もあります。
フォントの落とし穴
言語を切り替えて、英語はきれいに出るのに、日本語に戻したら文字が □(豆腐) になった。これはローカライズ作業で必ず一度は出会う症状です。
原因はフォントです。UE5の既定フォント(Roboto)には、日本語のグリフ(字形)が含まれていません。英語のアルファベットしか持たないので、日本語を出そうとすると、そのままでは「文字の絵がありません」という意味の豆腐になりがちです。

直し方は、日本語を含むフォント(Noto Sans JP など)をインポートして、UIのフォントに設定することです。中国語や韓国語にも対応するなら、それぞれのグリフを含むフォントが追加で要ります。フォントファイルは容量が大きいので、対応言語が決まってから入れるのが無駄がありません。
実践:設定画面で日本語↔英語を切り替える
公開前に必ずやる作業を、最後まで通します。
RPGのオプション画面、パズルゲームのタイトルメニュー、ノベルゲームの 環境設定。ジャンルを問わず、設定画面には言語切り替えの項目が並びます。ここでは、設定画面のコンボボックスで言語を選ぶと、その場でUI全体の言語が変わる ものを作ります。
動かすとこうなります。コンボボックスで「English」を選んだ瞬間に、タイトルもボタンも英語に変わる。そして、もし1箇所だけString型で作ってしまった文字列があれば、そこだけ日本語のまま取り残されて、直すべき場所が炙り出されます。

準備
- 設定画面のWidgetに Combo Box (String) を1つ置き、Detailsの Default Options に「日本語」と「English」を追加する。
- UI上の表示文字は、翻訳する分をすべて Text型(Text BlockのTextなど)で持たせておく。
- Localization Dashboard で Native Cultureを
ja、翻訳先にenを追加し、Widgetを 保存 → Gather → 英訳を入力 → Compile まで済ませる。
グラフを組む
コンボボックスの選択が変わったときに、Set Current Culture を呼びます。
