Как получить название локали для моей темы?

Скажем, я могу установить локаль из моей программы на C, используя _create_locale в качестве таких:

localeUS = _create_locale(LC_ALL, "English_United States.1252");

Но то, что мне нужно, — это наоборот, то есть получить имя локали (2-й аргумент функции выше) для вызывающего потока. Есть идеи, как это сделать?

PS. Я знаю, что современная Windows использует LCID. Мне нужно это имя локали для совместимости со старым кодом.

1

Решение

Надеюсь, вы можете использовать стандарт C ++.

От станд :: локаль :: имя:

пример

#include <locale>
#include <iostream>
#include <string>

int main()
{
std::locale loc(std::locale(), new std::ctype<char>);
std::cout << "The default locale is " << std::locale().name() << '\n'
<< "The user's locale is " << std::locale("").name() << '\n'
<< "A nameless locale is " << loc.name() << '\n';
}

Выход:

The default locale is C
The user's locale is en_US.UTF8
A nameless locale is *
3

Другие решения

Других решений пока нет …