スタンドアロン アプリケーションをローカライズしたいです。たとえば、GMT タイム ゾーンを米国に変更すると、アプリケーションのすべての通貨形式、時間形式、数値形式が米国形式に変更されるはずです。私はこの国際化に0であるため、私を案内してください....私が開発しているデスクトップアプリケーションは、データベースアクセス用のJavaおよび休止状態のINDIAN Hospital ERPです。
質問する
131 次
1 に答える
2
Java を使用するときは常に、これがデスクトップ、モバイル、Web アプリケーションのいずれであっても、気にする必要があるのは Locale(s) の使用です。つまり、それらを検出する必要があります。
データをロケール対応に変更する場合は、次を使用する必要があります (Java 7)
// Detecting locale in desktop application
Locale fmtLocale = Locale.getDefault(LocaleCategory.FORMAT);
DateFormat dateFmt = DateFormat.getDateTimeInstance(
DateFormat.DEFAULT, DateFormat.DEFAULT, fmtLocale);
dateFmt.setTimeZone(theTimeZone); // ommited
Date now = new Date();
String formattedDate = dateFmt.format(now);
// do something with formatted date
// Similarily for numbers, percentages and currencies
NumberFormat numberFmt = NumberFormat.getInstance(fmtLocale);
NumberFormat percentFmt = NumberFormat.getPercentInstance(fmtLocale);
NumberFomrat currencyFmt = NumberFormat.getCurrencyInstance(fmtLocale);
どのような状況でも、これをタイムゾーンと結び付けるべきではありません。たとえば、米国にはいくつかのタイム ゾーンがあるため、実際には意味がありません。これが米国のタイムゾーンであるかどうかを確認し (これは最も簡単なことではありません)、デフォルトのロケールを割り当てるなどのひどいことを行う必要があります (これにより、この JVM で実行されているすべてのプログラムにロケールが割り当てられますが、非常に悪い考えです)。ロケールを検出するだけで十分です (これは実際には i18n のベスト プラクティスです)。
于 2013-06-01T11:39:00.100 に答える