この記事の要点
- UE5 の多言語化はローカライズダッシュボードを中心に、対象テキストを FText(Text 型)で持つことで実現する
- ワークフローは Gather → Export(PO) → 翻訳 → Import → Compile の 5 ステップ
- 実行時の言語切替は Set Current Culture(言語コード
ja,en-USなど)+ Apply Settings - String 型は翻訳されない。Blueprint / UMG / C++ いずれも FText で書く
- 実機の言語フォールバックは ネイティブカルチャ(多くは
en)。未翻訳キーはこちらに戻る
1UE5 における多言語化の全体像
UE5 で多言語対応を行うときの基本は次の 3 点です。
- 表示するテキストは FText(Text 型)で持つ
- 翻訳データは ローカライズダッシュボードでターゲット単位に管理する
- 実行時に Set Current Culture + Apply Settings で言語を切り替える
String 型(FString)の文字列は翻訳の対象にならないため、UI の文言・台詞・アイテム名はすべて FText で扱う必要があります。
2事前準備:ローカライズの有効化
「編集 → プロジェクト設定 → エディタ → エクスペリメンタル」または「エディタの環境設定」から Localization Dashboard(ローカライゼーション ダッシュボード)を有効にします。プロジェクト設定の「Internationalization」セクションでは、パッケージ時に同梱する言語を選択できます。
3ワークフロー:Gather → Translate → Import → Compile
| ステップ | UI 操作 | 生成物 |
|---|---|---|
| 1. Gather Text | 「テキストを収集」ボタン | FText を全プロジェクトから収集 |
| 2. Export | 言語ごとに「翻訳をエクスポート」 | .po ファイル(Gettext 形式) |
| 3. 翻訳 | 外部ツール(Poedit / OmegaT 等)または翻訳会社 | 翻訳済み .po |
| 4. Import | 「翻訳をインポート」 | Localization/ に保存 |
| 5. Compile | 「テキストをコンパイル」 | ランタイム用 .locres |
新しいターゲットは「新しいローカライズターゲット」で作成し、「Game」(プロジェクト全体)や「Engine」「Editor」などを切り分けます。多くのゲームプロジェクトでは Game ターゲット 1 つで十分です。
4テキストの書き方:FText を使う
Blueprint の場合
変数の型に Text を選択するか、「Make Literal Text」「Format Text」ノードでリテラル文字列を作ります。文字列リテラルは自動でキーが振られ、ダッシュボードの Gather 対象になります。
C++ の場合
#include "Internationalization/Text.h"
// NSLOCTEXT(namespace, key, sourceText)
FText Hello = NSLOCTEXT("MyGame", "HelloMessage", "こんにちは、世界");
// LOCTEXT を使うパターン(ファイル冒頭に LOCTEXT_NAMESPACE を定義)
#define LOCTEXT_NAMESPACE "MyGame"
FText Title = LOCTEXT("MainTitle", "メインメニュー");
#undef LOCTEXT_NAMESPACE
// フォーマット
FFormatNamedArguments Args;
Args.Add(TEXT("Score"), FText::AsNumber(1234));
FText Msg = FText::Format(LOCTEXT("ScoreFmt", "スコア: {Score}"), Args);
NSLOCTEXT / LOCTEXT は collator が認識するマクロで、ビルド時にキーごと収集されます。直接 FText::FromString() で作った文字列は翻訳対象になりません。
5言語の切替:Set Current Culture
Blueprint で動的に言語を切り替えるには次のノードを使います。
| ノード | 用途 |
|---|---|
Get Current Culture | 現在のカルチャ(ja, en-US など)を取得 |
Set Current Culture | カルチャを設定(成功すれば即時反映) |
Apply Settings | ゲーム設定として保存(再起動後も維持) |
Get Culture Display Name | 言語選択 UI 用の表示名(「日本語」「English」など) |
典型的な言語切替フロー
- 言語選択 UMG で「日本語」「English」ボタンを表示
- クリックで
Set Current Culture("ja")/Set Current Culture("en-US")を呼ぶ Apply Settings(bCheckForCommandLineOverrides=false)を呼んでGameUserSettings.iniに保存- UMG をリビルド(
Construct Widgetを作り直す or 「Synchronize Properties」)
6ネイティブカルチャとフォールバック
ローカライズターゲットには「ネイティブカルチャ」を 1 つ指定します。これは原文の言語であり、未翻訳キーが見つからない場合のフォールバック先になります。日本のスタジオで日本語原文の場合は ja をネイティブカルチャに設定するのが自然です。
| カルチャコード | 言語 |
|---|---|
ja | 日本語(汎用) |
en / en-US / en-GB | 英語(汎用 / 米 / 英) |
zh-Hans / zh-Hant | 簡体字中国語 / 繁体字中国語 |
ko | 韓国語 |
de / fr / es / ru | 独 / 仏 / 西 / 露 |
7UMG での注意点
- Text ブロックの「Text」プロパティに直接打ち込んだ文字列は FText として収集されます
- Bind で関数を返り値 FText にすれば動的テキストも翻訳対象
- String を To Text でキャストしても翻訳されない(キーが無いため)
- フォント差し替え(中文・韓文)は Font Family の「Sub Font」設定でカルチャ別に切替可能
8パッケージング時の設定
「プロジェクト設定 → パッケージング → Internationalization Support」で「Conformant Localizations」または「All」を選び、同梱したい言語にチェックを入れます。EFIGS(English/French/Italian/German/Spanish)プリセットも用意されています。
9よくあるトラブル
| 症状 | 原因 / 対処 |
|---|---|
| 翻訳が反映されない | Compile 忘れ、または UMG リビルド未実施 |
| 新しいテキストが収集されない | String 型で書いた / 動的フォーマットで FText を作っていない |
| パッケージ後に英語に戻る | パッケージ設定で当該カルチャを含めていない |
| 外字 / 記号が「□」 | フォントに該当文字のグリフが無い。フォントサブフォントを設定 |
| キーが重複してマージされる | 同じ文字列が複数箇所で使われると 1 つにまとまる。区別したいなら NSLOCTEXT のキーを変える |
10関連
子ページはありません
- プロジェクトの削除方法
- Blueprintでプロジェクト全体で共有できるStatic定数の定義方法
- プロジェクトを多言語化する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- DMP / コアダンプ (.dmp / .core) とは ― WinDbg / gdb で行う postmortem 解析 2026-10-03 03:39:59
- PCAP / PCAPNG (.pcap / .pcapng) とは ― tcpdump / Wireshark のパケットキャプチャ形式 2026-10-03 03:39:58
- PFX / P12 (.pfx / .p12) とは ― PKCS#12 で証明書と秘密鍵を一括管理 2026-10-03 03:39:58
- CRT / CER / DER (.crt / .cer / .der) とは ― X.509 証明書のテキスト / バイナリ表現 2026-10-03 03:39:58
- PEM (.pem) とは ― Base64 テキストで証明書・秘密鍵を扱う事実上の標準形式 2026-10-03 03:39:58
- Feather / Arrow IPC | Apache Arrow メモリ直マッピング形式解説 2026-10-03 03:39:57
- Protocol Buffers (.proto) | Google Protobuf / gRPC スキーマ解説 2026-10-03 03:39:57
- ORC (.orc) | Apache ORC Hive 由来の列指向フォーマット解説 2026-10-03 03:39:57
- Avro (.avro) | Apache Avro 行指向シリアライゼーション解説 2026-10-03 03:39:57
- Parquet (.parquet) | Apache Parquet 列指向ファイルフォーマット解説 2026-10-03 03:39:56
- AppImage(.appimage)とは — Linux ポータブル 1 ファイル配布形式 2026-10-03 03:39:56
- IPA(.ipa)とは — iOS アプリのパッケージ形式 2026-10-03 03:39:56
- APK(.apk)とは — Android アプリのパッケージ形式 2026-10-03 03:39:56
- RPM(.rpm)とは — Red Hat 系 Linux の標準パッケージ形式 2026-10-03 03:39:55
- DEB(.deb)とは — Debian/Ubuntu の標準パッケージ形式 2026-10-03 03:39:55