【问题标题】:How to Customize Yii2 english validations messages translations?如何自定义 Yii2 英文验证消息翻译?
【发布时间】:2016-01-22 10:32:13
【问题描述】:

我想在整个应用程序中更改英文验证消息。

例如:

显示“必填字段”而不是“需要出生日期”。

我尝试将 I18N 组件配置如下:

'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@common/messages',
                    'sourceLanguage' => 'en',
                    'fileMap' => [
                        'yii' => 'yii.php',
                    ]
                    // 'on missingTranslation' => ['app\components\TranslationEventHandler', 'handleMissingTranslation']
                ],
            ],

但不工作

【问题讨论】:

  • 无法理解您的问题。使用一些示例或任何内容,或包含任何页面的屏幕截图。您要更改语言还是要自定义消息?

标签: php yii yii2 yii2-advanced-app


【解决方案1】:

要为整个应用程序全局更改语言,请将language 添加到您的配置中:

return [
    ...
    'language' => 'ru',
    ...
],

这是俄语,你可以设置任何你想要的语言。但框架消息仅翻译成流行语言,您可以打开vendor/yiisoft/yii2/messages 文件夹查看完整列表。也可以参考IETF language tags page。

要为特定的验证规则更改消息,请使用message 选项:

['attributeName', 'validatorName', 'message' => 'Your customized message'],

请注意,如果您的应用是多语言的,您可以在此处使用国际化 (Yii::t())。

【讨论】:

  • 我想自定义英语而不是更改语言。
  • 所以在验证规则中设置message 选项。
  • 我想通过消息翻译文件在所有应用程序中更改它。
【解决方案2】:
['attribute', 'validator', 'message' => 'Your message {attribute}'],

【讨论】:

  • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
猜你喜欢
  • 1970-01-01
  • 2014-04-02
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
相关资源
最近更新 更多