Kihagyás

API

Az alábbi mindegyike a gettext_tstrings csomagból van exportálva. Semmi más nem publikus. Ez az oldal a szignatúrareferencia; az egyes függvények kidolgozott példáiért lásd a kézikönyvet.

Fordítás

Minden függvény pozicionálisan veszi át a t-stringjét, és két kulcsszavas argumentumot fogad el: translations (amely a kontextuskötésre, majd a standard könyvtár globális függvényeire esik vissza) és strict (lásd Kézikönyv).

Függvény Szignatúra
gettext (template, /, *, translations=None, strict=False) -> str
ngettext (singular, plural, n, /, *, translations=None, strict=False) -> str
pgettext (context, template, /, *, translations=None, strict=False) -> str
npgettext (context, singular, plural, n, /, *, translations=None, strict=False) -> str
tr a gettext aliasa
ntr az ngettext aliasa

Translator

Fagyasztott dataclass, amely egyetlen fordításobjektumot köt be, hogy a hívási helyeknek ne kelljen megismételniük.

Translator(translations, strict=False)

Hívható (_(t"…")), és hordozza a gettext, ngettext, pgettext, npgettext metódusokat, valamint a tr / ntr aliasokat.

Kontextuskötés

Név Mire való
use_translations(translations) Bekötés egy with blokk idejére, majd visszaállítás.
set_translations(translations) Bekötés blokk nélkül, keretrendszer által kezelt életciklushoz.
get_translations() Az aktuális kötés kiolvasása, vagy None.

A kötés ContextVar, tehát kontextusonkénti és biztonságos párhuzamosság mellett.

Késleltetett szövegek

Név Mire való
lazy_gettext(template, /, *, strict=False) A fordítás elhalasztása minden egyes megjelenítésig.
lazy_pgettext(context, template, /, *, strict=False) A kontextusos alak.
LazyString Amit mindkettő visszaad. A str() és a format() révén abban a nyelvben jelenik meg, amelyik az adott pillanatban be van kötve, egyenlőnek bizonyul a renderelt szövegével, és szándékosan nem hashelhető.

Kidolgozott példák — köztük az is, hogy a strict miért a definícióhoz tartozik — a Késleltetett fordítás alatt találhatók.

Alacsonyabb szint

compile_template(template, /) -> CompiledTemplate

Lefordít egy t-stringet, újrahasznosítva a gyorsítótárazott statikus tervét.

CompiledTemplate

Tag Jelentése
.msgid A stabil gettext-üzenetazonosító.
.placeholders A helyőrzők nevei az első előfordulásuk sorrendjében.
.render(pattern) Egyetlen minta validálása és renderelése. Eltérés esetén mindig kivételt vált ki.

Típusok és hibák

Translations

Egy runtime_checkable Protocol a négy szabványos metódusra, mind pozicionális-only:

class Translations(Protocol):
    def gettext(self, message: str, /) -> str: ...
    def ngettext(self, singular: str, plural: str, n: int, /) -> str: ...
    def pgettext(self, context: str, message: str, /) -> str: ...
    def npgettext(self, context: str, singular: str, plural: str, n: int, /) -> str: ...

A gettext.NullTranslations, a gettext.GNUTranslations és a Babel Translations osztálya egyaránt kielégíti.

Kivételek

Osztály Mikor váltódik ki
TStringError Az alatta lévő kettő ősosztálya.
InvalidTemplateError A forrás t-string sérti a konvenciót — összetett interpoláció, vagy eltérő formázással ismételt név.
InvalidTranslationError A fordítás sérti. Az alapértelmezett elnéző módban ezt naplózzuk, és helyette a forrásszöveg jelenik meg.

Kinyerési belépési pontok

Telepítéskor automatikusan regisztrálódnak; név szerint hivatkozol rájuk, nem importtal.

Csoport Név Mi használja
babel.extractors gettext_tstrings A method a babel.cfg fájlban.
babel.checkers gettext_tstrings A pybabel compile, automatikusan.

Teljesítmény

A teljes beszámoló — mit gyorsítótárazunk, mire kulcsolnak a gyorsítótárak, és mik a mért számok — A forró útvonal oldalon olvasható. Röviden: a validálás gyorsítótárazódik, sosem marad ki, és az egész renderelés a mikroszekundum töredékébe kerül. Futtasd a benchmarkot a saját célkörnyezeteden:

uv run python benchmarks/runtime.py