Dlaczego czasami otrzymuję pozycję
fuzzy
w pliku językowymdjango.po
. Faktycznie, sprawdziłem w moim projekcie element ciągowyfuzzy
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"
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
msgmerge
znaki struny jakfuzzy
jeśli stary katalog miał translacji dla ciągów o podobnym wyglądziemsgid
. Przenosi również ciągi oznaczone jako niewyraźne ze starego katalogu na nowy.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ąć oznaczeniefuzzy
po zweryfikowaniu tłumaczenia. Jeśli naprawdę chcesz używać rozmytych tłumaczeń, podaj `` `--use-fuzzyto
msgfmt`.
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.
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
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. –
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