27 return Subsys->GetLocalizer();
32 virtual void Reload() {};
34 inline FText ResolveText(UObject* Outer,
const FText* SourceText)
36 return UArticyTextExtension::Get()->Resolve(Outer, SourceText);
39 inline FText LocalizeString(UObject* Outer,
const FText& Key,
bool ResolveTextExtension =
true,
const FText* BackupText =
nullptr)
44 if (BackupText)
return *BackupText;
48 const FText MissingEntry = FText::FromString(
"<MISSING STRING TABLE ENTRY>");
51 FText SourceString = Key;
54 TOptional<FString> TableName = FTextInspector::GetNamespace(Key);
55 if (!TableName.IsSet())
57 TableName = TEXT(
"ARTICY");
61 FStringTableConstPtr TablePtr = FStringTableRegistry::Get().FindStringTable(FName(TableName.GetValue()));
62 if (TablePtr.IsValid())
65 const FStringTable* Table = TablePtr.Get();
66 FStringTableEntryConstPtr EntryPtr = Table->FindEntry(FTextKey(Key.ToString()));
67 if (EntryPtr.IsValid())
69 const FStringTableEntry* TableEntry = EntryPtr.Get();
70 SourceString = FText::FromString(TableEntry->GetSourceString());
74 if (!SourceString.IsEmpty() && !SourceString.EqualTo(MissingEntry) && !SourceString.EqualTo(Key))
76 if (ResolveTextExtension)
78 return ResolveText(Outer, &SourceString);
80 return FText(SourceString);
84 if (ResolveTextExtension && !Key.ToString().EndsWith(
".PreviewText"))
86 return ResolveText(Outer, &Key);
99 bool bDataLoaded =
false;
100 bool bListenerSet =
false;