Подтвердить что ты не робот

Django I18N со сторонними приложениями

У меня есть проект Django, который использует django-tagging и должен работать на немецком языке. Поэтому я просмотрел источники и обнаружил, что django-tagging действительно использует gettext_lazy и, таким образом, полностью переводится. Однако в пакете нет переводов. Поэтому я предполагаю, что для меня должен быть способ перевести его из моего проекта.

Другими словами, я ожидаю, что ./manage.py makemessages -a будет включать нетранслируемые строки из django-tagging, но, видимо, я ошибаюсь, чтобы ожидать этого.

Итак, как мне правильно управлять этой ситуацией? Будет ли перевод django-tagging в работу репозитория вверх по течению, как ожидалось?

4b9b3361

Ответ 1

Вы можете создавать gettext-сообщения в каталоге django-tagging и вносить переводы в лидера проекта:

django-admin.py makemessages -l de

Если вы хотите создать каталог сообщений в своем каталоге проекта, вы должны установить или использовать приложение symlink (check -S option makemessages) в каталоге проекта. Затем используйте команду manage.py makemessages, как указано выше.

Если вы хотите увидеть более подробную информацию о переводе приложений третьей части, пожалуйста, проверьте:

http://source.mihelac.org/2010/07/31/handling-i18n-in-django-projects/

Ответ 2

В моем каталоге проектов я делаю символическую ссылку на это стороннее приложение и запускаю команду makemessages с опцией -symlinks:

../manage.py makemessages -l nl --symlinks

тогда я удаляю свою символическую ссылку

Ответ 3

Подробно:

ln -s full/path/to/installed/app/folder path/to/folder/with/symlinks/in/your/project

а затем запустить

django-admin.py makemessages --locale=*lang* --symlinks

например, если я хочу перевести django-tagging:

 ln -s /home/user/python_projects/agregator_gitlab/venv/lib/python3.6/site-packages/tagging /home/user/python_projects/agregator_gitlab/agregator/site_aggregator_backend/extra-locales/tagging

(мой manage.py находит agregator/site_aggregator_backend/manage.py)

и

django-admin.py makemessages --locale=uk --symlinks

и все работает отлично!