Códigos de idioma de internacionalización Django

¿Dónde puedo encontrar una lista de idiomas y language_code como este.

(Swedish,sv) (English,en) 

Si quieres algo que puedas usar desde django, prueba:

 from django.conf import settings 

estará en el formato anterior, lo que lo hace perfecto para la asignación en uno de los campos de opciones de sus modelos. (es decir, user_language = models.CharField(max_length=7, choices=settings.LANGUAGES) )

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

Nota sobre el uso de la configuración:

Tenga en cuenta que django.conf.settings no es un módulo

Las respuestas anteriores mencionan que solo se obtiene LANGUAGE de settings.py , pero hay una gran posibilidad de que esta variable se sobrescriba. Por lo tanto, puede obtener la lista completa de 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'] 

Saludos

sachin

Entendí de Django Project que solo se puede usar una función de obtención de texto ficticio:

Si define una configuración personalizada de IDIOMAS, como se explicó en la viñeta anterior, está bien marcar los idiomas como cadenas de traducción, pero use una función ugettext() “ficticia”, no la de django.utils.translation . Nunca debe importar django.utils.translation desde su archivo de configuración, ya que ese módulo en sí mismo depende de la configuración, y eso causaría una importación circular “.

Me tomó un tiempo encontrar la solución, pero finalmente la conseguí; las opciones del campo del modelo deben tener una tupla con funciones reales de obtención de texto, con una función lambda que se puede incluir en las funciones de obtención de texto real de la siguiente manera:

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