使用&User Defined Runtime Attributes&在情节提要内本地化视图

人气:297 发布:2022-10-16 标签: iphone localization ios interface-builder uistoryboard

问题描述

我当前有一个semi-automated way来本地化我的视图。但是,今天我在IB中发现了一个有趣的部分,它似乎建议我可以从Interface Builder中本地化我的视图。

因此,在IB中,您可以在身份检查器中定义选定对象的运行时属性。因此,对于我的UILabel,我可以将标签的text键盘路径设置为字符串Hello World

但是,当我在Type = Localized String中选择Type = Localized String,然后选择Localized.strings中的键名时,我得到的不是翻译后的字符串,而是我在IB中输入的值(也就是键)。

我不明白,这个机制应该是怎么工作的。我希望喜欢能够这样翻译我的观点,有什么想法吗?

推荐答案

"用户定义的运行时属性"文档很少。我从某本书上读到的记忆是,UDRA最初是为MacOSX编程实现的,所以"本地化字符串"类型可能是iOS目前不完全支持的特性。

有趣的是,他翻译的是故事板预览(Xcode 4.5.1)中的字符串,但后来在编译的iOS应用程序中,他只是注入了密钥字符串。

我现在正在考虑的一个解决方案是创建一个小助手类,即在viewDidLoad上检查视图的标题/文本字符串中是否有像"key"这样的关键字,例如"XYControllerTitleKey",然后将其作为NSLocalizedString-method。

更新: 在此期间,似乎有一种使用UDRA的方法:

Storyboard/XIB and localization best practice

和作为结果的教程(link)

176