Javaの勉強をしています。sendとcancelをキーにして日本語対応と英語対応。

MyResources.java-------------------------------------------------------
package com.se;
import java.util.ListResourceBundle;
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
Object[][] contents={{"send","送信"},{"cancel","取消"}};
return contents;
}}
MyResources_en_US.java---------------------------------------------
package com.se;
import java.util.ListResourceBundle;
public class MyResources_en_US extends ListResourceBundle {
protected Object[][] getContents() {
Object[][] contents = {{"send", "send"},{"cancel", "cancel"}};
return contents;
}}
Main.java-------------------------------------------------------------------
import java.util.Locale;
import java.util.ResourceBundle;
public class Sample5_6 {
public static void main(String[] args) {
Locale japan=Locale.getDefault();
Locale us=Locale.US;
Locale [] locArray={japan,us};
for(Locale locale:locArray){
ResourceBundle obj1=ResourceBundle.getBundle("com.se.MyResources",locale);
System.out.println("send :"+obj1.getString("send"));
System.out.println("cancel:"+obj1.getString("cancel"));
}}}
Eclipse4.3で実施したところ、
send :送信 cancel:取消 send :送信 cancel:取消 と言う結果で英語対応がなされていません。どうしてでしょうか?分かる方お願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/04/27 10:33:08
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント90pt

MyResources_en_US.java は MyResources.java から派生する必要があったはずです。

package com.se;
import java.util.ListResourceBundle;
                                    /* ↓コレ */
public class MyResources_en_US extends MyResources {
    protected Object[][] getContents() {
        ...
他10件のコメントを見る
id:inajyun

うまくいきました。ありがとうございます。

2014/04/27 10:32:19
id:a-kuma3

よかった、よかった :-)

2014/04/27 10:37:45

その他の回答1件)

id:pogpi No.1

回答回数428ベストアンサー獲得回数59

ポイント10pt

getBundleで、MyResources_en_USを引数に指定してないからだと思います。

id:inajyun

それは違うはずです。リソースハンドルが共通の名前(基底名)であれば、MyResources_enやMyResources_en_USも読み込まれるとテキストに書いてあります。これは、OracleのOCP-Jのテキストの例題です。

2014/04/26 07:56:32
id:inajyun

Eclipse4.3の該当binフォルダsom.seを観ると、MyResources.classしかないんです。MyResources_en_US.classが無いのです。多分それが原因だと思うのですが...。

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント90pt

MyResources_en_US.java は MyResources.java から派生する必要があったはずです。

package com.se;
import java.util.ListResourceBundle;
                                    /* ↓コレ */
public class MyResources_en_US extends MyResources {
    protected Object[][] getContents() {
        ...
他10件のコメントを見る
id:inajyun

うまくいきました。ありがとうございます。

2014/04/27 10:32:19
id:a-kuma3

よかった、よかった :-)

2014/04/27 10:37:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません