AndroidStudio:语言xml文件是否编译成apk?

时间:2016-05-02 14:55:26

标签: android xml compilation multilingual

根据developer.android.com,为了支持多种语言,我们应该为每种语言创建唯一的xml文件。他们的例子:

MyProject/
res/
   values/
       strings.xml
   values-es/
       strings.xml
   values-fr/
       strings.xml

假设单个语言的xml文档可能有几百个字符串条目,将这些文件捆绑到应用程序中的想法似乎不必要地沉重。

编译成.apk的语言xml文件也是如此?

或Android是否有另一个系统用于提供所需的语言内容(我是Android生态圈的新手,所以我还不知道Android操作系统如何与其上的应用程序进行交互)

通常对于网站,语言内容存储在数据库中,并根据需要进行ajax检索。

2 个答案:

答案 0 :(得分:1)

默认情况下,是的。您拥有的所有xml文件都包含在APK中。当用户将默认语言从“英语”更改为“法语”时,语言将在您的应用程序中更改,而无需重新下载和/或重新安装。

然而,可以发布多个仅包含某些捆绑包的APK,并通过Google Play商店将其发布到不同的受众特征。这通常适用于可以占用大量空间的Drawables,这些空间在下载它们的手机上永远不会被使用。因此,例如,使用XXHDPI分辨率资源下载具有低分辨率屏幕的应用程序是没有意义的。出于上述原因,语言通常不是一个好主意。

答案 1 :(得分:1)

XML文件捆绑在APK中。所以是的,所有语言文件都将随应用程序一起安装。请参阅:https://en.wikipedia.org/wiki/Android_application_package(XML文件位于/res目录中)。

我不知道在应用程序中翻译文本的另一种方法,除了提供包含已翻译字符串的XML文件之外,正如您所见,这是按文档执行的方式。所以不,似乎没有其他办法。

但是,我有一个XML文件,其中包含超过2400个单词,并且该文件只有大约90Kb,并不是那么大。即使你支持所有16种(或18种)“主要”语言,它仍然只有1.62 Mb。

就我个人而言,我认为支付国际支持的代价很小。更不用说那是XML文本文件的大小。编译后的XML可能更小。

如果该大小仍然存在问题,您可以在发布时提供一些语言,并可以选择下载更多语言,让用户指定他需要的内容。

您还可以发布separate APKs并将语言基于用户可能从中下载的位置。