20160808
在代码中的文字的国际化
http://www.cnblogs.com/every2003/archive/2012/03/20/2407253.html
如:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *testFormat = NSLocalizedString(@"testFormat", @"Try to Test the Localized format-------------->");
//当找不到相应的语言strings或value时会直接返回key。
}
1. 先在终端cd 到项目的目录:
如:
userdeMacBook-Pro:~ user$ cd /Users/user/Documents/XCode_workspace/InternationalMountains/InternationalMountains
就是:en.lproj 等等所在的目录.
2.再执行
genstrings -o /Users/user/Downloads/zh-Hant.lproj *.m (解释:/Users/user/Downloads/zh-Hant.lproj 为在其他地方创建的文件夹,也可以是其他文件夹,如TheElements,但必须先创建好,否则会出现 genstrings: couldn't connect to output directory /Users/user/Downloads/Localized 错误,这样导出来后再复制去旧的,项目中的真正的要国际化的文件中)
en.lproj为你需要国际化的文件,如想要代码在 繁体中文 中国际化,便是 zh-Hant.lproj
3. 便可以在 Localizable.strings(English) 中查看到新的国际化了的代码,
在下面的图片中可以看出国际化后的代码是以 Finder 中的路径做实际作用的,不是以 Xcode 的目录结构
(注意)
-o 选项指定了生成字符串文件的存放目录,默认情况下文件名是 Localizable.strings。需要注意的是,genstrings 默认会覆盖已存在的同名字符串文件。(-a 选项可以让 genstrings 将生成的条目追加到已存在同名文件的末尾,而不会覆盖原文件。发现 -a 没效果)
可以看到用 -o 的文件:
对比没做国际化的 繁体中文的代码:
更新Storyboard的多国语言strings文件
http://sherlockyao.com/blog/2014/09/08/localize-storyboard/
首先你先备份一份你想要更新的语言文件,然后在右边的文件窗口把对应的那个勾选项取消掉,接着再选上,这个时候XCode就会重新生成一份新的文件。我们要做的就是把老文件里已经写好的对应关系复制到新文件上,再把新的元素的文字补上就可以了。
1.新建的 Settings.bundle 本地化,需要重启系统的 Setting 才能看到效果,要不然会显示空白.
RootViewController.h ->
1.RootViewController(继承自UITableViewController)(在 plist 中读取数据)
20160808
图片国际化:http://blog.csdn.net/hitwhylz/article/details/24494375(在Finder中会出现对应的语言的 . lproj 文件,发,建议在工程快完成后才做国际化,避免经常修改)
问题or Bug
1.现在Images.xcassets中的 AppIcon和LaunchImage不能国际化,Launch Screen.storyboard也不能国际化??? !!!
2.发现 在StoryBoard中, 如果又要适配屏幕的 大小,又要适配屏幕的国际化,屏幕的国际化会没有效果!!!