You could try a culture mapping your DefaultGame.ini file:
[Internationalization]
+CultureMappings="no;nb"
or
[Internationalization]
+CultureMappings="no;nn"
You could try a culture mapping your DefaultGame.ini file:
[Internationalization]
+CultureMappings="no;nb"
or
[Internationalization]
+CultureMappings="no;nn"
Alternatively, we handle those mappings ourselves so you can change the default in FPS4Misc::GetDefaultLocale
. I don’t know how we ended up using “no” as it’s not even a valid culture code… I’ll fix that.
Edit: Weirdly ICU has “no.res” and “nb.res”, but no “nn.res”… curious.
It looks like ICU itself lets you select and use “no” as a culture if you do it manually, but the call to getAvailableLocales
in ICU doesn’t include it (which is why you can use it, but not select it as a language in the localization dashboard).
Unreal only supports Norwegian Bokmal (nb) and Norwegian Nynorsk (nn)…but the PS4 only supports generic Norwegian (no).
So how do I make Unreal use the correct culture?
Aha! Will try that, thanks Jamie…
If you go to ICUInternationalization.cpp and add the following:
// getAvailableLocales doesn't always cover all languages that ICU supports, so we spin the language list too and add any that were missed
// Note: getISOLanguages returns the start of an array of const char* null-terminated strings, with a null string signifying the end of the array
for (const char* const* AvailableLanguages = icu::Locale::getISOLanguages(); *AvailableLanguages; ++AvailableLanguages)
{
FString LanguageCode = UTF8_TO_TCHAR(*AvailableLanguages);
LanguageCode.ToLowerInline();
// Only care about 2-letter codes
if (LanguageCode.Len() == 2)
{
AppendCultureData(LanguageCode, FString(), FString());
}
}
Before this comment:
// Also add our invariant culture if it wasn't found when processing the ICU locales
You should find that “no” now appears as something you can select in the Localization Dashboard.