Django's I18N with third-party apps

人走茶凉 提交于 2019-12-05 15:42:44

问题


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?


回答1:


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/




回答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




回答3:


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!



来源:https://stackoverflow.com/questions/3933824/djangos-i18n-with-third-party-apps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!