Java国際化プログラミング
ロケール
C言語ではmain関数内でsetlocaleなどのロケール関数を呼び出しますが
(こちらを参照)、Javaの場合は
通常、こういった処理は必要ありません。
但し、明示的にロケールを設定したい場合
(例えば、ファイルに指定されているロケールで動作させたい場合など)
は、以下のようなメソッドをmainメソッド内で呼ぶことでアプリケーション全体に
指定したロケールを反映することができます。
public static void main(String[] args) {
Locale.setDefault(bundle.getLocale());
// *SwingのAPI(JFileChooserなど)には以下のメソッドが必要です。
JComponent.setDefaultLocale(bundle.getLocale());
...
}
以下のクラスは国際化されています。これらのクラスのメソッドはロケールの
影響を受けます。
------------------------------------------------------------------------
国際化されているクラス
------------------------------------------------------------------------
java.io.InputStreamReader
java.io.OutputStreamWriter
java.lang.Character
java.lang.Character.Subset
java.lang.Character.UnicodeBlock
java.text.AttributedCharacterIterator
java.text.AttributedCharacterIterator.Attribute
java.text.BreakIterator
java.text.CharacterIterator
java.text.ChoiceFormat
java.text.CollationElementIterator
java.text.CollationKey
java.text.Collator
java.text.DateFormat
java.text.DateFormatSymbols
java.text.DecimalFormat
java.text.DecimalFormatSymbols
java.text.FieldPosition
java.text.Format
java.text.MessageFormat
java.text.NumberFormat
java.text.ParsePosition
java.text.RuleBasedCollator
java.text.SimpleDateFormat *1)
java.text.StringCharacterIterator
java.util.Calendar
java.util.GregorianCalendar
java.util.ListResourceBundle
java.util.Locale
java.util.PropertyResourceBundle
java.util.ResourceBundle
java.util.SimpleTimeZone
java.util.TimeZone
java.awt.ComponentOrientation
java.awt.Font
java.awt.GraphicsEnvironment
java.awt.font.TextLayout
java.awt.font.CaretPolicy
java.awt.im.InputContext
java.awt.im.InputMethodRequests
java.awt.im.InputMethodHighlight
java.awt.im.InputSubset
java.awt.im.spi.InputMethod
java.awt.im.spi.InputMethodContext
java.awt.im.spi.InputMethodDescriptor
------------------------------------------------------------------------
なお以下のメソッドは非推奨の国際化メソッドですので、推奨される代替メソッドの
方を使用するようにしてください。
------------------------------------------------------------------------
非推奨メソッド 代替メソッド
------------------------------------------------------------------------
java.util.Date.getDate java.util.Calendar.get
java.util.Date.getDay java.util.Calendar.get
java.util.Date.getHours java.util.Calendar.get
java.util.Date.getMinutes java.util.Calendar.get
java.util.Date.getMonth java.util.Calendar.get
java.util.Date.getSeconds java.util.Calendar.get
java.util.Date.getTimezoneOffset java.util.Calendar.get
java.util.Date.getYear java.util.Calendar.get
java.util.Date.parse java.text.DateFormat.parse
java.util.Date.setDate java.util.Calendar.set
java.util.Date.setHours java.util.Calendar.set
java.util.Date.setMinutes java.util.Calendar.set
java.util.Date.setMonth java.util.Calendar.set
java.util.Date.setSeconds java.util.Calendar.set
java.util.Date.setYear java.util.Calendar.set
java.util.Date.toString java.text.DateFormat.format
java.util.Date.toGMTString java.text.DateFormat.format
java.util.Date.toLocaleString java.text.DateFormat.format
java.util.Date.UTC java.util.Calendar.set
java.io.DataInputStream.readLine java.io.BufferdReader.readLine
java.lang.Runtime.getLocalizedInputStream java.io.InputStreamReader
java.lang.Runtime.getLocalizedOutputStream java.io.OutputStreamWriter
java.lang.Character.isSpace java.lang.Character.isWhitespece
------------------------------------------------------------------------
*1)SimpleDateFormatは国際化されていますが、DateFormatが推奨されています。
国際化プログラミングトップへ
Copyright (C) 2012 Kokusaika JP, Inc.
本ドキュメントを無断で転載および引用することを禁じます。