Django的I18N与第三方应用程序

时间:2010-10-14 13:48:49

标签: django internationalization django-tagging

我有一个使用django-tagging的Django项目,应该用德语运行。所以我查看了源代码,发现django-tagging确实使用gettext_lazy,因此完全可以翻译。但是,包中没有可用的翻译。所以我认为必须有一种方法让我从我的项目中翻译它。

换句话说,我希望./manage.py makemessages -a包含来自django-tagging的未翻译字符串,但显然我错了。

那么,我该如何妥善处理这种情况呢?翻译上游存储库中的django-tagging是否会按预期工作?

3 个答案:

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

一切正常!