mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
committed by
Konstantin Pastbin
parent
c9cbb64f12
commit
76ffc99abd
41
libs/platform/locale_std.cpp
Normal file
41
libs/platform/locale_std.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#include "platform/locale.hpp"
|
||||
|
||||
#include <locale>
|
||||
|
||||
namespace platform
|
||||
{
|
||||
Locale StdLocale2Locale(std::locale loc)
|
||||
{
|
||||
return {"",
|
||||
"",
|
||||
std::use_facet<std::moneypunct<char, true>>(loc).curr_symbol(),
|
||||
std::string(1, std::use_facet<std::numpunct<char>>(loc).decimal_point()),
|
||||
std::string(1, std::use_facet<std::numpunct<char>>(loc).thousands_sep())};
|
||||
}
|
||||
|
||||
Locale GetCurrentLocale()
|
||||
{
|
||||
// Environment's default locale.
|
||||
std::locale loc;
|
||||
|
||||
return StdLocale2Locale(loc);
|
||||
}
|
||||
|
||||
bool GetLocale(std::string const localeName, Locale& result)
|
||||
{
|
||||
try
|
||||
{
|
||||
std::locale loc(localeName);
|
||||
|
||||
result = StdLocale2Locale(loc);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace platform
|
||||
|
||||
Reference in New Issue
Block a user