You should probably avoid using Engine.ini
as the filename for your game’s localization data configuration file. Not a technical issue, but it could easily lead to confusion. Naming the *.ini
after your game or even just Game.ini
are both practical.
No Include Paths
It seems as though the commandlet believes, very specifically, that there are “No include paths in section GatherTextStep0”. Your paths are not being used or validated in any way, because they are not being detected in the first place. This is a different issue than a path not existing or being invalid. You can see the relevant code in GatherTextFromSourceCommandlet.cpp
, around line 63. Changing how you specify your paths will have no effect, because it is not finding your IncludePaths
entries at all for some reason.
What are these paths relative to for a .uproject?
SourcePath
and DestinationPath
are relative to the directory from which the executable is running (BaseDir
), thus the ../../../
to move up from the platform-specific folder, Binaries, and Engine. The IncludePaths
are relative to the root directory (RootDir
) of the project, which would be above Engine. I don’t know what RootDir
would be in your case, since Solus is not next to Engine - I suspect it may be above Solus in that case.
Is this a bug?
Possibly. It should work, but I need to investigate. Can you attach the whole of your Solus/Config/Localization/Engine.ini
file to the post? It would help me to debug the issue.
Can I use an absolute path?
Absolute paths are not valid. Relative paths are required for the sake of portability between developers and workspaces. Consider it an enforced best practice, I suppose.
“No Include Paths” Bug Resolution
Fix submitted in changelist 2240116.
On line 110 of GatherTextCommandlet.cpp
, the code is generating a fake commandline to pass to the individual commandlets specified in each GatherTextStep section. When it does this, it doesn’t wrap the value of the Config
argument in double quotes, causing the specified commandlet to parse the fake commandlet incorrectly when the Config
argument has spaces in it (IE: /Unreal Projects/
). Adding double quotes around the value of the Config
parameter resolves this.