2010-07-27 9 views
9

Estoy tratando de configurar Internationalization of JavaScript code in my Django application.Catálogo vacío al internacionalizar código JavaScript

Mi aplicación Django tiene un subdirectorio locale con un archivo djangojs.po correctamente generado. La definición del paquete es el siguiente:

# urls.py 
js_info_dict = { 
    'packages': ('my_project',), 
} 

./manage.py makemessages trabajaron así como el archivo .po contiene todas las cadenas a-ser traducidos, pero ninguna cadena JavaScript alguna vez se traduce en la página web y el catálogo está siempre vacío.

Respuesta

3

añadí mi_proyecto a las aplicaciones instaladas en settings.py y que parecía hacer el truco

+0

ya tengo "mi_proyecto" en las aplicaciones instaladas en la my_project settings.py y aún el catálogo está vacío. ¿Podría tener una idea de qué más hay que hacer? – urig

+0

He descubierto lo que salió mal para mí. Puse mis archivos po en /conf/locale cuando debería haber sido /locale. – urig

5

También he tenido algunos problemas con el. Esta es la forma en que funciona para mí:

Añadir este año a raíz urls.py:

js_info_dict = { 'domain': 'djangojs', 
       'packages': ('YOUR_PROJECT_NAME',), } 


urlpatterns = patterns('',     

    #enable using translation strings in javascript 
    #source: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#module-django.views.i18n 
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 

) 

En archivos JS usar:

var somevar = gettext('Text to translate'); 

Para compilar los archivos de traducción de Django: En una cáscara/terminal ejecutar desde la raíz del proyecto (donde 'aplicaciones', 'configuración', etc mentira):

#for "normal django files" (.py, .html): 
django-admin.py makemessages --locale=de 
#for javascript files. source: http://stackoverflow.com/a/3571954/268125 
django-admin.py makemessages -a -d djangojs --locale=de 
#to compile the translation files to machine code 
django-admin.py compilemessages --locale=de 
+0

Aún tuve que agregar mi proyecto a INSTALLED_APPS. (que no me gusta) – bjunix

+0

Todavía no funciona para mí. Y parece que 'djangojs' es el dominio predeterminado. No es necesario escribirlo explícitamente. – azmeuk

Cuestiones relacionadas