我已经设置了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
需要覆盖预定义的类别和阿拉伯语的问题