【发布时间】:2020-03-07 03:38:53
【问题描述】:
我有一个 Laravel 应用程序和另一个通过 API 调用 Laravel 的应用程序。这两个项目是分开的。
Laravel 和 App 有自己的多语言系统。他们独立工作,但使用相同的关键翻译。
所以我的想法是所有 Laravel 响应都必须是翻译键,例如:'messages.success'。
有了这个响应,应用就可以翻译它。
所有这些都工作正常。
当我开始使用 Laravel Requests 来验证表单时,问题就出现了。 在这种情况下,验证错误会自动翻译,因此 App 会收到使用 Laravel 应用程序默认语言翻译的响应。
那我该怎么办?
我想到了 2 个想法,但我不知道它们是否可行。
1:将语言传递给参数。不知道能不能用,如何在 Laravel 验证 Request 之前设置语言?
2:重写请求的功能以返回不带翻译的消息,因此返回“messages.success”而不是“Felicidades”。我真的很喜欢这种方法。但是我怎样才能为所有规则做到这一点?像这样覆盖消息函数:
public function messages()
{
return [
'unique' => 'validation.unique'
];
}
因为每条规则都有效……但我感觉很糟糕。
其他方法?
解决此问题的最佳方法是什么?
【问题讨论】:
-
嘿,好问题。你使用的 Laravel 版本是什么?
-
尝试使用最新的 6.4.1
标签: laravel api validation request translation