Laravel изменить язык через URL / маршрут - PullRequest
0 голосов
/ 09 января 2020

Довольно плохо знаком с Laravel, и я пытаюсь добавить функциональность, которая позволяет пользователю переключаться между двумя языками, нажимая кнопку в файле header.blade. php. До сих пор у меня есть его, поэтому есть тестовый файл. php в соответствующих каталогах lang с тестовыми строками, и ему удалось получить <p>{{__('test.test')}}</p> для отображения правильного языка при ручной настройке. На данный момент я не уверен, что это на самом деле вызов маршрута для обновления языка или если у меня есть logi c для обновления, это неправильно, так как я не получаю ошибок и использую barryvdh / laravel -debugbar для отладки.

Мой логин c для кнопки:

<button href="{{ url('language', config('app.locale') == 'en' ? 'fr' : 'en') }}">{{ config('app.locale') }}</button>

В маршрутах / сети. php:

Route::get('/language', 'LanguageController@show');
Route::post('/language/{lang}', 'LanguageController@update');

LanguageController. php , созданный с помощью php artisan make: controller --api

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LanguageController extends Controller
{
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        return App::getLocale();
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //Tried the following
        config(['app.locale' => $id]);
        App::setlocale($id);
    }
}

Вопросы:

  1. Это правильный способ обновления языка во время выполнения?
  2. Как я могу узнать, выполняются ли мои вызовы API?
  3. Как мне добиться этого внутри шаблона. vue file?
  4. Создает ли контроллер для язык избыточен?
  5. Изменится ли внутренняя HTML моей кнопки, если будет изменен языковой стандарт?
  6. Влияет ли влияние на конфигурационные файлы во время выполнения плохой практики?

- Редактировать-- Я должен также упомянуть, что единственная причина, по которой я сделал контроллер для этого, заключается в том, что у меня были вызовы маршрутизации в сети. php вместо этого используют функцию, однако они заявили, что это Closure, работающее php artisan route:list и с исследование, которое я нашел, я не мог сказать, было ли это правильно

1 Ответ

2 голосов
/ 09 января 2020

Вы на правильном пути, но чего-то не хватает.

Вы не можете использовать конфигурацию для редактирования во время выполнения языка.

Сохранить локальный язык в пользовательской сессии и создать новое промежуточное ПО для установки на каждый запрос языка, сохраненного в сеансе.

Я нашел эту статью, которая может вам помочь, localization- laravel

...