Přejít na obsah
Django i18n

Django i18n: Integrovaný překlad pro webové aplikace v jazyce Python

Django obsahuje kompletní framework pro internacionalizaci poháněný GNU gettext. Řetězce určené k překladu označíte ve views, modelech a šablonách pomocí funkcí gettext a šablonových tagů. Django kompiluje soubory .po do binárních souborů .mo pro rychlé vyhledávání a jeho middleware automaticky aktivuje správné národní prostředí na základě předpon URL, cookies nebo hlaviček prohlížeče.

Capabilities

Funkce internacionalizace v Djangu

Integrace GNU gettext s překladovými funkcemi _() a gettext_lazy()
Pracovní postup se soubory .po/.mo s příkazy makemessages a compilemessages
Šablonové značky {% trans %} a {% blocktrans %} pro překlady přímo v šabloně
Podpora pluralizace pomocí ngettext a {% blocktrans count %}
Líné načítání překladů pomocí gettext_lazy() pro pole modelu a štítky formulářů
LocaleMiddleware pro automatické rozpoznávání jazyka z URL, cookies a hlaviček
Šablony i18n pro směrování URL s předponou jazykové lokality (např. /en/about, /fr/about)
Lokalizace polí typu a vzoru pro data, čísla a měny
Zpracování data a času s ohledem na časové pásmo pomocí USE_TZ a integrace pytz
Example

Django i18n v praxi

Pro tvorbu množných čísel použijte funkce gettext v modulu views a knihovnu ngettext, poté v souboru settings.py nakonfigurujte proměnnou LANGUAGES a definujte podporované jazykové mutace.

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

Prohlédněte si další průvodce po frameworku

Get started

Začněte s lokalizací Djanga ještě dnes

Spravujte překlady souborů .po pro Django pomocí pracovních postupů založených na umělé inteligenci, synchronizace přes příkazový řádek a doručování přes CDN s latencí pod 50 ms.