LeviLamina
Loading...
Searching...
No Matches
I18nImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/threading/SharedLockbox.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/core/utility/Subject.h"
9#include "mc/locale/I18n.h"
10
11// auto generated forward declare list
12// clang-format off
13class I18nObserver;
14class Localization;
16class PackManifest;
19namespace Bedrock::Threading { class Mutex; }
20namespace Json { class Value; }
21// clang-format on
22
23class I18nImpl : public ::I18n {
24public:
25 // I18nImpl inner types declare
26 // clang-format off
28 // clang-format on
29
30 // I18nImpl inner types define
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization>> mCurrentLanguage;
36 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization>> mCurrentPackMetaLanguage;
37 // NOLINTEND
38 };
39
42
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization const>> mEmptyLanguage;
47 ::ll::TypedStorage<8, 40, ::Bedrock::Threading::SharedLockbox<::I18nImpl::CurrentLanguageInfo, ::std::shared_mutex>>
48 mCurrentLanguageInfo;
49 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::Localization>>> mLanguages;
50 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mLanguageCodes;
51 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::string>> mLanguageNames;
52 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::Localization>>> mPackKeywordLanguages;
53 ::ll::TypedStorage<8, 24, ::std::vector<::std::string> const> mPackReservedKeys;
54 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::vector<::std::string>>> mFormatDictionary;
55 ::ll::TypedStorage<1, 1, bool> mLanguageSupportsHypenSplitting;
56 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
57 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAdditionalTranslationsBackupMutex;
58 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::Localization>>> mAdditionalTranslationsBackup;
59 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mLocalizationMutex;
60 ::ll::TypedStorage<8, 104, ::Core::Subject<::I18nObserver, ::Bedrock::Threading::Mutex>> mSubject;
61 // NOLINTEND
62
63public:
64 // virtual functions
65 // NOLINTBEGIN
66 // vIndex: 1
67 virtual void clearLanguages() /*override*/;
68
69 // vIndex: 2
70 virtual ::std::vector<::std::string> findAvailableLanguages(::ResourcePackManager& resourcePackManager
71 ) /*override*/;
72
73 // vIndex: 3
74 virtual ::std::unordered_map<::std::string, ::std::string>
75 findAvailableLanguageNames(::ResourcePackManager& resourcePackManager) /*override*/;
76
77 // vIndex: 4
78 virtual void loadLanguages(
79 ::ResourcePackManager& resourcePackManager,
80 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
81 ::std::string const& initLang
82 ) /*override*/;
83
84 // vIndex: 5
85 virtual void loadAllLanguages(::ResourcePackManager& resourcePackManager) /*override*/;
86
87 // vIndex: 6
88 virtual ::std::vector<::std::string> getLanguageCodesFromPack(::PackAccessStrategy const& accessStrategy
89 ) /*override*/;
90
91 // vIndex: 8
92 virtual void loadLanguageKeywordsFromPack(
93 ::PackManifest const& manifest,
94 ::PackAccessStrategy const& accessStrategy
95 ) /*override*/;
96
97 // vIndex: 7
98 virtual void loadLanguageKeywordsFromPack(
99 ::PackManifest const& manifest,
100 ::PackAccessStrategy const& accessStrategy,
101 ::std::vector<::std::string> const& languageCodes
102 ) /*override*/;
103
104 // vIndex: 9
105 virtual void appendLanguageStringsFromPack(
106 ::PackManifest const& manifest,
107 ::std::multimap<::std::string, ::std::pair<::std::string, ::std::string>> const& localizationMapping
108 ) /*override*/;
109
110 // vIndex: 10
111 virtual ::std::unordered_map<::std::string, ::std::string>
112 getLanguageKeywordsFromPack(::PackManifest const& manifest, ::std::string const& keyword) /*override*/;
113
114 // vIndex: 11
115 virtual void loadLangaugesByLocale(
116 ::std::unordered_multimap<::std::string, ::std::pair<::std::string, ::std::string>> const& storeLocalization
117 ) /*override*/;
118
119 // vIndex: 12
120 virtual void appendAdditionalTranslations(
121 ::std::unordered_map<::std::string, ::std::string> const& translations,
122 ::std::string const& keyPrefix
123 ) /*override*/;
124
125 // vIndex: 13
126 virtual void appendLanguageStrings(::PackAccessStrategy* accessStrategy) /*override*/;
127
128 // vIndex: 14
129 virtual void addI18nObserver(::I18nObserver& observer) /*override*/;
130
131 // vIndex: 15
132 virtual void chooseLanguage(::std::string const& code) /*override*/;
133
134 // vIndex: 17
135 virtual ::std::string
136 get(::std::string const& id,
137 ::std::vector<::std::string> const& params,
138 ::std::shared_ptr<::Localization> const locale) /*override*/;
139
140 // vIndex: 16
141 virtual ::std::string
142 get(::std::string const& langString, ::std::shared_ptr<::Localization> const locale) /*override*/;
143
144 // vIndex: 18
145 virtual ::std::string getPackKeywordValue(::PackManifest const& manifest, ::std::string const& key) /*override*/;
146
147 // vIndex: 19
148 virtual ::std::string
149 getPackKeywordValueForTelemetry(::PackManifest const& manifest, ::std::string const& key) /*override*/;
150
151 // vIndex: 20
152 virtual bool hasPackKeyEntry(::PackManifest const& manifest, ::std::string const& key) /*override*/;
153
154 // vIndex: 21
155 virtual ::std::vector<::std::string> const& getSupportedLanguageCodes() /*override*/;
156
157 // vIndex: 22
158 virtual ::std::string const& getLanguageName(::std::string const& code) /*override*/;
159
160 // vIndex: 23
161 virtual ::std::shared_ptr<::Localization> const getLocaleFor(::std::string const& code) /*override*/;
162
163 // vIndex: 24
164 virtual ::std::string const& getLocaleCodeFor(::std::string const& code) /*override*/;
165
166 // vIndex: 25
167 virtual ::gsl::not_null<::std::shared_ptr<::Localization const>> getCurrentLanguage() /*override*/;
168
169 // vIndex: 26
170 virtual bool languageSupportsHypenSplitting() /*override*/;
171
172 // vIndex: 27
173 virtual ::std::string getLocalizedAssetFileWithFallback(
174 ::std::string const& fileNamePrefix,
175 ::std::string const& fileNameSuffix
176 ) /*override*/;
177
178 // vIndex: 28
179 virtual bool isPackKeyword(::std::string const& key) /*override*/;
180
181 // vIndex: 0
182 virtual ~I18nImpl() /*override*/;
183 // NOLINTEND
184
185public:
186 // member functions
187 // NOLINTBEGIN
188 MCAPI I18nImpl();
189
190 MCAPI void _chooseLanguage(::std::shared_ptr<::Localization> const& chosen);
191
192 MCAPI void _findAvailableLanguageNames(
193 ::Json::Value const& root,
194 ::std::unordered_map<::std::string, ::std::string>& destination
195 );
196
197 MCAPI void _findAvailableLanguages(::Json::Value const& root, ::std::vector<::std::string>& destination);
198
199 MCAPI ::std::shared_ptr<::Localization> _findLocaleFor(::std::string const& code);
200
201 MCAPI ::std::string _generatePackKeyPrefix(::PackManifest const& manifest);
202
203 MCAPI ::std::string& _getLocaleCodeFor(::std::string const& code);
204
205 MCAPI ::gsl::not_null<::std::shared_ptr<::Localization>> _getPackKeywordLocale(::std::string const& langCode);
206
207 MCAPI void _notifyLanguagesLoaded();
208 // NOLINTEND
209
210public:
211 // constructor thunks
212 // NOLINTBEGIN
213 MCAPI void* $ctor();
214 // NOLINTEND
215
216public:
217 // destructor thunk
218 // NOLINTBEGIN
219 MCAPI void $dtor();
220 // NOLINTEND
221
222public:
223 // virtual function thunks
224 // NOLINTBEGIN
225 MCAPI void $clearLanguages();
226
227 MCAPI ::std::vector<::std::string> $findAvailableLanguages(::ResourcePackManager& resourcePackManager);
228
229 MCAPI ::std::unordered_map<::std::string, ::std::string>
230 $findAvailableLanguageNames(::ResourcePackManager& resourcePackManager);
231
232 MCAPI void $loadLanguages(
233 ::ResourcePackManager& resourcePackManager,
234 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
235 ::std::string const& initLang
236 );
237
238 MCAPI void $loadAllLanguages(::ResourcePackManager& resourcePackManager);
239
240 MCAPI ::std::vector<::std::string> $getLanguageCodesFromPack(::PackAccessStrategy const& accessStrategy);
241
242 MCAPI void
243 $loadLanguageKeywordsFromPack(::PackManifest const& manifest, ::PackAccessStrategy const& accessStrategy);
244
245 MCAPI void $loadLanguageKeywordsFromPack(
246 ::PackManifest const& manifest,
247 ::PackAccessStrategy const& accessStrategy,
248 ::std::vector<::std::string> const& languageCodes
249 );
250
251 MCAPI void $appendLanguageStringsFromPack(
252 ::PackManifest const& manifest,
253 ::std::multimap<::std::string, ::std::pair<::std::string, ::std::string>> const& localizationMapping
254 );
255
256 MCAPI ::std::unordered_map<::std::string, ::std::string>
257 $getLanguageKeywordsFromPack(::PackManifest const& manifest, ::std::string const& keyword);
258
259 MCAPI void $loadLangaugesByLocale(
260 ::std::unordered_multimap<::std::string, ::std::pair<::std::string, ::std::string>> const& storeLocalization
261 );
262
263 MCAPI void $appendAdditionalTranslations(
264 ::std::unordered_map<::std::string, ::std::string> const& translations,
265 ::std::string const& keyPrefix
266 );
267
268 MCAPI void $appendLanguageStrings(::PackAccessStrategy* accessStrategy);
269
270 MCAPI void $addI18nObserver(::I18nObserver& observer);
271
272 MCAPI void $chooseLanguage(::std::string const& code);
273
274 MCAPI ::std::string $get(
275 ::std::string const& id,
276 ::std::vector<::std::string> const& params,
277 ::std::shared_ptr<::Localization> const locale
278 );
279
280 MCAPI ::std::string $get(::std::string const& langString, ::std::shared_ptr<::Localization> const locale);
281
282 MCAPI ::std::string $getPackKeywordValue(::PackManifest const& manifest, ::std::string const& key);
283
284 MCAPI ::std::string $getPackKeywordValueForTelemetry(::PackManifest const& manifest, ::std::string const& key);
285
286 MCAPI bool $hasPackKeyEntry(::PackManifest const& manifest, ::std::string const& key);
287
288 MCFOLD ::std::vector<::std::string> const& $getSupportedLanguageCodes();
289
290 MCAPI ::std::string const& $getLanguageName(::std::string const& code);
291
292 MCAPI ::std::shared_ptr<::Localization> const $getLocaleFor(::std::string const& code);
293
294 MCAPI ::std::string const& $getLocaleCodeFor(::std::string const& code);
295
296 MCAPI ::gsl::not_null<::std::shared_ptr<::Localization const>> $getCurrentLanguage();
297
298 MCAPI bool $languageSupportsHypenSplitting();
299
300 MCAPI ::std::string
301 $getLocalizedAssetFileWithFallback(::std::string const& fileNamePrefix, ::std::string const& fileNameSuffix);
302
303 MCAPI bool $isPackKeyword(::std::string const& key);
304 // NOLINTEND
305
306public:
307 // vftables
308 // NOLINTBEGIN
309 MCAPI static void** $vftable();
310 // NOLINTEND
311};
Definition SharedLockbox.h:8
Definition I18nImpl.h:23
Definition I18nObserver.h:14
Definition I18n.h:18
Definition Value.h:16
Definition Localization.h:12
Definition PackAccessStrategy.h:20
Definition PackManifest.h:19
Definition ResourceLoadManager.h:16
Definition ResourcePackManager.h:24
Definition I18nImpl.h:31
Definition code.h:5