【问题标题】:Is it okay to use SQLite to store translations instead of XML resources like strings.xml是否可以使用 SQLite 来存储翻译而不是像 strings.xml 这样的 XML 资源
【发布时间】:2021-07-15 20:38:06
【问题描述】:

我想找到一种方法让用户选择应用程序的语言,而不是从设备设置中更改它。应用程序适用于使用稀有语言的人,大多数设备不支持这种语言。我正在寻找“如何以编程方式更改应用程序语言?”的答案,但我的头很痛。所以我只想使用 SQLite 不仅存储所有应用程序数据,还存储通常存储在“strings.xml”中的标题、标签等的翻译。那么可以吗?有人会认为这是一种不好的做法吗?

【问题讨论】:

  • 这将是一个令人头疼的问题,因为每次您拨打getString(R.string.foo)时系统都会自动执行此操作

标签: java android xml sqlite android-studio


【解决方案1】:

当然你可以这样做,它通常可能被认为是“不好的做法”,但每条规则都有例外,如果设备不支持你的语言,那么在我看来这是合理的。

这将使向应用程序添加新翻译变得更加困难,并且根据您的操作方式,一般来说可能很难使用字符串,但它会起作用。

【讨论】:

    【解决方案2】:

    您可以为此使用数据库,但请记住,您需要为任何更改编写大量迁移

    您可以为每种语言添加不同的字符串文件 res -> 右键单击​​ 'values' 文件夹 -> 新建 -> 值资源文件 -> 然后创建具有特定语言环境的新字符串文件:

    之后,在带有字符串的文件夹中,您将有几个文件:

    这将是一种更简单、更正确的应用程序本地化方法

    阅读更多https://developer.android.com/guide/topics/resources/localization

    【讨论】:

    • 他正在使用不受支持的语言。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多