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); }
如果哪位同学有更好的方法,还请赐教。
相关文章推荐
- zh-cn,zh-tw,en-us,en-gb等网页语言代码一览表
- zh-cn、en-us、zh-tw等表示语言(文化)代码与国家地区对照表(最全的各国地区对照表)
- flash builder4中文(zh_CN)本地化应用编译不通过的解决方法 文章分类:Flash编程 在编译选项中把 zh-CN改为 en_US即可
- 将ubuntu 8.04 (server x86_64)的系统编码由英文改成中文,即由en_US.UTF-8改为zh_CN.GBK
- Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US
- 中文(zh-cn)/英文(en-us)
- en_US.UTF-8和zh_CN.UTF-8的区别
- Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US
- UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别
- Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US
- Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US
- UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别
- UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别
- 将ubuntu 8.04 (server x86_64)的系统编码由英文改成中文,即由en_US.UTF-8改为zh_CN.GBK
- 将ubuntu 8.04 (server x86_64)的系统编码由英文改成中文,即由en_US.UTF-8改为zh_CN.GBK
- Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US
- 关于修改wordpress中文语言包Zh_cn.po和zh_cn.mo
- Ubuntu Server 命令行下的默认语言改为英语en_US.UTF-8
- 给一个字符串,例如”ababc",要求返回"ab"。因为"ab”连续重复出现且最长。用C/C++语言写一个函数完成该算法,给出复杂度
- Zabbix2.2.4 语言选择默认不显示Chinese(zh_CN)的解决方法