我正在开发一个支持多种用户语言的 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,它有两种设备语言选项——英语和西班牙语。
好的,现在我选择我的应用程序的用户语言为“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 给我€吗?