37

このような言語とlanguage_codeのリストはどこにありますか。

(Swedish,sv)
(English,en)
4

5 に答える 5

64

django 内から使用できるものが必要な場合は、次を試してください。

from django.conf import settings

これは上記の形式になるため、モデルの Choice= フィールドの 1 つに割り当てるのに最適です。(つまり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 はモジュールではないことに注意してください

于 2010-07-08T07:56:59.020 に答える
22

以前の回答では、 settings.pyLANGUAGEからの取得のみが言及されていますが、この変数が上書きされる可能性が高くなります。したがって、完全なリストは次の場所から取得できます。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)
于 2016-02-17T09:57:55.623 に答える
21

ウィキ:

http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

于 2010-07-08T06:06:53.577 に答える
3
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']

よろしく

サチン

于 2015-01-01T00:14:20.313 に答える
0

Django Projectから、ダミーの gettext 関数しか使用できないことがわかりました。

カスタム LANGUAGES 設定を定義する場合は、前の箇条書きで説明したように、言語を翻訳文字列としてマークしても問題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'))
于 2012-10-28T15:25:17.073 に答える