Где я могу найти список языков и language_code, как это.
(Swedish,sv)
(English,en)
Где я могу найти список языков и language_code, как это.
(Swedish,sv)
(English,en)
Wiki:
Если вы хотите что-то, что вы можете использовать из 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 не является модулем
Предыдущие ответы касаются только получения 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)
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']
Привет
Сэчин
Я понял из 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'))