【问题标题】:Is there a way to localize android app without using values/strings.xml?有没有办法在不使用 values/strings.xml 的情况下本地化 android 应用程序?
【发布时间】:2017-01-06 09:33:57
【问题描述】:

我的 android 应用程序支持 3 种语言(英语、韩语、俄语),我计划支持更多。 由于应用程序的特性,它在每个 strings.xml 文件中都有数百万行(翻译)。所以所有string.xml文件的大小都超过了1MB。

我觉得它太大了。

有没有办法在不使用 values/strings.xml 的情况下本地化 android 应用程序? 或者...修剪我的应用程序的大小?

【问题讨论】:

    标签: java android string localization translation


    【解决方案1】:

    一种可能的方法是将 data 字符串放入 SQLite 数据库中,而不是将它们全部放入 strings-xx 资源文件中。我曾经参与过一个包含大量不同语言字符串的项目。我们提出的解决方案是将与 UI 相关的字符串放在 strings-xx 资源文件中,并将数据字符串放在 SQLite 表中。这大大减少了 APK 的大小。

    我所说的与 UI 相关的字符串是指屏幕标题、按钮/小部件文本、带有格式参数的常量字符串等。数据字符串是那些依赖于 API 响应或在 API 响应中接收到的字符串。

    【讨论】:

      【解决方案2】:

      您可以使用比 xml 更节省空间的文件格式来实现自定义资源加载,但我怀疑它是否值得。

      如果您想这样做,请检查当前语言环境以决定要加载哪些资源:

      getResources().getConfiguration().locale
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-21
        • 2019-04-01
        • 2012-11-11
        • 1970-01-01
        • 2016-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多