可以在运行时下载本地化资源吗?

时间:2012-02-20 17:11:48

标签: android android-location android-resources

我的应用程序具有互联网访问权限,并且不希望为不同语言存储许多string.xml个文件。

我想要的是什么:

  1. 应用程序只包含一个带有英文字符串的string.xml
  2. 当用户启动它时 - 我会看到用户的手机区域设置,并向我自己的服务器询问必要的语言文件。 (资源键将是相同的)
  3. 当新资源文件到来时,所有界面都应该使用新文件。
  4. 问题是如何在运行时更改现有文件或添加新string.xml文件?

3 个答案:

答案 0 :(得分:3)

您显然无法在运行时更改,下载或删除strings.xml

如果您想存储位置,则必须使用SQLite存储来存储翻译。

类似:
How to modify strings.xml file at runtime
run time modification of strings.xml

答案 1 :(得分:3)

现在我只能看到解决方案:

  1. 创建一些“本地化代理”,它将返回必要的资源(来自string.xml或下载的资源)
  2. 将所有getString()getText()替换为您自己的方法getStringFromLocalization
  3. 使用自定义视图覆盖TextViewButton和其他一些视图,然后更改init和setText方法。

答案 2 :(得分:0)

使用符合时间的资源文件覆盖standered资源/语言,然后使用比定制更令人惊叹的性能。只有在你需要的时候才这样做。