Skoči na vsebino

API

Vse spodaj našteto je izvoženo iz gettext_tstrings. Nič drugega ni javno. Ta stran je referenca podpisov; za razdelane primere posamezne funkcije glejte vodnik.

Prevajanje

Vsaka funkcija sprejme svoj t-niz pozicijsko in dva imenovana argumenta: translations (če ni podan, se zateče k vezavi konteksta, nato h globalnim funkcijam standardne knjižnice) in strict (glejte Vodnik).

Funkcija Podpis
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 vzdevek za gettext
ntr vzdevek za ngettext

Translator

Zamrznjen razred podatkov (dataclass), ki veže en prevajalni objekt, da ga klicnim mestom ni treba ponavljati.

Translator(translations, strict=False)

Je klicljiv (_(t"…")) in nosi gettext, ngettext, pgettext, npgettext ter vzdevka tr / ntr.

Vezava konteksta

Ime Namen
use_translations(translations) Veže za čas trajanja bloka with, nato obnovi prejšnje stanje.
set_translations(translations) Veže brez bloka, za življenjske cikle, ki jih upravlja ogrodje.
get_translations() Prebere trenutno vezavo ali None.

Vezava je ContextVar, zato je vezana na kontekst in varna pri sočasnosti.

Odloženi nizi

Ime Namen
lazy_gettext(template, /, *, strict=False) Odloži prevod do vsakega izrisa.
lazy_pgettext(context, template, /, *, strict=False) Kontekstna oblika.
LazyString Tisto, kar vrneta obe. Izriše se skozi str() in format() v jeziku, ki je vezan v tistem trenutku, je enak svojemu izrisanemu besedilu in namenoma ni zgoščljiv.

Obdelani primeri, vključno s tem, zakaj strict sodi k definiciji, so pod Odloženo prevajanje.

Nižja raven

compile_template(template, /) -> CompiledTemplate

Prevede t-niz in pri tem znova uporabi njegov predpomnjeni statični načrt.

CompiledTemplate

Član Pomen
.msgid Stabilni gettextov identifikator sporočila.
.placeholders Imena ograd v vrstnem redu prvega pojava.
.render(pattern) Preveri en vzorec in ga izriše. Ob neujemanju vedno sproži izjemo.

Tipi in napake

Translations

Protokol (runtime_checkable Protocol) za štiri standardne metode, vse izključno pozicijske:

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: ...

Zadoščajo mu gettext.NullTranslations, gettext.GNUTranslations in Babelov Translations.

Izjeme

Razred Sproži se, kadar
TStringError Osnovni razred za oba spodnja.
InvalidTemplateError Izvorni t-niz krši dogovor — zapletena interpolacija ali ponovljeno ime z različnim formatiranjem.
InvalidTranslationError Ga krši prevod. V privzetem prizanesljivem načinu se to zabeleži v dnevnik, izriše pa se izvorno besedilo.

Vstopne točke za ekstrakcijo

Ob namestitvi se registrirajo samodejno; nanje se sklicujete po imenu, ne z uvozom.

Skupina Ime Uporablja
babel.extractors gettext_tstrings Vrednost method v babel.cfg.
babel.checkers gettext_tstrings pybabel compile, samodejno.

Zmogljivost

Celoten opis — kaj se predpomni, po čem se predpomnilniki ključijo in izmerjene številke — je Vroča pot. Na kratko: preverjanje je predpomnjeno, nikoli preskočeno, celoten izris pa stane delček mikrosekunde. Merilnik poženite na svojem cilju:

uv run python benchmarks/runtime.py