【问题标题】:Android: resolving language resources (in app and in Play Store)Android:解析语言资源(在应用程序和 Play 商店中)
【发布时间】:2016-11-22 08:34:47
【问题描述】:

我对@9​​87654321@的指导有点困惑。

在 Android 7 之前,设备似乎会尝试特定的语言环境,例如fr_FR,如果没有这样的语言资源,那么它会剥离国家并查找fr

在此基础上,鉴于我没有大量的翻译人员来翻译每个本地变体,我一直将翻译粘贴到父文件夹中,例如frde 等。如果用户不喜欢所交付的变体,应用程序中有一个选项可以选择其他变体。

对于 Android 7 及更高版本,该指南似乎是:

以最常见的父方言存储资源。例如,如果您之前将西班牙语资源存储在 values-es-rUS 目录中,请将它们移动到包含拉丁美洲西班牙语的 values-b+es+419 目录中。

但是,如果您的西班牙语翻译确实是针对es_US,那么将它们视为es_419 没有任何意义(因为es_USes_419 是不同的)?为什么不将它们留在es_US 下,因为对于Android 7,它们似乎无论如何都会被发现(通过向上然后向下遍历树),即使设备设置为es_ESes_US 是唯一的东西可用吗?

对于小型开发人员,只有一个翻译可用于特定语言(例如只有es_ES),将其粘贴到父语言环境文件夹(例如es)仍然是一种合理的策略吗?这样,它应该为任何请求的西班牙语变体交付,无论是在 Android 7 之前还是之后?但这违背了上述指导。

至于 Play 商店 中应用描述的翻译,在我看来,没有像 Android 中那样的任何分层解析逻辑......似乎只是一个平面语言列表。所以说你只有西班牙语(西班牙)的翻译,然后为了在美国、拉丁美洲和西班牙使用它(基于西班牙语的不同变体比英语的机器翻译更好),您是否需要将其复制到美国西班牙语、拉丁美洲西班牙语和西班牙西班牙语插槽...没有通用的“西班牙语”插槽?

【问题讨论】:

    标签: android localization locale translation


    【解决方案1】:

    但是如果你的西班牙语翻译确实是针对 es_US 的,那么将它们视为 es_419 没有任何意义(因为 es_US 和 es_419 是不同的)?

    如果你只有一种翻译可以同时用于这两种翻译,那是有意义的。

    为什么不将它们留在 es_US 下,因为对于 Android 7,即使设备设置为 es_ES 并且 es_US 是唯一可用的东西,它们似乎无论如何都会被发现(通过向上然后向下遍历树)?

    会找到,但会慢一些。

    对于小型开发人员,只有一个翻译可用于特定语言(例如只有 es_ES),将其粘贴到父语言环境文件夹(例如 es)中是否仍然是一种合理的策略?这样一来,它应该为任何请求的西班牙语变体交付,无论是在 Android 7 之前还是之后?

    不到千分之一的设备使用 7 之前的 Android,因此除非您拥有旧代码库,否则支持这些设备是没有意义的,因为向后兼容性增加了复杂性。

    如果您只有一个翻译,并且说他们的设备设置为 es_MX,它将搜索 es_MX,然后是 es,然后是其他 es 子项,例如 es_ES。如果你只有一个翻译,es 很好。您可能希望在 XML 中添加注释,说明它是 es_ES 翻译,但您将其放入 es 中,因为您只有一个翻译(尽管将其保留在 es_ES 中也可以,因为 es_MX 设备将使用 es_ES 如果他们发现没有es_MX 或 es 目录)。

    如果您有一个新的且库存充足的 Android 设备,您可以测试这些东西。或者模拟器。将值目录设置为一件事,将设备设置为另一件事,然后查看您获得的特定翻译。它将遵循您链接到的 Android 开发者网页上的内容。

    【讨论】:

    • “它会被发现,但它会稍微慢一些”——延迟真的那么重要吗?我想可能是一两个时钟周期。
    • 只是想强调 五分之四的设备 是 Android 7 之前的版本,而不是千分之一。您可能正在考虑 API 级别而不是 Android 版本。 (来源:developer.android.com/about/dashboards/index.html#Platform
    【解决方案2】:

    对于应用程序,只要您没有区域变化,请使用通用文件夹:也就是“es”而不是“es-US”。 因此,所有 ES 演讲者都将使用该翻译。 (不分地区)

    那么您可以只为 en-US vs en-GB 覆盖一些单词,例如“color vs colour”。

    对于 google play 商店:我不确定。因为没有“es”,只有“es-ES”、“es-xxx”。而且逻辑似乎不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多