Pāriet uz saturu

API

Viss zemāk esošais tiek eksportēts no gettext_tstrings. Nekas cits nav publisks. Šī lapa ir signatūru uzziņa; izstrādātus katras funkcijas piemērus skatiet ceļvedī.

Tulkošana

Katra funkcija ņem savu t-virkni pozicionāli un pieņem divus atslēgvārdu argumentus: translations (atkāpjoties uz konteksta piesaisti un tad uz standarta bibliotēkas globālajām funkcijām) un strict (skatiet Ceļvedi).

Funkcija Signatū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 gettext aizstājvārds
ntr ngettext aizstājvārds

Translator

Iesaldēta dataclass, kas piesaista vienu tulkojumu objektu, lai izsaukuma vietām tas nebūtu jāatkārto.

Translator(translations, strict=False)

Tā ir izsaucama (_(t"…")) un nes gettext, ngettext, pgettext, npgettext un tr / ntr aizstājvārdus.

Konteksta piesaiste

Nosaukums Nolūks
use_translations(translations) Piesaista uz with bloka laiku, tad atjauno iepriekšējo.
set_translations(translations) Piesaista bez bloka — ietvara pārvaldītiem dzīves cikliem.
get_translations() Nolasa tekošo piesaisti vai None.

Piesaiste ir ContextVar, tāpēc tā ir konteksta robežās un droša vienlaicīgumā.

Atliktās virknes

Nosaukums Nolūks
lazy_gettext(template, /, *, strict=False) Atliek tulkojumu līdz katrai renderēšanai.
lazy_pgettext(context, template, /, *, strict=False) Kontekstuālā forma.
LazyString Tas, ko abas atgriež. Renderējas caur str() un format() tajā valodā, kas attiecīgajā brīdī ir piesaistīta, salīdzinājumā ir vienāda ar savu renderēto tekstu un ir apzināti nehešojama.

Praktiski piemēri, tostarp tas, kāpēc strict pieder pie definīcijas, ir sadaļā Atliktais tulkojums.

Zemāka līmeņa

compile_template(template, /) -> CompiledTemplate

Kompilē t-virkni, atkārtoti izmantojot tās kešoto statisko plānu.

CompiledTemplate

Loceklis Nozīme
.msgid Stabilais gettext ziņojuma identifikators.
.placeholders Vietturu nosaukumi pirmās parādīšanās secībā.
.render(pattern) Validē vienu rakstu un renderē to. Neatbilstības gadījumā vienmēr izraisa kļūdu.

Tipi un kļūdas

Translations

runtime_checkable Protocol četrām standarta metodēm, visas tikai pozicionālas:

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 un Babel Translations visi to apmierina.

Izņēmumi

Klase Tiek izraisīts, kad
TStringError Bāzes klase abiem zemāk esošajiem.
InvalidTemplateError Konvenciju lauž avota t-virkne — sarežģīta interpolācija vai atkārtots nosaukums ar atšķirīgu formatējumu.
InvalidTranslationError To dara tulkojums. Noklusējuma iecietīgajā režīmā tas tiek ierakstīts žurnālā un tā vietā tiek renderēts avota teksts.

Ekstrakcijas ieejas punkti

Tiek reģistrēti automātiski instalēšanas laikā; uz tiem atsaucas pēc nosaukuma, nevis ar importu.

Grupa Nosaukums Lieto
babel.extractors gettext_tstrings method failā babel.cfg.
babel.checkers gettext_tstrings pybabel compile, automātiski.

Veiktspēja

Pilnais stāsts — kas tiek kešots, uz ko kešatmiņas balsta atslēgas un kādi ir izmērītie skaitļi — ir Karstais ceļš. Īsā versija: validācija tiek kešota, nekad neizlaista, un visa renderēšana maksā mikrosekundes daļu. Palaidiet mērījumu uz savas mērķa vides:

uv run python benchmarks/runtime.py