2010-07-27 13 views
9

Sto provando a impostare Internationalization of JavaScript code in my Django application.Catalogo vuoto per l'internazionalizzazione del codice JavaScript

mio Django app ha una sottodirectory locale con un djangojs.po file in modo corretto generato. La definizione del pacchetto è la seguente:

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

./manage.py makemessages ha funzionato bene come il file .po contiene tutte le stringhe a-essere-tradotte ma nessuna stringa JavaScript viene mai tradotto sul sito web e il catalogo è sempre vuota.

risposta

3

ho aggiunto my_project di applicazioni installate in settings.py e che sembrava fare il trucco

+0

ho già "my_project" in applicazioni installate di my_project in settings.py e ancora il catalogo è vuoto. Potresti avere un'idea su cos'altro deve essere fatto? – urig

+0

Ho scoperto cosa è andato storto per me. Ho inserito i miei file po in /conf/locale quando avrebbe dovuto essere /locale. – urig

5

Ho anche avuto alcuni problemi con. Questo è come funziona per me:

Aggiungi questo yr radice 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), 

) 

Nel file JS usare:

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

per compilare i file di traduzione django: In un guscio/corsa terminale dalla radice progetto (dove 'applicazioni', 'impostazioni', ecc giacciono):

#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

Ancora dovuto aggiungere il mio progetto a INSTALLED_APPS. (che non mi piace) – bjunix

+0

Ancora non funziona per me. E sembra che "djangojs" sia il dominio predefinito. Non c'è bisogno di scriverlo esplicitamente. – azmeuk

Problemi correlati