当前位置: 首页 > 知识库问答 >
问题:

Android:解析语言资源(在app和Play Store中)

范福
2023-03-14

我有点被这里的指导弄糊涂了。

在Android7之前,似乎该设备会尝试特定的语言环境,例如fr_fr,如果没有这样的语言资源,那么它会去掉国家并在fr中查找。

在此基础上,考虑到我没有一支庞大的翻译队伍来翻译每一个本地变体,我一直将翻译添加到父文件夹中,例如frde等。如果用户不喜欢交付的变体,应用程序中有一个选项可以选择其他变体。

对于Android 7及以上版本,指导意见似乎是:

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

但是,如果您的西班牙语翻译实际上是ES_US的,那么将它们视为ES_419是没有任何意义的(因为ES_USES_419是不同的)?为什么不把它们留在es_us下,因为对于Android7来说,即使设备被设置为es_es,而且es_us是唯一可用的东西,似乎也会找到它们(通过在树中上下遍历)?

对于一个小型开发人员来说,一种特定语言只有一个翻译可用(例如,只有ES_ES),将其粘贴到父区域设置文件夹(例如,ES)是否仍然是一个合理的策略?这样,无论Android7之前还是之后,它都可以提供给任何所需的西班牙语变体?但这违背了上述指导意见。

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

共有1个答案

万俟穆冉
2023-03-14

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

如果您只有一个翻译可以同时使用这两种语言,那么这是有意义的。

为什么不把它们留在es_US下面呢,因为对于Android7来说,即使设备被设置为es_ES,而es_US是唯一可用的东西,它们似乎还是会被找到(通过在树中上下遍历)?

它会被发现,但会稍微慢一些。

对于一个小型开发人员来说,一种特定语言只有一个翻译可用(例如,只有es_ES)将其添加到父区域设置文件夹(例如es)中是否仍然是一个合理的策略?这样,无论Android7之前还是之后,它都可以提供给任何所需的西班牙语变体?

一千台设备中只有不到一台是7号之前的Android,所以支持这些设备是没有意义的,除非你有一个遗留的代码库,因为向下兼容增加了复杂性。

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

如果你有一个新的和库存足够多的Android设备,你可以测试这些东西。或模拟器。将values目录设置为一个,将设备设置为另一个,然后查看您得到的是哪个特定的翻译。它将按照你链接到的Android developer网页上的内容执行。

 类似资料:
  • 本文向大家介绍Java语言资源国际化步骤解析,包括了Java语言资源国际化步骤解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java语言资源国际化步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 语言资源国际化步骤: 1. 定义资源文件(如:language),需要使用命令native2ascii命令进行转码;(nativ

  • 问题内容: 假设我的应用程序的原始资源文件夹中有一个包含JSON内容的文件。如何将其读入应用程序,以便解析JSON? 问题答案: 参见openRawResource。这样的事情应该起作用:

  • 问题内容: 我听到来自Google的关于Go编程语言的嗡嗡声。维基百科是这样描述的:“ Go旨在通过简化动态语言的编程来提供静态类型的编译语言的效率”。我当时在想,由于它是android制造商提供的一种语言,因此他们应该对创建android应用程序有一些支持。有没有可以从Go创建android应用程序的工具?使用“ SOMEDAY” android可能基于GO的假设来学习Go语言是否值得。 问题答

  • 说明:以下内容适用于V3.4+(包括V3.4),之前的版本请参考“App资源更新(V3.3之前)”和“App版本更新(V3.3之前)”。 从V3.4开始,模式一、模式二和模式三都支持资源更新和App版本更新。 一、资源更新 适用场景:仅仅是界面资源变化,没有本地插件变化; 操作步骤: 第一步:根据实际需求修改UI2下的页面; 第二步:重新编译界面资源(如果在“编辑本地App”的过程中,指定了资源版

  • 问题内容: 任何人都可以为Java推荐一个不错的Java解析器吗?我相信可以使用Rhino,但是仅仅进行解析似乎是一个过大的选择,还是唯一的不错的解决方案?任何建议将不胜感激。谢谢。 问题答案: 来自https://github.com/google/caja/blob/master/src/com/google/caja/parser/js/Parser.java 下面的语法是此解析器解析的语法

  • 本文向大家介绍Objective-C语言XML解析,包括了Objective-C语言XML解析的使用技巧和注意事项,需要的朋友参考一下