API¶
Todos os nomes abaixo são exportados por gettext_tstrings. Nenhum outro nome
é público. Esta página é a referência de assinaturas; para exemplos práticos de
cada função, consulte o guia.
Tradução¶
Cada função recebe sua t-string de forma posicional e aceita translations e
strict como argumentos nomeados
(veja o guia).
| Função | Assinatura |
|---|---|
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 de gettext |
ntr |
alias de ngettext |
Translator¶
Dataclass frozen que vincula um objeto de tradução:
É chamável (_(t"…")) e fornece gettext, ngettext, pgettext,
npgettext, tr e ntr.
Vínculo de contexto¶
| Nome | Função |
|---|---|
use_translations(translations) |
Vincula durante um bloco with e restaura ao final. |
set_translations(translations) |
Vincula sem bloco em ciclos gerenciados pelo framework. |
get_translations() |
Lê o vínculo atual ou devolve None. |
O vínculo usa ContextVar e é seguro em concorrência.
Strings preguiçosas¶
| Nome | Função |
|---|---|
lazy_gettext(template, /, *, strict=False) |
Adia a tradução até cada renderização. |
lazy_pgettext(context, template, /, *, strict=False) |
Variante com contexto. |
LazyString |
O que ambas devolvem. Renderiza por str() e format() no idioma que estiver vinculado naquele momento, compara-se ao texto renderizado e não é hashable de propósito. |
Exemplos trabalhados, inclusive por que o strict pertence à definição, estão
em Tradução preguiçosa.
Baixo nível¶
compile_template(template, /) -> CompiledTemplate¶
Compila uma t-string reutilizando seu plano estático em cache.
CompiledTemplate¶
| Membro | Significado |
|---|---|
.msgid |
Identificador gettext estável. |
.placeholders |
Nomes na ordem da primeira ocorrência. |
.render(pattern) |
Valida e renderiza; sempre lança em caso de diferença. |
Tipos e erros¶
Translations¶
Um Protocol runtime_checkable para os quatro métodos padrão:
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 e Translations do
Babel atendem ao protocolo.
Exceções¶
| Classe | Quando |
|---|---|
TStringError |
Classe base. |
InvalidTemplateError |
A t-string de origem viola a convenção. |
InvalidTranslationError |
A tradução viola a convenção; o modo flexível registra e renderiza a origem. |
Entry points de extração¶
| Grupo | Nome | Usado por |
|---|---|---|
babel.extractors |
gettext_tstrings |
method no babel.cfg |
babel.checkers |
gettext_tstrings |
automaticamente por pybabel compile |
Desempenho¶
O relato completo — o que é cacheado, quais são as chaves dos caches e os números medidos — está em O caminho quente. A versão curta: a validação é cacheada, nunca pulada, e a renderização inteira custa uma fração de microssegundo. Execute o benchmark no seu próprio alvo: