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

  • 相关阅读:
    Tomcat vs Jetty vs Undertow性能对比
    实例对象( instance)、类对象(class)、元类对象(meta-class)的内部结构分析
    isa和superclass
    iOS-weak关键字使用场景
    iOS-weak和assign区别,copy和strong的区别和应用
    iOS-class修饰符的解释及用法
    iOS-atomic修饰符原理剖析讲解 (你将会了解到什么是优先级翻转、自旋锁、互斥锁)
    @property修饰符种类
    @property、@synthesize 、@dynamic的应用
    【原创】Kafka Consumer多线程消费
  • 原文地址:https://www.cnblogs.com/ftrako/p/2769468.html
Copyright © 2011-2022 走看看