API¶
ทุกอย่างด้านล่างนี้ถูกส่งออกจาก gettext_tstrings นอกเหนือจากนี้ไม่มีสิ่งใด
เป็นสาธารณะ หน้านี้คือเอกสารอ้างอิงลายเซ็นฟังก์ชัน สำหรับตัวอย่างการใช้งาน
ของแต่ละฟังก์ชัน ดูที่คู่มือ
การแปล¶
แต่ละฟังก์ชันรับ t-string เป็นอาร์กิวเมนต์ตามตำแหน่ง และรับคีย์เวิร์ด
อาร์กิวเมนต์สองตัว: translations (ถอยกลับไปใช้การผูกในคอนเท็กซ์
แล้วจึงไปที่ฟังก์ชัน global ของไลบรารีมาตรฐาน) และ 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 |
alias ของ gettext |
ntr |
alias ของ ngettext |
Translator¶
dataclass แบบ frozen ที่ผูกอ็อบเจกต์การแปลไว้หนึ่งตัว จุดที่เรียกใช้จึงไม่ต้องส่งมันซ้ำ
มันเรียกได้ (_(t"…")) และมี gettext, ngettext, pgettext,
npgettext พร้อมด้วย alias 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-string โดยนำแผนสถิตที่แคชไว้กลับมาใช้ซ้ำ
CompiledTemplate¶
| สมาชิก | ความหมาย |
|---|---|
.msgid |
ตัวระบุข้อความ gettext ที่เสถียร |
.placeholders |
ชื่อตัวยึดตำแหน่งเรียงตามลำดับการปรากฏครั้งแรก |
.render(pattern) |
ตรวจสอบแพตเทิร์นหนึ่งชุดแล้วเรนเดอร์ โยนข้อยกเว้นเสมอเมื่อไม่ตรงกัน |
ชนิดข้อมูลและข้อผิดพลาด¶
Translations¶
Protocol แบบ runtime_checkable สำหรับสี่เมธอดมาตรฐาน
ทั้งหมดเป็น positional-only
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-string ต้นทางละเมิดข้อตกลง — การแทรกค่าที่ซับซ้อน หรือชื่อซ้ำที่จัดรูปแบบต่างกัน |
InvalidTranslationError |
คำแปลละเมิดข้อตกลง ภายใต้โหมดผ่อนปรนซึ่งเป็นค่าเริ่มต้น กรณีนี้จะถูกบันทึกลงล็อกและเรนเดอร์ข้อความต้นทางแทน |
จุดเชื่อมต่อการสกัดข้อความ¶
ถูกลงทะเบียนโดยอัตโนมัติเมื่อติดตั้ง คุณอ้างถึงมันด้วยชื่อ ไม่ใช่ด้วยการ import
| กลุ่ม | ชื่อ | ใช้โดย |
|---|---|---|
babel.extractors |
gettext_tstrings |
ค่า method ใน babel.cfg |
babel.checkers |
gettext_tstrings |
pybabel compile โดยอัตโนมัติ |
ประสิทธิภาพ¶
รายละเอียดฉบับเต็ม — อะไรถูกแคช แคชใช้อะไรเป็นคีย์ และตัวเลขที่วัดได้ — อยู่ที่เส้นทางร้อน ฉบับย่อคือ: การตรวจสอบ ถูกแคชไว้ ไม่มีการข้าม และการเรนเดอร์ทั้งหมดมีต้นทุนเพียงเสี้ยวหนึ่งของ ไมโครวินาที รันเบนช์มาร์กบนเครื่องเป้าหมายของคุณเองได้