Frage Es wurde kein Gebietsschemapfad zum Speichern von Übersetzungen für die Datei __init__.py gefunden


Ich versuche eine Django App zu übersetzen. Ich habe einige Strings mit erstellt {% trans %} in meinen Vorlagen. Wenn ich den folgenden Befehl in meinem App-Ordner ausführe, erhalte ich eine Fehlermeldung:

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

Was habe ich falsch gemacht?


75
2017-07-24 14:53


Ursprung


Antworten:


Es stellt sich heraus, dass Sie ein erstellen müssen locale Ordner zuerst verwenden mkdir locale.


109
2017-07-24 15:09



Tatsächlich können Sie konfigurieren, wo der Gebietsschema-Ordner ist. In deiner settings.py füge hinzu:

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

Erstellen Sie dann einen Ordner für jede der Sprachen, die Sie übersetzen möchten:

mkdir -p website/locale/de

19
2018-01-23 06:48



Das Problem besteht darin, dass der Befehl nicht aus dem Anwendungsverzeichnis, sondern aus dem Projektverzeichnis ausgeführt wird. Dieser Ausschnitt aus der Dokumentation erklärt es:

Es stellt sich heraus, dass Sie ein erstellen müssen locale Ordner zuerst verwenden mkdir locale.

./manage.py makemessages [...] Läuft über den gesamten Quellbaum des aktuellen Verzeichnisses und zieht alle Zeichen heraus, die für die Übersetzung markiert sind. Es erstellt (oder aktualisiert) eine Nachrichtendatei im Verzeichnis conf / locale (in der Django-Struktur) oder im Gebietsschema (für Projekt und Anwendung).

Sie führen den Befehl entweder aus dem App-Verzeichnis aus:

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

... oder Sie definieren ein projektweites Gebietsschemaverzeichnis mit LOCALE_PATHS und du kannst rennen makemessages aus dem Hauptverzeichnis von dort an.

Wie auch immer, Sie sollten das überprüfen ./locale/Verzeichnis ist vorhanden und erzeugt es mit

$ mkdir locale

falls es nicht ist.


8
2018-01-11 11:30