xib 文件的 iPhone 本地化
我刚刚熟悉 xib 文件的本地化,想知道是否有一种方法可以通过直接引用 plist 来本地化 xib 中的字符串...
欣赏一些想法..
I am just getting familiar with the localization of xib files and was wondering if there's a way of localizing the strings within the xib by refering to the plists directly...
Appreciate some thoughts..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您不想直接本地化 .xib 文件,则可以将它们包含的文本提取到 .strings 文件中,并且在翻译 .strings 文件后,将它们注入回 .xib 文件中以生成本地化版本。这些提取/注入操作是使用 ibtool 实用程序完成的。
我在此网站上找到了有关如何执行此操作的详细说明。
If you don't want to localize the .xib files directly, you can extract the text they contain into .strings files and, once the .strings files are translated, inject them back into your .xib file to produce localized versions. These extract/inject operations are done using the
ibtool
utility.I found detailed instructions on how to do this on this website.
我的方法有点偏离@Clafou 的答案,但它可能更简单一些。我只需在 .h 控制器中为按钮和标签字符串(在 xib 上创建)设置 IBOutlet。
然后转到我的 .m 控制器,并使用 NSLocalizedStrings 为这些标签和按钮指定一个值。
当然,您需要在 Localized.strings 中定义一个值
My method stems a bit off @Clafou answer, however it may be a bit more straightforward. I simply set IBOutlets for my button and label strings (created on xib) within my .h controller.
Then went to my .m controller and gave these labels and buttons a value with NSLocalizableStrings.
And of course you will need a value defined in Localizable.strings
Apple 建议的方法是将字符串导出到
.lproj
包中的.strings
文件中,该文件将由 Cocoa 的本地化框架切换。Xcode 可以从 xib 生成
.strings
文件,这使得本地化变得非常简单。右键单击 Xcode 中的 xib 文件,然后选择
获取信息
。选择常规
选项卡,然后单击底部的使文件可本地化
。然后,您可以通过单击同一选项卡上的添加本地化
来添加本地化。我推荐本教程 了解分步信息(以及漂亮的图片)。
The Apple suggested way to do this is to exprot the strings into
.strings
files in.lproj
bundles, that will be switched out by Cocoa's localization framework.Xcode can generate the
.strings
files from the xib, which make localization pretty straight forward.Right click on the xib file in Xcode, and choose
Get Info
. Select theGeneral
tab and on the bottom clickMake File Localizable
. Then you will be able to add localizations by clickingAdd Localization
on that same tab.I would recommend this tutorial for step-by-step information (and pretty pictures).
我认为直接本地化 xibs 不是一个好的选择。我正在使用 https://github.com/steipete/Aspects 来挂钩 UILabel 的 awakeFromNib 方法和在那里本地化文本。例子:
I think localize xibs directly is not an good option. I'm using https://github.com/steipete/Aspects to hook the awakeFromNib method of UILabel and localize text there. Example: