РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
910 of 1392 menu

Функция __

Функция __ является основным инструментом локализации в Laravel. Она извлекает строку перевода из файлов локализации, расположенных в директории resources/lang. В качестве первого параметра передаётся ключ строки в формате 'file.key' или сама строка для перевода. Вторым параметром можно передать массив замен для подстановки значений.

Синтаксис

<?php __($key, $replace = [], $locale = null); ?>

Параметры функции:

  • $key - ключ перевода (строка в формате 'file.key') или сама строка для перевода
  • $replace - массив замен для подстановки (по умолчанию пустой массив)
  • $locale - код языка для перевода (по умолчанию текущий язык)

Пример с ключом перевода

Создадим файл перевода для английского языка:

<?php return [ 'welcome' => 'Welcome to our website', 'goodbye' => 'Goodbye', ]; ?>

Теперь создадим файл перевода для русского языка:

<?php return [ 'welcome' => 'Добро пожаловать на наш сайт', 'goodbye' => 'До свидания', ]; ?>

Используем функцию __ в контроллере:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class PageController extends Controller { public function index() { $welcome = __('messages.welcome'); $goodbye = __('messages.goodbye'); echo $welcome; echo "n"; echo $goodbye; } } ?>

Результат выполнения кода при установленном русском языке:

"Добро пожаловать на наш сайт" "До свидания"

Результат выполнения кода при установленном английском языке:

"Welcome to our website" "Goodbye"

Пример с заменой значений

Создадим файл перевода с плейсхолдерами:

<?php return [ 'greeting' => 'Привет, :name!', 'age_message' => 'Тебе :age лет.', ]; ?>

Используем функцию __ с массивом замен:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { public function show($id) { $user = ['name' => 'John', 'age' => 25]; $greeting = __('messages.greeting', ['name' => $user['name']]); $ageMessage = __('messages.age_message', ['age' => $user['age']]); echo $greeting; echo "n"; echo $ageMessage; } } ?>

Результат выполнения кода:

"Привет, John!" "Тебе 25 лет."

Пример использования в Blade-шаблонах

Функция __ может использоваться непосредственно в Blade-шаблонах:

<h1>{{ __('messages.welcome') }}</h1> <p>{{ __('messages.greeting', ['name' => Auth::user()->name]) }}</p> <p>{{ __('messages.age_message', ['age' => $userAge]) }}</p>

Результат рендеринга шаблона при русском языке:

<h1>Добро пожаловать на наш сайт</h1> <p>Привет, John!</p> <p>Тебе 25 лет.</p>

Пример с заданием конкретного языка

Можно указать конкретный язык для перевода, передав третий параметр:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class LocaleController extends Controller { public function test() { $en = __('messages.welcome', [], 'en'); $ru = __('messages.welcome', [], 'ru'); echo "English: " . $en; echo "n"; echo "Russian: " . $ru; } } ?>

Результат выполнения кода:

"English: Welcome to our website" "Russian: Добро пожаловать на наш сайт"

Пример с указанием локали в файле конфигурации

Установим локали в конфигурационном файле:

<?php return [ 'locale' => 'ru', 'fallback_locale' => 'en', ]; ?>

При такой настройке функция __ будет автоматически использовать русский язык:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class TestController extends Controller { public function index() { $res = __('messages.welcome'); echo $res; } } ?>

Результат выполнения кода:

"Добро пожаловать на наш сайт"

Смотрите также

  • функция trans,
    которая является альтернативой функции __
  • функция trans_choice,
    которая переводит строки с учетом склонений
  • класс Lang,
    который предоставляет дополнительные методы для работы с локализацией
  • метод get,
    который извлекает строку перевода из хранилища
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить