zoukankan      html  css  js  c++  java
  • 【iOS】语言国际化(本地化)

    【环境描述】

    OS X LM 10.8,Xcode4.4.1,iOS 5.1

    【问题描述】

    国际化包括内容和应用标题等的字符串国际化(本地化),供后续查阅。

    【问题分析】

    一、内容国际化

    1、查看系统支持的语言种类

        //获取系统支持的语言
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
        NSLog(@"all langs \n %@", languages);

        //当前使用的语言
        NSString *currentLanguage = [languages objectAtIndex:0];
        NSLog(@"%@",currentLanguage);

        输出结果如下:

        all langs
        (en,fr,de,ja,nl,it,es,pt,"pt-PT",da,fi,nb,sv,ko,"zh-Hans","zh-Hant",ru,pl,tr,uk,ar,hr,cs,el,he,ro,sk,th,id,ms,"en-GB",ca,hu,vi)

        说明:zh-Hans表示中文简体,zh-Hant表示中文繁体

    2、创建本地化文件,用于存储字符串

        创建英文文件 ../en.lproj/lang.strings,用于存储英文字符串,字符串内容参考:      "STR_ID_TEST"         = "Test123";

        创建中文文件 ../zh-Hans/lang.strings,用于存储中文简体字符串,字符串内容参考:"STR_ID_TEST"         = "测试123";

    3、把创建的文件添加到工程中

        备注:在Xcode4.4.1中,貌似不需要注意编码格式,之前在Xcode3.2.6版本中,字符串文件需要Unicode16编码格式。添加后的工程目录如下:

        

    4、代码中调用

        NSString *title = NSLocalizedStringFromTable(@"STR_ID_TEST", @"lang", nil);

        备注:建议自定义字符串文件名,如果用默认的文件名,有可能在真机上调用失败。

     二、应用名国际化

    1、创建中文资源文件

        在中文和英文InfoPlist.strings中分别创建CFBundleDisplayName,具体步骤如下:

        把工程创建时默认生成的en.lproj/InfoPlist.strings拷贝到String/en.lproj目录下,然后复制InfoPlist.strings到String/zh-Hans目录下,

        在String/en.lproj/InfoPlist.strings文件中创建字符串,如下:"CFBundleDisplayName" = "Pro1";

        在String/zh-Hans.lproj/InfoPlist.strings中创添加字符串:"CFBundleDisplayName" = "中文1";

    2、添加应用名国际化属性

        在***-Info.plist文件中添加:Application has localized display name, 并将后面的value部分设置为选中状态

  • 相关阅读:
    [Javascript] twitterbootstrap: 解决2.1版本中modal加载远程内容时,只加载一次的问题
    向大型网站学习SEO优化之道
    [Yii Framework] 使用Yii Framework开发微信公众平台
    [jQuery] ajax跨域处理方式
    [jQuery] form提交到iframe之后,获取iframe里面内容
    [Ubuntu] fatal: recursion detected in die handler
    [Yii Framework] Yii如何实现前后台的session分离
    [ubuntu] ubuntu13.04 64bit,安装FastDFS4.06过程遇到的问题和解决方案
    [转] 怎样在Ubuntu上安装Git服务器
    [ubuntu] ubuntu13.04切换桌面/工作区的方法
  • 原文地址:https://www.cnblogs.com/ftrako/p/2769468.html
Copyright © 2011-2022 走看看