¿Cómo puedo obtener el idioma actual en el hilo actual en un modelo o en el administrador?
python
django
internationalization
diegueus9
fuente
fuente
Respuestas:
Las funciones de particular interés son las
django.utils.translation.get_language()
que devuelven el lenguaje utilizado en el hilo actual. Ver documentación .fuente
O también puede obtener esto en sus vistas
fuente
django.utils.translation.get_language()
django.utils.translation.get_language()
siempre es una mejor solución.Tenga cuidado con el método que utiliza para obtener el idioma . Dependiendo de qué método, Django usará diferentes formas e información para determinar el idioma correcto a usar.
Al usar la
django.utils.translation.get_language()
función, está vinculada al idioma del hilo . Antes de Django 1.8, siempre regresabasettings.LANGUAGE_CODE
cuando las traducciones estaban deshabilitadas. Si desea anular manualmente el lenguaje del hilo, puede usar las funcionesoverride()
oactivate()
, que no tienen un nombre muy explícito, pero bueno, siguen siendo útiles:Si desea que django verifique la ruta y / o la solicitud (cookie de idioma, ...) , que es mucho más común, por ejemplo ,
www.example.com/en/<somepath>
vswww.example.com/fr/<somepath>
, usedjango.utils.translation.get_language_from_request(request, check_path=False)
. Además, siempre devolverá un idioma válido establecido ensettings.LANGUAGES
No me resultó muy fácil encontrar estas diferencias a través de Google sobre este tema, así que aquí está para mayor referencia.
fuente
django.utils.translation
, no traducciones. Hay un error ortográfico en el enlace proporcionado. En el fragmento es correcto.django.utils.translation.get_language()
ydjango.utils.translation.get_language_from_request(request, check_path)
. Si está a la vista, debe usar este último concheck_path = True
para obtener el idioma en el que se renderizará su plantilla.Solo para agregar que, si lo usa
django.utils.translation.get_language()
, debe tener en cuenta que si esa sección de código se llamará de forma asincrónica (por ejemplo, como una tarea de apio), entonces este enfoque no funcionará debido a que se ejecuta en un hilo diferente.fuente
puedes usar esto
fuente
Puede leer el sistema
locale
para obtener información sobre el idioma.fuente