Локализация приложения
Содержание
Конфигурация
Настройки языка, используемого по умолчанию, хранятся в файле config/app
. За это отвечает
параметр locale
и в большинстве случаев он должен иметь значение ru
. Кроме того, в данном файле можно указать
значение параметра fallback_locale
, указывающего тот язык, который будет использован в случае отсутствия перевода
для текущего выбранного языка:
'fallback_locale' => 'en',
Создание перевода
Для обеспечения перевода приложения на другие языки применяются JSON-файлы, содержащие текстовые строки для перевода.
Файлы хранятся в папке resources/lang
приложения. В качестве основного языка используется русский язык, а в файлах
локализации прописывается перевод строк русского языка на заданный язык. Содержимое файла перевода должно строго
соответствовать требованиям формата JSON. Типовая структура выглядит следующим образом:
{
"Текст на русском языке": "Перевод текста на заданный язык",
"Другая строка для перевода": "Перевод другой строки"
}
Пример:
{
"На Вашу почту была отправлена ссылка для восстановления пароля": "We have emailed your password reset link",
"Ваш пароль был сброшен": "Your password has been reset",
"Ссылка на восстановление пароля не является действительной": "This password reset token is invalid"
}
Обратите внимание, что допускается использовать только двойные кавычки (в случае необходимости их использования в тексте применяется экранирование обратной наклонной чертой \), а каждая строка и ее перевод (кроме последней строки) должна отделяться запятой.
Пример:
{
"Поле «уровень образования» обязательно для заполнения": "The field \"level of education\" is necessary to fill"
}
Все одинарные кавычки, т.е. символ '
необходимо заменить символом `
.
Язык перевода задается путем наименования файла с переводом. Например, перевод на английский язык должен храниться в файле en.json
, а перевод на испанский язык в файле es.json
. Рекомендуется использовать коды языков в соответствии с ISO 639-1:2002.
Таким образом, при переводе приложения выполняются следующие действия:
- В папке
resources/lang
проверяется наличие файла с переводом на требуемый язык. - Если его нет, то он создается в соответствии с указанными выше требованиями. Например, для английского языка создается файл
en.json
. - В файл добавляются строки на русском языке и их перевод на заданный язык.
- Файл сохраняется. После сохранения внесенные изменения должны быть доступны в приложении.
Обратите внимание, что текстовые строки в файле перевода должны полностью соответствовать текстовым строкам в файле приложения, включая все знаки препинания, пробелы и регистр букв.
Шаблон файла перевода
Шаблон файла перевода можно скачать и поместить в папку приложения resources/lang
. В данном файле содержится большая часть
строк для перевода.
Изменение языка интерфейса
В личном кабинете смена языка интерфейса доступна в блоке информации профиля в разделе «Профиль пользователя» и в верхнем меню страницы.
Для отображения кнопки смены языка на странице авторизации необходимо открыть терминал и в корне проекта выполнить:
php artisan tandem:publish --views