API¶
Vše níže je exportováno z gettext_tstrings. Nic jiného není veřejné.
Tato stránka je referencí signatur; propracované příklady každé funkce
najdete v průvodci.
Překládání¶
Každá funkce přijímá svůj t-string pozičně a akceptuje dva pojmenované
argumenty: translations (spadající zpět na kontextovou vazbu a poté na
globální funkce standardní knihovny) a strict (viz
Průvodce).
| Funkce | Signatura |
|---|---|
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 gettext |
ntr |
alias ngettext |
Translator¶
Zmrazená dataclass vážící jeden objekt překladů, aby jej místa volání neopakovala.
Je volatelná (_(t"…")) a nese gettext, ngettext, pgettext,
npgettext a aliasy tr / ntr.
Vazba kontextu¶
| Název | Účel |
|---|---|
use_translations(translations) |
Naváže po dobu bloku with, poté obnoví předchozí stav. |
set_translations(translations) |
Naváže bez bloku, pro životní cykly řízené frameworkem. |
get_translations() |
Přečte aktuální vazbu, nebo None. |
Vazba je ContextVar, takže platí na kontext a je bezpečná při
souběžnosti.
Odložené řetězce¶
| Název | Účel |
|---|---|
lazy_gettext(template, /, *, strict=False) |
Odloží překlad až na každé jednotlivé vykreslení. |
lazy_pgettext(context, template, /, *, strict=False) |
Kontextová podoba. |
LazyString |
To, co obě vracejí. Vykresluje se přes str() a format() v tom jazyce, který je v daném okamžiku navázán, je roven svému vykreslenému textu a je záměrně nehashovatelný. |
Propracované příklady — včetně toho, proč strict patří k definici —
najdete v Odloženém překladu.
Nižší úroveň¶
compile_template(template, /) -> CompiledTemplate¶
Zkompiluje t-string s využitím jeho kešovaného statického plánu.
CompiledTemplate¶
| Člen | Význam |
|---|---|
.msgid |
Stabilní identifikátor zprávy gettextu. |
.placeholders |
Jména zástupných symbolů v pořadí prvního výskytu. |
.render(pattern) |
Zvaliduje jeden vzor a vykreslí jej. Při neshodě vždy vyhodí výjimku. |
Typy a chyby¶
Translations¶
runtime_checkable Protocol pro čtyři standardní metody, všechny
výhradně poziční:
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 i Translations z
Babelu jej všechny splňují.
Výjimky¶
| Třída | Vyhazována když |
|---|---|
TStringError |
Základní třída pro obě níže uvedené. |
InvalidTemplateError |
Zdrojový t-string porušuje konvenci — složitá interpolace, nebo opakované jméno s odlišným formátováním. |
InvalidTranslationError |
Porušuje ji překlad. Ve výchozím shovívavém režimu se to zaloguje a místo toho se vykreslí zdrojový text. |
Vstupní body extrakce¶
Registrují se automaticky při instalaci; odkazujete se na ně jménem, ne importem.
| Skupina | Název | Používá |
|---|---|---|
babel.extractors |
gettext_tstrings |
method v babel.cfg. |
babel.checkers |
gettext_tstrings |
pybabel compile, automaticky. |
Výkon¶
Úplný rozbor — co se kešuje, podle čeho keše klíčují a naměřená čísla — je Horká cesta. Krátká verze: validace se kešuje, nikdy nepřeskakuje, a celé vykreslení stojí zlomek mikrosekundy. Spusťte benchmark na vlastním cíli: