官方文档已经有了描述,我这里为自己做个标示,免得以后做些效率低的步骤
Environment:Xcode4.6.1
参考:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html#//apple_ref/doc/uid/10000051i-CH6
http://my.oschina.net/junfrost/blog/138891 ios程序本地化
http://my.oschina.net/junfrost/blog/138683 ios程序本地化---nib版本
但如果我们要用到的本地化字符串特别多,不论你是一个非英文语言还是多个,如果你用 Creating Strings Files Manually你要以下几步:
1. 先在不同 '语言.lproj' 下创建*.strings文件。
2. 文件里写一堆 "KEY"="对应本地化的字符串"以及comment;
3. 在所有要用到本地化字符串的源代码处写NSLocalizedStringxxx(key,comment) ,这时要把.strings里的KEY粘贴到这里的key
反复copy-paste直到完成
这样其实效率很低
所以官方才特意提到 ‘ Using the genstrings Tool to Create Strings Files’
如果用这个genstrings Tools,我们可以
1. 用NSLocalizedStringxx()先完成source code,此时我们知道要用的Key.
2. 完成所有源码后再用genstrings Tools自动生成需要的第一个.strings文件。按照官方推荐,我们生成Localizable.strings,这样NSLocalizedString()默认就是找它。
3. 利用Xcode设置把这个.strings支持多语言
4. 再在多个.strings里改本地化值。
我实验了下命令 ' genstrings -o . *.m'
步骤:
1. 创建一个singleView Project,叫sv
2. 打开terminal,进入 sv/sv
3. 在defaultAppDelegate.m里的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
里添加NSLocalizedStringXXX()方法
当前文件夹里没有.strings文件
实验1:
用NSLocalizedString(key,comment)
结果:在本地自动产生了一个Localizable.strings文件,里面是2行
“key1” = “key1”;
"key2" = "key2" ;
实验2:
用NSLocalizedStringFromTable(key1,MyTablename1,comment1),NSLocalizedStringFromTable(key2,MyTablename2,comment2)
结果:自动产生了2个.strings的文件,对应每个NSLocalizedStringFromTable
实验3:
第1处用NSLocalizedStringFromTableInBundle(key1,MyTablenameA,nilBundleName,comment)
第2处用NSLocalizedStringFromTableInBundle(key2,MyTablenameB,nilBundleName,comment)
结果:
没试,哈哈