我在哪里可以找到名单的语言和language_code这样。

(Swedish,sv)
(English,en)
有帮助吗?

其他提示

如果你想要的东西你可以用从在django,尝试:

from django.conf import settings

这将是在格式上,使其成为分配在你的一个模型的选择=领域。(即 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.设置并不是一个模块

前面的答复仅仅提取 LANGUAGEsettings.py,hovewer有一个很大的机会,这一变量将被复盖。所以,你可以得到完整的列表 django.conf.global_settings.LANGUAGES

from django.db import models

from django.conf.global_settings import LANGUAGES

class ModelWithLanguage(models.Model):
    language = 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']

关于

sachin

我的理解 Django项目 你只能使用一个虚拟gettext功能:

如果定义定义的语言设置时,正如在先前的子弹,这是确定标记语言的翻译字符串--但使用一个"虚拟" ugettext() 功能,不在 django.utils.translation.你不应该导入 django.utils.translation 从内部设置文件,因为该模块在本身取决于设置,而这会导致一个圆形的进口。".

我花了一些时间来找到的解决方案,但我最后得到它;所选择的模型领域需要有一组与实gettext的功能,与lambda功能的伪的可以被包裹在实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'))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top