Подтвердить что ты не робот

Коды языка интернационализации Django

Где я могу найти список языков и language_code, как это.

(Swedish,sv)
(English,en)
4b9b3361

Ответ 2

Если вы хотите что-то, что вы можете использовать из django, попробуйте:

from django.conf import settings

это будет в формате выше, что делает его идеальным для назначения в одном из ваших вариантов models = fields. (т.е. user_language = models.CharField(max_length=7, choices=settings.LANGUAGES))

LANGUAGES = (
    ('ar', gettext_noop('Arabic')),
    ('bg', gettext_noop('Bulgarian')),
    ('bn', gettext_noop('Bengali')),
    etc....
    )

Примечание об использовании настроек:

Обратите внимание, что django.conf.settings не является модулем

Ответ 3

Предыдущие ответы касаются только получения LANGUAGE из settings.py, hovewer существует большая вероятность перезаписать эту переменную. Итак, вы можете получить полный список из django.conf.global_settings.LANGUAGES

from django.db import models

from django.conf.global_settings import LANGUAGES

class ModelWithLanguage(models.Model):
    languages = models.CharField(max_length=7, choices=LANGUAGES)

Ответ 4

from django.conf import settings

 #note settings is an object , hence you cannot import its contents

 settings.configure()

 #note LANGUAGES is a tuple of tuples

 lang_dict = dict(settings.LANGUAGES)

 #use lang_dict for your query.

 print lang_dict['en']

Привет

Сэчин

Ответ 5

Я понял из Django Project, что вы можете использовать только фиктивную функцию gettext:

Если вы определяете настройку пользовательских LANGUAGES, как описано в предыдущей палитре, то ОК, чтобы пометить языки как строки перевода, но используйте функцию "dummy" ugettext(), а не ту, что находится в django.utils.translation. Вы никогда не должны импортировать django.utils.translation из вашего файла настроек, потому что этот модуль сам по себе зависит от настроек, и это вызовет циклический импорт. ".

Мне потребовалось некоторое время, чтобы найти решение, но я, наконец, получил его; выбор поля модели должен иметь кортеж с реальными функциями gettext, с помощью лямбда-функции манекен можно обернуть в реальные функции gettext следующим образом:

from django.utils.translation import ugettext_lazy as _

language = models.CharField(max_length=5, choices=map(lambda (k,v): (k, _(v)), settings.LANGUAGES), verbose_name=_('language'))