UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StringTableRegistry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
5#include "Containers/Map.h"
6#include "Containers/Set.h"
9#include "CoreTypes.h"
10#include "Delegates/Delegate.h"
11#include "HAL/CriticalSection.h"
18#include "UObject/NameTypes.h"
19
20class UStringTable;
21template <typename FuncType> class TFunctionRef;
22
25{
26public:
29
32
35
38
41
44
47
49 UE_DEPRECATED(5.0, "FindTableIdAndKey is deprecated. Use FTextInspector::GetTableIdAndKey instead.")
50 CORE_API bool FindTableIdAndKey(const FText& InText, FName& OutTableId, FString& OutKey) const;
51
54
57
59 CORE_API void Internal_LocTableFromFile(const FName InTableId, const FTextKey& InNamespace, const FString& InFilePath, const FString& InRootPath);
60
63
66
69
70private:
74
76 TMap<FName, FStringTablePtr> RegisteredStringTables;
77
79 mutable FTransactionallySafeCriticalSection RegisteredStringTablesCS;
80
82 typedef TSet<FTextKey> FLocKeySet;
83 TMap<FName, FLocKeySet> LoggedMissingEntries;
84
86 mutable FTransactionallySafeCriticalSection LoggedMissingEntriesCS;
87
88#if WITH_EDITOR
91
94
97
100
103#endif // WITH_EDITOR
104};
105
106#define LOC_DEFINE_REGION
107
109#define LOCTABLE_NEW(ID, NAMESPACE) \
110 FStringTableRegistry::Get().Internal_NewLocTable(TEXT(ID), TEXT(NAMESPACE))
111
113#define LOCTABLE_FROMFILE_ENGINE(ID, NAMESPACE, FILEPATH) \
114 FStringTableRegistry::Get().Internal_LocTableFromFile(TEXT(ID), TEXT(NAMESPACE), TEXT(FILEPATH), FPaths::EngineContentDir())
115
117#define LOCTABLE_FROMFILE_GAME(ID, NAMESPACE, FILEPATH) \
118 FStringTableRegistry::Get().Internal_LocTableFromFile(TEXT(ID), TEXT(NAMESPACE), TEXT(FILEPATH), FPaths::ProjectContentDir())
119
121#define LOCTABLE_SETSTRING(ID, KEY, SRC) \
122 FStringTableRegistry::Get().Internal_SetLocTableEntry(TEXT(ID), TEXT(KEY), TEXT(SRC))
123
125#define LOCTABLE_SETMETA(ID, KEY, METAID, META) \
126 FStringTableRegistry::Get().Internal_SetLocTableEntryMetaData(TEXT(ID), TEXT(KEY), TEXT(METAID), TEXT(META))
127
129#define LOCTABLE(ID, KEY) \
130 FStringTableRegistry::Get().Internal_FindLocTableEntry(TEXT(ID), TEXT(KEY), EStringTableLoadingPolicy::FindOrLoad)
131
132#undef LOC_DEFINE_REGION
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
EStringTableLoadingPolicy
Definition StringTableCoreFwd.h:9
::FCriticalSection FTransactionallySafeCriticalSection
Definition TransactionallySafeCriticalSection.h:16
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition StringTableRegistry.h:25
static CORE_API FStringTableRegistry & Get()
Definition StringTableRegistry.cpp:13
CORE_API FStringTableConstPtr FindStringTable(const FName InTableId) const
Definition StringTableRegistry.cpp:109
CORE_API void LogMissingStringTableEntry(const FName InTableId, const FTextKey &InKey)
Definition StringTableRegistry.cpp:146
CORE_API bool FindTableIdAndKey(const FText &InText, FName &OutTableId, FString &OutKey) const
Definition StringTableRegistry.cpp:141
CORE_API void EnumerateStringTables(const TFunctionRef< bool(const FName &, const FStringTableConstRef &)> &InEnumerator) const
Definition StringTableRegistry.cpp:128
CORE_API void Internal_SetLocTableEntryMetaData(const FName InTableId, const FTextKey &InKey, const FName InMetaDataId, const FString &InMetaData)
Definition StringTableRegistry.cpp:227
CORE_API void Internal_NewLocTable(const FName InTableId, const FTextKey &InNamespace)
Definition StringTableRegistry.cpp:190
CORE_API FText Internal_FindLocTableEntry(const FName InTableId, const FTextKey &InKey, const EStringTableLoadingPolicy InLoadingPolicy) const
Definition StringTableRegistry.cpp:235
CORE_API bool UnregisterStringTable(const FName InTableId)
Definition StringTableRegistry.cpp:78
CORE_API FStringTablePtr FindMutableStringTable(const FName InTableId) const
Definition StringTableRegistry.cpp:103
CORE_API UStringTable * FindStringTableAsset(const FName InTableId) const
Definition StringTableRegistry.cpp:115
CORE_API void Internal_SetLocTableEntry(const FName InTableId, const FTextKey &InKey, const FString &InSourceString)
Definition StringTableRegistry.cpp:219
CORE_API void Internal_LocTableFromFile(const FName InTableId, const FTextKey &InNamespace, const FString &InFilePath, const FString &InRootPath)
Definition StringTableRegistry.cpp:198
CORE_API void RegisterStringTable(const FName InTableId, FStringTableRef InTable)
Definition StringTableRegistry.cpp:63
Definition TextKey.h:75
Definition Text.h:385
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition StringTable.h:29