35 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization>> mCurrentLanguage;
36 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization>> mCurrentPackMetaLanguage;
46 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Localization const>> mEmptyLanguage;
47 ::ll::TypedStorage<8, 40, ::Bedrock::Threading::SharedLockbox<::I18nImpl::CurrentLanguageInfo, ::std::shared_mutex>>
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;
67 virtual void clearLanguages() ;
70 virtual ::std::vector<::std::string> findAvailableLanguages(
::ResourcePackManager& resourcePackManager
74 virtual ::std::unordered_map<::std::string, ::std::string>
78 virtual void loadLanguages(
80 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
81 ::std::string
const& initLang
88 virtual ::std::vector<::std::string> getLanguageCodesFromPack(
::PackAccessStrategy const& accessStrategy
92 virtual void loadLanguageKeywordsFromPack(
98 virtual void loadLanguageKeywordsFromPack(
101 ::std::vector<::std::string>
const& languageCodes
105 virtual void appendLanguageStringsFromPack(
107 ::std::multimap<::std::string, ::std::pair<::std::string, ::std::string>>
const& localizationMapping
111 virtual ::std::unordered_map<::std::string, ::std::string>
112 getLanguageKeywordsFromPack(
::PackManifest const& manifest, ::std::string
const& keyword) ;
115 virtual void loadLangaugesByLocale(
116 ::std::unordered_multimap<::std::string, ::std::pair<::std::string, ::std::string>>
const& storeLocalization
120 virtual void appendAdditionalTranslations(
121 ::std::unordered_map<::std::string, ::std::string>
const& translations,
122 ::std::string
const& keyPrefix
132 virtual void chooseLanguage(::std::string
const&
code) ;
135 virtual ::std::string
136 get(::std::string
const&
id,
137 ::std::vector<::std::string>
const& params,
138 ::std::shared_ptr<::Localization>
const locale) ;
141 virtual ::std::string
142 get(::std::string
const& langString, ::std::shared_ptr<::Localization>
const locale) ;
145 virtual ::std::string getPackKeywordValue(
::PackManifest const& manifest, ::std::string
const& key) ;
148 virtual ::std::string
149 getPackKeywordValueForTelemetry(
::PackManifest const& manifest, ::std::string
const& key) ;
152 virtual bool hasPackKeyEntry(
::PackManifest const& manifest, ::std::string
const& key) ;
155 virtual ::std::vector<::std::string>
const& getSupportedLanguageCodes() ;
158 virtual ::std::string
const& getLanguageName(::std::string
const&
code) ;
161 virtual ::std::shared_ptr<::Localization>
const getLocaleFor(::std::string
const&
code) ;
164 virtual ::std::string
const& getLocaleCodeFor(::std::string
const&
code) ;
167 virtual ::gsl::not_null<::std::shared_ptr<::Localization const>> getCurrentLanguage() ;
170 virtual bool languageSupportsHypenSplitting() ;
173 virtual ::std::string getLocalizedAssetFileWithFallback(
174 ::std::string
const& fileNamePrefix,
175 ::std::string
const& fileNameSuffix
179 virtual bool isPackKeyword(::std::string
const& key) ;
190 MCAPI
void _chooseLanguage(::std::shared_ptr<::Localization>
const& chosen);
192 MCAPI
void _findAvailableLanguageNames(
194 ::std::unordered_map<::std::string, ::std::string>& destination
197 MCAPI
void _findAvailableLanguages(
::Json::Value const& root, ::std::vector<::std::string>& destination);
199 MCAPI ::std::shared_ptr<::Localization> _findLocaleFor(::std::string
const&
code);
201 MCAPI ::std::string _generatePackKeyPrefix(
::PackManifest const& manifest);
203 MCAPI ::std::string& _getLocaleCodeFor(::std::string
const&
code);
205 MCAPI ::gsl::not_null<::std::shared_ptr<::Localization>> _getPackKeywordLocale(::std::string
const& langCode);
207 MCAPI
void _notifyLanguagesLoaded();
225 MCAPI
void $clearLanguages();
227 MCAPI ::std::vector<::std::string> $findAvailableLanguages(
::ResourcePackManager& resourcePackManager);
229 MCAPI ::std::unordered_map<::std::string, ::std::string>
232 MCAPI
void $loadLanguages(
234 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
235 ::std::string
const& initLang
240 MCAPI ::std::vector<::std::string> $getLanguageCodesFromPack(
::PackAccessStrategy const& accessStrategy);
245 MCAPI
void $loadLanguageKeywordsFromPack(
248 ::std::vector<::std::string>
const& languageCodes
251 MCAPI
void $appendLanguageStringsFromPack(
253 ::std::multimap<::std::string, ::std::pair<::std::string, ::std::string>>
const& localizationMapping
256 MCAPI ::std::unordered_map<::std::string, ::std::string>
257 $getLanguageKeywordsFromPack(
::PackManifest const& manifest, ::std::string
const& keyword);
259 MCAPI
void $loadLangaugesByLocale(
260 ::std::unordered_multimap<::std::string, ::std::pair<::std::string, ::std::string>>
const& storeLocalization
263 MCAPI
void $appendAdditionalTranslations(
264 ::std::unordered_map<::std::string, ::std::string>
const& translations,
265 ::std::string
const& keyPrefix
272 MCAPI
void $chooseLanguage(::std::string
const&
code);
274 MCAPI ::std::string $get(
275 ::std::string
const&
id,
276 ::std::vector<::std::string>
const& params,
277 ::std::shared_ptr<::Localization>
const locale
280 MCAPI ::std::string $get(::std::string
const& langString, ::std::shared_ptr<::Localization>
const locale);
282 MCAPI ::std::string $getPackKeywordValue(
::PackManifest const& manifest, ::std::string
const& key);
284 MCAPI ::std::string $getPackKeywordValueForTelemetry(
::PackManifest const& manifest, ::std::string
const& key);
286 MCAPI
bool $hasPackKeyEntry(
::PackManifest const& manifest, ::std::string
const& key);
288 MCFOLD ::std::vector<::std::string>
const& $getSupportedLanguageCodes();
290 MCAPI ::std::string
const& $getLanguageName(::std::string
const&
code);
292 MCAPI ::std::shared_ptr<::Localization>
const $getLocaleFor(::std::string
const&
code);
294 MCAPI ::std::string
const& $getLocaleCodeFor(::std::string
const&
code);
296 MCAPI ::gsl::not_null<::std::shared_ptr<::Localization const>> $getCurrentLanguage();
298 MCAPI
bool $languageSupportsHypenSplitting();
301 $getLocalizedAssetFileWithFallback(::std::string
const& fileNamePrefix, ::std::string
const& fileNameSuffix);
303 MCAPI
bool $isPackKeyword(::std::string
const& key);
309 MCAPI
static void** $vftable();