¿Dónde puedo encontrar una lista de idiomas y un código de idioma como este?Códigos de idioma de internacionalización de Django
(Swedish,sv)
(English,en)
¿Dónde puedo encontrar una lista de idiomas y un código de idioma como este?Códigos de idioma de internacionalización de Django
(Swedish,sv)
(English,en)
Si quieres algo que se puede utilizar dentro de Django, intente:
from django.conf import settings
esto será en el formato anterior, por lo que es perfecto para asignación en uno de los modelos choice = fields. (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....
)
Bonificación adicional a este método: dado que gettext_noop() es una búsqueda perezosa, los nombres de los idiomas se traducirán según la configuración regional de su usuario en el momento de la representación de la plantilla. Lo que significa que un usuario inglés verá "francés", pero un usuario francés verá "Francais" – Thomas
¿Hay páginas de referencia para los idiomas anteriores? – Hulk
http://code.djangoproject.com/browser/django/trunk/django/conf /global_settings.py le proporcionará la lista completa de los idiomas que admite django de fábrica, y http://docs.djangoproject.com/en/dev/ref/settings/#languages le ofrece una descripción general del uso. Espero que esto ayude. – Thomas
que entendí de Django Project que sólo se puede utilizar una función gettext dummy:
Si define una costumbre Configuración de IDIOMAS, como se explicó en la viñeta anterior, está bien marcar los idiomas como cadenas de traducción, pero use un "maniquí"Función, no la de
django.utils.translation
. Nunca se debe importardjango.utils.translation
desde el interior de su archivo de configuración, ya que el módulo en sí mismo depende de los ajustes, y que podría causar una importación circular. ".
Me tomó algún tiempo para encontrar la solución, pero finalmente lo consiguió; las opciones del campo del modelo debe tener una tupla con funciones reales de gettext, con una función lambda los del muerto se pueden envolver en las funciones reales de gettext 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'))
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
respuestas anteriores mencionar sólo para conseguir LANGUAGE
de settings.py, hovewer hay una gran posibilidad de que esta variable será sobrescrito. Por lo tanto, puede obtener la lista completa en 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)
No se admiten todos estos códigos de idioma. Ver archivo django.conf.locale.LANG_INFO para la lista maestra. – spiderlama