はじめに
UE5のプラグインをテキストローカライズする方法の解説
プロジェクトをローカライズする為のローカライゼーションダッシュボードはプロジェクトのみ対応しているので個別にやる必要があります。
テストでローカライズ設定をしたプロジェクトを用意したので参考にしてください。
UE5.6で動作検証をしています
※ iniの設定なしの場合には動作未検証なので注意してください
実装方法
{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "UEPluginLocalize",
"Description": "",
"Category": "Other",
"CreatedBy": "",
"CreatedByURL": "",
"DocsURL": "",
"MarketplaceURL": "",
"SupportURL": "",
"CanContainContent": false,
"IsBetaVersion": false,
"IsExperimentalVersion": false,
"Installed": false,
"Modules": [
{
"Name": "UEPluginLocalize",
"Type": "Editor",
"LoadingPhase": "Default"
}
],
// この設定がないとローカライズのテキストが読み込まれない
"LocalizationTargets": [
{
"Name": "UEPluginLocalize",
"LoadingPolicy": "Editor",
"ConfigGenerationPolicy": "Auto"
}
]
}
upluginにLocalizationTargets
設定する事でローカライズテキストの読み込み設定が行われます。
LoadingPolicy
ラベル | 説明 |
---|---|
Never | ローカライゼーションデータが自動的に読み込まれることはありません。 |
Always | ローカライゼーションデータは常に自動的にロードされます。 |
Editor | エディター実行時にのみローカライズデータがロードされます。 |
Game | ゲーム実行時にのみローカリゼーションデータがロードされます。 |
PropertyNames | エディターがローカライズされたプロパティ名を表示している場合のみ、ローカライゼーションデータがロードされます。 |
ToolTips | エディターがローカライズされたツールチップを表示している場合のみ、ローカライズデータがロードされます。 |
ConfigGenerationPolicy
ラベル | 説明 |
---|---|
Never | このローカライゼーション ターゲットにはローカライゼーション コンフィグ ファイルが関連付けられておらず、ローカライゼーション パイプライン中にローカライゼーション コンテンツ ファイルは生成されません。 |
User | ユーザーがこのローカリゼーション ターゲットのローカリゼーション コンフィグ ファイルを提供しており、ローカリゼーション ターゲットのローカリゼーション コンテンツ ファイルの生成に使用されます。 |
Auto | ローカリゼーション パイプライン中に一時的なローカリゼーション コンフィグ ファイルが生成され、ローカリゼーション コンテンツ ファイルが生成されます。 |
Userの場合の設定例
;METADATA=(Diff=true, UseCommands=true)
[CommonSettings]
SourcePath=%LOCPROJECTROOT%Plugins/プラグイン名/Content/Localization/プラグイン名
DestinationPath=Plugins/プラグイン名/Content/Localization/プラグイン名
ManifestName=プラグイン名.manifest
ArchiveName=プラグイン名.archive
PortableObjectName=プラグイン名.po
ResourceName=プラグイン名.locres
# デフォルトの言語設定
NativeCulture=en
# ここに必要な言語設定を行う
CulturesToGenerate=en
CulturesToGenerate=ja
[GatherTextStep0]
CommandletClass=GatherTextFromSource
SearchDirectoryPaths=Plugins/UEPluginLocalize/Source/
FileNameFilters=*.cpp
FileNameFilters=*.h
FileNameFilters=*.c
FileNameFilters=*.inl
FileNameFilters=*.mm
FileNameFilters=*.ini
ShouldGatherFromEditorOnlyData=false
[GatherTextStep1]
CommandletClass=GenerateGatherManifest
[GatherTextStep2]
CommandletClass=GenerateGatherArchive
[GatherTextStep3]
CommandletClass=InternationalizationExport
bImportLoc=true
[GatherTextStep4]
CommandletClass=GenerateTextLocalizationResource
[GatherTextStep5]
CommandletClass=InternationalizationExport
bExportLoc=true
UnrealEditor-Cmd.exe プロジェクト名.uproject -run=GatherText -config="Plugins\プラグイン名\Config\Localization\プラグイン名.ini"
ConfigGenerationPolicyがUserの場合には上記のコマンドライン実行で動作できます。
失敗例
プロジェクト名.uprojectを未設定の場合にはプロジェクトディレクトでは無くエンジンディレクトに生成されました。
プロジェクト.uproject未指定の方法もあるかもですが未検証です
参考箇所
本件を調べるにあたってエンジンの参考箇所の一覧です。
FPluginManager::GetLocalizationPathsForEnabledPlugins
↑の箇所でプラグインが条件を満たしている場合にテキストローカライズのパスを追加するコードが記述されています。
UE_5.6\Engine\Plugins\Online\OnlineSubsystem\Config\Localization\OnlineSubsystem.ini
ローカライズの設定の参考にしたもの