Laravel在翻译中使用翻译

zd287kbt  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(156)

假设我在App\resources\lang\en\validation.php中有以下翻译:

'different' => 'The attribute "' . __('strings.:attribute') . '" cannot be the same as the ":other" attribute',

我的问题就在这里:

__('strings.:attribute')

这将不会被翻译。如果我手动执行以下操作进行测试:

__('strings.something')

我的问题是,如何让它与__('strings.:attribute')一起工作,为什么它不像我想的那样工作?

iih3973s

iih3973s1#

您必须记住,存在两种不同的上下文:

  • 当框架确实需要您的翻译时
  • 实际使用翻译字符串并替换属性时

属性必须是要替换的结果字符串的一部分,它们不能是php代码的一部分
比如:

__('strings.:attribute')

无法工作。
如果您要重命名验证消息中的属性,可以使用laravel:
validation.php

'different' => 'The attribute ":attribute" cannot be the same as the ":other" attribute',
'attributes' => [
   // your attributes
   'something' => 'MySomething'
]

您将看到如下所示的错误:

{"something.different": "The attribute \"MySomething\" cannot be the same as the \"MyOther\" attribute"}

相关问题