Yii2国际化翻译不适用于模型验证



我已经设置了i18n,它可以完美地用于除核心验证器和模型属性标签之外的所有内容。有什么办法吗?

commonmodelsStudent.php中,我设置了验证规则,以便密码输入至少需要5个字符,并且需要手机:

['password', 'string', 'length' => [5]],
['phone', 'required'],

我还设置了属性标签:

public function attributeLabels() {
return [
'password' => Yii::t('app', 'Password'),
'phone' => Yii::t('app', 'Phone Number'),
];
}

我还在消息文件中设置了他们各自的翻译(除了验证外,它适用于所有内容)

现在,当我用英语验证模型时,我得到以下信息:

密码应至少包含5个字符。

电话号码不能为空。

这表明英语非常好用。然而,当我尝试阿拉伯语时,我会得到以下内容:

{attribute}يبأنيحديعلىإصرمِ{min,number}{min:复数,一个{1581;。

电话号码:。

正在从Yii2框架文件加载阿拉伯语翻译:https://github.com/yiisoft/yii2-framework/blob/master/messages/ar/yii.php

您可以这样做:

['password', 'string', 'length' => [5], 'message' => Yii::t('app', 'Password must be over 5 characters long')],
['phone', 'required', 'message' => Yii::t('app', 'phone is required')],

中解决的问题https://github.com/yiisoft/yii2/issues/8173

需要覆盖预定义的类别和阿拉伯语的问题

最新更新