5

Versione:Perché Django non produce file locali da file modello in un'altra directory? Informazioni

versione Django 1.3 pre-alpha SVN-13858

Ubuntu GNU/Linux 10.10

io sono totalmente nuovo per i18n e l10n in Django e attualmente sto cercando di fare il mio progetto Django è disponibile in olandese (oltre alla lingua predefinita: inglese). Ho provato ad applicare le istruzioni fornite a http://docs.djangoproject.com/en/dev/topics/i18n/translation/ e http://www.djangobook.com/en/2.0/chapter19/ ma non ho avuto successo. Non so se questo è legato alla mia struttura di directory e ai file di modello che si trovano in una directory completamente diversa (non intendo come sottodirectory all'interno della directory del mio progetto Django). La mia directory del progetto è simile al seguente:

/home/emre/mydjango/myproject 
/home/emre/mydjango/myproject/myapp1 
/home/emre/mydjangotemplates 
/home/emre/mydjangotemplates/myapp1 

Nel myproject e directory myapp1 ho cercato di eseguire il seguente comando:

django-admin.py makemessages -l nl 

Ma ricevuto il seguente errore:

Error: This script should be run from the Django SVN tree or your project or 
app tree. If you did indeed run it from the SVN checkout or your project or 
application, maybe you are just missing the conf/locale (in the django tree) 
or locale (for project and application) directory? It is not created automatically, 
you have to create it by hand if you want to enable i18n for your project or 
application. 

Così Ho provato a creare le directory locali nelle directory myproject e myapp1. Dopo di che ho dato il comando di cui sopra ancora una volta (una volta nel progetto e una volta nella directory app) e questa volta senza alcun errore o avvisi Diceva:

processing language nl 

ho controllato le directory di locale e ho visto che sono stati popolati con sottodirectory, ma non c'erano file .po a tutti:

$ tree 
. 
`-- nl 
    `-- LC_MESSAGES 

2 directories, 0 files 

ho ricontrollato che ho i miei file .html (file template) in casa/Emre/mydjangotemplates e che comprendono {carico i18n% %} e alcune righe come {% trans "Un pezzo di testo inglese"%}.

Cosa mi manca? Devo invocare il comando django-admin.py makemessages con parametri diversi? Perché Django non crea file .po anche se ho qualche testo da tradurre nei miei file modello .html?

risposta

9

makemessages cerca solo nelle directory nella directory corrente. Puoi provare a creare un link simbolico da qualche parte sotto il tuo progetto alla directory dei modelli e aggiungere lo -s to make it follow symlinks.

+0

Ho creato collegamenti simbolici alla directory dei modelli dalle directory dei progetti e delle app, quindi ho provato lo stesso comando, lo stesso risultato. Poi ho cancellato le sottodirectory locali, le ho ricreate, l'ho provata, lo stesso risultato, ho anche provato come django-admin.py makemessages -a, ma sfortunatamente tutto ciò che ottengo è una directory locale vuota/nl/LC_MESSAGES/all'interno del mio progetto e cartelle di app. –

+1

prova aggiunto --verbosity 2 alla fine del comando. dovrebbe stampare quello che sta facendo, forse darà qualche indizio. –

+0

Ho fatto e sembra che non stia attraversando le sottodirectory che sono normalmente raggiungibili seguendo il link simbolico: esaminando i file con le estensioni: .html linguaggio di elaborazione nl ignorando il file models.py ~ in. ignorando il file urls.py ~ in. ignorando il file views.py ~ in. file di elaborazione __init__.py in. file di elaborazione models.py in. file di elaborazione tests.py in. file di elaborazione urls.py in. viste dei file di elaborazione.py in –

Problemi correlati