dhr*_*hrm 56 objective-c nslocalizedstring ios uistoryboard
我有一个带有一些观点的iPhone故事板.例如,命名导航项目标题News
,应该为其他语言翻译.
当我向故事板添加新的本地化时,它创建了我当前新语言故事板的副本.在这里我可以更改导航项的标题,但对我来说它似乎没有用.如果我的故事板包含100个视图并且我需要支持10种语言怎么办?如果我需要在原始故事板中更改某些内容,我必须对所有语言进行相同的更改.这看起来很奇怪.在哪些情况下这可能有用?
我该怎么做?我应该只有英文故事板并使用ViewController手动翻译每个元素NSLocalizedString
吗?
Col*_*lin 108
在iOS 6中,"信息"选项卡下的"项目"设置显示"使用基础国际化".如果选中该框,则会将所有字符串从Storyboard中拉出并转换为国际化的.strings文件.
这样您就不必拥有Storyboard的多个副本.
fre*_*tag 39
从iOS 6开始,您可以决定使用Base Internationalization:所有storyboard和xib/nib文件只在名为Base.lproj的文件夹中存在一次.GUI元素的本地化被放置在每个本地化目录中的相关.strings文件中.
例如,"MainStoryboard.storyboard"将放在Base.lproj中.名为"MainStoryboard.strings"的关联文件放在en.lproj中,无论您应用何种本地化.
这真的很帅,特别是与布局限制相结合!
小智 10
您可以通过更改代码中UI元素的标题来进行本地化:
self.title = NSLocalizedString("News", nil);
Run Code Online (Sandbox Code Playgroud)
例如,如果您想用荷兰语本地化您的应用程序,您可以使用Dutch.lproj/Localizable.strings
:
"News" = "Nieuws";
Run Code Online (Sandbox Code Playgroud)
然后,您可以为每个UI元素和语言执行此操作.
小智 6
您可能会发现此视频教程非常有用:
http://www.youtube.com/watch?v=cF1Rf02QvZQ
方法是为每种语言设置一个单独的故事板进行本地化,然后让脚本负责传播您在原始故事板中为所有其他语言所做的更改.
归档时间: |
|
查看次数: |
51795 次 |
最近记录: |