我有应用程序与互联网接入,并不想存储许多string.xml
文件为不同的语言。可以在运行时下载本地化资源吗?
我想要什么:
- 应用程序只包含一个
string.xml
用英文字符串。 - 当用户启动它时 - 我看到用户的手机区域设置,并向我自己的服务器询问必要的语言文件。 (资源密钥将相同)
- 当新的资源文件出现时,所有接口都应该与新文件一起工作。
问题是如何在运行时更改现有文件或添加新文件string.xml
?
我有应用程序与互联网接入,并不想存储许多string.xml
文件为不同的语言。可以在运行时下载本地化资源吗?
我想要什么:
string.xml
用英文字符串。问题是如何在运行时更改现有文件或添加新文件string.xml
?
显然,你无法改变,下载或在运行时
如果你想存储位置删除strings.xml
,你将不得不使用SQLite存储来存储翻译。
相似:
How to modify strings.xml file at runtime
run time modification of strings.xml
现在我可以看到唯一的解决办法:
string.xml
或下载的资源)getString()
和getText()
替换为您自己的方法getStringFromLocalization
TextView
,Button
和一些其他视图与自定义一个和改变那里init和setText
方法。一切正常,除了'setText(String)'方法是** final **,所以它不能被覆盖 – 2013-06-25 06:49:53
使用符合时间的资源文件覆盖资源/语言的资源,然后通过自定义划分性能。只有当你需要这个时才会这样做。
此解决方案的问题 - 您不能从xml文件引用数据库,并且不能使用标准的'Context.getString()'方法。 – Jin35 2012-02-20 17:21:12
是的,这就是解决方案的黑暗面,但只要您想使用您提供的解决方案,就没有什么区别,只有这一点显然与系统更加分离,实施起来更容易,更轻松。 – 2012-02-20 17:26:44
我可以创建,例如文件夹'values-de'在我的资源中,并把新的XML文件在那里? – Jin35 2012-02-20 17:31:16