首页 > 解决方案 > 在 Laravel 中翻译自定义验证规则消息?

问题描述

我的应用程序中有两种可能的语言,en并且de.

我使用本地化和 json 字符串翻译它。

这是一个字段验证的一部分:

 if (!empty($value) && (!empty($var1) || empty($var2))) {
    $fail('Hier ist ein deutscher Satz geschrieben.');
 }

这是附属的json:

{
  "Hier ist ein deutscher Satz geschrieben." : "Here is written an english sentence."
}

这个翻译工作得很好,但是如果我在这样的句子中包含一个 $value:

if (!empty($value) && (!empty($var1) || empty($var2))) {
   $fail('Hier ist ein' ".$value." ' deutscher Satz geschrieben');
}

...我不能再用 json 翻译它,因为我不能只是拆分句子。
有没有办法可以翻译带有动态变量的自定义验证规则消息?

标签: laravelvalidationtranslation

解决方案


我只是在里面放了另一个 if 子句并检查应用程序的 $locale 是否ende. 它就是这样工作的。

if (!empty($value) && (!empty($var1) || empty($var2))) {
  if (app()->getLocale() == 'en') {
    $fail('Here is written a "' .$value '" enlgish sentence.);
  } else {
     $fail('Hier ist ein "' .$value. '" deutscher Satz geschrieben');
  }
}

推荐阅读