2009-09-04 12 views
18
  1. Dlaczego czasami otrzymuję pozycję fuzzy w pliku językowym django.po. Faktycznie, sprawdziłem w moim projekcie element ciągowy fuzzy jest całkowicie unikalny.django fuzzy ciąg znaków nie pojawia się

    #: .\users\views.py:81 .\users\views.py:101 
    #, fuzzy 
    msgid "username or email" 
    msgstr "9988" 
    
  2. Jest ok, aby być rozmyte, ale moje tłumaczenie rozmytych element nie wyświetlają się na stronie, tylko angielska wersja pojawi. To jest całkowicie dziwne.

Odpowiedz

27
  1. msgmerge znaki struny jak fuzzy jeśli stary katalog miał translacji dla ciągów o podobnym wyglądzie msgid. Przenosi również ciągi oznaczone jako niewyraźne ze starego katalogu na nowy.

  2. msgfmt wyklucza wiadomości rozmyte z skompilowanego katalogu, ponieważ tłumaczenia są prawdopodobnie niepoprawne. Tłumacz powinien sprawdzić poprawność tłumaczenia (w przypadku, gdy napisałeś, pusty ciąg jest wyraźnie niepoprawnym tłumaczeniem) i usunąć oznaczenie fuzzy po zweryfikowaniu tłumaczenia. Jeśli naprawdę chcesz używać rozmytych tłumaczeń, podaj `` `--use-fuzzy to msgfmt`.

+0

dziękuję, tak naprawdę umieszczam coś w prawdziwym tłumaczeniu, powiedz msgid "nazwa użytkownika lub e-mail" msgstr "9988" i używam polecenia "django-admin.py compilemessages" do kompilacji, wydaje się, że nie ma parametru -use-fuzzy do przekazania. – icn

+0

compilemessages po prostu wywołuje 'msgmft --check-format -o foo.mo foo.po' dla wszystkich znalezionych plików po. Zamiast tego użyj jawnie msgfmt. –

+1

Należy podkreślić, że po sprawdzeniu, że rozmyte tłumaczenia są w porządku, należy usunąć flagę rozmytą. W przeciwnym razie będą pomijane przy normalnych wywołaniach 'compilemessages' – kiril

5

Ja też miałem te problemy i rozwiązać je wszystkie za pomocą edytora „po” (jak poedit), który podkreśla wpisy rozmytych i nieprzetłumaczone i sprawia, że ​​proces tłumaczenia znacznie szybciej.

Możesz także użyć Django Rosetta, aby proces tłumaczenia był zintegrowany ze środowiskiem Django.