CultureDisplayNameSubstitutes
CultureDisplayNameSubstitutes
#Overview
name: CultureDisplayNameSubstitutes
The value of this variable can be defined or overridden in .ini config files. 5
.ini config files referencing this setting variable.
It is referenced in 2
C++ source files.
#Summary
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:1539, section: [Internationalization]
- INI Section:
Internationalization
- Raw value:
"Taiwan;Chinese Taipei"
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1540, section: [Internationalization]
- INI Section:
Internationalization
- Raw value:
"ja;\u53f0\u6e7e;\u30c1\u30e3\u30a4\u30cb\u30fc\u30ba\u30bf\u30a4\u30da\u30a4"
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1541, section: [Internationalization]
- INI Section:
Internationalization
- Raw value:
"\u53f0\u6e7e;\u4e2d\u534e\u53f0\u5317"
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1542, section: [Internationalization]
- INI Section:
Internationalization
- Raw value:
"\u53f0\u7063;\u4e2d\u83ef\u53f0\u5317"
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1543, section: [Internationalization]
- INI Section:
Internationalization
- Raw value:
"\ub300\ub9cc;\uc911\ud654 \ud0c0\uc774\ubca0\uc774"
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/Internationalization/Culture.cpp:20
Scope (from outer to inner):
file
function void ApplyCultureDisplayNameSubstitutes
Source code excerpt:
};
static TArray<FDisplayNameSubstitute> CultureDisplayNameSubstitutes;
// Conditionally load the required config data
{
static bool bHasInitializedCultureDisplayNameSubstitutes = false;
if (!bHasInitializedCultureDisplayNameSubstitutes && GConfig && GConfig->IsReadyForUse())
{
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/Internationalization/Culture.cpp:34
Scope (from outer to inner):
file
function void ApplyCultureDisplayNameSubstitutes
Source code excerpt:
const bool ShouldLoadGame = FApp::IsGame();
GConfig->GetArray(TEXT("Internationalization"), TEXT("CultureDisplayNameSubstitutes"), CultureDisplayNameSubstitutesStrArray, GEngineIni);
if (ShouldLoadEditor)
{
TArray<FString> EditorArray;
GConfig->GetArray(TEXT("Internationalization"), TEXT("CultureDisplayNameSubstitutes"), EditorArray, GEditorIni);
CultureDisplayNameSubstitutesStrArray.Append(MoveTemp(EditorArray));
}
if (ShouldLoadGame)
{
TArray<FString> GameArray;
GConfig->GetArray(TEXT("Internationalization"), TEXT("CultureDisplayNameSubstitutes"), GameArray, GGameIni);
CultureDisplayNameSubstitutesStrArray.Append(MoveTemp(GameArray));
}
}
// Each substitute should be a semi-colon separated set of data: [Culture;]Old;New
CultureDisplayNameSubstitutes.Reserve(CultureDisplayNameSubstitutesStrArray.Num());
for (const FString& CultureDisplayNameSubstituteStr : CultureDisplayNameSubstitutesStrArray)
{
TArray<FString> DisplayFragments;
CultureDisplayNameSubstituteStr.ParseIntoArray(DisplayFragments, TEXT(";"));
if (DisplayFragments.Num() == 2)
{
CultureDisplayNameSubstitutes.Add(FDisplayNameSubstitute{ FString(), MoveTemp(DisplayFragments[0]), MoveTemp(DisplayFragments[1]) });
}
else if (DisplayFragments.Num() == 3)
{
CultureDisplayNameSubstitutes.Add(FDisplayNameSubstitute{ MoveTemp(DisplayFragments[0]), MoveTemp(DisplayFragments[1]), MoveTemp(DisplayFragments[2]) });
}
}
// Sort by culture name length, so that more specific cultures get first refusal at a replacement
CultureDisplayNameSubstitutes.StableSort([](const FDisplayNameSubstitute& InOne, const FDisplayNameSubstitute& InTwo)
{
return InOne.Culture.Len() > InTwo.Culture.Len();
});
}
}
for (const FDisplayNameSubstitute& CultureDisplayNameSubstitute : CultureDisplayNameSubstitutes)
{
const bool bValidForCulture = CultureDisplayNameSubstitute.Culture.IsEmpty() || InPrioritizedCultureNames.Contains(CultureDisplayNameSubstitute.Culture);
if (bValidForCulture)
{
InOutDisplayName.ReplaceInline(*CultureDisplayNameSubstitute.OldString, *CultureDisplayNameSubstitute.NewString, ESearchCase::CaseSensitive);
}