3

我最近开始学习 Lumen 微框架,我需要在运行时更改 .env 文件中定义的 APP_LOCALE 键的值。我的目标是在运行时切换语言以打印我的语言文件中定义的某个字符串的不同翻译。

在 Lumen 文档中是这样写的:

要在运行时设置配置值,请将数组传递给配置助手

所以我尝试在测试控制器中休息:

use Illuminate\Support\Facades\App;
use Laravel\Lumen\Routing\Controller as BaseController;

class Controller extends BaseController{
    public function show_test(){
        echo(trans('testfile.greetings'));
        config(['app.LOCALE' => 'en']);
        echo(trans('testfile.greetings'));
    }
}

在我的 .env 文件中,我的“默认”APP_LOCALE 设置为“fr”,调用此控制器的结果将我的字符串用法语打印两次,而不是预期的一次用法语打印一次,然后用一次英语打印一次。

如何在运行时更改值?

4

2 回答 2

3

显然其他人在我之后几天发布了同样的问题并得到了答案:

app('translator')->setLocale('en');
于 2015-07-16T16:31:04.033 回答
1

关键config/app.phplocale,不是LOCALE,所以你想要config(['app.locale' => 'en'])。中的名称.env不一定是config文件夹文件中的名称。

于 2015-06-24T20:26:08.303 回答