我正在将我的应用程序从Java(Android)转换为Flutter(Dart),我找不到从上下文或国家代码中获取货币的方法。
Java代码:
String country = Locale.getDefault().getCountry();
String currency = Currency.getInstance(new Locale("", country)).getCurrencyCode();
Dart代码:
Locale locale = Localizations.localeOf(context);
String country = locale.countryCode;
发布于 2019-11-08 12:54:32
英特包起了作用
import 'package:intl/intl.dart';
void currency() {
Locale locale = Localizations.localeOf(context);
var format = NumberFormat.simpleCurrency(locale: locale.toString());
print("CURRENCY SYMBOL ${format.currencySymbol}"); // $
print("CURRENCY NAME ${format.currencyName}"); // USD
}
发布于 2020-09-18 12:25:02
如果应用程序支持用户的区域设置,则接受的答案确实有效,但如果没有显式地添加对用户区域设置的支持,则不会工作。
相反,您可以从Platform.localeName
包中使用dart:io
,该包将获取设备本身的区域设置。
例如:
import 'package:intl/intl.dart';
import 'dart:io';
String getCurrency() {
var format = NumberFormat.simpleCurrency(locale: Platform.localeName);
return format.currencySymbol;
}
发布于 2021-07-06 11:56:45
默认情况下,国家符号以美元为单位,要使您的本地符号添加以下名称属性(对于尼日利亚- Naira):
import 'package:intl/intl.dart';
import 'dart:io';
String getCurrency() {
var format = NumberFormat.simpleCurrency(locale: Platform.localeName, name: 'NGN');
return format.currencySymbol;
}
https://stackoverflow.com/questions/58766133
复制相似问题