在Django中收集第三方应用程序的消息

8

如何从位于虚拟环境目录中的第三方库生成消息(manage.py makemessages)?

我尝试将消息简单地添加到.po文件中,但每次运行makemessages命令时我的翻译都会消失。

非常感谢。


这个库是 Django 应用程序吗?它是否已添加到 INSTALLED_APPS 中? - catavaran
是的,没错。很奇怪,对吧? - n1_
1个回答

11

manage.py makemessages 只会查找当前目录下的子目录。因此,您需要在项目目录下创建一个指向第三方应用程序的符号链接:

manage.py makemessages 只会搜索当前目录下的子目录。因此,您必须创建一个从第三方应用程序指向您项目目录的符号链接:

ln -s ~/.virtualenvs/myvenv/local/lib/python2.7/site-packages/app app
mkdir locale
python manage.py makemessages -l cz -s

请注意-s选项。它强制makemessages跟随符号链接。

另一个警告是如果app已经本地化,则.po文件将在app/locale/cz目录下创建,而不是在您的locale目录下。


如果我删除符号链接并重新制作消息,它们会从.po文件中消失吗? - n1_
1
是的,它们将会消失。为了防止这种情况发生,请将翻译从“locale”目录移动到其他目录,并设置“LOCALE_PATHS”设置。下次运行“makemessages”时,这个翻译将不受影响。 - catavaran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接