Ir al contenido
Django i18n

Django i18n: traducción integrada para aplicaciones web en Python

Django incluye un completo marco de internacionalización basado en GNU gettext. Marque las cadenas que desee traducir en vistas, modelos y plantillas utilizando las funciones y etiquetas de plantilla de gettext. Django compila los archivos .po en binarios .mo para agilizar la búsqueda, y su middleware activa automáticamente la configuración regional adecuada en función de los prefijos de URL, las cookies o los encabezados del navegador.

Funciones de internacionalización de Django

Integración de GNU gettext con las funciones de traducción _() y gettext_lazy()
Flujo de trabajo con archivos .po/.mo mediante los comandos `makemessages` y `compilemessages`
Etiquetas de plantilla {% trans %} y {% blocktrans %} para traducciones dentro de la plantilla
Compatibilidad con la pluralización mediante ngettext y {% blocktrans count %}
Traducción diferida con gettext_lazy() para los campos del modelo y las etiquetas de los formularios
LocaleMiddleware para la detección automática del idioma a partir de URL, cookies y encabezados
Patrones i18n para el enrutamiento de URL con prefijo de configuración regional (por ejemplo, /en/about, /fr/about)
Localización de campos de formulario y plantillas para fechas, números y divisas
Gestión de fechas y horas con consideración de la zona horaria mediante USE_TZ y la integración con pytz

La internacionalización en Django en la práctica

Utilice las funciones de gettext en Views y ngettext para los plurales y, a continuación, configure la variable LANGUAGES en settings.py para definir las configuraciones regionales compatibles.

# views.py
from django.utils.translation import gettext as _
from django.utils.translation import ngettext

def welcome(request):
    output = _("Welcome to our site")
    count = 5
    output += ngettext(
        "%(count)d item",
        "%(count)d items",
        count
    ) % {"count": count}
    return HttpResponse(output)

# settings.py
LANGUAGE_CODE = 'en'
USE_I18N = True
LANGUAGES = [
    ('en', 'English'),
    ('fr', 'French'),
    ('de', 'German'),
]

Empiece hoy mismo con la localización de Django

Gestione las traducciones de sus archivos .po de Django con flujos de trabajo basados en IA, sincronización mediante la interfaz de línea de comandos y entrega a través de CDN en menos de 50 ms.