2016-05-02 33 views
3

根據developer.android.com,爲了支持多種語言,我們應該爲每種語言創建獨特的xml文件。他們的例子:AndroidStudio:是語言的XML文件編譯到apk中?

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

。假定一個單一的語言XML文檔可以有幾百字符串項,即捆綁許多這些到應用程序似乎不必要的沉重思考。

所以被編譯成.apk文件語言XML文件?

或根本的Android有提供所需的語言內容另一個系統(我是新來了Android生態圈,所以我還不知道怎麼了Android OS與應用程序就可以了交互)

通常爲網站,語言的內容被存儲在數據庫中,和Ajax的檢索爲需要的。

+0

Android沒有其他語言系統。 –

回答

1

默認情況下,是的。您擁有的所有xml文件都打包到APK中。當用戶將默認語言從「英語」更改爲「法語」時,這是如此,語言也會在您的應用中更改,而無需重新下載和/或重新安裝。

然而可以釋放都擠滿了只有特定的捆綁多個APK,並通過谷歌釋放他們不同的人口統計Play商店。這對於Drawables來說通常是很好的,它可能會佔用很多空間,而這些空間在下載它們的手機上不會使用。舉例來說,用低分辨率屏幕下載具有XXHDPI分辨率資產的應用程序是沒有意義的。由於上述原因,語言通常不是一個好主意。

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和底座上的語言,其中用戶可從網上下載。