Yii2 如何修复格式化程序spellot

Yii2 如何修复格式化程序spellot,yii2,Yii2,asSpellaut有时工作不正确。设置其他功能的解决方案是否在asSpellout下? 代码: EUR 例如,在拉脱维亚实际的Yii2 spelaut 1978中是“viens tūkstoši deviņsimt septi desmit astoņi”,但正确的是“viens tūkstotis deviņdesmit astoņi septi astoņi septi astoņi”asSpellout()使用PHP内部扩展 1) 尝试使用不同选项直接使用或NumberFormatte

asSpellaut有时工作不正确。设置其他功能的解决方案是否在asSpellout下? 代码:

EUR
例如,在拉脱维亚实际的Yii2 spelaut 1978中是“viens tūkstoši deviņsimt septi desmit astoņi”,但正确的是“viens tūkstotis deviņdesmit astoņi septi astoņi septi astoņi”

asSpellout()使用PHP内部扩展

1) 尝试使用不同选项直接使用或NumberFormatter:

MessageFormatter::formatMessage("lv_LV", "{0, spellout}",[1978]);
有关详细信息,请参阅“邮件格式”和“数字格式”选项卡

2) 您还可以使用翻译:

echo \Yii::t('app', '{0, number} is spelled as {0, spellout}', [1978]);
3) 或者,您可以扩展Formatter类并实现自己的asSpellout方法:

// components/Formatter.php
namespace app\components;

class Formatter extends \yii\i18n\Formatter
{
    public function asSpellout ($value) {
        ...
    }
}
并将该类设置为应用程序组件

// config/web.php
'components' => [
    ...
    'formatter' => [
        'class' => 'app\components\Formatter',
    ],
],
// config/web.php
'components' => [
    ...
    'formatter' => [
        'class' => 'app\components\Formatter',
    ],
],