ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
UE5 における多言語化の全体像
UE5 で多言語対応を行うときの基本は次の 3 点です。
- 表示するテキストは FText(Text 型)で持つ
- 翻訳データは ローカライズダッシュボードでターゲット単位に管理する
- 実行時に Set Current Culture + Apply Settings で言語を切り替える
String 型(FString)の文字列は翻訳の対象にならないため、UI の文言・台詞・アイテム名はすべて FText で扱う必要があります。
事前準備:ローカライズの有効化
「編集 → プロジェクト設定 → エディタ → エクスペリメンタル」または「エディタの環境設定」から Localization Dashboard(ローカライゼーション ダッシュボード)を有効にします。プロジェクト設定の「Internationalization」セクションでは、パッケージ時に同梱する言語を選択できます。
ワークフロー: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 つで十分です。
テキストの書き方: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() で作った文字列は翻訳対象になりません。
言語の切替: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」)
ネイティブカルチャとフォールバック
ローカライズターゲットには「ネイティブカルチャ」を 1 つ指定します。これは原文の言語であり、未翻訳キーが見つからない場合のフォールバック先になります。日本のスタジオで日本語原文の場合は ja をネイティブカルチャに設定するのが自然です。
| カルチャコード | 言語 |
|---|---|
ja | 日本語(汎用) |
en / en-US / en-GB | 英語(汎用 / 米 / 英) |
zh-Hans / zh-Hant | 簡体字中国語 / 繁体字中国語 |
ko | 韓国語 |
de / fr / es / ru | 独 / 仏 / 西 / 露 |
UMG での注意点
- Text ブロックの「Text」プロパティに直接打ち込んだ文字列は FText として収集されます
- Bind で関数を返り値 FText にすれば動的テキストも翻訳対象
- String を To Text でキャストしても翻訳されない(キーが無いため)
- フォント差し替え(中文・韓文)は Font Family の「Sub Font」設定でカルチャ別に切替可能
パッケージング時の設定
「プロジェクト設定 → パッケージング → Internationalization Support」で「Conformant Localizations」または「All」を選び、同梱したい言語にチェックを入れます。EFIGS(English/French/Italian/German/Spanish)プリセットも用意されています。
よくあるトラブル
| 症状 | 原因 / 対処 |
|---|---|
| 翻訳が反映されない | Compile 忘れ、または UMG リビルド未実施 |
| 新しいテキストが収集されない | String 型で書いた / 動的フォーマットで FText を作っていない |
| パッケージ後に英語に戻る | パッケージ設定で当該カルチャを含めていない |
| 外字 / 記号が「□」 | フォントに該当文字のグリフが無い。フォントサブフォントを設定 |
| キーが重複してマージされる | 同じ文字列が複数箇所で使われると 1 つにまとまる。区別したいなら NSLOCTEXT のキーを変える |
関連
- RInterp To — UE5 のノード一覧から
- Blueprintで「Cast To」を使い、複数のクラスに対応する方法
- Event ActorBeginOverlap と On Component Begin Overlap の違い
- ブループリントで現在日時を取得する方法
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- プロジェクトの削除方法
- Blueprintでプロジェクト全体で共有できるStatic定数の定義方法
- プロジェクトを多言語化する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?