Skip to content

Remove bogus Plural-Forms headers.

Mark Sapiro requested to merge msapiro/hyperkitty:i18n into master

Several django.po files contained the header.

"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"

This causes issues like

ERROR 2023-10-10 20:50:14,739 log 22484 140465236453184 Internal Server Error: /archives/list/python-dev@python.org/
Traceback (most recent call last):
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 56, in inner
    response = get_response(request)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/sentry_sdk/integrations/django/middleware.py", line 175, in __call__
    return f(*args, **kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/ddtrace/contrib/trace_utils.py", line 162, in wrapper
    return func(mod, pin, wrapped, instance, args, kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/ddtrace/contrib/django/patch.py", line 213, in wrapped
    return func(*args, **kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/deprecation.py", line 135, in __call__
    response = self.process_request(request)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/ddtrace/contrib/trace_utils.py", line 162, in wrapper
    return func(mod, pin, wrapped, instance, args, kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/ddtrace/contrib/django/patch.py", line 213, in wrapped
    return func(*args, **kwargs)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/middleware/locale.py", line 35, in process_request
    translation.activate(language)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/__init__.py", line 181, in activate
    return _trans.activate(language)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 303, in activate
    _active.value = translation(language)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 292, in translation
    _translations[language] = DjangoTranslation(language)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 169, in __init__
    self._add_installed_apps_translations()
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 225, in _add_installed_apps_translations
    translation = self._new_gnu_trans(localedir)
  File "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 198, in _new_gnu_trans
    return gettext_module.translation(
  File "/usr/local/lib/python3.9/gettext.py", line 602, in translation
    t = _translations.setdefault(key, class_(fp))
  File "/usr/local/lib/python3.9/gettext.py", line 261, in __init__
    self._parse(fp)
  File "/usr/local/lib/python3.9/gettext.py", line 439, in _parse
    self.plural = c2py(plural)
  File "/usr/local/lib/python3.9/gettext.py", line 183, in c2py
    result, nexttok = _parse(_tokenize(plural))
  File "/usr/local/lib/python3.9/gettext.py", line 116, in _parse
    nexttok = next(tokens)
  File "/usr/local/lib/python3.9/gettext.py", line 93, in _tokenize
    raise ValueError('invalid token in plural form: %s' % value)
ValueError: invalid token in plural form: EXPRESSION

None of the languages for which this is the case have current HyperKitty translations in Weblate. It will be up to translators to supply proper Plural-Forms: as required.

Merge request reports