appStore中的iPhone应用程序可用语言

时间:2009-12-13 11:46:51

标签: iphone localization app-store

您好我已将我的第一个应用程序提交到appStore http://itunes.apple.com/at/app/section-control/id343824642?mt=8

在“概述”中将“英语”显示为语言(德语中的Sprachen)。 在这种情况下,这是正确的。

我认为这是因为我的应用程序中没有本地化资源。 问题一: appstore如何检测到“语言/ Sprachen”?

它(当然)与本地化描述无关,因为在这种情况下我使用英语和德语。

TomTom http://itunes.apple.com/at/app/tomtom-westeuropa/id326075062?mt=8的例子显示了很多语言。

无论如何 - 主要问题。对于我的下一个应用程序,我计划“社区驱动的本地化”。这个想法是你在许多应用程序中找到的,你可以下载“语言文件”。

假设我的应用有可用语言列表。这来自Web服务,您(作为用户)可以加载您的优先语言(如果可用)。

因为事情是动态的,所以会发生以下情况 - 我用英语和德语(我的母语)发布应用程序。后来有人输入法语文本 - 所以从应用程序的那一刻起,也可以用法语。

我没有找到在应用程序简短描述(概述)中设置“Languages / Sprachen”元素的方法,还是我必须“重新提交”我的应用程序才能更改此内容?

最后并非最不重要 - 如果我是正确的并且应用程序中包含的资源检测到语言 - 是否足以在我的应用程序中提供一个空的(或只是持有一个字符串)“strings file”?

4 个答案:

答案 0 :(得分:17)

我利用技术支持事件直接向Apple提出这个问题。这是答案:

“应用程序支持的语言列表,如您发送的iTunes商店屏幕截图所示,将通过检查提交的应用程序包自动确定。通常,这来自捆绑包中的.lproj文件夹,作为进程(和iOS)使用它来确定应用程序可以支持哪些语言。但是,也可以在应用程序中提供自己的本地化支持系统,而不使用.lproj文件夹(尽管这通常要多得多) - 在这种情况下,支持的语言列表在应用程序的plist文件中通过CFBundleLocalizations键指定。有关详细信息,请参阅以下文档(以及文档中链接的指南):

http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html%23//apple_ref/doc/uid/TP40009249-109552-TPXREF111

答案 1 :(得分:3)

这样做我很失落。我在内部本地化我的Unity游戏,而不是使用 .lproj .xliff 。杰里米的回答为此提供了一些启示。我打开了Info.plist进行编辑,但Xcode正在自动将 CFBundleLocalizations 键转换为关键字" 本地化" (现在有道理,但正如他在2010年回答的那样,我想知道xcode是否在玩弄伎俩哈哈)

本地化键是一个数组,其字符串为项目0:"英语" 所以我添加了新的字符串"西班牙语"和#34;巴西葡萄牙语"。

当我打字时,xcode提供了一些我不需要的中文和其他语言选项,这引发了更多疑虑。 所以我打开了info.plist文本:

<key>CFBundleLocalizations</key>
    <array>
        <string>en</string>
<string>Spanish</string>
<string>Brazilian Portuguese</string>
    </array>

看起来不对,呃?经过一项研究,我发现我必须添加ISO 639-1(有一些问题):

<key>CFBundleLocalizations</key>
    <array>
        <string>en</string>
        <string>es</string>
        <string>pt</string>
    </array>

问题是,ISO 639-1中的巴西葡萄牙语应该是:pt-BR,但如下所示:https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html

  

&#34;脚本或方言的语言ID使用子标签,如pt-PT中所示   其中pt是葡萄牙语的代码,PT是葡萄牙的代码。   例如,使用pt作为葡萄牙语的语言ID   巴西和pt-PT作为葡萄牙语的语言ID,因为它用于   葡萄牙&#34;

这对我有用!

答案 2 :(得分:2)

这是你需要做的:

这就是.app文件夹的样子:

  

+ MyApp.app

     

+ en.lproj

     

+ de.lproj

     

+ nl.lproj

     

等...

在lproj文件夹中,您应该放置一个Localizable.strings文件。

在此Localizable.strings文件中,您可以将语言更改为:(EN-NL)

  

“关于”=“结束”

     

“ErrorSupport”=“Kon niet de ondersteuning contacteren。”

所以,像"About"这样的第一行不会给出英文,只会给出函数。

我不完全确定如何在您的应用中设置它,我不是一个非常好的应用程序编码器。 您应该查看Apple的帮助文档,或者向其他开发人员询问。

对于语言的下载,我会说,你建立一个webView,并将其指向你的下载页面,然后该应用程序会自动将其作为语言文件夹进行重新定位,并将其安装到MyApp.app/<language>.lproj。向其他开发人员询问此下载内容,或查看Apple的帮助文档。 (我不确定他们是否在那里提到它)

答案 3 :(得分:1)

我也有同样的问题,我的应用程序只支持一种语言,但在Appstore中显示我的应用程序支持一堆语言。我很困惑,后来读完这篇文章后,我意识到那些是从我正在使用的pod中自动传来的。然后我找到了这个插件(cocoapods-prune-localizations),这将有助于删除不需要的lproj。希望它有所帮助,但我觉得应该有一些方法直接在Appstore中编辑信息,但是我知道我无法找到该选项。如果存在这样的选择,请告诉我。

cocoapods-prune-localizations