InternationalizationManifest - Duplicate text results in non-deterministic manifest

We have a project where the best workflow for us it to define localization text in uassets, and use the `GatherText` commandlet to gather them.

When a localization string exists in multiple paths, with the same key, namespace and value, the string gets deduplicated in the internationalization manifest. The path that’s recorded in the manifest is the first path where the string was found. The loading order of strings (or uassets) is not guaranteed, so running `GatherText` multiple times can yield different manifests even though loc hasn’t actually changed. This causes unnececessary check ins, which then result in noise in our p4 history, and unnecessary builds which have monetary cost.

I’m proposing that instead, that for deduplicated text, the internationalization manifest will use the first path, in alphabetical ascending order.

https://github.com/EpicGames/UnrealEngine/pull/13786/files

Hey,

Thanks for submitting a pull request, I left a note on our internal JIRA. The change looks reasonable to me, it’s a bit late to get things in for 5.7 but we’ll see about getting that reviewed for the next release.

Best,

Cody

Sounds good, thank you!