0

これは本当に単純な質問で、私には理解できません。

ローカリゼーションには、(Eclipse によって生成された)messages.propertiesファイルとクラスを使用します。Messages私はこのコードを持っています:

public class LocaleTest {

    public static void main(String[] args) {
        System.out.println(Messages.getString("LocaleTest.LocaleTestMessage")); //$NON-NLS-1$
    }

}

および 2 つのプロパティ ファイル:

メッセージのプロパティ

LocaleTest.LocaleTestMessage=これはロケール テストです。

messages_es.properties

LocaleTest.LocaleTestMessage=Esta es la prueba de locales.

messages.propertiesおよびファイルは、Messages.javaEclipse の「Externalize Strings」機能 ( SourceExternalize Strings... ) によって作成されます。

Ctrlこれをスペイン語システムの Eclipse で (標準+経由でF11) 実行すると、期待どおりに「Esta es la prueba de locales」が表示されます。しかし、デフォルト オプションを使用して .jar にエクスポートし、コマンド ラインから実行すると、「This is the locale test.」と出力されます。

GUI アプリケーションでは、アプリケーション全体が常にメイン言語 ( の文字列messages.properties) になります。

メッセージクラスの先頭に次を追加すると機能するため、ファイルが正しくエクスポートされていることがわかります。

static {
    Locale.setDefault(new Locale("es"));
}

ここで説明されているように、「非 Unicode プログラムの既定の言語」を「スペイン語」に設定しました。

では、なぜこれが発生し、どうすれば修正できますか?

編集:コマンドラインから印刷Locale.getDefault().getLanguage()すると「英語」が得られます。Eclipse からは、「español」と出力されます。

4

0 に答える 0