/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "localemanager.hpp" #include "util/memory.hpp" #include "asset/asset.hpp" #include "assert/assert.hpp" localemanager_t LOCALE; errorret_t localeManagerInit() { memoryZero(&LOCALE, sizeof(localemanager_t)); errorChain(localeManagerSetLocale(DUSK_LOCALE_EN_US)); errorOk(); } errorret_t localeManagerSetLocale(const dusklocale_t locale) { assertTrue(locale < DUSK_LOCALE_COUNT, "Invalid locale."); LOCALE.locale = locale; char_t languageFile[FILENAME_MAX]; snprintf( languageFile, FILENAME_MAX, "language/%s.dlf", LOCALE_INFOS[locale].file ); assetLanguageDispose(&LOCALE.language); memoryZero(&LOCALE.language, sizeof(assetlanguage_t)); errorChain(assetLoad(languageFile, &LOCALE.language)); errorOk(); } void localeManagerDispose() { assetLanguageDispose(&LOCALE.language); }