如何覆盖 Laravel 包的 JSON 翻译?

阿拉里瓦

为 Laravel >= 5.4构建了一个验证包,它使用 JSON 翻译文件作为验证消息

我想让应用程序覆盖该消息翻译。

Laravel提供了命名空间trans()但是,看起来只有常规.php翻译才允许命名空间。

我无法通过 JSON 翻译实现这一点。

目前,这就是我返回验证消息的方式

public function message($message, $attribute, $rule, $parameters)
{
    return __('The domain for :attribute is not allowed. Please use another email address.', ['attribute' => $attribute]);
}

这是我在 Service Provider 中加载翻译文件的方式

public function boot()
{
    $this->loadJSONTranslationsFrom(__DIR__.'/../../../lang', 'email-domain-blacklist');
    $this->publishes([
        __DIR__.'/../../../lang' => resource_path('lang/vendor/email-domain-blacklist'),
    ]);
    $this->publishConfig();
    // Add custom validation rules
    Validator::extend('blacklist', "Alariva\EmailDomainBlacklist\Validator@validate");
    // Add custom validation messages
    Validator::replacer('blacklist', "Alariva\EmailDomainBlacklist\Validator@message");
}

如果我发布翻译文件并在下面更改它们,resources/lang/vendor/email-domain-blacklist/*.json我将看不到任何更改,因为包将从vendor/.

如果我从应用程序级别加载翻译,我将要求应用程序始终发布翻译文件以便正确加载它们。我想避免这个额外的步骤。

哪个是解决这个问题的优雅方式?


我将相应地进行编辑以提供尽可能多的清晰信息。

提前致谢。

阿拉里瓦

经过一番研究,我找到了解决 Laravel 提出的这个问题的方法。

主项目JSON 翻译文件中的键覆盖(不在 中lang/vendor,而是直接在 中lang/)将优先。

参考这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何覆盖npm包的package.json

来自分类Dev

Laravel从包中获取应用程序的翻译

来自分类Dev

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

来自分类Dev

如何翻译表格选择laravel 5短途

来自分类Dev

如何翻译表格选择laravel 5短途

来自分类Dev

如何在Laravel 5中翻译馆藏?

来自分类Dev

JMS翻译包@Ignore

来自分类Dev

如何从 DBI 包中获取某些函数的 SQL 翻译

来自分类Dev

覆盖Django翻译方法

来自分类Dev

覆盖形式的Django翻译

来自分类Dev

如何在Laravel中创建多语言翻译的路线

来自分类Dev

Laravel和Vuejs-如何处理翻译

来自分类Dev

如何在laravel中翻译节气门?

来自分类Dev

如何将复杂的查询“翻译”到 Laravel Query Builder?

来自分类Dev

如何在控制器 Laravel 中获取翻译消息?

来自分类Dev

Laravel 5.7:如何翻译重置密码消息的文本

来自分类Dev

如何在 Laravel 5.8 中正确翻译激活邮件?

来自分类Dev

翻译laravel 5 Bcrypt

来自分类Dev

Laravel Vue语言翻译

来自分类Dev

Laravel验证器翻译

来自分类Dev

Laravel Vue语言翻译

来自分类Dev

如何覆盖composer.json中单个软件包的vendor-dir

来自分类Dev

如何覆盖包中的功能?

来自分类Dev

如何覆盖包中的功能?

来自分类Dev

如何覆盖包中的文件?

来自分类Dev

预加载翻译 .json

来自分类Dev

Symfony形式的包之间的翻译冲突

来自分类Dev

Django翻译发现首先关注站点包

来自分类Dev

覆盖Laravel中的软件包本地化