我有一个小问题,我需要帮助/想法如何解决。
我有一个关于为django中的语言环境翻译生成* .po文件的问题。我使用Fabric脚本为每个代码版本部署一个全新的文件夹,但已将 locale 文件夹移到项目之外,因为我希望每个新版本都相同,并在本地更新它。
然而,当我试图运行python manage.py makemessages -l en
时,django抱怨我没有任何语言环境文件夹,我在运行命令。
CommandError: This script should be run from the Django Git tree or your
project or app tree. If you did indeed run it from the Git checkout or
your project or application, maybe you are just missing the conf/locale
(in the django tree) or locale (for project and application) directory?
It is not created automatically, you have to create it by hand if you
want to enable i18n for your project or application.
我确实在设置中提供了项目外部位置的语言环境路径,并且在django读取文件时工作正常。但是,它似乎需要在工作路径中生成要转换的字符串。
我现在通过在工作文件夹中指向项目外的ln -s
文件夹的软链接(locale
)来解决它,但我的语言处理程序rosetta认为我有两个不同的应用程序需要翻译。它们是相同的,如果我改变一个,另一个也改变了,但它感觉很时髦......任何想法如何以更好/更pythonic的方式解决它?
非常感谢!
答案 0 :(得分:0)
查看makemessage命令的源代码: https://github.com/django/django/blob/master/django/core/management/commands/makemessages.py#L256
如果您没有名为LOCALE_PATHS
的文件夹,似乎只需考虑conf/locale
设置。查看您是否拥有conf/locale
文件夹,如果有,请将其删除。通过该代码进行跟踪也许有帮助。