LANGUAGE_CODE с тире не работает: «es-mx, es-es, es-ar», но «es» работает

#django #internationalization #multilingual

#django #интернационализация #многоязычный

Вопрос:

в настройках.py LANGUAGE_CODE = 'es-mx' или LANGUAGE_CODE = 'es-ar' не работает, но LANGUAGE_CODE = 'es' или LANGUAGE_CODE = 'mk' работает нормально при рендеринге шаблонов, I18N активен в настройках проекта, и вот как выглядят .mo и .po:

введите описание изображения здесь

и это информация о процессоре контекста i18n:


{'LANGUAGES': (('ar', 'Arabic'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('bn', 'Bengali'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('el', 'Greek'), ('en', 'English'), ('en-gb', 'British English'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy-nl', 'Frisian'), ('ga', 'Irish'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('id', 'Indonesian'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('nb', 'Norwegian Bokmal'), ('nn', 'Norwegian Nynorsk'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese')), 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'es-ar'}

Согласно django-i18n-docs «es-mx» и «es-ar» являются стандартным форматом lang.

Я что-то здесь упускаю? заранее спасибо.

Ответ №1:

Я посмотрел в репозитории django, как фреймворк обрабатывает структуру локализации, и я нашел решение (см. Название папок):

введите описание изображения здесь

Спасибо за просмотр.

Ответ №2:

Документация, связанная в settings.py файл для django 1.3.1 перенаправляет на : http://www.i18nguy.com/unicode/language-identifiers.html

Возможно, попробуйте использовать es-AR

У меня была такая же проблема для fr-FR.

Надеюсь, это вам поможет.

Комментарии:

1. кстати, какую версию django вы используете? Версия разработчика?

2. Я разработал мексиканский веб-сайт сейчас, в 2022 году, «es-MX» — правильный путь.