Localization Editor and Cooked Build Error

Hi.

So I’ve got this problem with the following error popping up when I set my localization to a culture that definitely has its own locres files. That error message being:

[2015.12.11-18.26.53:122][  0]LogTextLocalizationManager: The requested culture ('de') has no localization data; falling back to 'en' for localization and internationalization data.

To try to get that working, I have this in my defaultengine.ini:

[Internationalization]
Culture=de

My set up is as follows:

Project Folder\Config\Localization\Barrage.ini

;Common settings to be used for all commandlets as needed.
[CommonSettings]
SourcePath=./Content/Localization/Barrage
DestinationPath=./Content/Localization/Barrage
ManifestName=Barrage.manifest
ArchiveName=Barrage.archive
ResourceName=Barrage.locres
PortableObjectName=Barrage.po
;English
SourceCulture=en
;English
CulturesToGenerate=en
;German
CulturesToGenerate=de
;French - Commented Out
;CulturesToGenerate=fr
;Italian - Commented Out
;CulturesToGenerate=it
;Spanish - Commented Out
;CulturesToGenerate=es

;Gather text from source code and configuration files.
[GatherTextStep0]
CommandletClass=GatherTextFromSource
IncludePaths=./Source/
IncludePaths=./Config/
ExcludePaths=*/Config/Localization/*
SourceFileSearchFilters=*.h
SourceFileSearchFilters=*.cpp
SourceFileSearchFilters=*.ini

;Gather text from assets in content.
[GatherTextStep1]
CommandletClass=GatherTextFromAssets
IncludePaths=./Content/
ExcludePaths=*/Content/Localization/*
PackageExtensions=*.umap
PackageExtensions=*.uasset

;Create manifest with all gathered source text.
[GatherTextStep2]
CommandletClass=GenerateGatherManifest

;Create new archives/update existing archives with new entries from the manifest.
[GatherTextStep3]
CommandletClass=GenerateGatherArchive
bPurgeOldEmptyEntries=true

;Import new translations from PO (portable object) files into existing archives.
[GatherTextStep4]
CommandletClass=InternationalizationExport
bImportLoc=true

;Export new source from existing archives into PO (portable object) files.
[GatherTextStep5]
CommandletClass=InternationalizationExport
bExportLoc=true

;Compile source text and translations into binary form for use by the application.
[GatherTextStep6]
CommandletClass=GenerateTextLocalizationResource

When I build the localization, I get the following log:

[2015.12.11-18.26.53:122][  0]LogTextLocalizationManager: The requested culture ('de') has no localization data; falling back to 'en' for localization and internationalization data.
[2015.12.11-18.26.53:320][  0]LogTextLocalizationManager:Warning: Loaded localization resources contain conflicting entries for (Namespace:ContentBrowser, Key:ImportAssetToolTip):
Localization Resource: (C:/Unreal Engine/Source/GitHub/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (-630476809) Localized String: (Import to {0}...)
Localization Resource: (C:/Unreal Engine/Source/GitHub/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (1271782899) Localized String: (Imports an asset from file to this folder.)
[2015.12.11-18.26.58:735][  0]LogInit: Executing Class /Script/UnrealEd.GatherTextCommandlet
[2015.12.11-18.26.58:736][  0]LogInit: Initializing Editor Engine...
[2015.12.11-18.26.58:736][  0]LogEngine: Initializing Engine...
[2015.12.11-18.26.58:813][  0]LogAIModule: Creating AISystem for world NewWorld
[2015.12.11-18.26.59:016][  0]LogDerivedDataCache: Saved boot cache 0.20s 500MB ../../../../../Barrage/UE4/DerivedDataCache/Boot.ddc.
[2015.12.11-18.26.59:045][  0]LogInit: Texture streaming: Disabled
[2015.12.11-18.26.59:066][  0]LogInit: Initializing Editor Engine Completed
[2015.12.11-18.26.59:086][  0]LogGatherTextCommandlet: Beginning GatherText Commandlet.
[2015.12.11-18.26.59:086][  0]LogGatherTextCommandlet: Executing GatherTextStep0: GatherTextFromSourceCommandlet
[2015.12.11-18.26.59:087][  0]LogGatherTextFromSourceCommandlet:Warning: IncludePaths detected in section GatherTextStep0. IncludePaths is deprecated, please use SearchDirectoryPaths.
[2015.12.11-18.26.59:087][  0]LogGatherTextFromSourceCommandlet:Warning: ExcludePaths detected in section GatherTextStep0. ExcludePaths is deprecated, please use ExcludePathFilters.
[2015.12.11-18.26.59:087][  0]LogGatherTextFromSourceCommandlet:Warning: SourceFileSearchFilters detected in section GatherTextStep0. SourceFileSearchFilters is deprecated, please use FileNameFilters.
[2015.12.11-18.27.00:703][  0]LogGatherTextCommandlet: Completed GatherTextStep0: GatherTextFromSourceCommandlet
[2015.12.11-18.27.00:703][  0]LogGatherTextCommandlet: Executing GatherTextStep1: GatherTextFromAssetsCommandlet
[2015.12.11-18.27.00:703][  0]LogGatherTextFromAssetsCommandlet:Warning: IncludePaths detected in section GatherTextStep1. IncludePaths is deprecated, please use IncludePathFilters.
[2015.12.11-18.27.00:703][  0]LogGatherTextFromAssetsCommandlet:Warning: ExcludePaths detected in section GatherTextStep1. ExcludePaths is deprecated, please use ExcludePathFilters.
[2015.12.11-18.27.00:703][  0]LogGatherTextFromAssetsCommandlet:Warning: PackageExtensions detected in section GatherTextStep1. PackageExtensions is deprecated, please use PackageFileNameFilters.
[2015.12.11-18.27.00:716][  0]LogAssetRegistry: FAssetRegistry took 0.0001 seconds to start up
[2015.12.11-18.27.01:205][  0]LogAssetRegistry: ScanPathsSynchronous completed scanning '/Engine/' and 5 other paths to find 3374 assets in 0.4887 seconds
[2015.12.11-18.27.01:292][  0]LogGatherTextFromAssetsCommandlet:Display: Found 32 packages with extension 0: '*.umap'
[2015.12.11-18.27.01:400][  0]LogGatherTextFromAssetsCommandlet:Display: Found 3646 packages with extension 1: '*.uasset'
[2015.12.11-18.27.01:480][  0]LogGatherTextFromAssetsCommandlet:Warning: No files found. Or none passed the include/exclude criteria.
[2015.12.11-18.27.01:554][  0]LogGatherTextCommandlet: Completed GatherTextStep1: GatherTextFromAssetsCommandlet
[2015.12.11-18.27.01:554][  0]LogGatherTextCommandlet: Executing GatherTextStep2: GenerateGatherManifestCommandlet
[2015.12.11-18.27.01:586][  0]LogGenerateManifestCommandlet: Writing archive to ../../../../../Barrage/UE4/./Content/Localization/Barrage/Barrage.manifest.
[2015.12.11-18.27.01:703][  0]LogGatherTextCommandlet: Completed GatherTextStep2: GenerateGatherManifestCommandlet
[2015.12.11-18.27.01:703][  0]LogGatherTextCommandlet: Executing GatherTextStep3: GenerateGatherArchiveCommandlet
[2015.12.11-18.27.01:704][  0]LogGenerateArchiveCommandlet:Warning: SourceCulture detected in section GatherTextStep3. SourceCulture is deprecated, please use NativeCulture.
[2015.12.11-18.27.01:731][  0]LogGenerateArchiveCommandlet: Writing archive to C:/Unreal Engine/Barrage/UE4/Content/Localization/Barrage/en/Barrage.archive.
[2015.12.11-18.27.01:755][  0]LogGenerateArchiveCommandlet: Writing archive to C:/Unreal Engine/Barrage/UE4/Content/Localization/Barrage/de/Barrage.archive.
[2015.12.11-18.27.01:763][  0]LogGatherTextCommandlet: Completed GatherTextStep3: GenerateGatherArchiveCommandlet
[2015.12.11-18.27.01:764][  0]LogGatherTextCommandlet: Executing GatherTextStep4: InternationalizationExportCommandlet
[2015.12.11-18.27.01:825][  0]LogGatherTextCommandlet: Completed GatherTextStep4: InternationalizationExportCommandlet
[2015.12.11-18.27.01:825][  0]LogGatherTextCommandlet: Executing GatherTextStep5: InternationalizationExportCommandlet
[2015.12.11-18.27.01:878][  0]LogGatherTextCommandlet: Completed GatherTextStep5: InternationalizationExportCommandlet
[2015.12.11-18.27.01:878][  0]LogGatherTextCommandlet: Executing GatherTextStep6: GenerateTextLocalizationResourceCommandlet
[2015.12.11-18.27.01:911][  0]LogGatherTextCommandlet: Completed GatherTextStep6: GenerateTextLocalizationResourceCommandlet
[2015.12.11-18.27.01:911][  0]LogInit:Display: 
[2015.12.11-18.27.01:911][  0]LogInit:Display: Warning/Error Summary
[2015.12.11-18.27.01:911][  0]LogInit:Display: ---------------------
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogTextLocalizationManager:Warning: Loaded localization resources contain conflicting entries for (Namespace:ContentBrowser, Key:ImportAssetToolTip):
Localization Resource: (C:/Unreal Engine/Source/GitHub/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (-630476809) Localized String: (Import to {0}...)
Localization Resource: (C:/Unreal Engine/Source/GitHub/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (1271782899) Localized String: (Imports an asset from file to this folder.)
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromSourceCommandlet:Warning: IncludePaths detected in section GatherTextStep0. IncludePaths is deprecated, please use SearchDirectoryPaths.
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromSourceCommandlet:Warning: ExcludePaths detected in section GatherTextStep0. ExcludePaths is deprecated, please use ExcludePathFilters.
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromSourceCommandlet:Warning: SourceFileSearchFilters detected in section GatherTextStep0. SourceFileSearchFilters is deprecated, please use FileNameFilters.
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromAssetsCommandlet:Warning: IncludePaths detected in section GatherTextStep1. IncludePaths is deprecated, please use IncludePathFilters.
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromAssetsCommandlet:Warning: ExcludePaths detected in section GatherTextStep1. ExcludePaths is deprecated, please use ExcludePathFilters.
[2015.12.11-18.27.01:912][  0]LogInit:Display: LogGatherTextFromAssetsCommandlet:Warning: PackageExtensions detected in section GatherTextStep1. PackageExtensions is deprecated, please use PackageFileNameFilters.
[2015.12.11-18.27.01:913][  0]LogInit:Display: LogGatherTextFromAssetsCommandlet:Warning: No files found. Or none passed the include/exclude criteria.
[2015.12.11-18.27.01:913][  0]LogInit:Display: LogGenerateArchiveCommandlet:Warning: SourceCulture detected in section GatherTextStep3. SourceCulture is deprecated, please use NativeCulture.
[2015.12.11-18.27.01:913][  0]LogInit:Display: 
[2015.12.11-18.27.01:914][  0]LogInit:Display: Success - 0 error(s), 9 warning(s)
[2015.12.11-18.27.01:914][  0]LogInit:Display: 
Execution of commandlet took:  2.83 seconds
[2015.12.11-18.27.01:914][  0]LogExit: Preparing to exit.
[2015.12.11-18.27.02:013][  0]LogExit: Editor shut down
[2015.12.11-18.27.02:159][  0]LogExit: Object subsystem successfully closed.

This generates the following files:

Project Folder/Content/Localization/Barrage/Barrage.manifest

Project Folder/Content/Localization/Barrage/de/Barrage.archive
Project Folder/Content/Localization/Barrage/de/Barrage.locres
Project Folder/Content/Localization/Barrage/de/Barrage.po

Project Folder/Content/Localization/Barrage/en/Barrage.archive
Project Folder/Content/Localization/Barrage/en/Barrage.locres
Project Folder/Content/Localization/Barrage/en/Barrage.po

I am packaging my game via the Unreal Frontend program (in a source build) using the following settings (including the given project settings):

[Internationalization]
;This first entry is inherited from BaseGame.ini by default.
LocalizationPaths=%GAMEDIR%Content/Localization/Barrage

[/Script/UnrealEd.ProjectPackagingSettings]
+CulturesToStage=en
+CulturesToStage=de

And, to summarise, I get neither the de localization working in the editor pre-cook or in the cooked build. Both give the same error,

[2015.12.11-18.26.53:122][  0]LogTextLocalizationManager: The requested culture ('de') has no localization data; falling back to 'en' for localization and internationalization data.

So my question is, why doesn’t it work? From what I can see, I’ve followed all the steps from here:

https://docs.unrealengine.com/latest/INT/Gameplay/Localization/Setup/index.html

and the translations are being built correctly into .locres and .archive files. So what gives?

Thanks!

For the record, the English translations don’t work either.

A small update: The translations work in standalone mode in the editor, but they don’t package properly. Copying the localization folder from the project to the packaged build does not work. I thought I’d try that since the engine locres files are just copied into the localization folder is in the content folder. Didn’t work.

Copying the Source\Engine\Content\Internationalization\All folder to the PackagedGame\Engine\Content\Internationalization folder fixed it. Neither the unreal frontend nor the in-editor packaging copied the german (de) base localization files.

Along with the threads:

Are your project packaging settings set to package cultures other than “English Only”? You may need to change that to EFIGS.

Hmm. reads again. I shall try.

Yes. That is the problem. Thank you. Why is that option not available in frontend? The only time I’ve used the editor to package has been to test this out for this bug report :confused: