Localization Dashboard cannot run Gather Text

Running on MacOS.

The cmdnlet runs fine in a Blueprint project however does not do so in a C++ project.
To reproduce just:

  1. Create a new C++ project (I used the twin stick template, no starter content).
  2. Select Game target, check “Gather from Text Files” and add a Search Directories item pointing to the Source folder.
  3. Check “Gather from Packages” and add an Include Path Wildcards item pointing to the Content folder.
  4. Click Gather Text and a “Missing [ProjectName] Modules” message box appears

Note: Rebuilding via the message box results in a compilation failed error.

Current workaround for me is to run the cmdlet manually once the dashboard generates the config file:

[FullPathToEngineInstall]/Engine/Binaries/Mac/UE4Editor.app/Contents/MacOS/UE4Editor [FullPathToProjectFolder]/[ProjectName].uproject -run=GatherText -Config=Config/Localization/Game_Gather.ini -log

This will successfully gather the text and also fix the corresponding dashboard button in the editor until the modules are replaced (i.e. until a new build is performed).

Hello ,

I attempted to reproduce this on both Windows and Mac OS but didn’t receive an error message in any case. The only thing I did differently was to select English as my native culture after Step 3 as Gather Text is grayed out until a Native culture is selected. I’m curious to see what window you’re having appear if it is offering for you to recompile. Could you take a screenshot of the error window? Can you also ensure that there are no additional plugins installed that could be interfering?

Sorry missed the native step. Here’s error message:

The biggest difference I can think of is that I’ve also got a source build of the engine on this machine.
i.e.

Thank you for that information. From that message, it seems that when the Gather Text function (which spawns another editor instance) runs, the .dylib (similar to the .pdb on Windows) is seen as stale, meaning the editor wants to recompile it. Between the time that you open the editor and run Gather Text, are you making code changes or hot reloading at all? Keep in mind that the Hot Reload dylib is separate from the normal dylib so, if this is the case, when Gather Text is run, it’s going to be trying to use the old dylib from before the Hot Reload that hasn’t been updated.

I would suggest closing the editor, compiling the project, and then opening the editor and running Gather Text with nothing in between.

I just took these steps:

  1. Created new C++ project with twin stick template from engine launched via installed Epic Launcher. This started the engine automatically once project had been created.
  2. Set localization dashboard up and hit Gather Text.
  3. Message box appeared.
  4. Quit the editor and ran the project straight from XCode and got the same result.

The only difference I can think of is that the new editor instance GatherText spawns may somehow be my source build of the engine (even though I’m using the launcher installed engine for the project).

I may of found the reason why I wasn’t seeing it before. It seems like this only occurs if the project is created/compiled and opened while the Localization Dashboard is disabled (as in, turned off in the Editor Preferences). If you then enable it and try to gather text without recompiling, you get this to occur. If the Localization Editor is already enabled (which it will be on by default in 4.16, or so I’m told) when the project is created or when it is compiled, the issue doesn’t occur. Can you confirm this?

No sorry, can’t confirm. The video here shows me creating the project with the dashboard already enabled and getting the issue (I’ve sped it up to make it easier to watch).

Hello , have you had a chance to try this in 4.16? If so, are you still experiencing this issue?