5

Versión:¿Por qué Django no produce archivos locales desde archivos de plantilla en otro directorio? información

versión de Django 1.3 pre-alpha SVN-13858

Ubuntu GNU/Linux 10.10

estoy totalmente nuevo para i18n y l10n en Django y actualmente estoy tratando de hacer mi proyecto Django está disponible en holandés (además de su idioma predeterminado: inglés). Traté de aplicar las instrucciones dadas en http://docs.djangoproject.com/en/dev/topics/i18n/translation/ y http://www.djangobook.com/en/2.0/chapter19/ pero no tuve éxito. No sé si esto está relacionado con que mi estructura de directorio y mis archivos de plantilla estén en un directorio completamente diferente (es decir, no como un subdirectorio dentro del directorio de mi proyecto Django). Mi directorio del proyecto tiene el siguiente aspecto:

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

En myproject y directorios myapp1 Traté de emitir el comando siguiente:

django-admin.py makemessages -l nl 

pero recibió el siguiente error:

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. 

Así Traté de crear locale directorios dentro de los directorios myproject y myapp1. Después de eso he emitido el comando de arriba otra vez (una vez en el proyecto y una vez en el directorio de la aplicación) y esta vez sin ningún tipo de error o advertencias que dije:

processing language nl 

que comprueba los directorios de configuración regional y vi que estaban pobladas de subdirectorios, pero no había ningún archivo .po en absoluto:

$ tree 
. 
`-- nl 
    `-- LC_MESSAGES 

2 directories, 0 files 

me doble comprobado que tengo mis archivos html (archivos de plantilla) en el hogar/emre/mydjangotemplates y que incluyen {% i18n carga %} y algunas líneas como {% trans "Una pieza de texto en inglés"%}.

¿Qué me estoy perdiendo? ¿Debo invocar el comando django-admin.py makemessages con diferentes parámetros? ¿Por qué Django no crea archivos .po aunque tengo algo de texto para traducir en mis archivos de plantilla .html?

Respuesta

9

makemessages solo busca en directorios bajo el directorio actual. Puede intentar crear un enlace simbólico desde algún lugar de su proyecto a su directorio de plantillas y agregar el -s to make it follow symlinks.

+0

Creé enlaces simbólicos al directorio de plantillas desde directorios de proyectos y aplicaciones, y luego intenté con el mismo comando, el mismo resultado. Luego eliminé los subdirectorios de la configuración regional, los recreé, probé, obtuve el mismo resultado y luego intenté como django-admin.py makemessages -a, pero desafortunadamente todo lo que obtengo es un directorio locale/nl/LC_MESSAGES/dentro de mi proyecto y carpetas de aplicaciones. –

+1

intente agregado --verbosity 2 al final del comando. debería imprimir lo que está haciendo, tal vez dará alguna pista. –

+0

Lo hice y parece que no está atravesando los subdirectorios a los que normalmente se puede acceder siguiendo el enlace simbólico: examinar archivos con las extensiones: .html idioma de procesamiento n ignorando el archivo models.py ~ in. ignorando el archivo urls.py ~ in ignorando el archivo views.py ~ in archivo de procesamiento __init__.py en. procesando el archivo models.py en archivo de procesamiento tests.py en archivo de procesamiento urls.py en vistas de archivos de procesamiento.py en –

Cuestiones relacionadas