چیتشیت
ابزارهای بومیسازی و واژهنامه
Localization and Glossary Tools
اجرا، دادهدهی و بررسی سه پروژهی بومیسازی بازنگریمحور. انتخاب یک مدل چندزبانه و یک زبان مبدأ.
فهرست مطالب
سه پروژه در کنار هم
مقایسه| عامل | میز بومیسازی زیرنویس | میز کار بومیسازی رشتههای رابط کاربری | ناشر کارتهای هاور واژهنامه |
|---|---|---|---|
| خروجیهای ساخت | WebVTT بازنگریشده و یک میز HTML | JSON زبان بازنگریشده و یک پیشنمایش | درسنامه HTML حاشیهنویسیشده |
| زبان | پایتون 3.10+ | Node نسخه 22.18 یا جدیدتر | Node نسخه 22.18 یا جدیدتر |
| کلیدهای ورودی | vtt، translations، glossary، cps | locale، messages، proposals، values | glossary، lesson |
| خروجیها | review.html، translation-decisions.json، reviewed.vtt | locale.json، unresolved-strings.json، report.html | report.html، glossary.json، coverage.json |
| فایل بازنگری | --decisions decisions.json | آرگومان سوم locale-review.json | ندارد |
| گیت سختگیرانه | reviewed.vtt فقط زمانی که تمام کیوها تأیید شوند | تأیید فقط بدون هیچ مشکلی | زیرمجموعه HTML متوازن |
اجرای نسخهی مرجع
دستورها| دستور | عملکرد |
|---|---|
python3 cli.py samples/input.json --output demo-output | میز زیرنویس روی نمونه |
python3 cli.py <input.json> --output <dir> | میز زیرنویس روی ورودی شما |
node cli.ts sample.json output | میز کار رابط کاربری یا ناشر واژهنامه |
node cli.ts <input.json> <dir> <review.json> | میز کار رابط کاربری با بازنگری شما |
node cli.ts --help | چاپ خط آرگومانها |
ساخت و ارزیابی نسخهی خودتان
کار و کد| وظیفه | کد |
|---|---|
| ایجاد قالب اولیه | python3 scripts/project_test.py <project> --init <dir> |
| ارزیابی یک مرحله | python3 scripts/project_test.py <project> --stage 1 --path <dir> --strict |
| ارزیابی تمام مراحل | python3 scripts/project_test.py <project> --all --path <dir> --strict |
| ذخیرهی گزارش تکمیل | --report completion.json |
| ارزیابی نسخهی مرجع | python3 scripts/project_test.py <project> --all --solution --strict |
پایپلاین میز زیرنویس
گامبهگام- parse_vttخواندن WebVTT در قالب کیوها. رشتههای برچسب زمان را حفظ کرده و به کیوهای بیشناسه
cue-Nاختصاص میدهد. - proposeترجمههای ارائهشده را دریافت میکند. اصطلاحات واژهنامه مبدأ را بهترتیب طولانیترین جایگزین میکند.
- inspectکاراکترهای مرئی را میشمارد و مقدار
budget=floor(duration*cps)را تنظیم میکند. - export_localizedبازنگری را به یک
fingerprintاز نوع SHA-256 متشکل از پیشنهادات و cps پیوند میدهد. - شمافایل
decisions.jsonرا ویرایش کرده، مقدارapprovedرا برای هر کیو تعیین کنید، سپس دوباره با--decisionsاجرا کنید. - CLIفایل
reviewed.vttرا فقط زمانی مینویسد که همهی کیوها تأیید شده باشند.
ورودی زیرنویس (samples/input.json)
کدtext
{
"vtt": "WEBVTT\n\nmap\n00:00.000 --> 00:03.000\nOpen the map.\n...",
"translations": {
"map": "Abre el map.", # واژهنامه آن را به «Abre el mapa.» تبدیل میکند
"label": "Escribe un nombre descriptivo ..." # 2 ثانیه با cps برابر 12، بودجه 24
},
"glossary": {"map": "mapa", "marker": "marcador"}, # مبدأ به مقصد
"cps": 12 # اختیاری، پیشفرض 17 است
}
جریان کاری میز کار رشتههای رابط کاربری
معماریقوانین ناشر واژهنامه
مفهومها- شناسه اصطلاح
- با حروف کوچک، منطبق با
^[a-z][a-z0-9-]*$، و یکتا. - عبارات
- یک اصطلاح یا نام مستعار نباید در کل واژهنامه تکرار شود، بدون حساسیت به حروف بزرگ و کوچک.
- تطبیق
- تابع
matchTerms()ابتدا طولانیترین عبارت را امتحان میکند و به مرزهای کلمات نیاز دارد. - متن نادیدهگرفتهشده
- متن داخل
pre،codeوaدستنخورده باقی میماند. - ویژگیها
- فقط
class،id،title،langو برایaمقدارhref. - پیوندها
- مقدار
hrefباید باhttps://،http://یا#شروع شود. - تعریف
- یک دکمهی محلی با
aria-expandedیک اسپن باrole="note"را نمایش میدهد.
پیامهای خطا و راهحلها
عیبیابیstale review- علت
- تغییر پیشنهادات یا cps پس از بازنگری
- راهحل
- استفاده از
decisions.jsonجدید حاصل ازreview.html
resolve glossary or acknowledge reading-budget overflow- علت
- کیوی تأییدشده فاقد یک اصطلاح است یا از بودجه فراتر رفته
- راهحل
- اصطلاح را اضافه کنید یا
override_budgetرا برابر true قرار دهید
STYLE and REGION are outside the supported subset- علت
- فایل VTT دارای بلوکهای STYLE یا REGION است
- راهحل
- آنها را حذف کنید. بلوکهای NOTE نادیده گرفته میشوند
Placeholder multiset changed- علت
- ترجمه یک
{name}را حذف یا اضافه کرده است - راهحل
- تمام جانگهدارهای مبدأ را حفظ کنید
Stale or invalid translation decision- علت
- ترجمه بازنگری با پیشنهاد ارائهشده همخوانی ندارد
- راهحل
- یک
locale-review.jsonجدید دانلود کنید
Resolve translation issues or context before approving- علت
- کلید مبهم تأیید نشده است
- راهحل
- مقدار
acknowledgeContextرا برابر true قرار دهید
Ambiguous repeated phrase- علت
- عبارت یکسان در دو اصطلاح مختلف
- راهحل
- به هر عبارت یک اصطلاح اختصاص دهید
Unsupported HTML element- علت
- تگ خارج از زیرمجموعه مجاز است
- راهحل
- تنها از تگهای فهرستشده استفاده کنید
پیشفرضها و محدودیتها
پیشفرضها| تنظیم | پیشفرض | یادداشت |
|---|---|---|
cps | 17 | باید مثبت و متناهی باشد |
schema_version | 1 | در translation-decisions.json |
approved | False | همهی کیوها در ابتدا تأییدنشده هستند |
override_budget | False | برای تأیید کیوهای فراتر از بودجه الزامی است |
Proposal length | 2000 | حداکثر تعداد کاراکتر در هر پیشنهاد |
schemaVersion | 1 | در locale-review.json الزامی است |
Output folder | output | آرگومان دوم در CLIهای Node |
Exit code on error | 2 | ابزارهای CLI مبتنی بر Node پیام را چاپ میکنند |
انتخاب مدل چندزبانه
کار و کد| وظیفه | کد |
|---|---|
| دستهبندی، 100 زبان | `XLM-R-base` fine-tuned |
| دستهبندی صفر-نمونه | joeddav/xlm-roberta-large-xnli |
| ترجمه، 200 زبان | facebook/nllb-200-distilled-600M |
| زبان کممنبع | `XLM-V` or a related-language fine-tune |
| تعداد دورهای چند-نمونه | num_train_epochs=5 |
| نرخ یادگیری چند-نمونه | learning_rate=2e-5 |
| خطهای دُمدراز (کمکاربرد) | byte_fallback=True |
انتخاب زبان مبدأ
پرسش و پاسخ- آیا انگلیسی همیشه بهترین مبدأ است؟
- خیر. شباهت زبانی پیشبینی بهتری نسبت به اندازه پیکره متنی برای انتقال ارائه میدهد.
- زبان مقصد مراتی است؟
- تابع
rank_source_languages()هندی را بالاتر از انگلیسی قرار میدهد. - چند برچسب در زبان مقصد؟
- 100 تا 500 نمونه، 95 تا 98 درصد خط مبنای انگلیسی را محقق میکند.
- چرا نرخ یادگیری بالاتر نه؟
- همترازی چندزبانه به یک مدل منحصر به انگلیسی تنزل پیدا میکند.
- هزینهی باروری توکنها چیست؟
- هندی میتواند 3 تا 5 برابر انگلیسی به توکن نیاز داشته باشد.
نکات کاربردی
نکتهها- دقت را بهازای هر زبان گزارش کنید. مقادیر تجمیعی بخش دُمدراز را پنهان میکنند.
- قبل از آموزش، نرخ باروری توکنسازی را روی متن مقصد بررسی کنید.
- هر ترجمه نیازمند بازنگری انسانی است. ابزارها فقط مشکلات را پرچمگذاری میکنند.
- میز کار رابط کاربری از جانگهدارهای نامگذاریشده ساده پشتیبانی میکند، نه پیامهای ICU.
- عبارات واژهنامه هرگز از مرز المانها یا موجودیتها عبور نمیکنند.
- فایل HTML بهصورت محلی اجرا میشود و هیچ دادهای به سرویسهای شخص ثالث ارسال نمیکند.