Django忽略来自第三方模块的翻译字符串

时间:2014-03-27 10:42:22

标签: python django python-2.7 translation

我正在使用Django 1.6和Python 2.7构建一个网站,并将其翻译成第二语言。 Django框架消息,以及我自己的模板和代码中的字符串都可以正常翻译。

我正在使用django-passwords模块,该模块没有内置翻译功能。 (django-passwords中的Python代码看起来已正确标记为使用ugettext_lazy进行翻译,但该模块不包含现成翻译。)

我已经在django-passwords级别创建了一个消息文件(如Django's I18N with third-party apps中所述),添加了一些已翻译的字符串并对其进行了编译。但是,当我运行我的应用程序时,django-passwords的字符串仍然以英文显示。

django-passwords安装在c:/ Python27 / lib / site-packages / passwords,编译的消息文件位于c:/Python27/lib/site-packages/passwords/locale/fr/LC_MESSAGES/django.mo

(我也尝试过上面回答中提到的符号链接方法,但是来自django-passwords的字符串不会被提取到我的应用级.po文件。我在Windows上,所以会尽快避免符号链接,如果可能的话。)

在显示有关密码验证的消息时,我需要执行哪些其他步骤才能让我的应用使用已翻译的字符串?

1 个答案:

答案 0 :(得分:0)

在我整个下午敲了一下之后,这就是我为我工作的方式:

1 - add the translations i wanted to my `django-password` forked repository
2 - pip install git+https://github.com/Ubiwhere/django-passwords.git@3a0f70d11561cff690eb2a01c613a4280a8d641f
3 - add `passwords` to `INSTALLED_APPS` in settings.py (adding `django-passwords`does not work)

在此之后,新的翻译开始运作。