zoukankan      html  css  js  c++  java
  • windowsclient开发--为你的client进行国际化

    之前博客讲过函数:
    GetUserDefaultUILanguage
    Returns the language identifier for the user UI language for the current user.

    我们国际化主要是支持三种语言,中文简体、繁体中文、以及英文。

    获得用户使用语言
    所以我们能够通过GetUserDefaultUILanguage函数来推断用户使用的是何种语言:

    int response_code = GetUserDefaultUILanguage();
        switch (response_code)
        {
        case 2052:  
            //显示中文简体
            break;
        case 1028:
            //显示繁体中文
            break;
        default:
           //其它情况都使用英文
            break;
        }

    创建对应的xml
    前一篇关于windowsclient的博客也介绍了怎样使用tinyxml来解析xml。也为我们的国际化做了铺垫。

    所以。我们能够创建三个xml文件,各自是
    simple_chinese.xml
    traditional_chinese.xml
    English.xml

    这三个xml文件里。每一个节点的key同样。value不同。
    比方在simple_chinese.xml中这样写:

    <?xml version="1.0" encoding="utf-8"?>  
    <Strings>  
      <!--close button tip-->  
      <String>  
        <StringKey>CloseTips</StringKey>  
        <StringValue>关闭</StringValue>  
      </String>  
    <Strings>  

    在traditional_chinese.xml中能够这么写:

    <?xml version="1.0" encoding="utf-8"?

    > <Strings> <!--close button tip--> <String> <StringKey>CloseTips</StringKey> <StringValue>關閉</StringValue> </String> <Strings>

    而在English.xml中就能够这么写:

    <?xml version="1.0" encoding="utf-8"?>  
    <Strings>  
      <!--close button tip-->  
      <String>  
        <StringKey>CloseTips</StringKey>  
        <StringValue>close</StringValue>  
      </String>  
    <Strings> 

    这样呢,就会依据用户使用的语言来读取对应的xml文件。能够把xml文件里的内容读取到map中,然后剩下的工作就是在程序代码中显示了。

  • 相关阅读:
    杂记:Linux下gcc升级
    杂记:OSX下编译安装最新版RedisDesktopMmanager
    查漏补缺:Vector中去重
    Mac下使用VScode进行C/C++开发
    添砖加瓦:几种常见的数据摘要算法(MD5、CRC32、SHA1和SHA256)
    添砖加瓦:snappy无损压缩算法
    杂记:OSX 安装openssl
    码海拾遗:内存四区
    Luogu 4284 [SHOI2014]概率充电器
    Luogu 4473 [国家集训队]飞飞侠
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7398777.html
Copyright © 2011-2022 走看看