Ana içeriğe geç

API

Aşağıdaki her şey gettext_tstrings paketinden dışa aktarılır. Başka hiçbir şey herkese açık değildir. Bu sayfa imza referansıdır; her işlevin işlenmiş örnekleri için kılavuza bakın.

Çevirmek

Her işlev t-string'ini konumsal olarak alır ve iki anahtar sözcük argümanı kabul eder: translations (önce bağlam bağlamasına, sonra standart kütüphanenin küresel işlevlerine geri düşer) ve strict (bkz. Kılavuz).

İşlev İmza
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 gettextin takma adı
ntr ngettextin takma adı

Translator

Tek bir çeviri nesnesini bağlayan dondurulmuş bir dataclass; böylece çağrı noktaları onu yinelemez.

Translator(translations, strict=False)

Çağrılabilirdir (_(t"…")) ve gettext, ngettext, pgettext, npgettext ile tr / ntr takma adlarını taşır.

Bağlam bağlama

Ad Amaç
use_translations(translations) Bir with bloğu süresince bağla, sonra eski durumuna döndür.
set_translations(translations) Yaşam döngüsünü çatının yönettiği durumlar için bloksuz bağla.
get_translations() Geçerli bağlamayı ya da None döndür.

Bağlama bir ContextVardır; dolayısıyla bağlam başınadır ve eşzamanlılık altında güvenlidir.

Ertelenmiş dizgiler

Ad Amaç
lazy_gettext(template, /, *, strict=False) Çeviriyi her render'a kadar ertele.
lazy_pgettext(context, template, /, *, strict=False) Bağlamlı biçimi.
LazyString İkisinin de döndürdüğü şey. str() ve format() üzerinden, o anda hangi dil bağlıysa o dilde render edilir, render edilmiş metniyle eşit karşılaştırılır ve bilerek hash'lenemez.

strictin neden tanımın yanına ait olduğu da dahil olmak üzere işlenmiş örnekler Ertelenmiş çeviri başlığı altındadır.

Daha alt düzey

compile_template(template, /) -> CompiledTemplate

Bir t-string'i, önbellekteki statik planını yeniden kullanarak derle.

CompiledTemplate

Üye Anlamı
.msgid Kararlı gettext mesaj tanımlayıcısı.
.placeholders İlk görülme sırasıyla yer tutucu adları.
.render(pattern) Tek bir deseni doğrula ve render et. Bir uyuşmazlıkta her zaman hata fırlatır.

Türler ve hatalar

Translations

Dört standart metot için, tümü yalnızca konumsal, runtime_checkable bir Protocol:

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 ve Babel'in Translations sınıfı, hepsi bunu karşılar.

İstisnalar

Sınıf Ne zaman fırlatılır
TStringError Aşağıdaki ikisinin taban sınıfı.
InvalidTemplateError Kaynak t-string uzlaşımı bozduğunda — karmaşık bir interpolasyon ya da farklı biçimlendirmeyle yinelenen bir ad.
InvalidTranslationError Çeviri bozduğunda. Varsayılan hoşgörülü kipte bu günlüklenir ve yerine kaynak metin render edilir.

Çıkarma entry point'leri

Kurulumda otomatik olarak kaydedilir; onlara import ile değil, adla başvurursunuz.

Grup Ad Kullanan
babel.extractors gettext_tstrings babel.cfg içindeki method.
babel.checkers gettext_tstrings pybabel compile, otomatik olarak.

Performans

Tam anlatım — neyin önbelleğe alındığı, önbelleklerin neye anahtarlandığı ve ölçülen sayılar — Sıcak yol bölümündedir. Kısa sürümü: doğrulama önbelleğe alınır, asla atlanmaz ve render'ın tamamı mikrosaniyenin kesri kadar sürer. Kıyaslamayı kendi hedefinizde çalıştırın:

uv run python benchmarks/runtime.py