Android限制本地化

时间:2013-03-20 18:51:07

标签: android localization

我正在尝试发布目前仅配置为英语的应用。当我将我的应用程序上传到Play商店时,它会说“默认+ 49种语言”的本地化?如何禁用除英语以外的所有内容?

3 个答案:

答案 0 :(得分:5)

我刚刚注意到同样的问题,经过一些调查后发现了解释。我想除了已经存在的关于后果的答案之外我还要分享这个:

只要您的应用包含支持其他语言的(例如Google Play服务),您创建的apk就会被标记为支持所有这些本地化!

即使不将其上传到Google Play商店,您也可以查看apk的属性。只需在Android Apk中的最新 build-tools文件夹中运行以下内容即可。对我来说,目前这是cd~ANDROID_HOME / build-tools / 19.0.1

./aapt d badging <apk>

如前所述,最重要的是提供应用说明的语言,因为这是用户实际看到的内容。此外,还可以在此说明中包含实际支持的语言列表。

如果您真的想要删除其他语言,则需要从所有库中删除特定于语言的res文件夹。如果是库的本地副本,这很容易。我想使用gradle和maven也应该是可能的,但我认为目前不值得做。

答案 1 :(得分:1)

当您发布应用时,如果您仅以英文撰写,则仅以英文发布。

如果您想将应用限制在特定国家/地区,可以执行以下操作:在开发者控制台上,您有一个“定价和分发”标签。你可以选择那里的国家。在这里看起来如何:

enter image description here

答案 2 :(得分:0)

正如其他人所指出的那样,问题在于,如果你包含一个支持其他语言的库,所有这些翻译都会被拉入你的应用程序,然后商店会假定你支持这些语言。

要阻止构建工具提取不受支持的语言,您可以在&#39; aapt&#39;上设置过滤器。打包工具,以便忽略特定的文件/目录。

可以在main ant 'build.xml' file in the sdk中找到过滤器的格式。 (搜索aapt.ignore.assets


默认排除列表是:

!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~

我建议您保留此列表,并在其末尾添加任何额外的过滤器。

e.g。如果您要排除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>