API¶
Alles hieronder wordt geëxporteerd uit gettext_tstrings. Niets anders is
publiek. Deze pagina is de signatuurreferentie; voor uitgewerkte voorbeelden
van elke functie, zie de handleiding.
Vertalen¶
Elke functie neemt haar t-string positioneel en accepteert twee
keyword-argumenten: translations (met terugval op de contextbinding, dan
op de globale functies van de standaardbibliotheek) en strict (zie
Handleiding).
| Functie | Signatuur |
|---|---|
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 |
alias van gettext |
ntr |
alias van ngettext |
Translator¶
Een bevroren dataclass die één vertaalobject bindt, zodat aanroepplekken het niet herhalen.
Hij is aanroepbaar (_(t"…")) en draagt gettext, ngettext, pgettext,
npgettext en de tr- / ntr-aliassen.
Contextbinding¶
| Naam | Doel |
|---|---|
use_translations(translations) |
Bind voor de duur van een with-blok, herstel daarna. |
set_translations(translations) |
Bind zonder blok, voor door frameworks beheerde levenscycli. |
get_translations() |
Lees de huidige binding, of None. |
De binding is een ContextVar, dus ze is per context en veilig onder
concurrency.
Uitgestelde strings¶
| Naam | Doel |
|---|---|
lazy_gettext(template, /, *, strict=False) |
Stel de vertaling uit tot elke render. |
lazy_pgettext(context, template, /, *, strict=False) |
De contextuele vorm. |
LazyString |
Wat beide teruggeven. Rendert via str() en format() in de taal die op dat moment gebonden is, is gelijk aan zijn gerenderde tekst, en is bewust unhashable. |
Uitgewerkte voorbeelden, inclusief waarom strict bij de definitie hoort,
staan onder Uitgestelde vertaling.
Lager niveau¶
compile_template(template, /) -> CompiledTemplate¶
Compileer een t-string, met hergebruik van zijn gecachete statische plan.
CompiledTemplate¶
| Lid | Betekenis |
|---|---|
.msgid |
De stabiele gettext-berichtidentifier. |
.placeholders |
Placeholdernamen in volgorde van eerste voorkomen. |
.render(pattern) |
Valideer één patroon en render het. Raist altijd bij een mismatch. |
Typen en fouten¶
Translations¶
Een runtime_checkable Protocol voor de vier standaardmethoden, alle
positional-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: ...
gettext.NullTranslations, gettext.GNUTranslations en Babels
Translations voldoen er alle drie aan.
Excepties¶
| Klasse | Geraist wanneer |
|---|---|
TStringError |
Basisklasse voor de twee hieronder. |
InvalidTemplateError |
De bron-t-string breekt de conventie — een complexe interpolatie, of een herhaalde naam met andere opmaak. |
InvalidTranslationError |
De vertaling doet dat. In de standaard milde modus wordt dit gelogd en wordt de brontekst gerenderd. |
Extractie-ingangen¶
Automatisch geregistreerd bij installatie; je verwijst ernaar op naam, niet via import.
| Groep | Naam | Gebruikt door |
|---|---|---|
babel.extractors |
gettext_tstrings |
De method in babel.cfg. |
babel.checkers |
gettext_tstrings |
pybabel compile, automatisch. |
Performance¶
Het volledige verhaal — wat er gecachet wordt, waarop de caches sleutelen, en de gemeten cijfers — is Het hete pad. De korte versie: validatie wordt gecachet, nooit overgeslagen, en de hele render kost een fractie van een microseconde. Draai de benchmark op je eigen doel: