Why does Korean localization does not work after packaging

Works perfectly fine when I launch my game from the Editor. But the moment I package it the translations gets entirely weird. It shows a same Korean character repeatedly instead of showing the actual thing. As if something went wrong while trying to load text.

My game was running on 4.19 and in desperation to fix the issue I migrated to 4.20 still it did not resolve.

I have tried all the suggestions on this forum and outside of this forum, nothing helped. The only thing I know that people are facing this problem since UE-4.19.2

Please help! This has become a huge show stopper for us and time is running out.

P.S. the links which I have tried and got no fruitful results.

Hi Amstad Digital, we’re experiencing the same issue - did you end up finding a solution that worked? Desperately trying to fix this as soon as possible.

Edit: Fixed with the help of the links you shared here. Thanks! Indeed because the default fallback font with Korean characters was removed, had to add a new font with these characters to the subfont families

Same problem here. The final solution I found is, don’t use the Korean localization culture setting, use any other instead.
Korean culture setting just can’t display Korean correctly, but others such as en, zh, jp… works fine.
So try fill your Korean translation into any other culture localization you’re not using.

We have the same issue in 4.21.
Korean works in the editor in play standalone.
As soon as I switch to korean loca in a packaged build all non english letters change to symbols. one for chinees letters, on for korean letters and one for cyrillic letters.

So after much messing around we managed to figure out what is causing this:

In the file \Engine\Source\Runtime\SlateCore\Private\Fonts\LegacySlateFontInfoCache.cpp:223
There is the following:

const FString FallbackFontPath = FPaths::EngineContentDir() / TEXT("Slate/Fonts/") / (NSLOCTEXT("Slate", "LegacyFallbackFont", "DroidSansFallback").ToString() + TEXT(".ttf"));

This is localised ONLY in Korean with the following:

#. Key:	LegacyFallbackFont
#. SourceLocation:	Source/Runtime/SlateCore/Private/Fonts/LegacySlateFontInfoCache.cpp:259
#: Source/Runtime/SlateCore/Private/Fonts/LegacySlateFontInfoCache.cpp:259
msgctxt "Slate,LegacyFallbackFont"
msgid "DroidSansFallback"
msgstr "../../Editor/Slate/Fonts/NanumGothic"

As it is attempting to load an Editor only font in a packaged build: It fails, and then shows the final fallback font characters.

So the actual solution is to either use a font which supports the various Hangul Jamo character sets or change that localisation string back to DroidSansFallback (as it actually supports the Hangul Jamo character sets)

This should probably be fixed by Epic correctly however.

Hopefully this helps someone. :slight_smile:

NOTE: This is STILL an issue as of 4.22

Legacy fallback fonts were formally deprecated in 4.22 (after being soft deprecated for years), are disabled by default in 4.23, and will be removed for 4.24.

You should ensure you’re using a font asset that supports the languages you need: Font Asset and Editor in Unreal Engine | Unreal Engine 5.1 Documentation

Legacy fallback fonts have been removed for 4.24. See my previous comment for you to create a font asset that supports localisation.