2010-07-27 6 views
9

Ich versuche Internationalization of JavaScript code in my Django application einzurichten.Leerer Katalog bei der Internationalisierung von JavaScript-Code

Meine Django App hat ein locale Unterverzeichnis mit einer ordnungsgemäß generierten djangojs.po Datei. Die Paketdefinition lautet wie folgt:

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

./manage.py makemessages gut funktioniert wie die .po Datei enthält alle zu-setzten Strings aber kein JavaScript Zeichenfolge jemals auf der Website übersetzt wird und der Katalog ist immer leer.

Antwort

3

i hinzugefügt my_project zu installierenden APPS in settings.py und das schien mit dem Trick

+0

ich schon "my_project" haben in my_project der installierten Anwendungen in settings.py und trotzdem ist der Katalog leer. Hätten Sie vielleicht eine Idee, was noch zu tun ist? – urig

+0

Ich habe herausgefunden, was für mich schief gelaufen ist. Ich hatte meine po-Dateien unter /conf/locale, wenn es /locale hätte sein sollen. – urig

5

Ich hatte auch einige Probleme zu tun. Dies ist, wie es funktioniert für mich:

diese Wurzel urls.py zu yr hinzufügen:

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), 

) 

In JS-Dateien verwenden:

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

django Übersetzungsdateien zu kompilieren: In einer Schale/Terminal laufen aus dem Projektstamm (wobei 'Apps', 'Einstellungen', usw. liegen):

#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

Ich musste mein Projekt noch zu INSTALLED_APPS hinzufügen. (was ich nicht mag) – bjunix

+0

Es funktioniert immer noch nicht für mich. Und es scheint, dass "Djangojs" die Standard-Domain ist. Keine Notwendigkeit, es explizit zu schreiben. – azmeuk

Verwandte Themen