Подтвердить что ты не робот

Некоторые строки, не переведенные в модуль 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.

4b9b3361

Ответ 1

Вам нужно удалить нечеткие строки.

Fuzzy, вероятно, означает, что исходная строка была изменена. Gettext не хочет потерять ваши переводы, поэтому он изменит его, но пометьте его нечетким.

Я рекомендую вам rosetta. Это создаст вам админ, как интерфейс, где вы можете переводить строки и управлять нечеткими.

Приветствия

Ответ 2

У меня был тот же самый симптом, я просто забыл добавить настройки LOCALE_PATHS, а Django использовал некоторые строки перевода по умолчанию для некоторых из мои строки и не доходят до моих разработанных файлов сообщений.

Добавление этой настройки позволило решить проблему:

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