Laravel Localization

  1. Creae translation files: resources/lang/{fr.json, ru.json}
  2. Create blade with message 'Welcome to our website':resources/views/welcome.blade.php
  3. Change the message to: {{ __('Welcome to our website') }}
  4. Add this code to config/app.php
    'available_locales' => [
    'English' => 'en',
    'Russian' => 'ru',
    'French' => 'fr',
    ],
  5. File resources/lang/ru.json, add the following code
    { "Welcome to our website": "Добро пожаловать на наш сайт" }
  6. Crate Route like:
    Route::get('/{locale?}', function ($locale = null) {
    if (isset($locale) && in_array($locale, config('app.available_locales'))) {
    app()->setLocale($locale);
    }

    return view('welcome');
    });
  7. Visite: localhost/ru. Done!
  8. Create Middleware:
    <?php
    namespace App\Http\Middleware;
    use Closure;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\App;
    use Illuminate\Support\Facades\Session;
    class Localization
    {
    /**
    * Handle an incoming request.
    *
    * @param \Illuminate\Http\Request $request
    * @param \Closure $next
    * @return mixed
    */
    public function handle(Request $request, Closure $next)
    {
    if (Session::has('locale')) {
    App::setLocale(Session::get('locale'));
    }
    return $next($request);
    }
    }
  9. Add '\App\Http\Middleware\Localization::class,' to web under $middlewareGroups of app/http/Kernel.php
  10. Add the following route:
    Route::get('language/{locale}', function ($locale) {
    app()->setLocale($locale);
    session()->put('locale', $locale);
    return redirect()->back();
    });

    Also change the previous route to:

    Route::get('/', function () {
    return view('welcome');
    });
  11. File app/Providers/AppServiceProvider.php add the following code:
    public function boot()
    {
    view()->composer('partials.language_switcher', function ($view) {
    $view->with('current_locale', app()->getLocale());
    $view->with('available_locales', config('app.available_locales'));
    });
    }
  12. Done!

Adding placeholder to the string

  1. Change the welcome blade to:
    {{ __('Welcome to our website, :Name', ['name' => 'amanda']) }}
  2. Change the resources/lang/ru.json file to:
    {
    "Welcome to our website, :Name": "Добро пожаловать на наш сайт, :Name"
    }

Date localization

  1. Carbon date:
    $today = \Carbon\Carbon::now()
    ->settings(
    [
    'locale' => app()->getLocale(),
    ]
    );

Labels:

© copyright-2020 Rejaul