import java.util.Locale; public class LocaleDisplay { public static void main(String[] args) { // 現在のロケール取得 Locale local = Locale.getDefault(); // jaを得る String language = local.getLanguage(); if( "ja".equals(language) ){ System.out.println("こんにちは"); }else{ System.out.println("hello"); } } }
使うPC環境によって言語が違いますが、例えば英語表示させたい場合
上のを思いついたのですが、表示する言葉が多い場合、if文が多くなるので
下の配列にデータベースみたいに入れてみました
import java.util.Locale; public class LocaleDisplay_Allay { public static void main(String[] args) { Locale local = Locale.getDefault(); String language = local.getLanguage(); String[] asa = {"おはよう","morning"}; String[] hiru = {"こんにちは","hello"}; String[] ban = {"さよなら","bye"}; int a; if( "ja".equals(language) ){ a = 0; }else{ a = 1; } System.out.println(asa[a]); System.out.println(hiru[a]); System.out.println(ban[a]); } }
これらはよく使われる記述なのか? 他にやり方があるのか知りたいです。
今はandroidアプリが作りたくてjavaを勉強してます
android studioにはエディタで弄れるローカライズ方法が備わっていると聞いたのですが
javaではどうするのだろうと気になったので質問しました
>>>>>>>>
みなさんの言っていたPropertiesで書いてみました
try分の例外の書き方がわからなかったのでテキトウですがなんとか表示されました
あと文字化けに苦労しましたがnative2asciiで出来ました
自分の参考にコードを載せときます
jp.properties
asa=おはよう hiru=こんにちは ban=さよなら
en.properties
asa = morning hiru = hello ban = bye
import java.util.Locale; import java.util.Properties; import java.io.FileInputStream; public class LocaleDisplay_Properties { public static void main(String[] args) { Locale local = Locale.getDefault(); String language = local.getLanguage(); String country; if( "ja".equals(language) ){ country = "jp.properties"; }else{ country = "english.properties"; } Properties properties = new Properties(); try { FileInputStream myConfFileIn = new FileInputStream(country); properties.load(myConfFileIn); } catch (Exception ex) { System.out.println("error"); } System.out.println(properties.getProperty("asa")); System.out.println(properties.getProperty("hiru")); System.out.println(properties.getProperty("ban")); } }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/18 15:34