首页 > 解决方案 > 如何翻译配置文件中的文本字符串,它在运行时抛出异常

问题描述

可以翻译配置文件中的字符串吗?

我正在尝试使用 trans() 和 __(),但它不起作用。

它抛出 BindingResolutionException 目标类 [translator] 不存在。

我猜是在加载配置文件之前没有加载翻译器类。任何想法如何解决它。

我的配置文件:

'authentication_column' => 'email', 
'authentication_column_name' => __('backpack::base.email_address'),

在文件 /resources/views/vendor/backpack/base/auth/login.blade.php

<label class="control-label" for="{{ $username }}">{{ config('backpack.base.authentication_column_name') }}</label>

现在我的解决方案是将 login.blade.php 编辑为

<label class="control-label" for="{{ $username }}">{{ trans('backpack::base.email_address') }}</label>

标签: laravellaravel-backpack

解决方案


不,这是不可能的。加载配置是在注册绑定了“翻译器”类的提供者之前完成的。这是合理的,因为在引导期间实例化类需要配置值,因此配置文件中不提供翻译功能。


推荐阅读