Php 配置文件中的Laravel字符串本地化
我在配置文件中使用trans()函数时遇到问题,我觉得不应该这样使用它。但是,我不知道什么是转换配置文件(位于/config文件夹中的文件)中的字符串文本的最有效方法 原始代码Php 配置文件中的Laravel字符串本地化,php,laravel,model-view-controller,laravel-5,laravel-5.1,Php,Laravel,Model View Controller,Laravel 5,Laravel 5.1,我在配置文件中使用trans()函数时遇到问题,我觉得不应该这样使用它。但是,我不知道什么是转换配置文件(位于/config文件夹中的文件)中的字符串文本的最有效方法 原始代码 <?php return [ 'daily' => 'Daily' ]; 配置文件是Laravel初始化的第一个文件之一,这意味着您不能在配置文件中使用转换器或UrlGenerator 我不知道您想做什么,但是您不需要在配置文件中使用Translator,尽管…您不能在Laravel配置文件中使用
<?php
return [
'daily' => 'Daily'
];
配置文件是Laravel初始化的第一个文件之一,这意味着您不能在配置文件中使用转换器
或UrlGenerator
我不知道您想做什么,但是您不需要在配置文件中使用Translator,尽管…您不能在Laravel配置文件中使用trans或route方法。在加载配置文件时,这些方法无法运行。此外,配置文件用于存储纯值,我们不应在配置文件内触发任何操作
我知道有时候你想把东西放到配置文件中,用路由生成的动态数据或语言键生成的文本。在我的用例中是:在配置文件中配置菜单结构。在这种情况下,您应该选择这样的方法:只存储翻译键和一个数组,其中包含可以在运行时生成URL的信息
我把我的名字放在这里,让大家看看这个方法。我不知道这是否是一个好的做法,但我在类似的情况下结束了这项工作
Config.php:
'Foo' => array('
'route' => 'route.name',
'name' => 'translated_line', //translated in lang file ex. /en/general.php
'),
然后在我使用的视图中:
<a href="{{ route(Config::get('foo.route')) }}">{{ Lang::get('general.'.Config::get('foo.name'))) }}</a>
也许这已经太晚了,但我还是把它贴在这里,这样也许有人会发现它很有用,比如我:)您可以将密钥存储在配置文件中,就像这样,然后在视图中使用trans函数来获取翻译:
配置文件:
<?php
return [
'foo' => 'bar'
];
截至,以在Laravel启动后访问翻译
例如:
config/example.php
你找到解决办法了吗?我也有同样的问题,但找不到解决办法。这么明显的解决方案,OP并不是这么要求的。他试图在配置文件中调用trans()。
<?php
return [
'foo' => 'bar'
];
{{ trans(config('config.foo') }}
<?php
return [
'daily' => 'Daily',
'monthly' => 'app.monthly_text',
'yearly' => 'app.yearly_text'
];
<?php
return [
'monthly_text' => 'Monthly'
];
<?php
// ...
$daily = config('example.daily');
$a = __($daily); // "Daily"
$monthly = config('example.monthly');
$b = __($monthly); // "Monthly"
$yearly = config('example.yearly');
$c = __($yearly); // "app.yearly_text"