について質問がありJOptionPane.showConfirmDialog
ます。取得するボタンはYes
、 、No
およびですが、Cancel
これら 3 つのボタンを自分の言語にローカライズできないか疑問に思っていました。自分との確認ダイアログを自分で作成できることはわかっていますJButtons
が、これも可能かどうか疑問に思っていました.
前もって感謝します。
について質問がありJOptionPane.showConfirmDialog
ます。取得するボタンはYes
、 、No
およびですが、Cancel
これら 3 つのボタンを自分の言語にローカライズできないか疑問に思っていました。自分との確認ダイアログを自分で作成できることはわかっていますJButtons
が、これも可能かどうか疑問に思っていました.
前もって感謝します。
簡単な方法は、次のように JOptionPane に目的のロケールを設定することです。
Locale locale = new Locale("pt","BR");
JOptionPane.setDefaultLocale(locale);
ResourceBundle からのすべてのメッセージを処理するシングルトン クラスがある場合は、ロケールの初期化で一度だけ設定する必要があります。例えば:
public void setLocale(Locale locale) {
if (_bundle == null || !locale.equals(_locale)) {
_locale = locale;
_bundle = ResourceBundle.getBundle("resources.i18n.MessagesBundle", locale);
JOptionPane.setDefaultLocale(_locale);
_logger.info("Got new resource bundle for language-country: " + _locale.getLanguage() + "-" +
locale.getCountry());
}
}
乾杯!
これで十分です:
UIManager.put("OptionPane.yesButtonText", "Ya");
等
ドイツ語を含むほとんどの使用言語の標準ダイアログのすべてのローカライズされたメッセージは、Swing PLAF リソース バンドルによって提供され、JDK ソースで見つけることができます。英語のメッセージについては、次の例を参照してください。
英語以外の言語の文字列値は、隣接するバンドル ファイルによって提供されます。
また、めったに使用されない言語の場合は、目的の言語用のファイルをもう 1 つ作成し、それをクラスパスの任意の場所に配置するだけで、これらのファミリのいずれかにバンドルをもう 1 つ追加できます。.java 形式と .properties 形式のバンドルは同じように機能しますが、.java 形式の方がわずかに Unicode に適している可能性があります...
com.sun
パッケージにコンテンツを直接追加すると Java ライセンスに違反する可能性があるので注意してください。安全のために、余分なリソースを独自のパッケージに移動し、次のUIManager
ように登録することをお勧めします。
UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");