Русификация наиболее популярного движка для создания интернет-магазинов Lunar

Привет, дамы и господа!

Сегодня озаботимся переводом на русский язык интерфейса наиболее популярного движка для создания интернет-магазинов, который называется Lunar.

Для начала стоит заметить, что изначально русского языка там просто нет и найти переводы где-то в сообществе не удалось. Потому пришлось переводить самому. Вроде бы, задача простая, но решение почему-то оказалось не таким уж очевидным.

Lunar использует админку Filament, и с переключением интерфейса Filament на русский язык проблем не возникло вообще никаких. Конфиг просто взял значение локали из системного файла .env и всё… Локаль указана в конфиге — Filament использует локаль из конфига. Просто и удобно. Почему-то всё совсем не так с самим Lunar.

Раз вообще нет языковых файлов в движке, то естественное решение — взять какой-то существующий язык, создать на его основе новую нужную мне локаль и переключиться на эту новую локаль. Загвоздка оказалась как раз в переключении на новую локаль. Даже не знаю, почему Lunar оказался настолько огнеупорным в данном вопросе. Он напрочь игнорирует конфигурацию, а также все способы явно и настырно переключиться на другой язык.

Во-первых, совершенно недостаточно просто создать новые файлы в специальной папке. Вроде как, они должны иметь приоритет перед файлами из папки /vendor. То есть, если у меня просто имеются специальные языковые файлы в специальном месте, то они бы должны автоматически и приоритетно подхватываться сами. Не подхватываются.

Также не срабатывают никакие способы подсунуть локаль в момент создания панели, как и способы изменить локаль существующей панели. Скверно ещё и то, что нейросети имеют крайне скудное понимание архитектуры актуальной версии Lunar. Фактически, в итоге решение нашлось без них и даже довольно случайно. Я просто просматривал какой-то очередной исходник и увидел способ, который не связан с локалью. В Laravel имеется стандартный метод loadTranslationsFrom(), который и сработал.

Остальное было делом техники: я поочередно загрузил все англоязычные файлы в нейросеть и попросил перевести значения полей, сохранив структуру файлов и ключи. И вот в таких задачах нейросети, конечно, абсолютно великолепны. Большие языковые модели хорошо владеют языком и точно понимают, какие фрагменты являются значениями полей, требующих перевода, а какие англоязычные слова — это ключи или метки, которые переводить точно не стоит, иначе файл просто перестанет быть функциональным.

Итог: перевод состоялся, но осадочек остался: Lunar по-прежнему использует неправильную локаль, в результате чего кое-где встречаются английские слова. В частности, названия месяцев на графике. Глубже копать я пока не стал, т. к. основная задача выполнена.

Если кто-то знает работающий способ смены локали в Lunar — напишите мне, пожалуйста. Наверно, это что-то очень простое. Просто я найти его за адекватное время не смог.

Комментарии (0)

Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!