通过 URL 更新区域设置值 (Laravel)

问题描述 投票:0回答:1

我有一个用 Laravel 编写的项目。我通过 Laravel 本地化使用多种语言。

工作正常,但是当我直接访问URL时,内容没有更新。

例如,如果我直接访问这个URL,内容语言不会改变:site.com/en/slug-url

但是,如果我使用changeLanguage更改语言,然后访问相同的网址,则内容将变为英文。

如果 locale 值为 en,如何同时运行changeLanguage 函数将网站翻译成英文?

控制器

  public function changeLanguage($locale)
    {
        // Check supported languages
        $supportedLocales = ['en','tr'];
       
        // If it is a supported language, update your language preference
        if (in_array($locale, $supportedLocales)) {
            session(['locale' => $locale]);
            App::setLocale($locale);
            
        }

        Artisan::call('view:clear');
        Artisan::call('route:clear');
        LSCache::purgeAll();

        // You can perform other actions or redirect
        return redirect()->back();
    }
    

路线

      /* Lang */
        $router->get('/lang/{locale}', 'HomeController@changeLanguage')->name('change_language');

此外,如果我访问 site.com/en,语言也不会改变。但如果我访问 site.com/lang/en,语言就会发生变化。

我找不到解决方案

laravel localization
1个回答
0
投票

您需要一个中间件来检查网址的区域设置并更改站点区域设置。您可以按照本教程正确设置本地化。

[https://lokalise.com/blog/laravel-localization-step-by-step/][1]

© www.soinside.com 2019 - 2024. All rights reserved.