2013-03-01 74 views
1

很多次,我已經看到了有一個語言列表Android應用程序中顯示,我可以通過點擊任意這種語言並下載該特定應用(GO天氣小部件有此功能)。動態Android應用語言

我很感興趣,這是怎麼實現的,什麼是對Android應用程序動態加載語言的最佳方式?在應用程序項目中添加100個string.xml資源不是解決方案,除此之外,如果我想提供某種「有趣的節日語言」包或添加一種新語言,我需要一次又一次將項目上傳到Google Play。

謝謝!

+0

您有任何解決方案嗎?或者這只是一個模糊的想法? – lokoko 2013-03-01 18:51:09

回答

2

雖然可以使用Expansion Files對添加到您的應用程序,它們在某些方面受到限制。你的主要問題是你只能擁有有限數量的擴展文件。如果你想要100種語言,你唯一的選擇就是在擴展文件中加載它們全部,然後下載整個文件。雖然這可能不成問題,但由於翻譯後的字符串列表可能不是那麼大,因此您可能想要採用不同的路線。

我看到下載單獨語言插件最好的辦法是使用strings.xml乾脆放棄。只需使用簡單的CSV文件來保存字符串,將名稱映射到字符串。當你的程序啓動時,將它讀入字符串數組/地圖/任何內容,並且你已經準備好了所有的字符串。這樣,如果您想添加一種語言,就像下載一個文本文件並將其保存到您的數據目錄一樣簡單。

此外,您還可以保持一個文件,列出在同一臺服務器上的所有可用的語言,所以你不必更新應用,如果你想添加季節性或有限的時間只有語言,就像你提到的。只需閱讀文件即可獲取列表。

注意,你需要的地方主機上的文件,但是這是很難在這個時代的一個障礙。

+0

我認爲這是最好的解決方案。謝謝你的回答!我會朝這個方向走;) – lomza 2013-03-02 14:10:03