Французский перевод вызывает "ValueError ('недопустимый токен в множественном числе:% s'% value)" - PullRequest
2 голосов
/ 11 июня 2019

Я хочу работать с французской версией моего сайта.

Я использую Django 2.2 с i18n, и я уже установил переменные локали в settings.py.

# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/

LANGUAGES = (
    ('en', _('English')),
    ('fr', _('French')),
    ('it', _('Italian')),
    ('es', _('Spanish')),
)

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)

TIME_ZONE = 'Europe/Paris'

USE_I18N = True

USE_L10N = True

USE_TZ = True

Когда я использую ./manage.py makemessages -l fr, у меня правильно есть французский файл django.po, но после ./manage.py compilemessages -l fr сервер падает со следующей ошибкой (trimed):

  File "/usr/lib/python3.7/gettext.py", line 93, in _tokenize
    raise ValueError('invalid token in plural form: %s' % value)
ValueError: invalid token in plural form: EXPRESSION

Переводы на английский, итальянский и испанский языки работают хорошо

РЕДАКТИРОВАТЬ: Ну, проблема была решена, но я не совсем уверен, как. Я удалил свой venv, воссоздал его, и французский перевод неожиданно сработал. Обновление с Django 2.2.1 до 2.2.2 может быть причиной разрешения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...