Django internationalization language codes

Where can I find list of languages and language_code like this.

(Swedish,sv)
(English,en)

Answers


Wiki:

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


If you want something you can use from within django, try:

from django.conf import settings

this will be in the format above, making it perfect for assignment in one of your models choices= fields. (i.e. user_language = models.CharField(max_length=7, choices=settings.LANGUAGES))

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

Note about using settings:

Note that django.conf.settings isn’t a module


Previous answers mention only getting LANGUAGE from settings.py, hovewer there is a big chance that this variable will be overwritten. So, you can get the full list from 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']

Regards

sachin


I understood from Django Project that you can only use a dummy gettext function:

If you define a custom LANGUAGES setting, as explained in the previous bullet, it's OK to mark the languages as translation strings -- but use a "dummy" ugettext() function, not the one in django.utils.translation. You should never import django.utils.translation from within your settings file, because that module in itself depends on the settings, and that would cause a circular import.".

It took me some time to find the solution, but I finally got it; the choices of the model field needs to have a tuple with real gettext functions, with a lambda function the dummy's can be wrapped in the real gettext functions as follows:

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'))

Need Your Help

How can I properly test my accuracy using the INRIA data set

image-processing svm detection

I am working on a pedestrian detection algorithm and I want to test its accuracy using the INRIA data set. The dataset has two sets of test folders that contain positive images. One has cropped ver...

Django Registration with Django cms

django django-cms django-registration

I have integrated django-registration with django-cms. I have multilingual django-cms for my site with two languages English and french. I am facing issue in url-mapping. as django-cms has multiple