2014-02-12 45 views
2

我正在開發一個android應用程序,其中用戶需求是以多語言形式提供該應用程序。我需要知道哪個是最好的方式。Android應用程序的多語言支持

  1. 通過將語言(string.xml)存儲在文件夾中。例如:對於名爲value-fr的文件夾中的法語。
  2. 將所有標籤和相應語言存儲在Db表中,並檢索不同語言選擇的標籤和語言。

從上述兩種方法中,考慮到應用程序性能是最好的方法。

+0

選項1是最好的辦法,不需要爲它創建數據庫! –

+0

好吧。但是如果我在Playstore上部署了我的應用程序並且用戶正在使用它,那麼我們需要給予用戶新的語言支持。我們將如何更新用戶apk中的res文件夾。我們是否需要製作該應用程序的新版本? –

+0

是的,在應用程序中進行更改,並更改清單中的應用程序版本並再次上載。 –

回答

1

最好的方法是通過在res/values-fr文件夾中存儲法語的所有語言並將其反映到整個應用程序中去找到資源文件夾。

通過遵循資源的方式,您不必費心管理應用程序流中的每一件事。由於用戶將其語言更改爲法語,因此該應用程序將根據French語言直接更改。如果您保留,它將直接訪問value-fr文件夾中的所有資源。

如果您將採用數據庫方式,那麼在這種情況下,您應該檢查區域設置,並且您將不得不根據本地的每次和每次管理應用程序的所有值,這會導致處理的複雜性資源。

那麼,爲什麼不去最好的方式,如果android爲您提供如此強大的功能。

0

您應該讓res中的不同文件夾支持多種語言的應用程序。

Android自動處理所有事情,它從該文件中選擇字符串資源,該文件是您當前設備的語言。

1

你可以做任何一種方式,但最好的方法是選項1.即通過將語言(string.xml)存儲在類似values-Fr的文件夾中。使用這將允許android自動執行處理,而不是告訴數據庫,這是您需要的當前語言環境。

0

只是扮演惡魔的倡導者 - Android目前僅支持ISO 639-1(2字母)代碼,支持ISO 639-2(三字母語言代碼)的Java 7本質上不受設備資源框架的支持目錄。

如果您的要求期望您遵守標準中設置的三字母語言代碼,您可能不得不尋求其他方面的支持(無論是內部解決方案還是其他第三方解決方案)。