Hmm, “zh-HK-AU” isn’t a culture that’s know to ICU (it internally loads “zh-HK”), and since there’s both a “zh-Hans-HK” and “zh-Hant-HK” it will build the following list to test (in order, see FICUInternationalization::GetPrioritizedCultureNames
):
- zh-Hans-HK
- zh-Hant-HK
- zh-HK
- zh-Hans
- zh-Hant
- zh
So it should still be falling back to “zh-HK” assuming you don’t have translations for “zh-Hans-HK” or “zh-Hant-HK”. What cultures do you have translations for? I suspect it may have previously been falling back to “zh”.
(I forget whether this is in 4.12 or 4.13). You could try adding an explicit culture re-mapping. Add the following to your DefaultGame.ini:
[Internationalization]
+CultureMappings=zh-HK-AU;zh-Hant
You’ll also need to remove the if (AllAvailableCulturesMap.Contains(SourceCulture) && AllAvailableCulturesMap.Contains(DestCulture))
check in FICUInternationalization::ConditionalInitializeCultureMappings
since “zh-HK-AU” isn’t know to ICU so it won’t let you add that as a culture re-mapping (I should probably remove that check since platforms often use unknown cultures that need to be re-mapped).
Honestly, iOS is partly at fault here. If you’ve specified Traditional Chinese then the culture code used should include the script type of “Hant”. “zh-HK-AU” is both ambiguous and non-existent according to the CLDR.
That said, since Hong Kong and Macau primarily use Traditional Chinese, we should probably add some special case logic to weight traditional above simplified for “HK” and “MO” (Taiwan also uses Traditional Chinese, but there’s no “zh-Hans-TW” so it’s not ambiguous like “zh-HK” and “zh-MO”).