Освоение локализации Laravel: подробное руководство

Laravel, популярный PHP-фреймворк, обеспечивает надежную поддержку локализации и интернационализации, что позволяет с легкостью создавать многоязычные веб-сайты. В этой статье блога мы рассмотрим различные методы и приемы реализации локализации в Laravel. Мы рассмотрим все — от языковых файлов до помощников по переводу. Так что берите свой любимый напиток и давайте окунемся в мир локализации Laravel!

  1. Языковые файлы:

Один из основных методов локализации в Laravel — использование языковых файлов. Языковые файлы хранят переводы в парах «ключ-значение», что упрощает переключение между языками. Эти файлы обычно хранятся в каталоге resources/langи организованы по языку и контексту. Например, у вас может быть en/messages.php

// resources/lang/en/messages.php
return [
    'welcome' => 'Welcome to our website!',
    'greeting' => 'Hello, :name!',
];

.
Вспомогательная функция

или вспомогательная функция trans():

echo __('messages.welcome'); // Output: Welcome to our website!
echo trans('messages.greeting', ['name' => 'John']); // Output: Hello, John!
  1. Локализация в шаблонах Blade:
@lang('messages.welcome') // Output: Welcome to our website!

Вспомогательная функция:

@lang('messages.greeting', ['name' => 'John']) // Output: Hello, John!
  1. Множественное число:

Локализация часто предполагает обработку слов во множественном числе. Laravel упрощает преобразование во множественное число с помощью trans_choice()

echo trans_choice('messages.apples', $count, ['count' => $count]);

Языковой файл будет выглядеть так:

// resources/lang/en/messages.php
return [
    'apples' => '{0} No apples|{1} :count apple|[2,*] :count apples',
];
  1. Локализованные URL-адреса:

Иногда вам может потребоваться создать URL-адреса с текущей локалью. Для этого в Laravel предусмотрен удобный метод localizedURL():

$url = localizedURL('en', route('home'));

Это создаст URL-адрес с сегментом локали, например /en/home.

  1. Переключение языка:

Реализация функции переключения языков позволяет пользователям переключаться между разными языками. Этого можно добиться, сохранив предпочтительный язык пользователя в сеансе или файле cookie, а затем используя промежуточное программное обеспечение для установки языкового стандарта приложения. Вот пример установки локали в промежуточном программном обеспечении:

public function handle($request, Closure $next)
{
    if ($locale = $request->session()->get('locale')) {
        app()->setLocale($locale);
    }
    return $next($request);
}

В этой статье мы рассмотрели несколько методов реализации локализации в Laravel. От языковых файлов и шаблонов Blade до множественного числа и переключения языков — Laravel предоставляет надежный набор инструментов для создания многоязычных веб-сайтов. Используя эти методы, вы можете гарантировать, что ваше приложение говорит на языке ваших пользователей, что приведет к более привлекательному и инклюзивному пользовательскому опыту.