I am trying to publish an app that is currently only configured for English. When I upload my app to the Play store, it says localization for 'Default + 49 languages'? How do I disable all but English?
3 回答
我刚刚注意到同样的问题,经过一番调查后找到了解释。除了已经存在的关于后果的答案之外,我还想分享这个:
只要您的应用包含支持其他语言的库(例如 Google Play 服务),您创建的 apk 就会被标记为支持所有这些本地化!
你可以顺便检查一个apk的属性,即使没有上传到Google Play Store。只需从Android Apk中最新的build-tools 文件夹运行以下命令。对我来说,目前是 cd ~ANDROID_HOME/build-tools/19.0.1
./aapt d badging <apk>
正如之前建议的那样,提供应用描述的语言最为重要,因为这是用户实际看到的。此外,可以在此描述中包含实际支持的语言列表。
如果您真的想摆脱其他语言,则需要从所有库中删除特定于语言的 res 文件夹。如果是库的本地副本,这很容易。我想使用 gradle 和 maven 也应该是可能的,但我认为目前不值得这样做。
正如其他人指出的那样,问题在于,如果您包含一个支持其他语言的库,所有这些翻译都会被拉入您的应用程序,然后商店会假定您支持这些语言。
要阻止构建工具引入不受支持的语言,您可以在“aapt”打包工具上设置过滤器,以便它忽略特定的文件/目录。
过滤器的格式可以在 sdk 的主要 ant 'build.xml' 文件中找到。(搜索aapt.ignore.assets
)
默认排除列表是:
!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~
我建议您保留此列表并将任何额外的过滤器附加到它的末尾。
例如,如果您想排除es-US
(存储在带有扩展名的目录中-es-rUS
),您可以将排除列表更改为:
!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:<dir>*-es-rUS
这将排除所有以结尾的目录-es-rUS
(请注意,过滤器不区分大小写,因此<dir>*-eS-RuS
也可以)
要为命令行执行此操作:
aapt.exe <All of your normal commands for packaging> --ignore-assets <exclude-list>
对于Ant/Eclipse构建,将以下内容添加到您的项目ant.properties
文件中:
aapt.ignore.assets=<exclude-list>
当您发布您的应用程序时,如果您只用英文编写它,它将仅以英文发布。
如果您想将您的应用程序限制在特定国家/地区,您可以这样做:在开发者控制台上,您有一个“定价和分发”选项卡。你可以选择那里的国家。它的外观如下: