Android在运行时从strings.xml读取所有语言

时间:2013-10-27 10:15:49

标签: android locale android-resources

我在我的应用程序中引入了第二种语言(法语)。我已经翻译了strings.xml资源文件并创建了一个名为values-fr等的新文件夹......除了应用程序的一部分之外,法语字符串在UI中正常运行。有一个帮助部分,它当前存储在SQLite数据库中,而DatabaseHelper代码通过引用字符串资源从Strings.xml读取,例如

context.getString(R.string.tip1title);

我正在考虑的一个选项是向数据库添加“LANGUAGE”列,然后修改根据设备的区域设置提取帮助文本的查询,所以我试图读取法语strings.xml在安装/更新期间归档到数据库。有没有什么方法可以将代码指向“values-fr / strings.xml”而不是默认的“values / strings.xml” - 而不会在过程中更改语言环境?我不想搞乱语言环境,以防万一我控制之外的事情发生并且用户设备语言设置为法语......

如果没有,那么我正在考虑的另一个选项是不将字符串存储在DB中,而是为每种语言创建一个原始文件,然后使用设备的语言环境从不同的资源中读取。

1 个答案:

答案 0 :(得分:0)

感谢您输入的 fgeorgiew

不应该做我上面讨论过的事情。用户不太可能在手机上切换语言。即使他们确实将语言环境设置为他们的第一语言,所以如果数据库中的文本以默认语言环境显示,那么应该没有任何影响。

我已经测试了我的语言环境设置为法语,应用程序按预期拉出字符串并填充数据库。无需进一步输入。