2014-02-12 48 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本质上不受设备资源框架的支持目录。

如果您的要求期望您遵守标准中设置的三字母语言代码,您可能不得不寻求其他方面的支持(无论是内部解决方案还是其他第三方解决方案)。