AndroidStudio:语言XML文件是否编译进APK包?

3
根据developer.android.com,为了支持多种语言,我们应该为每种语言创建独特的xml文件。以下是他们的示例:
MyProject/
res/
   values/
       strings.xml
   values-es/
       strings.xml
   values-fr/
       strings.xml

假设单个语言的xml文档可能有数百个字符串条目,将许多这样的条目捆绑到应用程序中似乎是不必要的沉重。那么语言xml文件是编译进.apk文件中的吗?或者安卓有另一种系统来传递所需的语言内容(我对安卓生态系统还不熟悉,所以还不知道安卓操作系统如何与其上的应用程序交互)。通常情况下,对于网站,语言内容存储在数据库中,并根据需要进行ajax检索。

Android没有另一种语言系统。 - Kristy Welsh
2个回答

1
默认情况下是这样的。所有XML文件都被打包到APK中。这样,当用户将默认语言从“英语”更改为“法语”时,您的应用程序中的语言也会随之更改,而无需重新下载或重新安装应用程序。
然而,有可能发布多个APK,只打包了某些捆绑包,并通过Google Play商店向不同的人群发布它们。这对于可占用很多空间但在下载它们的手机上永远不会使用的可绘制对象通常是有益的。例如,低分辨率屏幕下载具有XXHDPI分辨率资产的应用程序是没有意义的。由于上述原因,语言通常不是一个好主意。

1
XML文件打包到APK中。因此,是的,所有语言文件都将随应用程序一起安装。请参见:https://en.wikipedia.org/wiki/Android_application_package(XML文件位于/res目录中)。
我不知道在应用程序中翻译文本的另一种方法,除了提供包含翻译字符串的XML文件,正如您所看到的那样,这是根据文档进行操作的方法。因此,似乎没有其他方法。
但是,我有一个包含2400多个单词的XML文件,该文件仅约为90Kb,这并不大。即使您要支持所有16(或18)种“主要”语言,也仅有1.62 Mb。
个人而言,我认为这是为国际支持付出的小代价。更不用说XML文本文件的大小了。编译后的XML可能会更小。
如果该大小仍然是问题,您可以在发布时提供几种语言,并提供下载更多语言的选项,让用户指定需要哪些语言。
你也可以发布单独的APK文件,并基于用户下载的地区来确定语言。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接