单一语言的 iOS 应用本地化

Posted

技术标签:

【中文标题】单一语言的 iOS 应用本地化【英文标题】:iOS app localization for a single Language 【发布时间】:2012-04-23 09:53:33 【问题描述】:

我查看了与该论点相关的堆栈溢出的所有答案,但我找不到对我的情况有用的东西,所以我尝试创建一个更具体的问题:

我必须创建一个以仅意大利语本地化的应用程序,我的步骤如下:

在 iTunes 连接中将 Italian 设置为默认语言 在信息列表中将Native development region 设置为意大利(不确定是否有用...) 从项目本地化中删除了英语 在本地化项目中添加了意大利语(截图如下)

在我看来,这将是为单一语言设置应用程序的正确方法(与默认英语不同)。

但是查看 Target 构建阶段,我发现 infoPlist.string 不再可用:

这非常奇怪,因为我可以毫无错误地编译我的项目......

最后,此过程将导致 iTunes 应用程序区域中的“语言”属性填充为“意大利语”而不是“英语”。

所以,我想知道我的步骤是否正确,或者我是否犯了一些错误。你觉得这个程序怎么样?

【问题讨论】:

【参考方案1】:

如果您正在开发一个只显示意大利语的单语言应用程序,那么您根本不需要本地化。只需用意大利语输入所有字符串!使用localizable.strings 文件并调用NSLocalizedString 而不是在代码中使用硬编码字符串仍然是一种很好的做法,这样如果有一天您决定本地化您的应用程序,您就不必更改代码。但是现在您可以删除 XCode 中 Localizations 下的所有内容,只需确保 info.plist 文件中的本地区域 (CFBundleDevelopmentRegion) 设置为意大利。如果您围绕项目的目标设置进行设置,您可能会在 XCode 中找到一个设置。

【讨论】:

所以 CFBundleDevelopmentRegion 连接到 iTunes 中出现的语言?那么 CFBundleLocalizations 呢?在这一点上,我真的对这两个领域感到困惑。 当您在 iTunesConnect 中创建新应用程序时,您需要选择的字段之一是默认语言。这可能最终成为 iTunes 中的语言,我希望您的 CFBundleDevelopmentRegion 设置应该匹配(不过我不确定——我只将默认语言保留为英语)。至于 CFBundleLocalizations,它是您的应用具有本地化资源的语言列表。当您单击语言下的 + 或 - 时,XCode 会自动更新它。如果你没有本地化,我认为 CFBundleLocalizations 可以完全省略。 即使我用意大利语填写了语言字段,iTunes 仍然显示“英语”:( 我尝试使用我在问题中显示的步骤提交...商店我在这篇文章中回信。

以上是关于单一语言的 iOS 应用本地化的主要内容,如果未能解决你的问题,请参考以下文章

实现iOS语言本地化/国际化

是否有在 iOS 应用程序中设置后备本地化语言的官方方法?

已删除一种本地化语言的iOS应用程序更新

本地化 IOS 默认语言

iOS应用程序本地化

ios多种语言的本地化思路