Aller au contenu
Django i18n

Django i18n : traduction intégrée pour les applications web Python

Django intègre un framework d'internationalisation complet basé sur GNU gettext. Marquez les chaînes à traduire dans les vues, les modèles et les modèles de mise en page à l'aide des fonctions gettext et des balises de modèle. Django compile les fichiers .po en binaires .mo pour une recherche rapide, et son middleware active automatiquement la locale appropriée en fonction des préfixes d'URL, des cookies ou des en-têtes de navigateur.

Fonctionnalités d'internationalisation (i18n) de Django

Intégration de GNU gettext avec les fonctions de traduction _() et gettext_lazy()
Flux de travail avec les fichiers .po/.mo à l'aide des commandes makemessages et compilemessages
Les balises de modèle {% trans %} et {% blocktrans %} pour les traductions intégrées au modèle
Prise en charge de la pluralisation avec ngettext et {% blocktrans count %}
Traduction différée avec gettext_lazy() pour les champs de modèle et les libellés de formulaire
LocaleMiddleware pour la détection automatique de la langue à partir des URL, des cookies et des en-têtes
Modèles i18n pour le routage des URL avec préfixe de langue (par exemple, /en/about, /fr/about)
Localisation des champs de formulaire et des modèles pour les dates, les nombres et les devises
Gestion des dates et heures tenant compte du fuseau horaire grâce à USE_TZ et à l'intégration de pytz

Django i18n en pratique

Utilisez les fonctions gettext dans les vues et ngettext pour les pluriels, puis configurez LANGUAGES dans settings.py pour définir les paramètres régionaux pris en charge.

# 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'),
]

Commencez dès aujourd'hui à localiser Django

Gérez les traductions de vos fichiers .po Django grâce à des workflows basés sur l'IA, une synchronisation via l'interface de ligne de commande et une diffusion via CDN en moins de 50 ms.