使用 Xcode 5 禁用英语本地化

Posted

技术标签:

【中文标题】使用 Xcode 5 禁用英语本地化【英文标题】:Disable English localization with Xcode 5 【发布时间】:2014-01-24 08:36:56 【问题描述】:

我搜索了相关问题并尝试了许多建议的方法,但似乎没有一个有效。

我有一个仅限日语的应用程序,当在英文设备上运行时,它会获取 UI 项目,例如翻译后退按钮(“后退”)。

为了实现这一点,我有:

从我的项目的“Localizations”中删除了英文,并选择删除本地化文件(是单个 *.strings 文件)。

将我的 Info.plist 中的 CFBundleDevelopmentRegionjp_JP 更改为 jp,因为我读到它应该与 *.lproj 文件夹的名称匹配。

已清理、删除、关闭 Xcode 等。但默认 UI 项目仍在翻译成英文。

我现在在 Xcode 5 中也遇到了一些奇怪的行为:

选中“使用基本国际化”检查簿会显示一个空的“选择文件和参考语言以创建基本本地化”。选择 Cancel 或 Finish 没有任何效果,也没有任何反应。

点击“+”按钮添加Other >“Base(Base)”本地化什么都不做。

我的问题似乎是我的 Base 本地化仍然是英语,但我找不到改变它的方法。有什么想法吗?

【问题讨论】:

【参考方案1】:

我发现要真正删除英语支持,我必须将CFBundleDevelopmentRegion 正确设置为一个完全有效的区域(例如ja_JP),而不仅仅是一种语言(只是ja 仍然会导致英语出现)。

当你有一个有效的区域时,Xcode 会在 Plist 编辑器中显示你的国家名称而不是原始值。


似乎有些模块,例如MFMailComposeViewController,无论如何都会本地化为英语(在 ios 6 和 7 上测试)。

【讨论】:

【参考方案2】:

我遇到了同样的问题。以下是我为克服它们而采取的步骤。

    本地化您的故事板文件。
      在 Xcode 中选择您的 Storyboard 文件。 在“文件检查器”的“本地化”子标题下,按“本地化...”按钮。 会出现一个对话框,上面写着“您要本地化此文件吗?该文件将被移动到以下语言的 lproj 文件夹中。”它列出了一种语言。对我来说,它是“英语”,我选择了它。对你来说,我怀疑它会是“日语”。 按“本地化”按钮。
    如果它警告您情节提要文件已在项目之外更改,请选择“仍然保存”。如果你不这样做,它会从你的项目中删除故事板。这发生在我的源代码控制项目中,但没有发生在新的空项目中。 返回您的项目并选中“使用基本国际化”复选框。您的故事板应显示在“选择文件和参考语言以创建基本本地化”表中。

如果您返回故事板,您将看到“Base”作为选中的本地化。我让我的语言(英语)显示为一个选项。当我检查它时,创建了一个 storyboard.strings 文件。因为我的基础已经是我喜欢的语言,所以我不需要字符串文件,所以我删除了它。我假设如果我有另一种语言,我可以选择它并获取该语言的 storyboard.strings 文件。

【讨论】:

以上是关于使用 Xcode 5 禁用英语本地化的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5 - 故事板本地化

在 xcode 5 中本地化 Localizable.string 会破坏整个文件

Xcode 5,xib 本地化导致手机黑屏

如何通过 Fastlane 脚本添加 Xcode 本地化语言

Xcode 5/iOS 7 - 本地化在模拟器中不起作用

升级 iOs 9 + Xcode 7 破坏了 iOS 本地化