JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > 国際化編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2002/02/03  田中宏和
Last Update 2003/02/01
国際化編
◆国際化とは?
国際化とは、言語、文化、文字コードなどに依存しないプログラムの設計プロセスのことをいいます。国際化されたプログラムを作ることによって、言語や日付、通貨などの地域特有のデータをコンパイルしなおさなくても容易に変更できるようになります。すなわち、プログラムを変更することなしに世界中の様々な地域で利用できるアプリケーションを作成できます。国際化(internationalization)の省略形としてi18nがよく使用されます。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.0
◆Java実行環境の構築
アプリケーション編を参考にしてJava実行環境を構築してください。
◆ロケール
ロケールとは同じ言語と文化をもつ地域をあらわす言葉で、Javaではロケールに対応したLocaleクラスが用意されています。
◆Localeクラス
java.util.Localeオブジェクトは地理的、政治的、または文化的に特定の地域を表すために使用されます。Localeオブジェクトを使用することによって数値や日付の表現方法をその地域にあった形に加工することができるようになります。
◆Localeオブジェクトの生成
例1)言語が日本語で国が日本の場合
(定数を使用)
Locale jpLocale = Locale.JAPAN;
(コンストラクタを使用)
Locale jpLocale = new Locale("ja" , "JP");
上記の定数を使用した場合とコンストラクタを使用した場合は同じLocaleオブジェクトを生成します。
例2)言語が日本語で国は定義しない場合
(定数を使用)
Locale jpLocale = Locale.JAPANESE;
(コンストラクタを使用)
Locale jpLocale = new Locale("ja" , "" );
上記の定数を使用した場合とコンストラクタを使用した場合は同じLocaleオブジェクトを生成します。
 
デフォルトのロケールの情報を表示
現在の環境のデフォルトのロケールの情報を表示してみたいと思います。
■Javaソースコード
ShowDefaultLocale.java(ここからダウンロード)
import java.util.*;

public class ShowDefaultLocale {
  public static void main(String[] args) {
    // デフォルトのロケールの現在の値を取得します。
    Locale locale = Locale.getDefault();
    // 表示
    System.out.println("国:" + locale.getDisplayCountry());
    System.out.println("国/地域コード:" + locale.getCountry());
    System.out.println("言語:" + locale.getDisplayLanguage());
    System.out.println("言語コード:" + locale.getLanguage());
    System.out.println("ロケールの名前:" + locale.getDisplayName());
    System.out.println("プログラム上の名前:" + locale.toString());
  }
}
 
■コンパイルと実行
コマンドプロンプト
C:\JavaHello\i18n>javac ShowDefaultLocale.java

C:\JavaHello\i18n>java ShowDefaultLocale
国:日本
国/地域コード:JP
言語:日本語
言語コード:ja
ロケールの名前:日本語 (日本)
プログラム上の名前:ja_JP

C:\JavaHello\i18n>

おおおお!デフォルトのロケールの情報が表示できましたね!
 
ロケールを使用して日付・時刻のフォーマット
日付・時刻をフォーマットする場合はDateFormatクラスかSimpleDateFormatクラスを使用します。
クラス 説明
DateFormat 用意されているフォーマットパターンを使用する場合
フォーマットパターンの種類
DEFAULT デフォルトのフォーマットパターン
(MEDIUMと同じ)
SHORT 短いフォーマットパターン
MEDIUM 長さが中位のフォーマットパターン
LONG 長いフォーマットパターン
FULL 全フォーマットパターン
SimpleDateFormat ユーザーが定義したフォーマットパターンを使用する場合
■Javaソースコード
DateFormatTest.java(ここからダウンロード)
import java.util.Locale;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class DateFormatTest {
  public static void main(String[] args) {
    // 現在の日時を取得
    Date today = new Date();
    DateFormat df;
    SimpleDateFormat sdf;
    // DateFormatクラスの使用(デフォルトスタイルとロケールを指定)
    System.out.println("DateFormatを使用");
    df = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.JAPAN);
    System.out.println("日本:" + df.format(today));

    df = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.US);
    System.out.println("アメリカ:" + df.format(today));

    df = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.FRANCE);
    System.out.println("フランス:" + df.format(today));

    // SimpleDateFormatクラスの使用(パターンとロケールを指定)
    System.out.println("SimpleDateFormatを使用");
    String pattern = "EEE d MMM yy";
    sdf = new SimpleDateFormat(pattern , Locale.JAPAN);
    System.out.println("日本:" + sdf.format(today));

    sdf = new SimpleDateFormat(pattern , Locale.US);
    System.out.println("アメリカ:" + sdf.format(today));

    sdf = new SimpleDateFormat(pattern , Locale.FRANCE);
    System.out.println("フランス:" + sdf.format(today));
  }
} 
 
■コンパイルと実行
コマンドプロンプト
C:\JavaHello\i18n>javac DateFormatTest.java

C:\JavaHello\i18n>java DateFormatTest
DateFormatを使用
日本:2002/05/04
アメリカ:May 4, 2002
フランス:4 mai 2002
SimpleDateFormatを使用
日本:土 4 5 02
アメリカ:Sat 4 May 02
フランス:sam. 4 mai 02

C:\JavaHello\i18n>

おおおお!国によって表示が違いますね!
 
ロケールを使用して数値・通貨のフォーマット
数値・通貨をフォーマットする場合はNumberFormatクラスかDecimalFormatクラスを使用します。
クラス 説明
NumberFormat ロケールによって数値、通貨、%表示をフォーマットする場合
DecimalFormat ユーザーが定義したフォーマットパターンを使用する場合
■Javaソースコード
NumberFormatTest.java(ここからダウンロード)
import java.util.Locale;
import java.text.NumberFormat;
import java.text.DecimalFormat;

public class NumberFormatTest {

  public static void main(String[] args) {
    NumberFormat nf;
    DecimalFormat df;

    // NumberFormatを使用(数値)
    System.out.println("NumberFormatを使用(数値)");
    nf = NumberFormat.getInstance(Locale.JAPAN);
    System.out.println("日本:" + nf.format(99999.999));

    nf = NumberFormat.getInstance(Locale.ITALY);
    System.out.println("イタリア:" + nf.format(99999.999));

    // NumberFormatを使用(通貨)
    System.out.println("NumberFormatを使用(通貨)");
    nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
    System.out.println("日本:" + nf.format(99999.999));

    nf = NumberFormat.getCurrencyInstance(Locale.US);
    System.out.println("アメリカ:" + nf.format(99999.999));

    // NumberFormatを使用(%表示)
    System.out.println("NumberFormatを使用(%表示)");
    nf = NumberFormat.getPercentInstance(Locale.JAPAN);
    System.out.println("日本:" + nf.format(0.99));

    nf = NumberFormat.getPercentInstance(Locale.ITALY);
    System.out.println("イタリア:" + nf.format(0.99));

    // DecimalFormatを使用(デフォルトのロケールでパターンを指定)
    System.out.println("DecimalFormatを使用(デフォルトのロケールでパターンを指定)");
    df = new DecimalFormat("###,###.###");
    System.out.println(df.format(99999.999));

    // DecimalFormatを使用(パターンとロケールを指定)
    System.out.println("DecimalFormatを使用(パターンとロケールを指定)");
    nf = NumberFormat.getPercentInstance(Locale.JAPAN);
    df = (DecimalFormat)nf;
    df.applyPattern("###,###.###");
    System.out.println("日本:" + df.format(99999.999));

    nf = NumberFormat.getPercentInstance(Locale.ITALY);
    df = (DecimalFormat)nf;
    df.applyPattern("###,###.###");
    System.out.println("イタリア:" + df.format(99999.999));
  }
} 
 
■コンパイルと実行
コマンドプロンプト

C:\JavaHello\i18n>java NumberFormatTest
NumberFormatを使用(数値)
日本:99,999.999
イタリア:99.999,999
NumberFormatを使用(通貨)
日本:¥100,000
アメリカ:$100,000.00
NumberFormatを使用(%表示)
日本:99%
イタリア:99%
DecimalFormatを使用(デフォルトのロケールでパターンを指定)
99,999.999
DecimalFormatを使用(パターンとロケールを指定)
日本:99,999.999
イタリア:99.999,999

C:\JavaHello\i18n>

おおおお!国によって表示が違いますね!
 
地域対応したリソースの利用
地域対応したリソースをプログラムと分離して外部にファイルとして持ち、それぞれのロケールに合ったリソースにアクセスすることによって国際化されたプログラムを作ることができます。
■プロパティファイルの作成
Javaのプロパティファイルとは「キー=値」という形式でデータを持つファイルのことです。拡張子は「.properties」にします。各ロケールに対応したプロパティファイルを用意することによってそれぞれのロケールにあった表示を行うことができます。デフォルトのプロパティファイルはロケールを使わない場合に使用されます。
ここで作成するプロパティファイル
MyMessage.properteis ・・・・・・デフォルトのプロパティファイル
MyMessage_en_US.properties・・・アメリカ用プロパティファイル
MyMessage_ja_JP.properties・・・日本用プロパティファイル
MyMessage.properteis
message=Hello World
MyMessage_en_US.properties
message=Hello World
MyMessage_ja_JP.properties
message=こんにちわ 世界
ここで一つ注意が必要です。プロパティファイルに日本語を使用した場合はnative2asciiというツールを使ってASCIIファイルに変換しなければなりません。
コマンドプロンプト
C:\JavaHello\i18n>native2ascii MyMessage_ja_JP.properties MyMessage_ja_JP.properties.bak

C:\JavaHello\i18n>move MyMessage_ja_JP.properties.bak MyMessage_ja_JP.properties
C:\JavaHello\i18n\MyMessage_ja_JP.properties を上書きしますか? (Yes/No/All): y

C:\JavaHello\i18n>

ASCIIファイルに変換されると以下のようになります。
MyMessage_ja_JP.properties
message=\u3053\u3093\u306b\u3061\u308f\u3000\u4e16\u754c
編集しなおすために元に戻したい場合は「-reverse」をつけてnative2asciiを実行します。
コマンドプロンプト
C:\JavaHello\i18n>native2ascii -reverse MyMessage_ja_JP.properties MyMessage_ja_JP.properties.bak

C:\JavaHello\i18n>move MyMessage_ja_JP.properties.bak MyMessage_ja_JP.properties
C:\JavaHello\i18n\MyMessage_ja_JP.properties を上書きしますか? (Yes/No/All): y

C:\JavaHello\i18n>

 
■Javaソースコード
ここではコマンドライン引数にJavaにおける言語名と国名を渡して、その言語と国にあったメッセージを表示したいと思います。とはいっても用意してあるリソースは日本とアメリカだけですが。時間がある人はいろんな地域のリソースを用意して試してみてください。
HelloWorldI18N.java(ここからダウンロード)
import java.util.Locale;
import java.util.ResourceBundle;

public class HelloWorldI18N {

  public static void main(String[] args) {
    String language;
    String country;
    Locale locale;
    if (args.length == 2) {
      language = args[0];
      country = args[1];
    } else {
      language = "en";
      country = "US";
    }
    // ロケールを生成
    locale = new Locale(language,country);
    // 指定されたロケールのリソースバンドルを取得
    ResourceBundle rb = ResourceBundle.getBundle("MyMessage" , locale);
    // プロパティ名から値を取得して表示
    System.out.println(rb.getString("message"));
  }
} 
 
■コンパイルと実行
コマンドプロンプト
C:\JavaHello\i18n>javac HelloWorldI18N.java

C:\JavaHello\i18n>java HelloWorldI18N ja JP
こんにちわ 世界

C:\JavaHello\i18n>java HelloWorldI18N en US
Hello World

C:\JavaHello\i18n>

おおおお!表示されましたね!
 
存在しない言語と国を指定してみましょう。デフォルトのロケールが使用されます。ここではOSが日本語環境なのでデフォルトのロケールは日本になります。
コマンドプロンプト
C:\JavaHello\i18n>java HelloWorldI18N aa AA
こんにちわ 世界

C:\JavaHello\i18n>

おおお!
 
使用可能なロケールの表示
使用可能なロケールの一覧を表示してみます。一覧を取得するにはDateFormatクラスのgetAvailableLocalesメソッドを利用します。
■Javaソースコード
ShowLocales.java(ここからダウンロード)
import java.util.Locale;
import java.text.DateFormat;

public class ShowLocales {
  public static void main(String[] args) {
    // ロケールのリストを取得
    Locale[] list = DateFormat.getAvailableLocales();
    for (int i=0;i<list.length;i++) {
      System.out.println("言語コード:" + list[i].getLanguage() + "  " +
                         "国/地域コード:" + list[i].getCountry() + "  " +
                         "言語:" + list[i].getDisplayLanguage() + "  " +
                         "国:" + list[i].getDisplayCountry());
    }
  }
}
 
■コンパイルと実行
コマンドプロンプト

C:\JavaHello\i18n>java ShowLocales
言語コード:ar 国/地域コード: 言語:アラビア語 国:
言語コード:ar 国/地域コード:AE 言語:アラビア語 国:アラブ首長国連邦
言語コード:ar 国/地域コード:BH 言語:アラビア語 国:バーレーン
言語コード:ar 国/地域コード:DZ 言語:アラビア語 国:アルジェリア
言語コード:ar 国/地域コード:EG 言語:アラビア語 国:エジプト
言語コード:ar 国/地域コード:IQ 言語:アラビア語 国:イラク
言語コード:ar 国/地域コード:JO 言語:アラビア語 国:ヨルダン
言語コード:ar 国/地域コード:KW 言語:アラビア語 国:クウェート
言語コード:ar 国/地域コード:LB 言語:アラビア語 国:レバノン
言語コード:ar 国/地域コード:LY 言語:アラビア語 国:リビア
言語コード:ar 国/地域コード:MA 言語:アラビア語 国:モロッコ
言語コード:ar 国/地域コード:OM 言語:アラビア語 国:オマーン
言語コード:ar 国/地域コード:QA 言語:アラビア語 国:カタール
言語コード:ar 国/地域コード:SA 言語:アラビア語 国:サウジアラビア
言語コード:ar 国/地域コード:SD 言語:アラビア語 国:スーダン
言語コード:ar 国/地域コード:SY 言語:アラビア語 国:シリア
言語コード:ar 国/地域コード:TN 言語:アラビア語 国:チュニジア
言語コード:ar 国/地域コード:YE 言語:アラビア語 国:イエメン
言語コード:be 国/地域コード: 言語:白ロシア語 国:
言語コード:be 国/地域コード:BY 言語:白ロシア語 国:ベラルーシ
言語コード:bg 国/地域コード: 言語:ブルガリア語 国:
言語コード:bg 国/地域コード:BG 言語:ブルガリア語 国:ブルガリア
言語コード:ca 国/地域コード: 言語:カタロニア語 国:
言語コード:ca 国/地域コード:ES 言語:カタロニア語 国:スペイン
言語コード:ca 国/地域コード:ES 言語:カタロニア語 国:スペイン
言語コード:cs 国/地域コード: 言語:チェコ語 国:
言語コード:cs 国/地域コード:CZ 言語:チェコ語 国:チェコ
言語コード:da 国/地域コード: 言語:デンマーク語 国:
言語コード:da 国/地域コード:DK 言語:デンマーク語 国:デンマーク
言語コード:de 国/地域コード: 言語:ドイツ語 国:
言語コード:de 国/地域コード:AT 言語:ドイツ語 国:オーストリア
言語コード:de 国/地域コード:AT 言語:ドイツ語 国:オーストリア
言語コード:de 国/地域コード:CH 言語:ドイツ語 国:スイス
言語コード:de 国/地域コード:DE 言語:ドイツ語 国:ドイツ
言語コード:de 国/地域コード:DE 言語:ドイツ語 国:ドイツ
言語コード:de 国/地域コード:LU 言語:ドイツ語 国:ルクセンブルク
言語コード:de 国/地域コード:LU 言語:ドイツ語 国:ルクセンブルク
言語コード:el 国/地域コード: 言語:ギリシア語 国:
言語コード:el 国/地域コード:GR 言語:ギリシア語 国:ギリシア
言語コード:el 国/地域コード:GR 言語:ギリシア語 国:ギリシア
言語コード:en 国/地域コード:AU 言語:英語 国:オーストラリア
言語コード:en 国/地域コード:CA 言語:英語 国:カナダ
言語コード:en 国/地域コード:GB 言語:英語 国:イギリス
言語コード:en 国/地域コード:IE 言語:英語 国:アイルランド
言語コード:en 国/地域コード:IE 言語:英語 国:アイルランド
言語コード:en 国/地域コード:IN 言語:英語 国:インド
言語コード:en 国/地域コード:NZ 言語:英語 国:ニュージーランド
言語コード:en 国/地域コード:ZA 言語:英語 国:南アフリカ
言語コード:es 国/地域コード: 言語:スペイン語 国:
言語コード:es 国/地域コード:AR 言語:スペイン語 国:アルゼンチン
言語コード:es 国/地域コード:BO 言語:スペイン語 国:ボリビア
言語コード:es 国/地域コード:CL 言語:スペイン語 国:チリ
言語コード:es 国/地域コード:CO 言語:スペイン語 国:コロンビア
言語コード:es 国/地域コード:CR 言語:スペイン語 国:コスタリカ
言語コード:es 国/地域コード:DO 言語:スペイン語 国:ドミニカ共和国
言語コード:es 国/地域コード:EC 言語:スペイン語 国:エクアドル
言語コード:es 国/地域コード:ES 言語:スペイン語 国:スペイン
言語コード:es 国/地域コード:ES 言語:スペイン語 国:スペイン
言語コード:es 国/地域コード:GT 言語:スペイン語 国:グアテマラ
言語コード:es 国/地域コード:HN 言語:スペイン語 国:ホンジュラス
言語コード:es 国/地域コード:MX 言語:スペイン語 国:メキシコ
言語コード:es 国/地域コード:NI 言語:スペイン語 国:ニカラグア
言語コード:es 国/地域コード:PA 言語:スペイン語 国:パナマ
言語コード:es 国/地域コード:PE 言語:スペイン語 国:ペルー
言語コード:es 国/地域コード:PR 言語:スペイン語 国:プエルトリコ
言語コード:es 国/地域コード:PY 言語:スペイン語 国:パラグアイ
言語コード:es 国/地域コード:SV 言語:スペイン語 国:エルサルバドル
言語コード:es 国/地域コード:UY 言語:スペイン語 国:ウルグアイ
言語コード:es 国/地域コード:VE 言語:スペイン語 国:ベネズエラ
言語コード:et 国/地域コード: 言語:エストニア語 国:
言語コード:et 国/地域コード:EE 言語:エストニア語 国:エストニア
言語コード:fi 国/地域コード: 言語:フィンランド語 国:
言語コード:fi 国/地域コード:FI 言語:フィンランド語 国:フィンランド
言語コード:fi 国/地域コード:FI 言語:フィンランド語 国:フィンランド
言語コード:fr 国/地域コード: 言語:フランス語 国:
言語コード:fr 国/地域コード:BE 言語:フランス語 国:ベルギー
言語コード:fr 国/地域コード:BE 言語:フランス語 国:ベルギー
言語コード:fr 国/地域コード:CA 言語:フランス語 国:カナダ
言語コード:fr 国/地域コード:CH 言語:フランス語 国:スイス
言語コード:fr 国/地域コード:FR 言語:フランス語 国:フランス
言語コード:fr 国/地域コード:FR 言語:フランス語 国:フランス
言語コード:fr 国/地域コード:LU 言語:フランス語 国:ルクセンブルク
言語コード:fr 国/地域コード:LU 言語:フランス語 国:ルクセンブルク
言語コード:hi 国/地域コード:IN 言語:ヒンディー語 国:インド
言語コード:hr 国/地域コード: 言語:クロアチア語 国:
言語コード:hr 国/地域コード:HR 言語:クロアチア語 国:クロアチア
言語コード:hu 国/地域コード: 言語:ハンガリー語 国:
言語コード:hu 国/地域コード:HU 言語:ハンガリー語 国:ハンガリー
言語コード:is 国/地域コード: 言語:アイスランド語 国:
言語コード:is 国/地域コード:IS 言語:アイスランド語 国:アイスランド
言語コード:it 国/地域コード: 言語:イタリア語 国:
言語コード:it 国/地域コード:CH 言語:イタリア語 国:スイス
言語コード:it 国/地域コード:IT 言語:イタリア語 国:イタリア
言語コード:it 国/地域コード:IT 言語:イタリア語 国:イタリア
言語コード:iw 国/地域コード: 言語:ヘブライ語 国:
言語コード:iw 国/地域コード:IL 言語:ヘブライ語 国:イスラエル
言語コード:ja 国/地域コード: 言語:日本語 国:
言語コード:ja 国/地域コード:JP 言語:日本語 国:日本
言語コード:ko 国/地域コード: 言語:韓国語 国:
言語コード:ko 国/地域コード:KR 言語:韓国語 国:大韓民国
言語コード:lt 国/地域コード: 言語:リトアニア語 国:
言語コード:lt 国/地域コード:LT 言語:リトアニア語 国:リトアニア
言語コード:lv 国/地域コード: 言語:ラトビア語 (レット語) 国:
言語コード:lv 国/地域コード:LV 言語:ラトビア語 (レット語) 国:ラトビア
言語コード:mk 国/地域コード: 言語:マケドニア語 国:
言語コード:mk 国/地域コード:MK 言語:マケドニア語 国:マケドニア
言語コード:nl 国/地域コード: 言語:オランダ語 国:
言語コード:nl 国/地域コード:BE 言語:オランダ語 国:ベルギー
言語コード:nl 国/地域コード:BE 言語:オランダ語 国:ベルギー
言語コード:nl 国/地域コード:NL 言語:オランダ語 国:オランダ
言語コード:nl 国/地域コード:NL 言語:オランダ語 国:オランダ
言語コード:no 国/地域コード: 言語:ノルウェー語 国:
言語コード:no 国/地域コード:NO 言語:ノルウェー語 国:ノルウェー
言語コード:no 国/地域コード:NO 言語:ノルウェー語 国:ノルウェー
言語コード:pl 国/地域コード: 言語:ポーランド語 国:
言語コード:pl 国/地域コード:PL 言語:ポーランド語 国:ポーランド
言語コード:pt 国/地域コード: 言語:ポルトガル語 国:
言語コード:pt 国/地域コード:BR 言語:ポルトガル語 国:ブラジル
言語コード:pt 国/地域コード:PT 言語:ポルトガル語 国:ポルトガル
言語コード:pt 国/地域コード:PT 言語:ポルトガル語 国:ポルトガル
言語コード:ro 国/地域コード: 言語:ルーマニア語 国:
言語コード:ro 国/地域コード:RO 言語:ルーマニア語 国:ルーマニア
言語コード:ru 国/地域コード: 言語:ロシア語 国:
言語コード:ru 国/地域コード:RU 言語:ロシア語 国:ロシア
言語コード:sh 国/地域コード: 言語:セルボ=クロアチア語 国:
言語コード:sh 国/地域コード:YU 言語:セルボ=クロアチア語 国:ユーゴスラビア連邦
言語コード:sk 国/地域コード: 言語:スロバキア語 国:
言語コード:sk 国/地域コード:SK 言語:スロバキア語 国:スロバキア
言語コード:sl 国/地域コード: 言語:スロベニア語 国:
言語コード:sl 国/地域コード:SI 言語:スロベニア語 国:スロベニア
言語コード:sq 国/地域コード: 言語:アルバニア語 国:
言語コード:sq 国/地域コード:AL 言語:アルバニア語 国:アルバニア
言語コード:sr 国/地域コード: 言語:セルビア語 国:
言語コード:sr 国/地域コード:YU 言語:セルビア語 国:ユーゴスラビア連邦
言語コード:sv 国/地域コード: 言語:スウェーデン語 国:
言語コード:sv 国/地域コード:SE 言語:スウェーデン語 国:スウェーデン
言語コード:th 国/地域コード: 言語:タイ語 国:
言語コード:th 国/地域コード:TH 言語:タイ語 国:タイ
言語コード:tr 国/地域コード: 言語:トルコ語 国:
言語コード:tr 国/地域コード:TR 言語:トルコ語 国:トルコ
言語コード:uk 国/地域コード: 言語:ウクライナ語 国:
言語コード:uk 国/地域コード:UA 言語:ウクライナ語 国:ウクライナ
言語コード:zh 国/地域コード: 言語:中国語 国:
言語コード:zh 国/地域コード:CN 言語:中国語 国:中華人民共和国
言語コード:zh 国/地域コード:HK 言語:中国語 国:香港
言語コード:zh 国/地域コード:TW 言語:中国語 国:台湾
言語コード:en 国/地域コード: 言語:英語 国:
言語コード:en 国/地域コード:US 言語:英語 国:アメリカ合衆国

C:\JavaHello\i18n>

おおお!一覧が表示されましたね。
 
上の一覧を参考にして韓国のLocaleオブジェクトを作って見ましょう。
Locale krLocale = new Locale("ko" , "KR");
上記のように韓国のLocaleオブジェクトを作ることができます。
■関連
国際化(タイムゾーン)編
■書籍
Java関連の書籍

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME