Функция trans
Функция trans используется для получения переведённой строки
из файлов локализации. Она принимает ключ строки в формате
'file.key', где file - имя файла локализации
(без расширения), а key - ключ строки внутри этого файла.
Вторым параметром можно передать массив подстановок для замены
плейсхолдеров вида :name в строке перевода.
Третьим параметром можно указать конкретную локаль,
для которой нужно получить перевод.
Синтаксис
<?php
trans($key, $replace, $locale);
?>
Пример
Давайте создадим файл локализации для английского языка и получим перевод строки приветствия:
<?php
return [
'welcome' => 'Welcome to our website',
'greeting' => 'Hello, :name',
];
?>
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller
{
public function index()
{
$greeting = trans('messages.welcome');
echo $greeting;
}
}
?>
Результат выполнения кода:
"Welcome to our website"
Пример
Давайте используем подстановки в строке перевода для замены
плейсхолдера :name на конкретное значение:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ProfileController extends Controller
{
public function show()
{
$userName = 'John';
$message = trans('messages.greeting', ['name' => $userName]);
echo $message;
}
}
?>
Результат выполнения кода:
"Hello, John"
Пример
Давайте создадим файлы локализации для нескольких языков и получим перевод в зависимости от текущей локали приложения:
<?php
return [
'welcome' => 'Добро пожаловать на наш сайт',
'greeting' => 'Привет, :name',
];
?>
<?php
return [
'welcome' => 'Welcome to our website',
'greeting' => 'Hello, :name',
];
?>
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesApp;
class LocaleController extends Controller
{
public function index()
{
App::setLocale('ru');
$greeting = trans('messages.welcome');
echo $greeting;
App::setLocale('en');
$greetingEn = trans('messages.welcome');
echo $greetingEn;
}
}
?>
Результат выполнения кода:
"Добро пожаловать на наш сайт"
"Welcome to our website"
Пример
Давайте укажем конкретную локаль в третьем параметре функции
trans, не изменяя текущую локаль приложения:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class TranslationController extends Controller
{
public function show()
{
$messageRu = trans('messages.greeting', ['name' => 'Alex'], 'ru');
$messageEn = trans('messages.greeting', ['name' => 'Alex'], 'en');
echo $messageRu;
echo $messageEn;
}
}
?>
Результат выполнения кода:
"Привет, Alex"
"Hello, Alex"
Смотрите также
-
метод
__,
который является псевдонимом функцииtrans -
метод
trans_choice,
который переводит строки с учётом множественного числа -
метод
get,
который является альтернативой функцииtransчерез фасад Lang -
метод
setLocale,
который устанавливает текущий язык приложения