Django's I18N with third-party apps

2019-04-05 07:10发布

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?

2条回答
家丑人穷心不美
2楼-- · 2019-04-05 07:59

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/

查看更多
手持菜刀,她持情操
3楼-- · 2019-04-05 08:14

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

查看更多
登录 后发表回答