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$@)";

原文地址:https://www.cnblogs.com/guitarandcode/p/5716561.html