您的位置:首页 > 编程语言 > C语言/C++

C++本地化得到语言代号,例如zh-cn,en-us

2012-04-18 14:05 375 查看
C++ 得到系统的时间主要用到函数GetLocaleInfo. 详细定义可以查MSDN。还有http://blog.csdn.net/li_guotao/article/details/4306460介绍了一些基本用法,但是只提到怎么得到类似ENU这样的缩写,没有讲怎么得到zh-cn这种格式。今天有要求把ENU改成en-us这种形式,首先想到的是做个map,这样只能把国家限死,想加新的国家不好加。到网上找解决方案。具体网站http://stackoverflow.com/questions/7749999/converting-lcid-to-language-string,自己写了段代码如下。

TCHAR szLanguage[BUFFER_SIZE]={0};
DWORD dwLanguage = sizeof(TCHAR)*BUFFER_SIZE;
TCHAR szCountry[BUFFER_SIZE]={0};
DWORD dwCountry = sizeof(TCHAR)*BUFFER_SIZE;
// Get language code.
int ccbufLanguage = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SISO639LANGNAME, szLanguage, dwLanguage);
// Get Country code.
int ccbufCountry = GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SISO3166CTRYNAME, szCountry, dwLanguage);
if (ccbufCountry != 0)
{
szLanguage[ccbufLanguage++] = '-';
wcscat_s(szLanguage,szCountry);
}


如果哪位同学有更好的方法,还请赐教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐