使用 XIB(界面生成器)在 iOS 中进行本地化

Posted

技术标签:

【中文标题】使用 XIB(界面生成器)在 iOS 中进行本地化【英文标题】:Localization in iOS with XIB (Interface Builder) 【发布时间】:2014-08-29 17:30:38 【问题描述】:

我现在在 *** 上搜索了很多答案,但似乎找不到合适的答案。

所以,我正在使用 XCode 本地化一个应用程序。一切正常,我已经本地化了故事板和一切。最后需要本地化的部分是 XIB 文件中的标签和按钮。这里我有以下问题:

XCode 让我可以为每种语言创建本地化的 Xib 文件或创建字符串文件。这两种选择对我来说都很好,但似乎都没有。对类似问题的一个回答指出,这不适用于我的设计。如果是这样,为什么 XCode 首先让我选择这样做?而且,有什么好的和简单的解决方案呢?

我正在使用 Swift,不确定这是否真的重要,我只是想我提到它。

【问题讨论】:

“在我的设计中不起作用”是什么意思?如果您将 Xib 本地化并将其标签内容更改为指定的语言,如果您切换设备语言,您应该会看到该区域设置的 xib... 不是这样吗?此外,为了使字符串文件正常工作,您必须使用 NSLocalizedString() 方法 我也有同样的问题。这似乎是 ios 中的一个错误。 【参考方案1】:

最近版本的 Xcode 存在一个已知问题,即模拟器无法正确地将语言信息传递给应用程序,因此本地化似乎无法正常工作。如果这是您的问题,有两种解决方法:

    在设备上试用您的应用并确认切换语言会显示您的本地化字符串。 通过构建方案强制使用语言(产品 => 方案 => 编辑方案... => 运行 => 应用程序语言)

【讨论】:

以上是关于使用 XIB(界面生成器)在 iOS 中进行本地化的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地化的界面文件(XIB、Storyboard)作为 xcode 项目结构并进行国际化工作?

iOS 在 xib 中添加视图,但我仍然需要使用 addView

iOS:从 UIView 创建 XIB

应用程序中未加载 XIB 以进行本地化?

有 2 个 xib 时进行本地化

iOS中xib与storyboard原理,与Android界面布局的异同