我正在进行一个个人项目,在该项目中,我需要从C语言环境中获得完整的语言环境格式信息。
我不能简单地使用localeconv
或localeconv_l
,因为lconv
不能提供所需的所有格式化信息。为了解决*NIX上的这个问题,有nl_langinfo
和nl_langinfo_l
函数,但它们在Windows上不存在。
有哪些方法可以在Windows上获取区域设置格式信息?
以:GetUserDefaultUILanguage 开头
类似和相关的API包括:
GetUserDefaultLocalName
GetUserDefaultLCID
GetUserDefaultLangID
Perl 5开源C语言代码包含nl_langinfo((的模拟,适用于Windows和其他缺乏它的平台。您可以窃取代码,尽管尝试在一堆不同的平台上使用一堆不同配置会使代码变得复杂
有一些字段没有实现,例如日本天皇时代的名称。但任何常用的东西都是可用的。
从以下文件开始:https://github.com/Perl/perl5/blob/blead/locale.c
代码继续发展