Laravel Обновление языка лезвий с помощью Javascript Cookie - PullRequest
1 голос
/ 14 января 2020

В настоящее время работаю над проектом, в котором необходимо разрешить переключение языка и запомнить это изменение, в настоящее время у меня есть повар ie, созданный с vue -печкой, который установлен и проверен в моем заголовке. vue файл, он изменяет локаль файла i18n. js на значение в cook ie. Проблема, с которой я столкнулся сейчас, заключается в том, что я не могу заставить этого повара ie обновлять язык на любых блейд-файлах. php, таких как файл register.blade. php.

В настоящее время у меня есть файл header.blade. php, который обновляет язык через маршрут и контроллер, который изменяет локаль конфигурации, которая обновляет любые строки в {{ __(x.y) }}.

Есть ли нет способа получить доступ к данным, которые я сохранил в этом файле cook ie в файлах blade. php? Если есть, могу ли я получить ссылку на то, как это сделать, если он не включает vue -cookies и все еще может работать в. vue файлах.

Мой заголовок. vue Этот файл содержит следующие внутренние теги сценария и устанавливается в качестве метода внутри экспорта по умолчанию:

            switchLangauge(locale) {
                if(this.$cookies.isKey('language')){
                  this.$cookies.set('language', locale);
                  console.log('language: ' + this.$cookies.get('language'));
                  i18n.locale = locale;
                  this.lang = locale;
                }
                else{
                  this.$cookies.set('language', locale);
                  console.log('cannot find cookie language');
                }
            }

Я недавно пытался использовать стандартную PHP cook ie ссылку $_COOKIE['language'], которая теперь может чтобы обновить файл register.blade. php, чтобы указать, какой язык выбран, однако, я все еще испытываю проблему с невозможностью передачи выбора языка между vue и блейд-файлами.

Внутри блейда я использую URL, чтобы изменить локаль конфигурации, которую я изменил, чтобы попытаться обновить повара ie, который я создал в js.

public function update(Request $request, $id)
    {
        config(['app.locale' => $id]);
        $response = new Illuminate\Http\Response('language');
        $response->withCookie(cookie()->forever('langauge', $id));
        return $response;
    }

route является путом, и идентификатор должен быть en / cy, но каждый раз, когда я пытаюсь запустить его, он не обновляется.

Web. php файл маршрута:

Route::get('locale/{locale}', function($locale){
    Session::put('locale', $locale);
    return redirect()->back();
});

Как можно Я изменяю методы, чтобы позволить языку быть измененным между двумя типами представлений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...