如何在Xcode 6中实现iOS应用程序本地化

高分请教一下,如何在Xcode 6中实现iOS应用程序本地化
最新回答
快乐

2024-09-21 00:06:13

1、本地化xib文件
  在XCode中点击LocalizedDemo项目文件—PROJECT栏—LocalizedDemo—Info,可以看到Localization部分下面Language只有English一项。
  点击Localization下面的加号(+)按钮,会弹出一个本地化语言列表,选择需要增加的本地化语言,比如我选Chinese(zh-Hans),这个是简体中文,然后会弹出一个对话框,里面包括需要本地化为简体中文的资源,本工程中有ViewController.xib和InfoPlist.strings,点击Finish。
  工程中的ViewController.xib和InfoPlist.strings文件旁就有一个可以展开的三角形了,展开可以看到他们有两个子项:English和Chinese,English资源位于工程目录的en.lproj文件夹中,Chinese资源位于工程目录的zh-Hans.lproj文件夹中。
  这样就完成了xib的本地化。
  当iOS设备当前语言是English时,会调用ViewController.xib(English),
  当iOS设备当前语言是中文简体时,会调用ViewController.xib(Chinese)。
  其他语言xib的本地化类似。
  这种方式在于能够迅速的处理多语言本地化,可以根据不同语言的文本长度直接在xib中调整控件大小,但如果需要本地化的语言种类非常多,项目中xib文件也很多,那么项目中就充斥着太多太多的xib资源文件,感觉非常不好。

  2、本地化图像
  在步骤1中不同的本地化xib文件中的UIImageView选用不同的图片就能完成图片的本地化。

  3、本地化应用程序显示名称
  在步骤1中的不同本地化InfoPlist.strings文件中设置:
  CFBundleDisplayName = "APPNAME";
  "APPNAME"改成想要显示的本地化名字即可完成应用程序名称的本地化。

  4、本地化字符串
  假设在ViewController.xib有一个UILabel,将其文本赋值如下:
  label.text = NSLocalizedString(@”Hello, World”, @”The test label”);

  启动/Application/Utilities/Terminal.app,cd到LocalizedDemo目录,执行如下指令:
  genstrings ./LocalizedDemo/*.m
  命令执行完后将在项目工程目录下生成一个名为Localizable.strings的新文件,将其导入到工程中。
  在Xcode中选中Localizable.strings,选择XCode菜单—View—Utilities—Show Utilities,选择Localization,选择需要本地化的语言,即可完成。
  这样,在Localizable.strings可以看到一个能展开的三角形,展开后能看到所有已经本地化的语言。
  需要注意的是,还要对Localizable.strings对应的本地化语言做修改,因为它默认是会以某一个语言为模板复制的。比如,中文本地化默认如果以English为模板,英文本地化字符内容为:
  /* The test label */
  "Hello, World" = "Hello, World";
  那么中文本地化初始化值也是:
  /* The test label */
  "Hello, World" = "Hello, World";
  需要将中文等号后面的修改:
  /* The test label */
  "Hello, World" = "你好,世界";
  注意等号前面的字符串是本地化字符的key,不能随意修改,若修改了它,需要重新生成本地化字符串文件。