6

我在 Mac App Store 的 OSX 项目中添加了几个本地化,提交了应用程序,但只有英语被识别(本地化:(“英语”),取自 ITC 二进制详细信息)。该产品在 iTunes 上发布,英语也是唯一显示的语言。

本地化字符串使用自定义系统处理,因此我们不需要像 English.lproj 这样的额外文件夹。为了本地化应用程序,我刚刚在项目的 Info.plist 中添加了所有语言标识符,在关键 CFBundleLocalizations 下,正如 Apple 在https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual建议的那样/BPInternational/Articles/ChoosingLocalizations.html

应用程序可以通过其信息属性列表 (Info.plist) 文件通知系统它支持其他本地化。要指定未包含在包的 .lproj 目录中的本地化,请将 CFBundleLocalizations 键添加到此文件。键的值是一个字符串数组,每个字符串都包含一个 ISO 语言指示符,如“语言和区域设置指定”中所述。</p>

plist 文件中指定本地化的部分是:

<key>CFBundleLocalizations</key>
<array>
    <string>en</string>
    <string>de</string>
    <string>fr</string>
    <string>it</string>
    <string>es</string>
    <string>pt</string>
    <string>nl</string>
    <string>se</string>
</array>

过去,我在 2 个 iOS 应用程序上使用了完全相同的方法,并且它们都运行良好。我不明白为什么这次我们会得到不同的行为。有什么想法吗?

谢谢。

4

2 回答 2

4

我终于明白了。

在我的问题中,我曾说过:

本地化字符串使用自定义系统处理,因此我们不需要像 English.lproj 这样的额外文件夹。

事实证明,这正是我解决这个问题的方法。我转到本地化下的项目>信息选项卡,并为应用程序支持的每种语言添加了一个条目。这为每个文件夹创建了一个文件夹,例如 es.lproj、fr.lproj 等。我提交了应用程序,在 iTunesConnect 中我看到本地化已被识别:

本地化:(“de”、“English”、“es”、“fr”、“it”、“nl”、“pt”、“sv”)

更新还没有出来,但我相信它会好的。

我仔细检查了我拥有的一个较旧的 iOS 应用程序,其中包含 3 个被正确识别的本地化。在该应用程序中,我没有使用上述过程创建任何额外的 .lproj 文件夹。我所做的只是在 CFBundleLocalizations 下的 plist 文件中包含本地化标识符。我不知道 iOS 和 OSX 应用程序在这方面是否存在本质上的不同。如果有人对此有任何意见,我很高兴知道为什么我在这里所做的实际上解决了这个问题。

于 2012-12-05T15:10:07.427 回答
1

我也遇到过,但由于 appirater 拥有所有 lproj 文件夹,我不明白为什么所有语言都没有出现在 iTunes 描述中。

事实证明,即使您在项目导航器中看到所有 lproj 文件夹,它们也不包含在您的包中,除非您在 Project -> Info 中添加您实际支持的语言。

于 2013-06-25T11:05:57.073 回答