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