Flutter Dart中的货币格式(按区域设置)
我可以通过以下方式获得货币格式的数字:Flutter Dart中的货币格式(按区域设置),flutter,dart,internationalization,intl,Flutter,Dart,Internationalization,Intl,我可以通过以下方式获得货币格式的数字: final myLocale = Localizations.localeOf(context).toString(); final longNumberFormat = NumberFormat.currency(locale: myLocale, symbol: mySymbol, decimalDigits: 2); print(longNumberFormat.format(1234)); 其结果是: 对于“en_US”区域设置:1234.00美
final myLocale = Localizations.localeOf(context).toString();
final longNumberFormat = NumberFormat.currency(locale: myLocale, symbol: mySymbol, decimalDigits: 2);
print(longNumberFormat.format(1234));
其结果是:
对于“en_US”区域设置:1234.00美元
对于区域设置“es”或“es_AR”:1.234,00$
在第一种情况下(en_US)是正确的,但在最后一种情况下(es_AR)是错误的,即阿根廷西班牙语(我的国家),我们不在末尾使用符号,我们在前面使用符号,就像美国一样,但点/逗号是正确的
这是图书馆的错误吗?这有什么办法吗
谢谢似乎还没有添加
es_AR
,所以它又回到了其他方面,也许是es
?。也许你可以为这个软件包做些贡献,然后自己添加?我想这是它应该去的地方
编辑:如前所述,该文件是从CLDR生成的,因此不应更改dart文件。也许您可以将问题提交到github页面,或者选择Alan Knight建议的解决方案。如上所述,数据中没有es_AR。您不能修改该文件,因为它是从CLDR数据生成的,将被覆盖。但您可以在运行时对其进行修改,以添加缺少的条目或修改现有条目。例如,我在这里创建了一个条目,其中我使用了“es”条目并将货币符号(\u00a4)移到了开头
import 'package:intl/intl.dart';
import 'package:intl/number_symbols.dart';
import 'package:intl/number_symbols_data.dart';
main() {
var argentina = NumberSymbols(
NAME: "es_AR",
DECIMAL_SEP: ',',
GROUP_SEP: '.',
PERCENT: '%',
ZERO_DIGIT: '0',
PLUS_SIGN: '+',
MINUS_SIGN: '-',
EXP_SYMBOL: 'E',
PERMILL: '\u2030',
INFINITY: '\u221E',
NAN: 'NaN',
DECIMAL_PATTERN: '#,##0.###',
SCIENTIFIC_PATTERN: '#E0',
PERCENT_PATTERN: '#,##0\u00A0%',
CURRENCY_PATTERN: '\u00A4#,##0.00\u00A0',
DEF_CURRENCY_CODE: r'$');
numberFormatSymbols['es_AR'] = argentina;
var f = NumberFormat.currency(locale: 'es_AR');
print(f.format(1234));
}
啊,是的,应该读一下文件顶部的评论。我会更正我的帖子。好的!