Некоторые строки, не переведенные в модуль django i18n
У меня есть некоторые странные проблемы с модулем интернационализации django. Большинство строк переводится так, как должно быть, а некоторые другие - нет. Позвольте мне показать вам и пример:
<li>{% trans "Upload Score" %}</li>
<li>{% trans "Profile" %}</li>
<li>{% trans "Invite friends" %}</li>
<li>{% trans "Settings" %}</li>
У меня есть список из 4 элементов для меню. Я запускаю команду django makemessages, чтобы перевести сайт на французский язык, и я получаю все, как ожидалось:
#: 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"
Но когда я его скомпилирую, будут компилироваться сообщения django-admin, будут переведены только "Профиль" и "Настройки". Вы знаете, откуда это взялось? Может ли это быть связано с использованием белых пространств? Есть ли режим отладки в модуле i18n?
Спасибо, что поможете!:)
EDIT: Мы находимся на django 1.4.
Ответы
Ответ 1
Вам нужно удалить нечеткие строки.
Fuzzy, вероятно, означает, что исходная строка была изменена. Gettext не хочет потерять ваши переводы, поэтому он изменит его, но пометьте его нечетким.
Я рекомендую вам rosetta. Это создаст вам админ, как интерфейс, где вы можете переводить строки и управлять нечеткими.
Приветствия
Ответ 2
У меня был тот же самый симптом, я просто забыл добавить настройки LOCALE_PATHS
, а Django использовал некоторые строки перевода по умолчанию для некоторых из мои строки и не доходят до моих разработанных файлов сообщений.
Добавление этой настройки позволило решить проблему:
LOCALE_PATHS = (
PROJECT_DIR.child('locale'), # assuming PROJECT_DIR is set to project root (using unipath)
)