it-swarm.com.de

Es konnte kein Gebietsschemapfad zum Speichern der Übersetzungen für die Datei __init__.py gefunden werden

Ich versuche eine Django App zu übersetzen. Ich habe einige Zeichenfolgen mit {% trans %} In meinen Vorlagen erstellt. Wenn ich jedoch 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?

92
Antoine M.

Es hat sich herausgestellt, dass Sie zuerst mit mkdir locale Einen locale -Ordner erstellen müssen. Wenn Sie den Befehl in einem App-Ordner ausführen, benötigen Sie einen locale -Ordner in diesem App-Ordner.

137
Antoine M.

Tatsächlich können Sie konfigurieren, wo sich der Locale-Ordner befindet. In Ihrer settings.py fügen Sie 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
23
David Dehghan

Das Problem ist, dass der Befehl nicht aus dem App-Verzeichnis, sondern aus dem Projektverzeichnis ausgeführt wird. Dieses Snippet aus den Dokumenten erklärt es:

Es hat sich herausgestellt, dass Sie zuerst mit mkdir locale Einen locale -Ordner erstellen müssen.

./manage.py makemessages […] Durchläuft den gesamten Quelltextbaum des aktuellen Verzeichnisses und ruft alle zur Übersetzung markierten Zeichenfolgen ab. Es erstellt (oder aktualisiert) eine Nachrichtendatei im Verzeichnis conf/locale (im Verzeichnis Django)) oder locale (für Projekt und Anwendung).

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

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

… Oder Sie definieren mit LOCALE_PATHS Ein projektweites Gebietsschemaverzeichnis und können von dort aus makemessages aus dem Hauptverzeichnis ausführen.

In jedem Fall sollten Sie überprüfen, ob das Verzeichnis ./locale/ Vorhanden ist, und es mit erstellen

$ mkdir locale

falls nicht.

10
jnns