5

Android ロケールのドキュメントごと:

Java は非推奨の 2 文字コードをいくつか使用していることに注意してください。ヘブライ語 ("he") の言語コードは "iw"、インドネシア語 ("id") は "in"、イディッシュ語 ("yi") は "ji" に書き換えられます。この書き換えは、さまざまなルックアップ メソッドによって返されるインスタンスだけでなく、独自の Locale オブジェクトを構築した場合でも発生します。

現在のコード (ヘブライ語 = he) と廃止されたコード (ヘブライ語 = iw) の両方をサポートするようにサーバーをセットアップしようとしています。上記の例の 3 つの言語だけを複製する必要がありますか、それとも完全なリストがありますか?

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 の実装に依存します。したがって、ある Java プラットフォームから別の Java プラットフォームに切り替えたときに、関心のある言語がまだサポートされているかどうかを確認できるようにするために、この関数呼び出しの結果を返す小さなサーブレットをセットアップします。

ドキュメントでも、このメソッドに関する次のコメントに注意してください。

[注: ISO 639 は安定した標準ではありません。一部の言語のコードは変更されています。この関数が返すリストには、コードが変更された言語の新しいコードと古いコードの両方が含まれています。]

お役に立てれば、

于 2013-08-19T13:15:45.190 に答える