(本地化).strings文件与genstrings tool

来源:互联网 发布:python字符串转换json 编辑:程序博客网 时间:2024/06/03 06:02
Marcus  18:49:09

官方文档已经有了描述,我这里为自己做个标示,免得以后做些效率低的步骤

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版本

假设我们要写一个小demo,涉及1个非英文语言需要.strings文件,那用 ‘Creating Strings Files Manually’还不算工作量大,

但如果我们要用到的本地化字符串特别多,不论你是一个非英文语言还是多个,如果你用 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)

      结果:

              没试,哈哈
0 0
原创粉丝点击