Djangoアプリを翻訳しようとしています。{% trans %}
私のテンプレート。ただし、アプリフォルダーで次のコマンドを実行すると、エラーメッセージが表示されます。
$ Django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`
私は何を間違えましたか?
mkdir locale
を使用して最初にlocale
フォルダーを作成する必要があることがわかりました。アプリフォルダー内からコマンドを実行する場合は、そのアプリフォルダー内にlocale
フォルダーが必要です。
実際には、ロケールフォルダーの場所を構成できます。 settings.pyに以下を追加します:
LOCALE_PATHS = (
PROJECT_ROOT + '/website/locale', )
次に、翻訳する言語ごとにフォルダーを作成します。
mkdir -p website/locale/de
問題は、コマンドがアプリディレクトリからではなく、プロジェクトディレクトリから実行されることです。 ドキュメントからのこのスニペット それを説明します:
mkdir locale
を使用して最初にlocale
フォルダーを作成する必要があることがわかりました。
./manage.py makemessages
[…]現在のディレクトリのソースツリー全体を実行し、翻訳対象としてマークされたすべての文字列を引き出します。 conf/locale(Djangoツリー)内)またはlocale(プロジェクトおよびアプリケーション用)ディレクトリにメッセージファイルを作成(または更新)します。
そのため、アプリディレクトリからコマンドを実行します。
$ cd app
$ Django-admin makemessages -l <locale>
…またはLOCALE_PATHS
を使用してプロジェクト全体のロケールディレクトリを定義し、そこからメインディレクトリからmakemessages
を実行できます。
いずれにしても、./locale/
ディレクトリが存在することを確認し、次を使用して作成する必要があります。
$ mkdir locale
そうでない場合に備えて。