2009-12-26 8 views
6

z dokumentacji django:Jak nadać nazwy paczek do widoku javascript_catalog django?

js_info_dict = { 'pakietów' ('your.app.package',)}

urlpatterns = stanie ('', (R '^ jsi18n/$”, 'django.views.i18n.javascript_catalog', js_info_dict))

Każdy łańcuch w opakowaniach powinny być w Python przerywana-package składni (ten sam format jak struny w INSTALLED_APPS) i powinien odnosić się do pakiet zawierający katalog lokalny .

Podaje "pakiet zawierający katalog locale." , ale utworzyłem pliki tłumaczeń za pomocą djangoadmin.py makemessages -a i tworzy ono ustawienia lokalne w katalogu projektu. Nie pod żadnym z moich katalogów aplikacji. I próbuję ustawić pakiety jako

js_info_dict = { 'pakietów': ('',) my_project_dir}

Widocznie, że nie pracuje dla mnie. Każdy ciąg z domeny django zostanie przetłumaczony, ale otrzymam pusty katalog tłumaczeń w javascript z widoku javascript_catalog. Czego tu mi brakuje?

+2

Twoje pytanie jest bardzo jasne .. należy podać więcej informacji –

+0

mam ten sam problem. Chyba jest to związane z tym błędem http://code.djangoproject.com/ticket/5494 – pocoa

Odpowiedz

7

Najpierw trzeba mieć pewność, że js_info_dict jest tak:

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

I jak @daonb zasugerował, dodać '' do my_project_name twój INSTALLED_APPS w settings.py.

Upewnij się, że kompilacji wiadomości tak:

django-admin.py makemessages -a -d djangojs 

To wszystko!

Nie wiem, dlaczego Django nie ma tych informacji w swojej dokumentacji. udało mi się znaleźć rozwiązanie z użyciem tych artykułów poniżej:

http://www.aminche.com/blog/2010/07/06/playground-editor http://code.djangoproject.com/ticket/5494 http://osdir.com/ml/django-users/2010-04/msg00231.html

+1

Dzięki. Moim błędem było wywoływanie makressages django-admin.py na najwyższym poziomie katalogu projektu. To stworzyło katalogi tłumaczeń dla entrire projektu. Okazuje się jednak, że katalog javascript potrzebuje katalogów regionalnych na podstawie django app dir. Więc po użyciu 1. cd/home/my_project/my_app 2. mkdir locale 3. django-admin.py makemessages -d djangojs -l pl tworzy ciągi słowniki tylko dla my_app dir i mogę użyć: js_info_dict = { 'domena': 'djangojs', 'pakiety': ('my_app',), } – hamdiakoguz

+1

Nie ma za co. Zwykle musi obsługiwać ustawienia aplikacji. Więc to nie twoja wina, to błąd: http://code.djangoproject.com/ticket/5494 Pozdrawiam! – pocoa

3

spróbuj dodać 'my_project_dir' do INSTALLED_APPS w settings.py

+0

Witam, mam ten sam problem.Co masz na myśli, dodając nazwę projektu do INSTALLED_APPS? – pocoa

+0

Tak, to musi rozwiązać problem, ale tak nie jest. http://code.djangoproject.com/attachment/ticket/5494/root-locale-js-catalog.diff – pocoa

+0

Poprawka na tym bilecie jest czystsza niż dodanie projektu do INSTALLED_APP. Mimo to rozwiązał problem w moim projekcie. – daonb

0

Dla innych z moim konkretnym przypadku, JS komunikaty są generowane i kompilowane OK, ale nie może stać w szablonach lub stron podczas korzystania z języka i18n adresy URL.

Jest tak, ponieważ katalog javascript powinien zostać dodany do wzorców adresów URL i18n, a nie do normalnych wzorców.

urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),) 

=>

urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),) 
Powiązane problemy