Laravel自定义验证器消息从另一个位置翻译



如何将翻译从resources/lang/*/validation.php以外的其他位置加载到vendor/package/src/translation/*/validation.php

我在路径vendor/package/src/translation/*/validation.php上创建了翻译文件:

<?php
return [
'custom' => [
'search_text' => [
'string' => 'A nice message.',
'not_regex' => 'Regex failed.',
],
],
'attributes' => [
'search_text' => 'Search text',
],
];

我已经在服务提供商中启动了自己的验证器:

$this->app->validator->resolver( function( $translator, $data, $rules, $messages = array(), $customAttributes = array() ) {
return new MyValidator( $translator, $data, $rules, $messages, $customAttributes );
} );

我已经创建了 ofc 验证器类。但是我不知道如何将验证器和翻译从自定义位置转换为工作。如果两个文件中都出现任何交集,则输出应由自定义文件重载。 感谢您的帮助。:)

如果您的软件包包含翻译文件,您可以使用loadTranslationsFrom方法通知 Laravel 如何加载它们,并应将以下内容添加到服务提供商的引导方法中:

public function boot()
{
$this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'name');
}

包翻译使用package::file.line语法约定进行引用。

echo trans('name::file.line');

相关内容

最新更新