Vai al contenuto
Django i18n

Django i18n: traduzione integrata per applicazioni web in Python

Django include un framework completo per l'internazionalizzazione basato su GNU gettext. È possibile contrassegnare le stringhe da tradurre nelle viste, nei modelli e nei modelli di template utilizzando le funzioni gettext e i tag dei modelli. Django compila i file .po in file binari .mo per garantire una ricerca rapida, e il suo middleware attiva automaticamente la lingua corretta in base ai prefissi degli URL, ai cookie o alle intestazioni del browser.

Funzionalità di localizzazione (i18n) di Django

Integrazione di GNU gettext con le funzioni di traduzione _() e gettext_lazy()
Flusso di lavoro con i file .po/.mo utilizzando i comandi makemessages e compilemessages
I tag del modello {% trans %} e {% blocktrans %} per le traduzioni all'interno dei modelli
Supporto alla pluralizzazione con ngettext e {% blocktrans count %}
Traduzione differita con gettext_lazy() per i campi del modello e le etichette dei moduli
LocaleMiddleware per il rilevamento automatico della lingua da URL, cookie e intestazioni
Modelli i18n per l'instradamento degli URL con prefisso di lingua (ad es. /en/about, /fr/about)
Localizzazione dei campi relativi a date, numeri e valute
Gestione delle date e degli orari con riconoscimento del fuso orario tramite USE_TZ e integrazione con pytz

Django i18n nella pratica

Utilizzi le funzioni gettext nelle viste e ngettext per i plurali, quindi configuri LANGUAGES nel file settings.py per definire le impostazioni locali supportate.

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

Iniziate oggi stesso a localizzare Django

Gestite le traduzioni dei vostri file .po di Django grazie a flussi di lavoro basati sull'intelligenza artificiale, sincronizzazione tramite CLI e distribuzione tramite CDN con tempi inferiori a 50 ms.