iOS

【iOS】App Store介绍页中显示的语言列表如何设置

2019-07-11  本文已影响0人  谦言忘语

前言

不知道大家有没有发现,我们平常在App Store下应用的时候,有一些App,明明是一个中文的App,不管是App名字、介绍图、描述等等都是中文的,而且下载之后打开一看,App里面也只支持中文。
但是在商店介绍页的【语言】列表,显示该App支持的语言是却是【英文】。是不是感觉很违和,甚至很Low?
比如下面的这个游戏(这货排在了免费游戏排行榜第二,权游IP的力量很强大啊)就是这样。

【语言】一栏显示为英文

再看下微信就比较正常,基本上支持啥语言就有啥语言。


微信能够显示正确的语言列表

苹果是如何判断App支持的语言列表的?

现在的问题是,苹果是根据什么来知道该App支持什么语言,进而在这里显示出来的?
相信很多人都会不假思索地说在苹果开发者后台。
但是,我翻了好几圈没找到对应的设置……
这个问题困扰了我很久,直到我在Stack Overflow上面看到了这个答案
https://stackoverflow.com/questions/1887590/what-controls-the-list-of-supported-languages-of-an-iphone-app-in-itunes/4146668#4146668
摘抄答案如下:

I used a technical support incident to ask this question of Apple directly. Here is the answer:
"The list of languages supported by the app, as shown in the iTunes store screenshot you sent, is automatically determined by inspecting the submitted application bundle. Typically, this comes from the .lproj folders in a bundle, as the process (and iOS) use this to determine what languages the application can support. However, it is also possible to provide your own localization support system in the application without using .lproj folders (although this is typically much more work) -- in this scenario, the list of supported languages is specified in the application's plist file, via the CFBundleLocalizations key. See the following docs (and the guide linked to in the docs) for more info on this:
http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html%23//apple_ref/doc/uid/TP40009249-109552-TPXREF111 "

也就是说,这个显示是由ipa包来决定的。首先苹果会从上传到开发者后台的ipa包里面找.lproj文件夹,如果找到了,就根据这些文件夹支持的语言来确定。如果没有这些文件夹,那么就去找Info.plist文件的CFBundleLocalizations这个key的设置。

对各种情况进行测试

上面的哥们的答案是苹果回复的,算是官方答案。但是我在实际上测试的时候发现,情况并没有这么简单。
除了上面说的.lproj文件和CFBundleLocalizations之外,还有两个东西是需要考虑的。
一个是比较特殊的.lproj文件,这个文件的名字是base.lproj,本身并不属于任何的一种语言(为什么要说这个,因为在我们使用默认的模板创建一个App的时候,系统默认就是有这个文件的,不然你创建一个App,然后打包看下ipa包里面的内容?)。
另外一个就是Info.plist里面的CFBundleDevelopmentRegion这个key,这个创建App的时候系统会默认设置的。
以下是我对这几个参数做测试的一些记录。

这里有几点可以了解下:

结论

从我的测试结果可以得出来以下几个结论(结合我之前的一些经验):

可选方案

所以,我们在实际使用中就可以利用这些结论进行设置了

语言标识

知道了如何设置,还剩下一个问题,CFBundleDevelopmentRegion和CFBundleLocalizations有哪些值可以供我们设置呢?

参考

stackoverflow关于AppStore语言显示列表显示的答案
苹果文档里面关于CFBundleDevelopmentRegion的介绍
苹果文档关于CFBundleLocalizations的介绍
苹果关于语言代号的介绍
Xcode8.3 修改默认开发语言(Development Language)

上一篇下一篇

猜你喜欢

热点阅读