本地化

iOS国际化(三):.strings文件和NSLocalized

2016-10-26  本文已影响57人  金风细细

场景

  1. 用户可以在手机设置->通用->语言和地区中,设置语言
  2. app希望通过用户设置的语言,app显示不同的文本

步骤:

1.新建一个.string文件

是在Source里面去找:


1__#$!@%!#__Pasted Graphic 1.jpg

2. 写法:

"ivykey" = "ivy中文";

3. 添加语言:

3-1

先选base,其他的后面再勾选都可以的

3-2

去查看工程目录
多了en.lproj和zh-Hans.lproj.它们分别存放需要国际化的strings文件,如果勾选了base,则Base.lproj里也会有strings文件

4. 代码使用:

  1. 如果.strings文件的名字是:Localizable.strings
    则用NSLocalizedString宏 就可以了
NSString * strLocalizable = NSLocalizedString(@"ivykey",        @"comment");
  1. 如果.strings文件的名字是自定义的,则要用这个宏, 第二个参数是名字
NSString * str  =    NSLocalizedStringFromTable(@"ivykey", @"ivy", @"comment");

这2个宏,很有意思:它们调用的是这个方法
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

• If key is nil and value is nil, returns an empty string.
• If key is nil and value is non-nil, returns value.
• If key is not found and value is nil or an empty string, returns key.
• If key is not found and value is non-nil and not empty, return value.
总之,就是谁不为nil且存在,就返回谁.

5. 添加其他语言

这个见我另一个文章的最后面

上一篇下一篇

猜你喜欢

热点阅读