Xcode 6 关于 iOS App 国际化问题

在Xcode 6中,国际化时需要注意以下几个方面

1、先让工程支持国际化

在项目管理界面中,在 Localization 中,添加对 Chinese 的支持,这个时候,通常会提示你,需要国际化的文件,通常是 xib 文件和 plist 文件,如果你需要为你的 XIB 文件增加国际化的支持,那就选中他们,默认是全选的,这个时候,你会发现,没有找到你的 .String 文件。

Xcode 6 关于 iOS App 国际化问题_第1张图片
让工程支持国际化

对的,因为你这个时候你还没有添加 .String 文件,好的,去添加它

2、添加 Localizable.String 文件

是的,没错,就这样命名,先不要调皮,过会告诉你如何调皮。创建文件之后,在 Xcode 的右侧点击 Localization ,会默认的提示你,需要把当前的 Localizable.String 文件放到哪个国际化文件夹中。

Xcode 6 关于 iOS App 国际化问题_第2张图片
添加 Localizable.String 文件

这个地方说一下,国际化,其实也没那么智能,就是根据当前的语言环境更改加载的文件夹罢了,当然 App 的语言环境是不是需要根据系统变动而变动,还需要在 scheme 中设置,默认的设置,是跟随系统的语言环境,这个也是开发者认为模拟器不能调试国际化的原因,只要在 Scheme 中设置不跟随系统,而是选择我们需要调试的语言环境。一会儿再说,卖个关子,嘻嘻。

通常会添加到一个叫 Base 的文件夹中,但是,需要国际化好几个文件,我的选择只想支持汉语和英语,那我就默认的丢到 English 里了。添加好之后文件的属性可以看到发生了变化。

Xcode 6 关于 iOS App 国际化问题_第3张图片
查看 Localizable.String 的属性

好的,创建成功了。继续我们第一个问题,再次到之前的界面,继续给我们的工程添加一个语种的支持。同样的操作,你会看到你的 Localizable.String 文件,我们只为其添加国际化,所以,只选择它,取消其他的选择,点击确定。

Xcode 6 关于 iOS App 国际化问题_第4张图片
为 Localizable.String 国际化(简体中文)
Xcode 6 关于 iOS App 国际化问题_第5张图片
只选择 Localizable.String 文件

点击确定之后,再看一下文件的属性

Xcode 6 关于 iOS App 国际化问题_第6张图片
再次查看 Localizable.String 属性

这样,你就成功的为你的工程添加了一个国际化文件,

我们为国际化文件添加一个字符串 Hello, world,使用

NSLog(@"%@",NSLocalizedString(@"Hello, world",nil));

就可以得到你国际化的字符串了。

3、解决之前的关子

为什么需要使用 Localizable.String 去命名国际化文件呢?

原因很简单,只用使用这个名字,NSLocalizedString这个宏才能找到正确的国际化文件,否则,是找不到的,不信,你试一下。。。

我如果还是想用别的文件,怎么办?

简单,使用另一个宏NSLocalizedStringFromTable

这个宏,可以让你指定国际化文件的名称,自动去你的bundle中去搜索,搜到了,就使用它。

我们创建一个 Localization.String 文件

Xcode 6 关于 iOS App 国际化问题_第7张图片
在新的国际化文件 Localization.String 文件中添加字符串
Xcode 6 关于 iOS App 国际化问题_第8张图片
使用 NSLocalizedStringFromTable 宏

4、怎么在模拟器中调试国际化呢?

不要改动你的 scheme ,只是Duplicate Scheme就可以了。你也可以在调试完了之后删掉,都无所谓的。

Xcode 6 关于 iOS App 国际化问题_第9张图片
编辑现有的Scheme


Xcode 6 关于 iOS App 国际化问题_第10张图片
复制现有的 scheme


Xcode 6 关于 iOS App 国际化问题_第11张图片
为新的 Scheme 命名

重命名它,或者直接不用管它,然后点击 Run

Xcode 6 关于 iOS App 国际化问题_第12张图片
更改新的 Scheme 的语言(简体中文)

看到了吗,选择简体中文,就可以了,还可以继续的选择,把区域也设置一下

Xcode 6 关于 iOS App 国际化问题_第13张图片
更改 App 的区域

点击Close

你就会看到你的Scheme里多了一个Copy of XXX,就是你刚创建的 Scheme,选中它,运行,你就会看到中文版的App啦。

你可能感兴趣的:(Xcode 6 关于 iOS App 国际化问题)