複数のユーザー言語をサポートする Android アプリを開発しています。
アプリでは、java.util.NumberFormat を使用して通貨をフォーマットしています。
String formatCurrency(String amount) {
// getCurrentLocale determines the locale from the user's selected language;
// if the user selects de_DE as the app's language, then this method will return Locale.Germany
final Locale locale = getCurrentLocale();
final NumberFormat formatter = NumberFormat.getCurrencyInstance(locale);
return formatter.format(new BigDecimal(amount));
}
私が使用しているテスト デバイスは HTC G2 で、これには英語とスペイン語の 2 つのデバイス言語オプションがあります。
では、アプリのユーザー言語を「de_DE」に選択します。
// When my device language is english, if I call:
System.out.println(formatCurrency("1.79"));
// I got:
1.79 €
// But when I switch my device language to spanish:
System.out.println(formatCurrency("1.79"));
// I got :
1.79 EUR
ここでの私の質問は、どちらの場合でも、NumberFormat で € を取得できるかということです。