一.Storyboard本地化
1.首先在Project视图下,点击Localizations部分的那个加号,选择你要添加的语言
2.然后会弹出来一个窗口,把红框部分的改成图中所选的选项,如果选择的是Localizable Strings,需要把后缀名改成.StoryBoard,后面会提到修改的方法
3.点击finish后,可以看到Storyboard旁边多了个可以展开的三角,点击展开,就能发现多了一个Storyboard文件出来,这个就是需要添加本地化的Storyboard,在这个Storyboard中把像label或者button上的文字修改成需要的语言就完成了storyboard本地化的工作
4.补充一下如果第二步选择的是Localizable Strings的修改办法
选中创建的Strings文件(还是在Storyboard展开后的地方),然后在右边的file inspector窗口找到Localization部分,找到新添加的Localizable Stringswen文件,点击它然后将类型更改为Interface Builder Cocoa Touch Storyboard
二.字符串的本地化
字符串的本地化要使用到NSLocalizedString这个宏,作用是寻找当前系统语言对应的Localizable.strings文件中的某个key的值。
NSLocalizedString(@"somekey",nil);
第一个参数是key的名称,第二个就是key对应的值,就是需要本地化的字符串,第二个参数在使用这个宏的时候直接设为nil,在后面用genstrings命令生成Localizable Strings后再填上去
你需要把你项目中所有需要加入本地化字符串的地方都加上NSLocalizeString这个宏,这样在使用genstrings命令的时候才能生成包含对应key的Localizable Strings文件。
然后进入终端,cd到项目的目录,输入命令:genstrings xxx.m,xxx.m就是你添加了NSLocalizedString()的文件,注意genstrings命令后面可以跟多个文件的名字,将所有修改了得.m文件名跟到,回车后就能在项目文件夹找到一个Localizable.string文件,把他拖到项目中。
看上去是长这样的
等号左边就是你之前用NSLocalizedString填进去的key,右边就是这个key对应的值
然后在右边的file inspector点击localize,在弹出的窗口选择语言
然后会看到刚才拖进项目的Localizable.strings也能展开了,修改新添加的Localizable.strings,把key对应的值改成你想要得,就完成了字符串的本地化工作,切换系统语言后,项目内就能显示对应的文字了