Локализация приложения

Содержание

Конфигурация

Настройки языка, используемого по умолчанию, хранятся в файле 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.

Таким образом, при переводе приложения выполняются следующие действия:

  1. В папке resources/lang проверяется наличие файла с переводом на требуемый язык.
  2. Если его нет, то он создается в соответствии с указанными выше требованиями. Например, для английского языка создается файл en.json.
  3. В файл добавляются строки на русском языке и их перевод на заданный язык.
  4. Файл сохраняется. После сохранения внесенные изменения должны быть доступны в приложении.

Обратите внимание, что текстовые строки в файле перевода должны полностью соответствовать текстовым строкам в файле приложения, включая все знаки препинания, пробелы и регистр букв.

Шаблон файла перевода

Шаблон файла перевода можно скачать и поместить в папку приложения resources/lang. В данном файле содержится большая часть строк для перевода.

en.json

Изменение языка интерфейса

В личном кабинете смена языка интерфейса доступна в блоке информации профиля в разделе «Профиль пользователя» и в верхнем меню страницы.

Для отображения кнопки смены языка на странице авторизации необходимо открыть терминал и в корне проекта выполнить:

php artisan tandem:publish --views