Django's I18N with third-party apps
Asked Answered
G

3

11

I have a Django project which uses django-tagging and is supposed to run in German. So I looked into the sources and found that django-tagging does indeed use gettext_lazy and is thus completely translatable. However, there are no translations available in the package. So I assume there must be a way for me to translate it from within my project.

In other words, I expect ./manage.py makemessages -a to include untranslated strings from django-tagging, but apparently I'm wrong to expect that.

So, how do I manage this situation properly? Will translating django-tagging in the upstream repository work as expected?

Gentian answered 14/10, 2010 at 13:48 Comment(0)
Y
5

You can create gettext messages in django-tagging directory and contribute translations to project leader:

django-admin.py makemessages -l de

If you want to create message catalog in your project directory, you should install or symlink app (check -S option of makemessages) in your project directory. Then use manage.py makemessages command as above.

If you want to see more details about translating 3rd part apps, please check:

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

Yancy answered 12/6, 2011 at 12:23 Comment(0)
A
2

Within my project directory I make a symlink to that third party app and run my makemessages command with the '--symlinks' option:

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

then I remove my symlink

Abebi answered 2/12, 2013 at 15:14 Comment(0)
V
0

Detailed:

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

and then run

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

for instance if i want translate 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

(my manage.py locates agregator/site_aggregator_backend/manage.py)

and

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

and all work perfectly!

Voorhis answered 14/8, 2019 at 13:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.