zoukankan      html  css  js  c++  java
  • iOS开发之国际化(本地化)

    (一)针对XIB(NIB)文件里某个控件的固定文本进行国际化

    1.添加要国际化的语言,按照类似下图进行设置(其中Base一般为English):

    2.选中要进行国际化的XIB(NIB)文件,打开File inspector,选中Localize...,弹出对话框,先默认选中Base:

    3.勾选刚刚添加的要国际化的语言,这会创建当前的XIB(NIB)文件的一个副本,下图中语言右边的选项是设置副本以图形界面形式,还是以string文本形式

    4.对第3步创建的副本进行一定的修改即可

    (二)Info.plist国际化(可用于修改app应用名称以实现国际化)

    1.新建文件,在Resource里面选择Strings File,命名为InfoPlist.strings

    2.国际化Info.plist,选中指定语言

    3.选中指定语言的InfoPlist.strings,添加需要国际化的内容,例如下面的代码则是修改app应用的名称

    CFBundleDisplayName = "StoreZoeker";

    4.修改Info.plist文件,添加新的属性 Application has localized display name,设置其类型为boolean,值为YES

    (三)国际化将要显示在屏幕上的文本

    1.

    (1)第一种情况,把要国际化的字符串@“”改成类似NSLocalizedString(@"Album",@"Localized kind: Album") ,其中第一个参数是默认要显示的字符串,第二个参数则是显示在国际化文件Localizable.strings的注释,用来说明该字符串

    (2)第二种情况,把

    [NSString stringWithFormat:@“%@ (%@)”,,artistName,kind]

    改成

    [NSString stringWithFormat:NSLocalizedString(@"%@ (%@)",@"Format for artist namelabel"),artistName,kind]

    (3)第三种情况,也可以把

    [NSString stringWithFormat:@“%@ (%@)”,,artistName,kind]

    改成

    [NSString stringWithFormat:NSLocalizedString(@"ARTIST_NAME_LABEL_FORMAT",@"Format for artist name label"),artistName,kind]

    2.创建Localizable.strings文件。打开终端,并定位到项目文件夹下(代码源文件所在目录,例如~/Desktop/StoreSearch/StoreSearch),输入以下命令

    genstrings *.m -o base.lproj(PS:base即是默认的语言,一般为英语,当每次有新的国际化字符串时,可用这个命令来重新生成国际化文件)

    3.在Xcode中选择Localizable.strings并进行国际化,选中指定语言

    4.打开指定语言的Localizable.strings文件

    (1)对于第1步的第一种情况,文件内容类似如下,其中注释对应NSLocalizedString()函数的第二个参数,等号左边的字符串对应第一个参数;而等号右边的字符串则是需要修改成国际化的字符串

    /* Localized kind:Album */

    "Album" = "Album";

    (2)对于第1步的第二种情况,文件内容类似如下

    /* Format for artist name label */

    "%@ (%@)" = "%1$@ (%2$@)";

      其中%1$@对应[NSString stringWithFormat:NSLocalizedString(@"%@ (%@)",@"Format for artist namelabel"),artistName,kind]的artistName参数,%2$@则对应kind参数

    事实上,这两个参数可以调换,即写成如下形式,%2$@对应显示kind参数,%1$@对应显示artistName参数

    /* Format for artist name label */

    "%@ (%@)" = "%2$@ (%1$@)";

    (3)对于第1步的第三种情况,文件内容类似如下

    /* Format for artist name label */

    "ARTIST_NAME_LABEL_FORMAT" = "%1$@ (%2$@)";

  • 相关阅读:
    解决用ADODB对Access数据库进行操作的一个问题
    简单的多线程操作示例
    线程池操作示例
    日常五大习惯有助减肥 生活至上,美容至尚!
    全面分析男性护肤三大误区 生活至上,美容至尚!
    看了这篇你肯定瘦 全身上下想瘦哪就瘦哪 生活至上,美容至尚!
    护肤:食盐美容4招 控油除痘去黑头 生活至上,美容至尚!
    神奇瘦身食谱 调整你多余脂肪 生活至上,美容至尚!
    一天4时段喝水轻松瘦身 生活至上,美容至尚!
    营养瘦身第一菜——金陵素什锦 生活至上,美容至尚!
  • 原文地址:https://www.cnblogs.com/guitarandcode/p/5716561.html
Copyright © 2011-2022 走看看