1

我有一个小问题需要帮助/关于如何解决的想法。

我有一个关于在 django 中为语言环境翻译生成 *.po 文件的问题。我使用 Fabric 脚本为每个版本的代码部署一个全新的文件夹,但已将语言环境文件夹移到项目之外,因为我希望每个新版本都相同并在本地更新它。

但是,当我尝试运行python manage.py makemessages -l endjango 时抱怨我没有任何运行命令的语言环境文件夹。

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的方式解决它的任何想法?

非常感激!

4

1 回答 1

0

看一下makemessage命令的来源: https ://github.com/django/django/blob/master/django/core/management/commands/makemessages.py#L256

如果LOCALE_PATHS您没有名为conf/locale. 查看您是否有该conf/locale文件夹,如果有,请将其删除。跟踪该代码也可能会有所帮助。

于 2014-04-02T15:48:42.397 回答