Класс Lang
Класс Lang в Laravel является фасадом для работы с локализацией. Он предоставляет методы для получения переведённых строк из языковых файлов, проверки наличия переводов, а также управления текущей локалью приложения. Данный класс является основным инструментом для интернационализации приложений на Laravel.
Синтаксис
<?php
use Illuminate\Support\Facades\Lang;
Lang::method($parameters);
?>
Основные методы
Класс Lang предоставляет несколько ключевых методов для работы с локализацией:
Метод get
Метод get используется для получения переведённой строки по ключу. Первым параметром передаётся ключ перевода в формате 'file.key', вторым параметром - массив параметров для замены.
<?php
use Illuminate\Support\Facades\Lang;
$greeting = Lang::get('messages.welcome');
echo $greeting;
?>
Результат выполнения кода:
"Welcome to our application"
Метод has
Метод has проверяет наличие перевода для указанного ключа. Возвращает логическое значение.
<?php
use Illuminate\Support\Facades\Lang;
if (Lang::has('messages.welcome')) {
echo Lang::get('messages.welcome');
} else {
echo "Translation not found";
}
?>
Результат выполнения кода:
"Welcome to our application"
Метод choice
Метод choice используется для получения перевода с учётом множественного числа. Первым параметром передаётся ключ, вторым - количество, третьим - массив параметров.
<?php
use Illuminate\Support\Facades\Lang;
$message = Lang::choice('messages.apples', 5);
echo $message;
?>
Результат выполнения кода:
"There are 5 apples"
Метод setLocale
Метод setLocale устанавливает текущую локаль приложения.
<?php
use Illuminate\Support\Facades\Lang;
Lang::setLocale('ru');
$greeting = Lang::get('messages.welcome');
echo $greeting;
?>
Результат выполнения кода:
"Добро пожаловать в наше приложение"
Метод getLocale
Метод getLocale возвращает текущую локаль приложения.
<?php
use Illuminate\Support\Facades\Lang;
$locale = Lang::getLocale();
echo $locale;
?>
Результат выполнения кода:
"en"
Пример использования в Blade-шаблоне
В Blade-шаблонах можно использовать директиву @lang для быстрого получения переводов:
<h1>@lang('messages.welcome')</h1>
<p>@lang('messages.description')</p>
Результат выполнения кода:
<h1>Welcome to our application</h1>
<p>This is a description</p>
Пример с параметрами
Метод get поддерживает замену параметров в переводах:
<?php
use Illuminate\Support\Facades\Lang;
$name = "John";
$message = Lang::get('messages.greeting', ['name' => $name]);
echo $message;
?>
Результат выполнения кода:
"Hello, John"