Локализация с Laravel и VueJS - PullRequest
0 голосов
/ 14 марта 2020

Я хочу использовать локализацию в laraval / Vuejs. Я начал с формы входа в систему, где пользователь может выбрать свой язык, и после входа в систему пользователь будет перенаправлен на домашнюю страницу home.blade. php, и он прекрасно работает, но на главной странице Я использовал роутер-ссылку для перехода на vuejs страницы. Моя проблема в том, что я не знаю, как отправить выбранный язык с роутером. как получить его в приложении. js. Я создал 2 JSON файлов для языков. Любая помощь приветствуется.

**

путь маршрутизатора в приложении. js, как показано ниже

**

{
    path: "/publisher",
    component: require("./components/Publishers.vue").default
  },

**

маршрутизатор-ссылка в home.blade. php как показано ниже

**

<router-link to="/publisher" class="nav-link" >انتشارکننده </router-link>

Код в форме входа выглядит так:

@extends('layouts.header')

  <body class="login">
    <div>
      <a class="hiddenanchor" id="signup"></a>
      <a class="hiddenanchor" id="signin"></a>
      <a class="hiddenanchor" id="reset"></a>

      <div class="login_wrapper">

        <div class="animate form login_form">

          <section class="login_content">

            <form method="POST" action="{{ route('login',app()->getLocale()) }}">

                @csrf
                  <p>انتخاب زبان/د ژبې انتخاب </p>

                  <a href="{{ route(Route::currentRouteName(),'fa') }}" class="btn btn-default">دری</a> 
                  <a href="{{ route(Route::currentRouteName(),'ps') }}"   class="btn btn-default">پښتو</a>

               <h1>{{ __('loginform')}}</h1>
              <div>
                  <input id="email" type="email" placeholder="{{ __('email')}}" style="direction: rtl;margin-left: 264px;" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror

              </div>
              <div>
                <input id="password" placeholder="{{ __('password')}}" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
              </div>
              <div>
              <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
               {{ __('remember')}}
                </div>
              <div>
                 <button type="submit" class="btn btn-default "  >
                                    {{ __('logins')}}
                                </button>
                <a class="reset_pass" href="#reset">{{ __('forgotPasswrod')}}</a>
              </div>

              <div class="clearfix"></div>
            </form>
          </section>
        </div>


        <div id="rest_pass" class="animate form rest_pass_form">
          <section class="login_content">
            <!-- /password recovery -->
             <form method="POST" action="{{ route('password.email',app()->getLocale()) }}" >
                        @csrf
              <h1>بازیابی رمز عبور</h1>
              <div class="form-group has-feedback">
                <input id="email" type="email" placeholder="آدرس الکترونکی" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                <div class="form-control-feedback">
                  <i class="fa fa-envelope-o text-muted"></i>
                </div>
              </div>
            <div>
               <input id="securityQuestionOne" placeholder="سوال امنیتی اول" type="text"   class="form-control @error('securityQuestionOne') is-invalid @enderror" name="securityQuestionOne" value="{{ old('securityQuestionOne') }}" required autocomplete="securityQuestionOne" autofocus>

                                @error('securityQuestionOne')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
            </div>
            <div>
                <input id="securityQuestionTwo" placeholder="سوال امنیتی دوم" type="text" class="form-control @error('securityQuestionTwo') is-invalid @enderror" name="securityQuestionTwo" value="{{ old('securityQuestionTwo') }}" required autocomplete="securityQuestionTwo" autofocus>

                                @error('securityQuestionTwo')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
            </div>

              <button type="submit" class="btn btn-default btn-block">آدرس بازیابی رمز عبور را آرسال نماید </button>


              <div class="clearfix"></div>


            </form>

          </section>
        </div>
      </div>
    </div>

  </body>
</html>

> Промежуточное программное обеспечение, как показано ниже

<?php

namespace App\Http\Middleware;

use Closure;

class SetLocale
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        app()->setLocale($request->segment(1));

        return $next($request);
    }
}

> web.config is как ниже

Route::redirect('/','/fa');
Route::group(['prefix' => '{locale}', 
  'middleware'=>'setLocale',
],function(){

Route::get('/', function () {
    return view('auth.login');

})->name('test');

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('{path}', "HomeController@index")->where('path','([A-z\d-\/_.]+)?');
Route::get('/pdf', 'HomeController@generate');
});

**

fa. json как ниже

**

{
  "loginform": "فرم ورود",
  "email": "آدرس الکترونکی",
  "password": "رمز ورود",
  "remember": "به یاد بگذار",
  "logins": "ورود",
  "forgotPasswrod": "رمز ورود را از دست دادید؟",
  "numberofbooks": "تعداد کتابها در انبار"
}

пс. json как показано ниже

{
  "loginform": "د ننوتلو فورمه",
  "email": "بریښنالیک",
  "password": "پټ نوم",
  "remember": "په یاد ولرئ",
  "logins": "ننوتل",
  "forgotPasswrod": "تاسو خپل پټ نوم له لاسه ورکړی؟",
  "numberofbooks": "دکتابونو شمیر په گدام کی"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...