#34297: raise ValueError('invalid token in plural form: %s' % value) , 
ValueError:
invalid token in plural form: EXPRESSION when adding new language
-------------------------------------+-------------------------------------
     Reporter:  azataiot             |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Utilities            |                  Version:  4.1
     Severity:  Normal               |               Resolution:
     Keywords:  gettext, i18n, l10n  |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by azataiot:

Old description:

> I used this guide on
> [stackoverflow](https://stackoverflow.com/questions/12946830/how-to-add-
> new-languages-into-django-my-language-uyghur-or-uighur-is-not-su)  to
> setup my language:
>
> Here is my code:
> ``` python
> # ======== support locale =========
> # https://stackoverflow.com/questions/12946830/how-to-add-new-languages-
> into-django-my-language-uyghur-or-uighur-is-not-su
> LOCALE_PATHS = [BASE_DIR / "locale"]
> LANGUAGES = (
>     ('en', _('English')),
>     ('tr', _('Turkish')),
>     ('uly', gettext_noop('Uyghur')),
>     # ('uay', gettext_noop('Uyghur')),
> )
>
> EXTRA_LANG_INFO = {
>     'uly': {
>         'bidi': False,  # right-to-left
>         'code': 'uly',
>         'name': 'Uyghur',
>         'name_local': 'Uyghur',  # unicode codepoints here
>     },
> }
> ```
> When i try to run the code, it gives me this error:
> ```
> Internal Server Error: /uly/admin/
> Traceback (most recent call last):
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/core/handlers/exception.py", line 55, in inner
>     response = get_response(request)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/deprecation.py", line 135, in __call__
>     response = self.process_request(request)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/middleware/locale.py", line 35, in process_request
>     translation.activate(language)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/__init__.py", line 181, in activate
>     return _trans.activate(language)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/trans_real.py", line 298, in activate
>     _active.value = translation(language)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/trans_real.py", line 287, in
> translation
>     _translations[language] = DjangoTranslation(language)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/trans_real.py", line 166, in __init__
>     self._add_local_translations()
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/trans_real.py", line 226, in
> _add_local_translations
>     translation = self._new_gnu_trans(localedir)
>   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
> packages/django/utils/translation/trans_real.py", line 193, in
> _new_gnu_trans
>     return gettext_module.translation(
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 602, in translation
>     t = _translations.setdefault(key, class_(fp))
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 261, in __init__
>     self._parse(fp)
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 439, in _parse
>     self.plural = c2py(plural)
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 183, in c2py
>     result, nexttok = _parse(_tokenize(plural))
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 116, in _parse
>     nexttok = next(tokens)
>   File
> "/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
> line 93, in _tokenize
>     raise ValueError('invalid token in plural form: %s' % value)
> ValueError: invalid token in plural form: EXPRESSION
> [27/Jan/2023 09:23:38] "GET /uly/admin/ HTTP/1.1" 500 135230
> /Users/azat/Developer/Django/izdinish/izdinish/settings.py changed,
> reloading.
> ```

New description:

 I used this guide on
 [stackoverflow](https://stackoverflow.com/questions/12946830/how-to-add-
 new-languages-into-django-my-language-uyghur-or-uighur-is-not-su)  to
 setup my language:

 Here is my code:


 {{{
 # ======== support locale =========
 # https://stackoverflow.com/questions/12946830/how-to-add-new-languages-
 into-django-my-language-uyghur-or-uighur-is-not-su
 LOCALE_PATHS = [BASE_DIR / "locale"]
 LANGUAGES = (
     ('en', _('English')),
     ('tr', _('Turkish')),
     ('uly', gettext_noop('Uyghur')),
     # ('uay', gettext_noop('Uyghur')),
 )

 EXTRA_LANG_INFO = {
     'uly': {
         'bidi': False,  # right-to-left
         'code': 'uly',
         'name': 'Uyghur',
         'name_local': 'Uyghur',  # unicode codepoints here
     },
 }
 }}}


 When i try to run the code, it gives me this error:
 {{{
 Internal Server Error: /uly/admin/
 Traceback (most recent call last):
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/core/handlers/exception.py", line 55, in inner
     response = get_response(request)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/deprecation.py", line 135, in __call__
     response = self.process_request(request)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/middleware/locale.py", line 35, in process_request
     translation.activate(language)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/__init__.py", line 181, in activate
     return _trans.activate(language)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/trans_real.py", line 298, in activate
     _active.value = translation(language)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/trans_real.py", line 287, in translation
     _translations[language] = DjangoTranslation(language)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/trans_real.py", line 166, in __init__
     self._add_local_translations()
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/trans_real.py", line 226, in
 _add_local_translations
     translation = self._new_gnu_trans(localedir)
   File "/Users/azat/Developer/Django/izdinish/venv/lib/python3.10/site-
 packages/django/utils/translation/trans_real.py", line 193, in
 _new_gnu_trans
     return gettext_module.translation(
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 602, in translation
     t = _translations.setdefault(key, class_(fp))
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 261, in __init__
     self._parse(fp)
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 439, in _parse
     self.plural = c2py(plural)
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 183, in c2py
     result, nexttok = _parse(_tokenize(plural))
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 116, in _parse
     nexttok = next(tokens)
   File
 
"/opt/homebrew/Cellar/[email protected]/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/gettext.py",
 line 93, in _tokenize
     raise ValueError('invalid token in plural form: %s' % value)
 ValueError: invalid token in plural form: EXPRESSION
 [27/Jan/2023 09:23:38] "GET /uly/admin/ HTTP/1.1" 500 135230
 /Users/azat/Developer/Django/izdinish/izdinish/settings.py changed,
 reloading.
 }}}

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/34297#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070185f29132b5-553b63bd-e16c-4926-85ac-d9e551576d05-000000%40eu-central-1.amazonses.com.

Reply via email to