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部分设置为选中状态

  • 相关阅读:
    java 微信公众号素材 新增其他类型永久素材
    @schedule
    idea 打包的jar运行报 “XXX中没有主清单属性”
    openjdk没有ssl支持的相关证书包,导致使用HTPPS调用第三方接口时候报错误 InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    查询端口是否开通
    企业微信-之无法修改成员手机号
    PostgreSQL使用distinct关键字给单独的几列去重
    centos全屏幕退出:Alt+Enter
    github上OC 和swift框架精选
    github每日精选---iOS版
  • 原文地址:https://www.cnblogs.com/ftrako/p/2769468.html
Copyright © 2011-2022 走看看