无法找到存储 file__ init__. py 翻译的区域设置路径

我在翻译一个姜戈的应用。我在模板中用 {% trans %}创建了一些字符串。但是,当我在应用程序文件夹中执行以下命令时,会收到一条错误消息:

$ django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`

我做错了什么?

34789 次浏览

原来您需要首先使用 mkdir locale创建一个 locale文件夹。如果在应用程序文件夹中运行该命令,则需要在该应用程序文件夹中使用 locale文件夹。

实际上,您可以配置 locale 文件夹的位置:

LOCALE_PATHS = (
PROJECT_ROOT + '/website/locale', )

然后为每种要翻译的语言创建一个文件夹:

mkdir -p website/locale/de

问题是命令不是从 app 目录运行的,而是从 project 目录运行的。这段来自文档的片段解释道:

原来您需要首先使用 mkdir locale创建一个 locale文件夹。

运行整个源代码树 工作目录并提取所有标记为翻译的字符串。它在 conf/locale (在 Django 树中)或 locale (针对项目和应用程序)目录中创建(或更新)一个消息文件。

因此,要么从 app 目录运行该命令:

$ cd app
$ django-admin makemessages -l <locale>

... 或者使用 LOCALE_PATHS定义一个项目范围的区域目录,然后从那里开始从主目录运行 makemessages

无论哪种方式,您都应该检查是否存在 ./locale/目录,并使用

$ mkdir locale

万一不是呢。

如果您想要每个应用程序的 locale目录,只需要在运行 makemessages之前在每个应用程序目录中使用 翻译字符串(其中包含具有翻译字符串的文件)创建它们。和 django 会发现他们。不需要 cd

如果需要一个项目范围的 locale目录,请在运行 makemessages之前在项目目录中创建它。