/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: Locale.hpp Date: 2021-6-9 Author: Reece ***/ #pragma once #include "ECodePage.hpp" #include "Encoding/Encoding.hpp" #include "LocaleStrings.hpp" namespace Aurora::Locale { struct LocalizationInfo { inline LocalizationInfo() {}; inline LocalizationInfo(const LocalizationInfo &) = default; inline LocalizationInfo(LocalizationInfo &&) = default; inline LocalizationInfo(const AuString &language, const AuString &country, const AuString &codeset, const ECodePage codePage) : language(&language), country(&country), codeset(&codeset), codepage(codePage) {} const AuString *language {}; /// ISO 639 const AuString *country {}; /// ISO 3166 const AuString *codeset {}; /// const ECodePage codepage {}; /// Potentially eSysUnk. Note that eSysUnk is valid and handlable by iconv and nsl. On windows and unix, this is your codepage. }; /* Retrieves information about the current system
This function will never fail
This function will never release memory */ AUKN_SYM LocalizationInfo GetLocale(); #if defined(AURORA_PLATFORM_WIN32) || defined(I_REALLY_NEED_WIDECHAR_PUBAPI) AUKN_SYM std::wstring ConvertFromUTF8(const AuString &in); AUKN_SYM AuString ConvertFromWChar(const wchar_t *in, AuMach length); AUKN_SYM AuString ConvertFromWChar(const wchar_t *in); #endif }