boost :: locale获取用户默认语言环境

时间:2016-01-11 22:15:51

标签: c++ boost

我正在尝试将boost :: locale库用于将在不同语言环境下运行的应用程序。 我注意到std :: locale

的以下区别
std::locale loc("");

从用户设置创建区域设置。 F.e。

std::cout.imbue(loc);
double d = 1.25;
std::cout << d;

将在我的德语系统上输出1,25,因为我们使用逗号作为小数分隔符。使用以下boost :: locale代码

不是这样
boost::locale::generator gen;
std::locale loc = gen("");
std::cout.imbue(loc);
double d = 1.25;
std::cout << d;

输出1.25。 我的问题不是为什么会出现这种差异,而是如何创建一个考虑用户设置的提升语言环境?我找到了许多关于如何将de-DE等ID传递给语言环境生成器的示例,但这并不能帮助我,因为我需要动态地找到用户语言环境。

使用VC ++ 2015进行了测试,在Windows 10上测试了1.57,我没有将ICU用于boost :: locale。

0 个答案:

没有答案