是否可以使用 SQLite 来存储翻译而不是像 strings.xml 这样的 XML 资源
Posted
技术标签:
【中文标题】是否可以使用 SQLite 来存储翻译而不是像 strings.xml 这样的 XML 资源【英文标题】:Is it okay to use SQLite to store translations instead of XML resources like strings.xml 【发布时间】:2021-07-15 20:38:06 【问题描述】:我想找到一种方法让用户选择应用程序的语言,而不是从设备设置中更改它。应用程序适用于使用稀有语言的人,大多数设备不支持这种语言。我正在寻找“如何以编程方式更改应用程序语言?”的答案,但我的头很痛。所以我只想使用 SQLite 不仅存储所有应用程序数据,还存储通常存储在“strings.xml”中的标题、标签等的翻译。那么可以吗?有人会认为这是一种不好的做法吗?
【问题讨论】:
这将是一个令人头疼的问题,因为每次您拨打getString(R.string.foo)
时系统都会自动执行此操作
【参考方案1】:
当然你可以这样做,它通常可能被认为是“不好的做法”,但每条规则都有例外,如果设备不支持你的语言,那么在我看来这是合理的。
这将使向应用程序添加新翻译变得更加困难,并且根据您的操作方式,一般来说可能很难使用字符串,但它会起作用。
【讨论】:
【参考方案2】:您可以为此使用数据库,但请记住,您需要为任何更改编写大量迁移
您可以为每种语言添加不同的字符串文件 res -> 右键单击 'values' 文件夹 -> 新建 -> 值资源文件 -> 然后创建具有特定语言环境的新字符串文件:
之后,在带有字符串的文件夹中,您将有几个文件:
这将是一种更简单、更正确的应用程序本地化方法
阅读更多https://developer.android.com/guide/topics/resources/localization
【讨论】:
他正在使用不受支持的语言。以上是关于是否可以使用 SQLite 来存储翻译而不是像 strings.xml 这样的 XML 资源的主要内容,如果未能解决你的问题,请参考以下文章
我们可以使用 ionic 框架将视频存储在 sqlite 数据库中吗?如果可以,我们如何存储它?
安卓手机开发,创建SQlite数据库后,默认路径是存储在哪?