2

私は J2me でアプリケーションを設計しています。ここでは、特定の言語 (ウルドゥー語など) でインターフェイスを提供する必要があります。私がやっていることは、Unicode 文字を使用して、「ようこそ」などのラベルを自分の言語に印刷し、正しい方法で表示することです。このアプリケーションはさまざまなモバイル モデルで実行されることになっているため、アプリケーションを実行している特定のモバイルが言語の Unicode をサポートしているかどうかをプログラムで確認できるかどうかを知りたいだけです。そうでない場合は、デフォルトの英語でラベルを表示するためです。英語のアルファベットを自分の言語の文字に変換する以外は、まだコーディングしていません。知りたいだけで、可能であれば、このチェックを実行する方法を見つけたいと思っています。前もって感謝します :)

4

1 に答える 1

1

System受話器で選択されている現在の言語を読み取ることができるプロパティがあります。

String locale = System.getProperty("microedition.locale");

最初の2文字は言語を識別し、最後の2文字は国を識別します。たとえば、"en-US"アメリカ合衆国では英語を"pt-BR"表し、ブラジルではポルトガル語を表します。
良いことはString、現在の言語に基づいてすべてのGUIをロードすることです。これらすべての文字列を単一の配列に格納し、次のように初期化するとします。

String messages [] = null;

if (locale.startsWith("pt")) {
    messages = new String [] {
        "Novo Jogo",
        "Configurações",
        "Ajuda"
    };
} else { // default language is English
    messages = new String [] {
        "New Game",
        "Settings",
        "Help"
    };
}

次に、各インデックスを識別するための定数を定義します。

static final int MSG_NEW_GAME = 0;
static final int MSG_SETTINGS = 1;
static final int MSG_HELP = 2;

そして、次のように使用します(menuListはListのインスタンスです)。

menuList.append(messages[MSG_NEW_GAME], null);
menuList.append(messages[MSG_SETTINGS], null);
menuList.append(messages[MSG_HELPS], null);

これにより、アプリケーションで2つの言語をサポートできます。ロケールに基づいてメッセージを開始するケースが多いほど、エンドユーザーにとっては良いことです。

http://smallandadaptive.blogspot.com.br/2008/12/internationalization-or-just-i18n-count.htmlで見られるように

于 2012-10-04T11:41:50.927 に答える