2013-04-02 8 views
11

Mam pewne dziwne problemy z modułem internacjonalizacji django. Większość ciągów jest tłumaczonych tak jak muszą, a niektóre nie. Pozwól, że ci pokażę i przykład:Niektóre ciągi nie przetłumaczone w module django i18n

<li>{% trans "Upload Score" %}</li> 
<li>{% trans "Profile" %}</li> 
<li>{% trans "Invite friends" %}</li> 
<li>{% trans "Settings" %}</li> 

Mam listę 4 artykułów dla menu. Prowadzę makemessages poleceń Django przetłumaczyć stronę w języku francuskim i mam wszystko zgodnie z oczekiwaniami:

#: templates/main.html:190 templates/main.html.py:195 
#, fuzzy 
msgid "Upload Score" 
msgstr "Publier" 

#: templates/main.html:191 templates/main.html.py:196 
msgid "Profile" 
msgstr "Profil" 

#: templates/main.html:192 templates/main.html.py:197 
#, fuzzy 
msgid "Invite Friends" 
msgstr "inviter vos amis" 

#: templates/main.html:193 templates/main.html.py:198 
msgid "Settings" 
msgstr "Préférences" 

Ale kiedy go skompilować, będzie django-admin compilemessages, tylko „Profil” i „Ustawienia” są tłumaczone. Czy wiesz, skąd to może pochodzić? Czy można to powiązać z użyciem białych przestrzeni? Czy w module i18n jest tryb debugowania?

Dzięki za pomoc! :)

EDYCJA: Jesteśmy na django 1.4.

+0

jaki sposób ustawienia językowe projektu Django wygląda? ('LANGUAGE_CODE',' USE_I18N'). Jak wyglądają twoje ustawienia językowe? 'Profil' i' Ustawienia' to ogólny ciąg znaków, który można znaleźć w tłumaczeniach należących do samego django. Domyślam się, że twoje tłumaczenia nie są w ogóle używane z powodu niedopasowania ustawień językowych lub czegoś podobnego. – yedpodtrzitko

Odpowiedz

7

Musisz usunąć rozmyte linie.

Fuzzy prawdopodobnie oznacza, że ​​oryginalny ciąg znaków został zmieniony. Gettext nie chce tracić twoich tłumaczeń, więc zmieni to, ale oznaczy to niewyraźne.

Polecam Ci rosetta. Stworzy ci interfejs administratora, w którym możesz tłumaczyć ciągi i zarządzać rozmytymi.

Cheers

2

miałem dokładnie ten sam objaw, ja po prostu zapomniałem dodać ustawienia LOCALE_PATHS i Django używałem kilka domyślnych ciągi tłumaczeniowe dla niektórych moich strun, a nie osiągnięcie moje własne opracowane plików wiadomości.

Dodanie tego ustawienia rozwiązał problem:

LOCALE_PATHS = (
    PROJECT_DIR.child('locale'), # assuming PROJECT_DIR is set to project root (using unipath) 
) 
+0

Nie powinien to być LOCALE_PATH (bez S) –

+1

Połączyłem z dokumentami, gdzie jest bardzo jasne, że jest to "LOCALE_PATHS". –

Powiązane problemy