Given "Foo" as the native source and "Bar" as the native translation, the foreign archive will contain translations for "Foo" and for "Bar". The foreign localization resource will specify the foreign translation for "Bar" from the archive as the translation for "Foo". In effect, foreign translations are now based on native translations rather than the actual native source text.
[CL 2601613 by Saul Abreu in Main branch]
The main changes are as follows:
1. moved Json out of Core into own module 'Json'
2. moved 3 i10n classes (Json serializers) from Core into a new module 'Internationalization' *
3. fixed up 2 i10n classes in Core to not instantiate the 3 Json-based classes. instead they are now passed in as a dependency
*) (2) and (3) were required to decouple the I10n code in Core from Json. Much of the i10n code probably doesn't belong into Core in the first place, but there is no time to fix this right now.
The following cosmetic changes were also made:
- NULL to nullptr
- namespaced enums to enum classes
- renamed the three i10n Json serializer classes to comply with naming conventions
- removed file header comments (not used)
- documentation, spelling, spacing etc,
#UpgradeNotes: If your module is including Json.h then you have to add 'Json' to your Build.cs module dependencies.
#ReviewedBy: justin.sargent, saul.abreu
[CL 2310420 by Max Preussner in Main branch]