5

根据Android 语言环境文档

请注意,Java 使用了几个已弃用的两字母代码。希伯来语(“he”)语言代码被改写为“iw”,印尼语(“id”)改写为“in”,意第绪语(“yi”)改写为“ji”。即使您构造自己的 Locale 对象,这种重写也会发生,而不仅仅是各种查找方法返回的实例。

我正在尝试设置我的服务器以支持当前代码(希伯来语 = he)和不推荐使用的代码(希伯来语 = iw)。上面示例中的三种语言是我需要复制的唯一语言还是有完整列表?

4

1 回答 1

0

Java 本身可以列出语言环境中可用语言的字母代码。

这是一个示例,列出了所有支持的语言代码并从列表中删除了一些我们不想要的代码:

public class TestLocale
{

  public static void main(String[] args) {
    String[] allLangs = Locale.getISOLanguages();
    String[] deprecatedLangs = {"ji", "in", "iw"};
    ArrayList<String> validLangs = new ArrayList<String>(Arrays.asList(allLangs));
    validLangs.removeAll(Arrays.asList(deprecatedLangs));
    for (String lng : validLangs) {
      System.out.println(lng);
    }
  }

}

当然这个列表(由 Locale.getISOLanguages() 返回)取决于你的 java 实现;所以我会设置一个小 servlet 来返回此函数调用的结果,以便能够检查当您从一个 Java 平台切换到另一个 Java 平台时是否仍然支持您感兴趣的语言。

另请注意文档中对此方法的以下评论:

[注意:ISO 639 不是一个稳定的标准——一些语言的代码已经改变。此函数返回的列表包括代码已更改的语言的新代码和旧代码。]

希望这可以帮助,

于 2013-08-19T13:15:45.190 回答