Xcode7下的iOS本地化

字符串的本地化处理

  • 1.给项目添加多个语言


    Xcode7下的iOS本地化_第1张图片
  • 2.新建strings文件


    Xcode7下的iOS本地化_第2张图片
  • 3.让strings文件支持本地化


    Xcode7下的iOS本地化_第3张图片

    给字符串支持的语言打钩,看到旁边的Words.string多出了几个带语言名称的文件,可以在这些文件中编写需要本地化的字符串


    Xcode7下的iOS本地化_第4张图片
    Snip20160420_13.png
  • 4.编写strings文件
    可以自己添加想要本地化的字符串
    在Words.strings(Base)中填写:

"Cancel" = "Cancel";

在Words.strings(English)中填写:

"Cancel" = "Cancel";

在Words.strings(Chinese(Simplified))中填写:

"Cancel" = "取消";
  • 5.代码中做本地化标识
UILabel *label = [[UILabel alloc] init];
    label.frame = CGRectMake(100, 100, 100, 30);
    label.backgroundColor = [UIColor redColor];
    label.text = [[NSBundle mainBundle] localizedStringForKey:@"Cancel" value:@"Cancel" table:@"Words"];

需要注意的是,在这个过程中,苹果已经给我们定义了几个宏方便本地化处理,上面的最后一行代码也可以写作

label.text = NSLocalizedStringFromTable(@"Cancel", @"Words", nil);

如果我们的stings文件名称为Localizable.strings,这代码也可以简写为

label.text = NSLocalizedString(@"Cancel", nil);

经过以上处理,就可以在不同的语言环境下显示不同的语言的字符串啦!

storyboard中的本地化

我们还可以对storyboard和xib进行本地化
1.给项目增加多种语言支持
2.让storyboard支持本地化


Xcode7下的iOS本地化_第5张图片

3.可以看到storyboard中的每种语言都生成了一个strings文件,在这个文件中对我们的控件进行本地化处理


Xcode7下的iOS本地化_第6张图片

4.或者我们选择

每种语言都会生成一个storyboard,可以对每种语言的storyboard进行配置.

info.plist的本地化

Info.plist的本地化文件是InfoPlist.strings
例如 :在InfoPlist.strings(Base)中填写:

"CFBundleName" = "Localization Test";

在InfoPlist.strings(English)中填写:

"CFBundleName" = "Localization Test";

在InfoPlist.strings(Chinese(Simplified))中填写:

"CFBundleName" = "本地化测试";

这样,项目的名称也可以进行本地化了.

你可能感兴趣的:(Xcode7下的iOS本地化)