使用带有es_ES语言环境的NumberFormatter :: formatCurrency的格式错误

时间:2015-07-13 13:41:00

标签: php locale currency currency-formatting

我正在使用NumberFormatter :: formatCurrency为我的网站进行货币显示。

我做了一个肮脏的测试,看看是否一切都很好,就像这样:

    $nf = new \NumberFormatter('es_ES', \NumberFormatter::CURRENCY);
    var_dump($nf->formatCurrency(3000.05, 'EUR'));
    $nf = new \NumberFormatter('de_DE', \NumberFormatter::CURRENCY);
    var_dump($nf->formatCurrency(3000.05, 'EUR'));
    $nf = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
    var_dump($nf->formatCurrency(3000.05, 'EUR'));
    $nf = new \NumberFormatter('en_GB', \NumberFormatter::CURRENCY);
    var_dump($nf->formatCurrency(3000.05, 'EUR'));
    $nf = new \NumberFormatter('fr_FR', \NumberFormatter::CURRENCY);
    var_dump($nf->formatCurrency(3000.05, 'EUR'));

结果是

string(14) "3 000,05 €"
string(13) "3.000,05 €"
string(11) "€3,000.05"
string(11) "€3,000.05"
string(14) "3 000,05 €"

所以一切看起来都很好,除了es_ES语言环境,因为在西班牙我们使用的格式与德国相同:X.XXX,XX€

如果我在我的机器上运行命令locale -a,我会得到

C
C.UTF-8
en_GB.utf8
en_US.utf8
es_ES.utf8
POSIX

那么,问题出在哪里? es_ES案例中的语言环境定义是否有误?

0 个答案:

没有答案