2009-01-21 10 views
7

Mam średniej wielkości projekt Django, (działający w AppEngine, jeśli robi jakąkolwiek różnicę) i ma wszystkie ciągi żyjące w plikach .po, tak jak powinny.Django brakuje tłumaczenia niektórych ciągów. Każdy pomysł, dlaczego?

Widzę dziwne zachowanie, w którym pewne struny po prostu się nie tłumaczą. Pojawiają się w pliku .po, gdy uruchamiam make_messages, z poprawnymi lokalizacjami plików zaznaczonymi, gdzie znajdują się moje tagi {% trans%}. Tłumaczenia są na miejscu i wyglądają poprawnie w porównaniu do innych ciągów po obu stronach. Ale kiedy wyświetlam daną stronę, około 1/4 ciągów po prostu nie tłumaczę.

Kopiowanie do odpowiedniego wygenerowanego pliku .mo, nie widzę ani pliku msgid ani msgstr.

Czy ktoś widział coś podobnego? Masz pojęcie, co może się wydarzyć?

  • tagi trans wyglądać poprawne
  • plików .po wyglądać poprawne
  • żadnych błędów podczas compile_messages

Odpowiedz

9

ugh. Django, zabijasz mnie.

Oto co się dzieje:

http://blog.e-shell.org/124

Z jakiegoś powodu tylko Django wie, że postanowił ozdobić niektóre z moich przekładów z komentarzem „#” rozmytej. Wydaje się, że wybrały one losowo.

Zresztą #fuzzy oznacza to: „nie tłumaczyć tego, chociaż tutaj to tłumaczenie:”

Zostawię to tutaj w razie jakiś inny biedny dusza przychodzi po niej w przyszłości.

+0

+1 domyślnie PyCharm zawiera #fuzzy u góry pliku dezaktywującego go. – Valchris

+0

Dzięki, miałem ten sam problem, zaoszczędziłeś mi czas :-) – Tommy

10

Znacznik rozmytości jest dodawany do pliku .po przez makemessages. Kiedy masz nowy ciąg (bez tłumaczeń), szuka podobnych ciągów i włącza je jako tłumaczenie ze znacznikiem rozmytym. Oznacza to, że jest to surowy mecz, więc nie wyświetlaj go użytkownikowi, ale może być dobrym początkiem dla ludzkiego tłumacza.

To nie jest zachowanie Django, pochodzi z funkcji gettext.

Powiązane problemy