Skip to content

Языки и локализация

Поддерживаемые языки

КодЯзык
ruРусский
enАнглийский

Язык платформы в runtime

Админ-панель → Общие настройки (/admin-panel/settings/general) → поле Язык по умолчанию.

Значение хранится в таблице config (ключ language) и применяется в runtime через GetLanguageRepository и middleware SetLocaleFromConfig:

  • HTML-атрибут lang и og:locale
  • PHP-локаль Laravel (config/app.php)
  • Moment.js (moment.locale в resources/js/app.js)
  • Загрузка frontend-переводов (laravel-vue-i18n)

Изменение языка в админ-панели вступает в силу сразу, без пересборки frontend.

VITE_APP_LOCALE vs runtime

VITE_APP_LOCALE (.env)Язык из админ-панели
НазначениеПервоначальный сид (ConfigSeeder) и production-сборкаАктивный язык работающего сайта
Когда менятьПри деплое / первом запускеВ любой момент через админ-панель
ini
VITE_APP_LOCALE=ru

После сида runtime-язык определяется настройкой в БД, а не переменной окружения.

Файлы переводов

Frontend (Vue / JavaScript)

resources/lang/ru.json    — строки интерфейса (русский)
resources/lang/en.json    — строки интерфейса (английский)

Файлы загружаются динамически в resources/js/app.js через laravel-vue-i18n:

js
resolve: (lang) => import(`../lang/${lang}.json`)

Добавляйте новые строки в оба файла с одинаковыми ключами.

PHP / Backend

resources/lang/ru/*.php     — auth, validation, mail, errors, meta и др.
resources/lang/en/*.php     — те же группы для английского

Laravel использует fallback_locale = 'en'. Локаль берётся из настроек админ-панели, а не из .env.

Форматирование дат

Moment.js использует локали ru (русский) и en-gb (английский). Локаль переключается автоматически вместе с языком платформы.

Добавление нового языка

  1. Создайте resources/lang/{code}.json с переведёнными строками
  2. Создайте каталог resources/lang/{code}/ с PHP-файлами переводов (скопируйте структуру из en/)
  3. Добавьте локаль Moment.js в resources/js/app.js
  4. Добавьте код в список допустимых языков в GeneralSettingsController (in:en,ru)

Released under the MIT License.