41 lines
1.5 KiB
C++
41 lines
1.5 KiB
C++
/***
|
|
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 <br>
|
|
This function will never fail <br>
|
|
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
|
|
} |