演習課題「ロケールを日本として、ResourceBundle を取得してみよう」
現在、ロケールを日本として、ResourceBundle
を取得しようとしています。
まず、Locale
クラスのsetDefault
メソッドを使用して、デフォルトのロケールをJAPAN
に設定してください。
その後、ResourceBundle.getBundle
メソッドを使い、ResourceBundle
を取得してください。
その際、引数には、propertyファイル の基底名を指定します。
最後に、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。$ javac -d classes/jp.paiza.i18n -p classes source/jp.paiza.i18n/module-info.java source/jp.paiza.i18n/jp/paiza/i18n/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。$ java -p classes --module jp.paiza.i18n/jp.paiza.i18n.Test
期待する出力値
ja_JP1
ja_JP2
演習課題「ロケールをフランスとして、ResourceBundle を取得してみよう」
現在、ロケールをフランスとして、ResourceBundle
を取得しようとしています。Locale
クラスのsetDefault
メソッドを使用して、デフォルトのロケールをFRANCE
に設定してください。
その後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。$ javac -d classes/jp.paiza.i18n -p classes source/jp.paiza.i18n/module-info.java source/jp.paiza.i18n/jp/paiza/i18n/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。$ java -p classes --module jp.paiza.i18n/jp.paiza.i18n.Test
期待する出力値
fr1
fr2
演習課題「ロケールをドイツとして、ResourceBundle を取得してみよう」
現在、ロケールをドイツとして、ResourceBundle
を取得しようとしています。Locale
クラスのsetDefault
メソッドを使用して、デフォルトのロケールをGERMANY
に設定してください。
その後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。$ javac -d classes/jp.paiza.i18n -p classes source/jp.paiza.i18n/module-info.java source/jp.paiza.i18n/jp/paiza/i18n/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。$ java -p classes --module jp.paiza.i18n/jp.paiza.i18n.Test
期待する出力値
value1
value2
#03:ResourceBundle
このチャプターでは、ResourceBundleについて学習します。
クラスResourceBundle
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/ResourceBundle.html
クラスPropertyResourceBundle
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/PropertyResourceBundle.html
クラスLocale
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/Locale.html
ResourceBundle.getBundle
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/util/ResourceBundle.html#getBundle(java.lang.String,java.util.Locale,java.lang.ClassLoader)
コンパイルjavac -d classes/jp.paiza.i18n -p classes source/jp.paiza.i18n/module-info.java source/jp.paiza.i18n/jp/paiza/i18n/*.java
実行java -p classes --module jp.paiza.i18n/jp.paiza.i18n.A
日本語などをプロパティファイルに設定する場合は、Unicode表記にする必要がありました。
その変換ツールとして、native2asciiがありましたが、現在ツールはJDKから削除されています。
これは、JDK9以降のリリースではUTF-8ベースのプロパティ・リソース・バンドルがサポートされているため、UTF-8ベースのプロパティ・リソース・バンドルのISO-8859-1への変換ツールが必要なくなったためです。
プロパティファイルの文字コードがUTF-8の場合は、問題なく読み取ることが可能です。