API¶
כל מה שמופיע להלן מיוצא מ-gettext_tstrings. שום דבר אחר אינו ציבורי.
עמוד זה הוא מסמך העיון של החתימות; לדוגמאות מלאות לכל פונקציה, ראו את
המדריך.
תרגום¶
כל פונקציה מקבלת את מחרוזת-t שלה כארגומנט פוזיציונלי, ומקבלת שני
ארגומנטים בעלי שם: translations (המבצע נסיגה לקשירת ההקשר, ואחריה
לפונקציות הגלובליות של הספרייה הסטנדרטית) ו-strict (ראו
מדריך).
| פונקציה | חתימה |
|---|---|
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 |
ntr |
כינוי של ngettext |
Translator¶
dataclass קפואה הקושרת אובייקט תרגום אחד, כך שאתרי הקריאה אינם צריכים לחזור עליו.
היא ניתנת לקריאה (_(t"…")) ונושאת את gettext, את ngettext, את
pgettext, את npgettext ואת הכינויים tr / ntr.
קשירת הקשר¶
| שם | תפקיד |
|---|---|
use_translations(translations) |
קושרת למשך בלוק with, ואז משחזרת את המצב הקודם. |
set_translations(translations) |
קושרת ללא בלוק, עבור מחזורי חיים המנוהלים בידי המסגרת. |
get_translations() |
קוראת את הקשירה הנוכחית, או None. |
הקשירה היא ContextVar, ולכן היא נפרדת לכל הקשר ובטוחה תחת מקביליות.
מחרוזות דחויות¶
| שם | תפקיד |
|---|---|
lazy_gettext(template, /, *, strict=False) |
דוחה את התרגום עד לכל רינדור. |
lazy_pgettext(context, template, /, *, strict=False) |
הצורה ההקשרית. |
LazyString |
מה ששתיהן מחזירות. עוברת רינדור דרך str() ו-format() בשפה הקשורה באותו רגע, נחשבת שווה לטקסט המרונדר שלה, ובלתי ניתנת לגיבוב בכוונה. |
דוגמאות מלאות, ובכללן ההסבר למה strict שייך למקום ההגדרה, נמצאות תחת
תרגום דחוי.
רמה נמוכה יותר¶
compile_template(template, /) -> CompiledTemplate¶
מקמפלת מחרוזת-t, תוך שימוש חוזר בתוכנית הסטטית שלה השמורה במטמון.
CompiledTemplate¶
| חבר | משמעות |
|---|---|
.msgid |
מזהה ההודעה היציב של gettext. |
.placeholders |
שמות מצייני המקום לפי סדר ההופעה הראשונה. |
.render(pattern) |
מאמתת דפוס אחד ומרנדרת אותו. תמיד מעלה חריגה על אי-התאמה. |
טיפוסים ושגיאות¶
Translations¶
Protocol מסומן runtime_checkable עבור ארבע המתודות הסטנדרטיות,
כולן פוזיציונליות-בלבד:
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 ו-Translations
של Babel — כולם מקיימים אותו.
חריגות¶
| מחלקה | מועלית כאשר |
|---|---|
TStringError |
מחלקת הבסיס לשתי המחלקות שלהלן. |
InvalidTemplateError |
מחרוזת-t של המקור מפרה את המוסכמה — אינטרפולציה מורכבת, או שם החוזר עם עיצוב שונה. |
InvalidTranslationError |
התרגום הוא שמפר אותה. במצב הסלחני, שהוא ברירת המחדל, הדבר נרשם ביומן וטקסט המקור מרונדר במקומו. |
נקודות כניסה לחילוץ¶
נרשמות אוטומטית בעת ההתקנה; מפנים אליהן לפי שם, לא באמצעות ייבוא.
| קבוצה | שם | בשימוש של |
|---|---|---|
babel.extractors |
gettext_tstrings |
ה-method שבקובץ babel.cfg. |
babel.checkers |
gettext_tstrings |
pybabel compile, אוטומטית. |
ביצועים¶
התיאור המלא — מה נשמר במטמון, על מה מבוססים מפתחות המטמונים, והמספרים שנמדדו — נמצא בעמוד הנתיב החם. הגרסה הקצרה: האימות נשמר במטמון ולעולם אינו מדולג, והרינדור כולו עולה שבריר של מיקרו-שנייה. הריצו את מדד הביצועים על היעד שלכם: