Задать вопрос
kentuck1213
@kentuck1213

Как правильно устанавливать мультиязычность на сайте?

settings.py:
LANGUAGE_CODE = 'kz'
USE_I18N = True
USE_L10N = True
ugettext = lambda s: s
LANGUAGES = [
    ('en', ugettext('English')),
]

в urls.py добавил :
urlpatterns += i18n_patterns(
    url(r'^$', "home.views.home", name="home"),
)

затем запустил команду django-admin.py makemessages -l en
потом python3.5 manage.py runserver :
.....
 File "/usr/lib/python3.5/gettext.py", line 432, in translation
    raise OSError(ENOENT, 'No translation file found for domain', domain)
FileNotFoundError: [Errno 2] No translation file found for domain: 'django'

Я так понял что я должен где-то, что то добавить.
  • Вопрос задан
  • 860 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
kentuck1213
@kentuck1213 Автор вопроса
Эх , на элементарную вещь потратил 2 дня , обида((.
суть проблемы была вот в чём , в projects/locale/kz/LC_MESSAGES есть файл django.po
внутри него есть "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" нужно было заметь его на "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
и после чего нужно было запустить команду
python3.5 manage.py compilemessages
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sikmir
Software engineer
django-admin.py compilemessages
И внимательнее читаем How Django discovers language preference, там все максимально подробно описано.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы