gpt4 book ai didi

laravel - 如何用你的包语言覆盖 Laravel 的语言文件

转载 作者:行者123 更新时间:2023-12-02 17:01:06 26 4
gpt4 key购买 nike

我正在尝试用我的包中的语言覆盖 resources/lang/en 下的默认 laravel 英语包。

该包只是将自己的语言文件发布到例如resources/lang/vendor/*package-name*/de 并且其中包含与 laravel 标准 lang 文件相同的文件,如 validation.phpauth。 php.

有没有办法告诉 Laravel 使用这些包翻译?

最佳答案

来自documentation ,

Package translation files are typically referenced using a double-colon syntax.

在包的服务提供者的 boot 方法中加载您的翻译时,您需要告诉 Laravel 它的位置。假设您的包名称是 acme,您将拥有类似这样的内容。

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

然后加载翻译,你会做这样的事情:

trans('acme::file.line');

编辑:如果您想提供自定义验证消息,您需要在 Form Request 中添加一个 messages() 方法。 .例如:

public function messages() 
{
return [
'field' => trans('acme::validation.field')
];
}

如果您手动创建 Validator 实例,您可以这样做:

$messages = [
'field' => trans('acme::validation.field')
];

$validator = Validator::make($input, $rules, $messages);

编辑:因为 resources/lang/en/validation.php 包含一个键值对数组,你可以用这个替换文件的内容:

<?php

return trans('acme::validation');

并假设您的包的验证文件正在返回一个键值对数组,这应该可以解决问题。

关于laravel - 如何用你的包语言覆盖 Laravel 的语言文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54145424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com