我有一个使用django-tagging
的Django项目,应该用德语运行。所以我查看了源代码,发现django-tagging
确实使用gettext_lazy
,因此完全可以翻译。但是,包中没有可用的翻译。所以我认为必须有一种方法让我从我的项目中翻译它。
换句话说,我希望./manage.py makemessages -a
包含来自django-tagging
的未翻译字符串,但显然我错了。
那么,我该如何妥善处理这种情况呢?翻译上游存储库中的django-tagging
是否会按预期工作?
答案 0 :(得分:5)
您可以在django-tagging目录中创建gettext消息,并为项目负责人提供翻译:
django-admin.py makemessages -l de
如果要在项目目录中创建消息目录,则应在项目目录中安装或使用符号链接应用程序(检查makemessages的-S选项)。然后使用manage.py makemessages命令,如上所示。
如果您想了解有关翻译第三方应用的详细信息,请查看:
http://source.mihelac.org/2010/07/31/handling-i18n-in-django-projects/
答案 1 :(得分:2)
在我的项目目录中,我为该第三方应用程序创建了一个符号链接,并使用'--symlinks'选项运行我的makemessages命令:
../ manage.py makemessages -l nl --symlinks
然后我删除了我的符号链接
答案 2 :(得分:0)
详细:
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
一切正常!