我正在尝试翻译Django应用。我在模板中使用{% trans %}
创建了一些字符串。但是,当我在我的app文件夹中执行以下命令时,收到一条错误消息:
$ django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`
我做错了什么?
答案 0 :(得分:133)
原则上,您需要先使用locale
创建mkdir locale
文件夹。
答案 1 :(得分:23)
实际上,您可以配置语言环境文件夹的位置。在您的settings.py中添加:
LOCALE_PATHS = (
PROJECT_ROOT + '/website/locale', )
然后为您要翻译的每种语言创建一个文件夹:
mkdir -p website/locale/de
答案 2 :(得分:9)
问题是命令不是从app目录运行,而是从项目目录运行。 This snippet from the docs解释道:
原则上,您需要先使用locale
创建mkdir locale
文件夹。
./manage.py makemessages
[...]在当前目录的整个源树上运行,并拉出所有标记为要翻译的字符串。它在conf / locale(在Django树中)或locale(用于项目和应用程序)目录中创建(或更新)消息文件。
因此,您可以从app目录运行命令:
$ cd app
$ django-admin makemessages -l <locale>
...或者使用LOCALE_PATHS
定义项目范围的语言环境目录,然后可以从主目录运行makemessages
。
无论哪种方式,您都应该检查./locale/
目录是否存在并使用
$ mkdir locale
如果不是。