{{TOC}} {{DOCVER 4.0=0da300f6445bec5a70d007f503834fce957b065b 16.10.2014 5:19:26, 4.1=efd541a0b218b1c6aafb73f0051c18ed150e3c24 25.05.2014 6:21:03, 4.2=d7b13440c003218ed79e9d508706eca01990122f 4.12.2014 5:01:15}} == Введение == Класс %%Lang%% даёт возможность удобного получения языковых строк, позволяя вашему приложению поддерживать несколько языков интерфейса. == Языковые файлы == Языковые строки хранятся в папке %%(t)app/lang%%. Внутри неё должны располагаться подпапки - языки, поддерживаемые приложением: %%(t) /app /lang /en messages.php /es messages.php %% **Пример языкового файла** Языковые файлы (скрипты) просто возвращают массив пар //ключ/значение//. Например: %% 'Добро пожаловать на мой сайт!' ); %% **Изменение языка по умолчанию "на лету"** Язык по умолчанию указан в файле настроек %%(t)app/config/app.php%%. Вы можете изменить текущий язык во время работы вашего приложения методом %%App::setLocale()%%: %% App::setLocale('es'); %% %%(DOCNEW 4.1=efd541a0b218b1c6aafb73f0051c18ed150e3c24 25.05.2014 6:21:03) **Настройка запасного языка** Вы также можете настроить "запасной язык", который будет использоваться, когда в файле текущего языка нет соответствующей строки. Как и язык по умолчанию, запасной язык также настраивается в файле %%(t)app/config/app.php%%: ~%% 'fallback_locale' => 'en', ~%% %% == Основы использования == **Получение строк из языкового файла** %% echo Lang::get('messages.welcome'); %% Первый компонент, передаваемый методу %%get()%% - имя языкового файла, а затем указывается имя строки, которую нужно получить. .(alert) **Внимание:** если строка не найдена, то метод %%get()%% вернёт её путь (ключ). Вы также можете использовать ((docs/v4/helpers функцию)) %%trans()%% - короткий способ вызова метода %%Lang::get()%%: %% echo trans('messages.welcome'); %% **Замена параметров внутри строк** Сперва определите параметр в языковой строке: %% 'welcome' => 'Welcome, :name', %% Затем передайте массив вторым аргументом методу %%Lang::get()%%: %% echo Lang::get('messages.welcome', array('name' => 'Dayle')); %% **Проверка существования языковой строки** %% if (Lang::has('messages.welcome')) { // } %% == Множественное число == Формы множественного числа - проблема для многих языков, так как все они имеют разные сложные правила для их получения. Однако вы можете легко справиться с ней в ваших языковых файлах используя символ %%(t)|%% для разделения форм единственного и множественного числа. %% 'apples' => 'There is one apple|There are many apples', %% Для получения такой строки используется метод %%Lang::choice()%%: %% echo Lang::choice('messages.apples', 10); %% %%(DOCNEW 4.1=efd541a0b218b1c6aafb73f0051c18ed150e3c24 25.05.2014 6:21:03) Вы также можете передать аргумент локали, чтобы указать язык. Например, если вы хотите использовать **русский (ru)** язык: ~%% echo Lang::choice('товар|товара|товаров', $count, array(), 'ru'); ~%% %% Благодаря тому, что Laravel использует компонент //Symfony Translation// вы можете легко создать более точные правила для проверки числа: %% 'apples' => '{0} There are none|[1,19] There are some|[20,Inf] There are many', %% == Проверка ввода == Для локализации сообщений и ошибок при проверке ввода прочитайте ((docs/v4/validation#условные-12 документацию по проверке ввода)). %%(DOCNEW 4.1=efd541a0b218b1c6aafb73f0051c18ed150e3c24 25.05.2014 6:21:03) == Перекрытие языковых файлов пакета == Многие пакеты поставляются с собственными языковыми файлами. Вместо того, чтобы вскрывать файлы внутри пакета, чтобы настроить строки в них, вы можете перекрыть их, разместив файлы в каталоге %%(t)app/lang/packages/{locale}/{package}%%. Например, если вам необходимо изменить строки английского языка в %%(t)messages.php%% для пакета %%(t)skyrim/hearthfire%%, вам надо поместить языковой файл в %%(t)app/lang/packages/en/hearthfire/messages.php%%. В этом файле вам надо задать только те строки, которые вы хотите перекрыть. Все остальные строки, которые вам не надо перекрывать, будут загружаться из языковых файлов самого пакета. %%