18:20 2020/10/09

Русская локализация Django

Как это обычно водится, понадобилось для одной задачи поднять админку на Джанго. Размышлял тогда на этот счёт, что пилят фреймворк давно уже, исправили многие баги, не столкнусь со стоперами. Ага, как бы не так...

На мое удивление, обнаружилось практически сразу, что в админке при установленной настройке LANGUAGE_CODE='ru' часть текстов и сообщений об ошибках отображаются на английском языке. Конечно, я тут же разочаровался в новой версии Django 3.0 и полез в исходный код. Оказалось, что кому-то пришло в голову заменить обычные "двойные кавычки" на гершаим и грашаим. А обычный 'апостроф' на гереш. Это и повлияло на сбой всех переводов, содержащих вышеуказанные символы. Так как проблема с текстами в админке появилась в ходе рабочей задачи, а не в каком-нибудь пет-проекте, то быстрое решение по исправлению заключалось в клонировании репозитория Django к себе в гитхабчик и добавлением переводов там. Далее в проекте устанавливался пакет джанго из архива
pip install https://github.com/crazyzubr/django/archive/django-3.0.5a-fix-ru-locales.tar.gz#egg=Django==3.0.5a
На первых порах это вроде как решило проблему, но теперь что же? Использовать этот архив во всех остальных проектах или при новых изменениях в Django стягивать их к себе в репозиторий и создавать новый архив? Сложно. Хочется просто установить свежий пакет из оригинального репозитория или обновить при необходимости, указав версию.

Тогда я решил исправить данное упущение и поделится своим переводом с помощью пулл-реквеста, который очень быстро закрыли, с пометкой, что переводы для этого проекта делаются через сервис Transifex. Что ж, там я уже был зарегистрирован очень давно, так что даже не помнил при каких обстоятельствах. Авторизовавшись, долго блуждал среди вкладок, меню и ссылок. Это не сервис, а какой-то лабиринт, о юзабилити там вряд ли беспокоились. Долго не мог понять как получить права для того чтобы стать переводчиком. Наконец, через саппорт-чат смог получить адрес кому написать, написал одному из координаторов проекта, он мне дал email, куда можно отдельно написать с просьбой получения прав. Спустя сутки, пришел ответ от робота, что письмо не доставлено, в общем ящик оказался нерабочий. Снова через координатора узнаю нового адресата, пишу ему. Продолжается это с неделю, в итоге получаю права переводчика. То есть на самом деле оказалось, что русской локализацией уже несколько лет некому заниматься. Я был очень этим раздосадован, ведь Django - это очень популярный фреймворк, неужели всем все равно? И как эти "все" решали проблему с английскими текстами в русской админке? Тоже делали форки? Очень странная тема...

Добавил переводы в трансифексе, в которых еще по ходу дела были непереведены и другие тексты, не содержащие ни апострофов, ни кавычек - просто новые предложения для новой версии, то есть гораздо больше чем я перевел в своем форке изначально. Теперь нужно получить одобрение от человека с отдельной ролью - проверяющий. Снова эпопея с переписками и поиском этого самого проверяющего в мёртвом, как его себе мысленно пометил, комьюнити переводчиков. Прошло еще несколько недель, пока дело хоть как-то продвинулось с апрувом и вот через каких-то месяца полтора, наконец, мои переводы оказались в официальном репозитории Django, и теперь можно будет видеть нормальную русскую локализацию в админке, и в целом где-нибудь еще в приложении ;)

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