Laravel设置默认语言无效

6
我已将config/app.php中的默认网站本地化更改为(de)。
'locale' => 'de',
'fallback_locale' => 'de',

但是网站仍然以'en'本地化方式加载。

我尝试清除视图缓存和缓存,但没有任何改变。

我正在使用https://github.com/mcamara/laravel-localization

只有当我使用URL domainname.com/de时,de才会被激活。


你清空了“config”缓存吗?你正确设置了“useAcceptLanguageHeader”吗? - lagbox
1
所以你没有触碰这个软件包的配置文件? - lagbox
@lagbox 我刚刚在 config/laravellocalization.php 中取消了所需的语言。 - Q8root
@lagbox 是的,我认为有一个听起来很重要 :) 'useAcceptLanguageHeader' => true,改为false,问题解决了。 - Q8root
;) ... 我会把那个发布上去。 - lagbox
显示剩余4条评论
5个回答

9

如果不在URL中使用动态语言环境,则需要调整此软件包的配置文件:

'useAcceptLanguageHeader' => false,

从该变量的注释中:

“如果在URL中没有定义用户区域设置,则使用Accept-Language头进行用户区域设置协商。如果为false,则系统将采用app.php语言环境属性的默认值”

似乎要想使用该默认值,您需要将其设置为false。

您可以尝试其他变量:

'hideDefaultLocaleInURL' => true,

了解如何调整默认行为。


你救了我的一天! - Ahmad Mobaraki
如何搜索文件? - DoubleM

4

我遇到了相同的问题

前往配置文件laravellocalization.php

修改以下代码

'useAcceptLanguageHeader' => false,

然后执行以下命令

php artisan config:clear

这样做后,问题就会解决。


0
尝试在您的控制器中添加 __construct() 函数。 :)
public function __construct(){}

0

这种方式对我来说是最好的

app/Providers/AppServiceProvider.php

在boot()函数中写入以下代码:

session()->put('locale', 'ar');

app()->setLocale(session()->get('locale'));


0

//将默认网站语言设置为阿拉伯语。

//首次访问时,用户没有任何会话。因此,我们将添加一个会话,并在不是首次访问时将语言设置为阿拉伯语。

//然后,根据您选择的语言进行操作。

//在web.php文件中实现。

Route::get('/', function () {
    if (Session::get('language') == 'en') {
        Session::put('language', 'en');
        App::setLocale('en');
        return redirect('main-services/1/1');
    } else {
        Session::put('language', 'ar');
        App::setLocale('ar');
        return redirect('main-services/1/1');
    }
});


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接