Версія v1.6.5 Попередні версії: документація на GitHub
Локалізація
На цій сторінці
Пакет постачається з двома мовами інтерфейсу: українською (uk, за замовчуванням) і англійською (en).
Мова панелі
Мова застосовується лише до маршрутів панелі, мова решти застосунку не змінюється. Вона визначається за порядком (береться перший непорожній варіант):
- замикання з
Larsadmin::resolveLocaleUsing(); - вибір користувача, збережений у сесії (
larsadmin.locale); приймається, лише якщо мова є середconfig('larsadmin.locales'); config('larsadmin.locale')(LARSADMIN_LOCALE, за замовчуваннямuk);- мова застосунку (
app()->getLocale()).
Якщо larsadmin.locale дорівнює null, панель використовує мову застосунку.
Налаштування конфігу:
'locale' => env('LARSADMIN_LOCALE', 'uk'),
'locales' => [
'uk' => 'Українська',
'en' => 'English',
],
Перемикач мови
Перемикач у шапці показує мови з locales (код => підпис) і зберігає вибір у сесії
(POST {path}/locale, 30 запитів на хвилину). Ендпоінт доступний і гостям, тож мову можна
обрати до входу.
Мова з профілю користувача
use Maxcxam\Larsadmin\Larsadmin;
// у boot() провайдера застосунку
Larsadmin::resolveLocaleUsing(fn (Request $request) => $request->user()?->locale);
Повернене значення обробляється як мова панелі (воно не перевіряється списком locales, тож
повертайте лише підтримувані мови). Повернення null або порожнього рядка передає вибір наступному
варіанту.
Переклади інтерфейсу
Рядки пакета лежать у просторі імен larsadmin::: файли ui.php, messages.php, actions.php
і metrics.php (підписи періодів метрик, «Інше», «Без значення», «Так»/«Ні») для uk і en.
Щоб змінити або додати рядки, опублікуйте їх:
php artisan vendor:publish --tag=larsadmin-lang
Файли потраплять у lang/vendor/larsadmin/{uk,en}. Перекладіть або змініть потрібні ключі,
непотрібні можна видалити. Ключі застосунку мають пріоритет над пакетними.
Для нової мови додайте каталог lang/vendor/larsadmin/{код} з тими ж файлами й запис у
config('larsadmin.locales').
Клієнтська частина отримує ui.php з сервера для поточної мови. Якщо ключа немає, використовується
вбудована українська копія, а за її відсутності показується сам ключ.
Валідаційні повідомлення
php artisan larsadmin:install копіює lang/uk/validation.php (українські повідомлення, структура
збігається з англійським файлом фреймворка), лише якщо в застосунку немає такого файлу.
Наявний файл не перезаписується, а команда повідомляє, що залишає його без змін. Далі файл
належить вам і редагується вільно.
Англійські повідомлення бере сам Laravel (lang/en/validation.php, якщо ви його опублікували).
Підписи Entity та полів
Підписи, які ви пишете в коді, не потребують окремих файлів перекладу, якщо панель однією мовою:
public static ?string $label = 'Категорії'; // множина
public static ?string $singularLabel = 'Категорія';
Text::make('Назва', 'name')
$labelі$singularLabelпроходять через__(), тож їх можна перекладати рядками JSON (lang/en.json:"Категорії": "Categories") або ключами.- Без
$labelмножина утворюється від назви класу (PostдаєPosts). - Назва поля (перший аргумент
make()) показується як є. Для не-ASCII назви обов'язково вкажіть атрибут другим аргументом. - Підписи фільтрів і дій (типовий
name(), утворений від назви класу,Filter::make($label),options) проходять через__(). Перевизначенийname()показується як є.
Формати дат
Поля Date і DateTime на index і detail форматуються за ключами formats.date і formats.datetime
з larsadmin::ui (для uk: d.m.Y і d.m.Y H:i:s, для en: Y-m-d і Y-m-d H:i:s).
Формат конкретного поля задає displayFormat('d/m/Y'); він має пріоритет.
Далі: Теми.