IOS开发之国际化篇第三章:故事版文本国际化
Posted 长命百岁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS开发之国际化篇第三章:故事版文本国际化相关的知识,希望对你有一定的参考价值。
在ios的开发过程中,很多时候组件都是拖拉出来,直接在故事版(storyboard)上直接使用,而并没有做输出关联,或者有些UILabel只做显示,不会进行修改。所以在这种不会在代码中修改的情况下,就需要用到故事版的国际化,如图
在xcode4.5之前,如果做故事版的国际化,是要维护多个storyboard,但在xcode4.5之后,国际化storyboard做国际化,就变成了一个storyboard,多个语言配置文件如图
其中Main.storyboard为真实的故事版文件,Main.strings(Chinese(Simplified)) 和 Main.strings(English)文件为配置文件,根据支持不同的语言版本,会有不同的翻译
看看下面的例子:
Main.storyboard(Base):
这里我们需要把kiss的文字做国际化,这里是个UIButton,点击需要国际化的控件,然后选择右边的属性如图,可以看到空间的object ID,这个ID就等于组件的国际化Key,然后在相应的国际化文件当中,修改它的value即可
Main.strings(English)文件
Main.strings(Chinese(Simplified))文件
其中国际化文本文件中的object ID后跟的normalTitle为组件的属性名称
这里我在这里分享一下使用故事版国际化的弊端,如有补充可以在留言给我,互相学习,看看下面我说的弊端有没有改进的方法
- 故事版的国际化暂时没有同步机制,就是当你添加了一个新的组件如图,you按钮,相应的国际化文件,没有同步更新,需要手动再次查看object ID,然后进行添加
- 复用性不强,假如有多个相同值得时候,重复编写多遍,例如,我现在有两个按钮,按钮的文字都为浏览,但是我需要在国际化文件当中添加两个object ID
- 没有一份文档说明所有国际化话组件的属性名称,如果normalTitle,这种属性,没有可以提示到底这个属性的名称是什么
这给个建议,可以解决以上3个弊端问题
- 方法一:可以在整个程序基本完成后再做故事版的国际化
- 方法二:可以重新创建国际化文件
以上是关于IOS开发之国际化篇第三章:故事版文本国际化的主要内容,如果未能解决你的问题,请参考以下文章