23

我见过几个显示本地化以及它们应该采用什么名称的冲突表

他们中的很多人建议每个国家/地区都有语言的版本,这很好,对于像英语、西班牙语和中文这样的语言,我可以选择制作一个values-en文件values-en_US夹,如果我想让它更具体,我可以选择一个文件夹

但是像希腊语这样的其他一些语言有一个语言环境名称el_GR,我可以只制作一个文件夹名称values-el还是必须这样做values-el_GR

这只是一个例子,我不相信我读过的表格,android 开发者指南几乎没有列出可用的语言环境

4

3 回答 3

41

Android字符串文件的文件夹名称格式如下:

  • 没有区域变体:values-[locale]
  • 区域变体:values-[locale]-r[region]
  • 例如:values-en, values-en-rGB, values-el-rGR

在您的情况下,您只需要values-el为希腊语翻译和values-el-rGR特定国家/地区的希腊语翻译创建一个文件夹。

此外,您可以利用 Android 中的资源回退机制,以允许在本地进一步翻译特定的字符串。

例如,假设您有一个名为“R.string.title”的字符串并且语言环境是“el-GR”,Android 将通过按以下顺序搜索文件来查找“R.string.title”的值:

  • res/values-el-rGR/strings.xml
  • res/values-el/strings.xml
  • res/values/strings.xml

因此,您可以将特定国家/地区的翻译放在 中res/values-el-rGR/strings.xml,然后让res/values-el/strings.xml商店存储通用翻译。

通过利用这种回退机制,它可以避免在不同的语言文件中复制你的字符串。

于 2014-05-27T09:36:15.270 回答
4

右键单击项目中的“res”文件夹。选择 > 新建 > Android 资源文件 > 本地化 - 它会为您提供所有可能的语言和区域设置选项,甚至创建所需的文件夹。

于 2018-05-12T10:48:13.337 回答
0

都可以在https://developer.android.com/index.html找到

  1. https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

页面描述多个资源定义,如 drawable , value

  1. https://developer.android.com/training/basics/supporting-devices/languages.html

该页面提供语言资源定义,它是导入如何创建语言环境目录和资源文件。

格式是<resource type>-b+<language code>[+<country code>].

language code country code参考https://developer.android.com/reference/java/util/Locale.html

语言 ISO 639 alpha-2 或 alpha-3 语言代码,或最多 8 个字母字母的注册语言子标签(用于未来增强)。当一种语言同时具有 alpha-2 代码和 alpha-3 代码时,必须使用 alpha-2 代码。您可以在 IANA 语言子标签注册表中找到有效语言代码的完整列表(搜索“类型:语言”)。 https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

国家(地区)ISO 3166 alpha-2 国家代码或 UN M.49 numeric-3 区域代码。您可以在 IANA 语言子标签注册表中找到有效国家和地区代码的完整列表(搜索“类型:地区”)。

https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

其他参考:https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

于 2017-04-12T02:53:23.147 回答