Hello !
I have a String Table that is created in one of our plugin’s Content subfolder that I want to gather & export for localization towards our translation partner.
But I have trouble creating a localization target for this. Please check the reproduction steps section to see what I tried to do via Localization Dashboard in the Editor.
I also tried to run the GatherText commandlet directly via our project commandline -run=GatherText -config=“%EngineRoot%\Config\Localization\MyTarget_Gather.ini” but the commandlet seems not to find any asset in the Include Path I set up in the target params. So I’m stuck.
I suspect I try to run localization processes via our project’s executables on files that are not under project’s scope, but I’m not sure how to proceeed from here
Thanks for your help !
[Attachment Removed]
Steps to Reproduce
1. Open localization dashboard tool in UE
2. Create a new target for localization under “Engine” section
3. Rename the target, setup “Always” as loading policy, Select “Gather from packages” and add a single Include Path Filter that is under the Engine / subfolder (not project) that is populated by a single String Table uasset. Note that in my case the include Path is under the Plugins subfolder, don’t knoww if it has any impact.
4. Select the cultures you need
5. Click on “Gather Texts”
Once you do that, the Gather Text commandlet runs but never stops. When looking at the logs you can see that the Gather commandlet never actually started (probably because of a source control operation that never completes, since our engine code and resources are not under the same source control than the one from the project, but I’m not sure)
[Attachment Removed]
Hi,
A potential problem here that may be affecting you, the Localization Dashboard’s GatherText commandlet wasn’t working properly in 5.6 but has since been resolved. You may need to add a one line change to FLocalizationCommandletProcess::Execute when CommandletArguments are being specified:
CommandletArguments += TEXT(" -Unattended");Alternatively, you can manually run the GatherText commandlet and see if that works. I’d expect it to pick up your plugin’s string table as long as the plugin content directory is listed in your include path filter, but let us know if you still run into issues.
Best,
Cody
[Attachment Removed]
Hello !
I ran the GatherText Commandlet directly via my IDE passing the generated Gather ini file and the “-Unattended” commandline.
Here’s my full commandline :
MyProject -run=GatherText -config="H:\RT\Main\UnrealEngine\Engine\Config\Localization\EASPresence_Gather.ini" -UnattendedI joined the EASPresence_Gather.ini as text file for you to look at.
The gather commandlet doesn’t manage to find any corresponding asset. Here’s the log :
[2026.05.05-09.38.29:717][ 0]LogGatherTextCommandlet: Display: Beginning GatherText Commandlet for 'H:\RT\Main\UnrealEngine\Engine\Config\Localization\EASPresence_Gather.ini'
[2026.05.05-09.38.29:722][ 0]LogGatherTextCommandlet: Display: Executing GatherTextStep0: GatherTextFromAssetsCommandlet
[2026.05.05-09.38.29:724][ 0]LogGatherTextFromAssetsCommandlet: Display: SkipGatherCache: false
[2026.05.05-09.38.29:727][ 0]LogGatherTextFromAssetsCommandlet: Display: ReportStaleGatherCache: false
[2026.05.05-09.38.29:729][ 0]LogGatherTextFromAssetsCommandlet: Display: FixStaleGatherCache: false
[2026.05.05-09.38.29:732][ 0]LogGatherTextFromAssetsCommandlet: Display: FixMissingGatherCache: false
[2026.05.05-09.38.29:734][ 0]LogGatherTextFromAssetsCommandlet: Display: PromptTextsNotReferencingAnyStringTable: false
[2026.05.05-09.38.29:736][ 0]LogGatherTextFromAssetsCommandlet: Display: Discovering assets to gather...
[2026.05.05-09.38.29:866][ 0]LogGatherTextFromAssetsCommandlet: Display: Searching all assets took 0.15 seconds.
[2026.05.05-09.38.29:900][ 0]LogGatherTextFromAssetsCommandlet: Display: Loading all assets from asset registry took 0.03 seconds.
[2026.05.05-09.38.31:100][ 0]LogAssetRegistry: Display: Asset registry cache written as 214.9 MiB to ../../../Games/Runtime/Intermediate/CachedAssetRegistry_*.bin
[2026.05.05-09.38.31:229][ 0]LogGatherTextFromAssetsCommandlet: Display: Filtering assets by include exclude paths took 1.33 seconds.
[2026.05.05-09.38.31:232][ 0]LogGatherTextFromAssetsCommandlet: Display: No assets matched the specified criteria.
I confirm that I have a valid String Table uasset in my include path
[Attachment Removed]
Hey Cody thanks for your answer.
I’ll surely try to add a game target instead. My only concern with this approach is that I wonder if at runtime my plugin code will be able to access the compiled version of the translated texts from this target since calling code won’t belong to the project root.
I’ll try it anyway and go through the whole text compilation.
I’ll keep you posted
[Attachment Removed]
Hi,
Sorry for the delay, I ran into similar issues as I tried to reproduce this. It looks like Engine targets will scan plugin source for text in the Gather stage, but they have a bit more trouble with content. Your best option here is likely going to be to implement it as a Game target, which should still work even if it’s pointing at an engine-level plugin’s content directory. With that setup, I was able to get it to pick up my string table (and other assets) from the content directory successfully. Would that work for you?
Best,
Cody
[Attachment Removed]