Как добавить новые языки в Django? Мой язык "Уйгур" или "Уйгур" не поддерживается в Django.
Можно ли добавить новый языковой файл в моем проекте и использовать его? например: zh_UG
этот язык не поддерживается в Django.
Как добавить новые языки в Django? Мой язык "Уйгур" или "Уйгур" не поддерживается в Django.
Можно ли добавить новый языковой файл в моем проекте и использовать его? например: zh_UG
этот язык не поддерживается в Django.
Добавьте недоступный язык в ваше приложение Django
Код языка ISO для уйгурского языка ىيغۇر تىلى - "ug".
В ваших settings.py:
from django.conf import global_settings
gettext_noop = lambda s: s
LANGUAGES = (
('ug', gettext_noop('Uighur')),
)
EXTRA_LANG_INFO = {
'ug': {
'bidi': True, # right-to-left
'code': 'ug',
'name': 'Uighur',
'name_local': u'\u0626\u06C7\u064A\u063A\u06C7\u0631 \u062A\u0649\u0644\u0649', #unicode codepoints here
},
}
# Add custom languages not provided by Django
import django.conf.locale
LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO
# Languages using BiDi (right-to-left) layout
LANGUAGES_BIDI = global_settings.LANGUAGES_BIDI + ["ug"]
А также:
manage.py makemessages -l ug
manage.py compilemessages
На основании ответа laffuste. Первый шаг: добавьте язык в settings.py:
EXTRA_LANG_INFO = {
'ms': {
'bidi': False, # right-to-left
'code': 'ms',
'name': 'Bahasa Melayu',
'name_local': u'Bahasa Melayu', #unicode codepoints here
},
}
# Add custom languages not provided by Django
import django.conf.locale
from django.conf import global_settings
LANG_INFO = dict(django.conf.locale.LANG_INFO.items() + EXTRA_LANG_INFO.items())
django.conf.locale.LANG_INFO = LANG_INFO
# Languages using BiDi (right-to-left) layout
global_settings.LANGUAGES = global_settings.LANGUAGES + (("ms",'Bahasa Melayu'),)
Второй шаг, добавьте локаль в settings.py:
import os
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
LOCALE_PATHS = (
os.path.join(PACKAGE_ROOT, 'locale'),
)
Третий шаг. Добавьте locale в каталог locale.
в файле settings.py add
gettext = lambda s: s LANGUAGES = ( ('zh_UG', gettext('Uyghur')), ('en', gettext('English')), ) USE_I18N = True
run
manage.py makemessages -l zh_UG
для создания языковых файлов
Если кто-то встретит это и будет использовать принятый ответ (также проверьте комментарии на нем) и все еще будет перенаправлять на/en/вместо дополнительного языка - вам нужно создать файл .mo для этой локали. По крайней мере, фиктивный.
Django проверяет правильность языка, проверяя, может ли он загружать файл .mo. Для стандартных языков нет проблем, потому что Django поставляется с кучей из них, но для вашего пользовательского языка он не существует.
Я надеюсь, что это сэкономит ваше время.