بومیسازی پیوسته: هر زبان، در هر ادغام.
بومیسازی پیوسته رشتههای جدید و تغییر یافته را همزمان با تغییر کد ترجمه میکند، نه در مرحلهای جداگانه قبل از هر انتشار. هر زبان برای انتشار همراه با کدی که به آن نیاز دارد، آماده میماند.
بومیسازی پیوسته چیست؟
بومیسازی پیوسته روشی از کار است که در آن رشتههای جدید و تغییر یافته به محض تغییر، به طور خودکار برای ترجمه ارسال میشوند و متن ترجمه شده بدون نیاز به برنامهریزی دستی، به محصول باز میگردد.
مرحله ترجمه وجود ندارد، زیرا ترجمه هرگز متوقف نمیشود. توسعهدهنده رشتهای را ادغام میکند، ترجمهها در همان جریان کد دنبال میشوند و انتشار منتظر فایل کسی نیست.
این نیمه بومیسازی تحویل پیوسته است. تیمی که هر روز ادغام میکند اما هر چند هفته یکبار ترجمه را تحویل میدهد، بیشتر ماه را با زبانهایی عقبتر از کد خود سپری میکند. بومیسازی پیوسته این شکاف را به اندازه یک اجرا کاهش میدهد.
این بدان معنا نیست که خروجی ماشین بدون خواندن منتشر شود. شما تصمیم میگیرید کدام رشتهها نیاز به بررسی انسان دارند و یک انتشار میتواند فقط شامل مواردی باشد که بررسی شدهاند.
تفاوت در زمان انجام ترجمه است، نه در شخص انجامدهنده.
| تغییرات | تحویل دستهای | پیوسته |
|---|---|---|
| کنار هم | ||
| زمان انجام ترجمه | در مرحلهای قبل از هر انتشار | به محض تغییر هر رشته متنی |
| عامل آغازگر | خروجی گرفتن یک فایل توسط شخصی | یک پوش، ادغام یا تغییر محتوا |
| حجم هر بخش | هفتهها رشته متنی به صورت یکجا | رشتههای موجود در یک تغییر |
| انتظار برای چه چیزی جهت انتشار | بازگشت فایل | بازبینی، روی رشتههایی که علامتگذاری کردهاید |
| تغییر دیرهنگام در متن | یک دور رفت و برگشت دیگر | اجرای مجدد همان کلید |
| منبع کاری مترجم | یک صفحه گسترده از رشتههای متنی | ردیف، همراه با اصطلاحات واژهنامه، تطابقهای حافظه ترجمه و تصاویر صفحه |
| زبانها در زمان راهاندازی | پلهپله، یک موج پس از دیگری | همزمان با ویژگی جدید |
- زمان انجام ترجمه
- در مرحلهای قبل از هر انتشار
- عامل آغازگر
- خروجی گرفتن یک فایل توسط شخصی
- حجم هر بخش
- هفتهها رشته متنی به صورت یکجا
- انتظار برای چه چیزی جهت انتشار
- بازگشت فایل
- تغییر دیرهنگام در متن
- یک دور رفت و برگشت دیگر
- منبع کاری مترجم
- یک صفحه گسترده از رشتههای متنی
- زبانها در زمان راهاندازی
- پلهپله، یک موج پس از دیگری
- زمان انجام ترجمه
- به محض تغییر هر رشته متنی
- عامل آغازگر
- یک پوش، ادغام یا تغییر محتوا
- حجم هر بخش
- رشتههای موجود در یک تغییر
- انتظار برای چه چیزی جهت انتشار
- بازبینی، روی رشتههایی که علامتگذاری کردهاید
- تغییر دیرهنگام در متن
- اجرای مجدد همان کلید
- منبع کاری مترجم
- ردیف، همراه با اصطلاحات واژهنامه، تطابقهای حافظه ترجمه و تصاویر صفحه
- زبانها در زمان راهاندازی
- همزمان با ویژگی جدید
نحوه عملکرد محلیسازی پیوسته
یک رشته متنی جدید را در چرخه دنبال کنید. هر مرحله نشان میدهد که واقعاً چه چیزی را مشاهده خواهید کرد.
تغییرات از طریق CLI، اکشن گیتهاب یا اپلیکیشن روی میزبان گیت شما به Transglot میرسند. فایلهای منبع در یکی از ۲۰ فرمت بومی پردازش میشوند و هر رشته با آنچه پروژه از قبل دارد مقایسه میشود. تنها رشتههای جدید و تغییریافته ادامه مییابند.
یک تطابق دقیق از حافظه ترجمه، ردیف را پر میکند و هزینهای ندارد. هر چه باقی بماند به همراه واژهنامه، راهنمای سبک و زمینه آن کلید به Glossa ارسال میشود.
جایگذارها، شکلهای جمع، اصطلاحات واژهنامه و طول در هر ردیف از هر اجرا بررسی میشوند. جایگذار خراب، شکل جمع ناقص یا اصطلاح ممنوعه واژهنامه یکبار تعمیر و دوباره بررسی میشود؛ اگر بار دوم شکست بخورد، رد میشود و ارسال نمیگردد. ردیفی که فقط از نظر طول بیشازحد باشد نوشته میشود و از پلن Team بهطور خودکار تأیید شده یا توسط اجرای QA برای بازبینی علامتگذاری میشود.
یک اجرا هرگز روی ردیفی که شخص ویرایش یا بازبینی کرده بازنویسی نمیکند. اگر منبع آن بعداً تغییر کند، متن باقی میماند، اجرا آن ردیف را شمارش کرده و به شما اطلاع میدهد و از پلن Team یک پیشنهاد بهروزرسانی در کنار آن قرار میگیرد تا کسی آن را بپذیرد.
اپهای گیت فایلهای محلی را در یک شاخه همگامسازی ثبت میکنند و یک درخواست ادغام را بهروز نگه میدارند. در گیتهاب، با کامنت کردن /translate روی یک درخواست ادغام، فایلها در شاخه همان درخواست ادغام قرار میگیرند. یا انتشار در CDN انجام شود و محصول در حال اجرا تغییرات را بدون نیاز به انتشار جدید دریافت کند.
شش روشی که بومیسازی پیوسته اشتباه پیش میرود و آنچه هر کدام را متوقف میکند
یک اجرا کار شخص را بازنویسی میکند
هر نویسنده ابتدا وضعیت سطر را بررسی میکند: اجرا، تطابق حافظه و ارسال. سطری که توسط فرد ویرایش یا بازبینی شده باشد، حفظ میشود و گزارش اجرا آن را ثبت میکند.
→فرانسوی، بازبینیشده، منبع بهتازگی تغییر کرده است
✓حفظشده، شمارششده، گزارششده
یک رشتهٔ خراب به محیط تولید میرسد
هر نشانهای که وارد شده باید خارج شود. در یک پروژه ICU، پیامی که هنگام رندر خطا ایجاد کند از پولریکوئست، کانکتور و بسته CDN حذف میماند و اجرا آن را نامگذاری میکند.
→{count, plural, one {# article}
✓خارج از فایل باقی مانده، در اجرا نامگذاری شده است
مخزن پر از پولریکوئستهای ربات میشود
یک شاخه همگامسازی و یک پولریکوئست برای هر مخزن. دو پوش سریع روی آن همگرا میشوند به جای اینکه دومی را باز کنند.
→#812 #815 #819 #823 بهروزرسانی l10n
✓#812 transglot/sync، در محل بهروز شد
ویرایش منبع ترجمههای قدیمی را پشت سر میگذارد
هر سطر مقصد منبعی را که بر اساس آن نوشته شده ثبت میکند، بنابراین رشتهای که تغییر کرده در همه زبانها بهعنوان منقضیشده شناخته میشود و فقط همان کلید دوباره اجرا میشود.
→«ذخیره» به «ذخیره پیشنویس» تبدیل شد. فرانسوی، آلمانی، ژاپنی هنوز «ذخیره» میگویند
✓فرانسوی، آلمانی، ژاپنی دوباره روی همان یک کلید اجرا میشوند
هر اجرا مجدداً کل پروژه را صورتحساب میکند
اندازه اجرا بر اساس تغییرات تعیین میشود. رشته بدون تغییر ارسال نمیشود، تطابق دقیق حافظه هزینهای ندارد و سطری که متعلق به شخص است قبل از هر هزینهای رد میشود.
→فایل شامل ۴۸,۰۰۰ کلمه است
✓این اجرا: ۶۰ کلمه
یک پولریکوئست نیمهتمام فایل محلی را پاک میکند
اگر سرور هیچ ورودیای برای یک محلی گزارش نکند، پولریکوئست از نوشتن روی فایلی که محتوا دارد خودداری میکند و با کد خروج ۱ متوقف میشود تا پایپلاین همانجا بایستد.
→پولریکوئست: ۰ ورودی برای ژاپنی، فایل شامل ۱,۲۰۴ مورد است
✓خودداری از بازنویسی locales/ja.json با بسته خالی
- run 4182 فرانسوی: نشانهگذار در پیشنویس وجود نداشت، در تلاش مجدد اصلاح شد
- run 4182 آلمانی: ۳ سطر حفظ شد، متعلق به شخص هستند
- run 4182 ژاپنی: ۴۱ سطر از حافظه، ۰ کلمه
- run 4183 عربی: شکل جمع پس از تلاش مجدد موجود نبود، سطر رد شد
- pull فایل locales/pt-BR.json نوشته شد
- sync transglot/sync بهروز شد، پولریکوئست شماره ۸۱۲
هر سه به مخزن شما متصل میشوند. تفاوت در آن چیزی است که هنگام ادغام رخ میدهد.
بر اساس اطلاعات صفحات رسمی هر شرکت در تاریخ ۵ نوامبر ۲۰۲۶. ردیف قیمت از صفحات مقایسه ما که در زیر پیوند داده شدهاند، استخراج شده است و پلن و محاسبات را نشان میدهد. قیمتها و پلنها تغییر میکنند، بنابراین قبل از تصمیمگیری آنها را بررسی کنید.
| چه اتفاقی میافتد | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| یک رشته جدید ادغام میشود | بهطور پیشفرض ترجمه میشود پوش (Push) فرآیند را آغاز میکند. یک تنظیمات پروژه میتواند آن را غیرفعال کند. | پس از راهاندازی، ترجمه میشود اتوماسیونها بهطور پیشفرض هنگام ایجاد کلید و وارد کردن فایل خاموش هستند. یک گردش کار با مرحله هوش مصنوعی طبق برنامه زمانبندی خود اجرا میشود. | پس از فعالسازی، ترجمه میشود در بخش تنظیمات، ترجمه خودکار، سپس با هر بار آپلود اجرا میشود. همگامسازی گیت بهطور پیشفرض هر ساعت یکبار انجام میشود. |
| یک ترجمه از بررسی ناموفق عبور میکند | یک بار تعمیر میشود، سپس رد میشود برای یک جایگاه نگهدارنده شکسته، شکل جمع یا اصطلاح ممنوعه، در هر ردیف از هر اجرا. تجاوز از طول مجاز ثبت میشود. در یک پروژه ICU، یک ردیف خراب از پول (Pull)، کانکتورها و CDN خارج میماند. | یک بررسی در سطح خطا، ذخیرهسازی در ویرایشگر را متوقف میکند هر بررسی روی خاموش، هشدار یا خطا تنظیم میشود. | یک بررسی در سطح خطا، ذخیرهسازی را متوقف میکند هر بررسی روی هشدار یا خطا تنظیم میشود. |
| یک نفر قبلاً ردیف را ویرایش کرده است | اجرا از نوشتن آن خودداری میکند همچنین تطابق حافظه و پوش (Push). اگر منبع بعداً تغییر کند، اجرا ردیف را گزارش میدهد. | اتوماسیونها بهطور پیشفرض مقادیر خالی را پر میکنند یک گزینه اجباری و یک اقدام پاکسازی، موارد پرشده را بازنویسی میکنند. | گزینهها ردیفهای انسانی و تأییدشده را حفظ میکنند یک گزینه جایگزینی همه نیز وجود دارد. |
| درخواستهای پول (Pull) در یک مخزن شلوغ | یک شاخه، یک درخواست پول در هر پوش (Push) در محل بهروزرسانی میشود. | یک شاخه جدید برای هر درخواست پول با برچسب زمانی نامگذاری میشود. | یک شاخه سرویس، همگامسازی ساعتی ساعتی حالت پیشفرض است و بازه زمانی قابل تغییر است. |
| معیار سنجش پلن | کلمات ترجمهشده، یکبار برای هر زبان تطابقهای دقیق حافظه رایگان هستند. ذخیرهسازی رشته هزینهای ندارد. | کلمات پردازششده هم زبان پایه و هم زبان هدف شمرده میشوند. | کلمات میزبانیشده کلمات برای ترجمه، ضربدر تعداد زبانهای هدف. |
| هزینه هوش مصنوعی | سهمیه کلمات پلن جداگانه صورتحساب نمیشود. | سهمیه کلمات هوش مصنوعی بر اساس پلن کلمات هوش مصنوعی استاندارد و حرفهای خطوط جداگانهای در پلن دارند. | یک اعتبار جداگانه یا کلید اختصاصی شما هوش مصنوعی مدیریتشده Crowdin از اعتبارات و خارج از اشتراک پرداخت میشود. |
| همان کار: 5,000 رشته در 10 زبان | $39 در ماه Team، شامل ترجمه | $1,049 در ماه Advanced (billed yearly) | $138 در ماه Pro with 560K hosted words (billed monthly)، بهعلاوه هوش مصنوعی |
| GitHub، GitLab، Bitbucket، Azure Repos، رابط خط فرمان و سرور MCP | همه موارد برنامههای Git از پلن Team شروع شده و نسخههای ابری را پوشش میدهند. | همه موارد ادغامها در تمام پلنها موجود هستند. | همه موارد این مورد Bitbucket Server را نیز پوشش میدهد. |
- یک رشته جدید ادغام میشود
- بهطور پیشفرض ترجمه میشودپوش (Push) فرآیند را آغاز میکند. یک تنظیمات پروژه میتواند آن را غیرفعال کند.
- یک ترجمه از بررسی ناموفق عبور میکند
- یک بار تعمیر میشود، سپس رد میشودبرای یک جایگاه نگهدارنده شکسته، شکل جمع یا اصطلاح ممنوعه، در هر ردیف از هر اجرا. تجاوز از طول مجاز ثبت میشود. در یک پروژه ICU، یک ردیف خراب از پول (Pull)، کانکتورها و CDN خارج میماند.
- یک نفر قبلاً ردیف را ویرایش کرده است
- اجرا از نوشتن آن خودداری میکندهمچنین تطابق حافظه و پوش (Push). اگر منبع بعداً تغییر کند، اجرا ردیف را گزارش میدهد.
- درخواستهای پول (Pull) در یک مخزن شلوغ
- یک شاخه، یک درخواست پولدر هر پوش (Push) در محل بهروزرسانی میشود.
- معیار سنجش پلن
- کلمات ترجمهشده، یکبار برای هر زبانتطابقهای دقیق حافظه رایگان هستند. ذخیرهسازی رشته هزینهای ندارد.
- هزینه هوش مصنوعی
- سهمیه کلمات پلنجداگانه صورتحساب نمیشود.
- همان کار: 5,000 رشته در 10 زبان
- $39 در ماهTeam، شامل ترجمه
- GitHub، GitLab، Bitbucket، Azure Repos، رابط خط فرمان و سرور MCP
- همه مواردبرنامههای Git از پلن Team شروع شده و نسخههای ابری را پوشش میدهند.
- یک رشته جدید ادغام میشود
- پس از راهاندازی، ترجمه میشوداتوماسیونها بهطور پیشفرض هنگام ایجاد کلید و وارد کردن فایل خاموش هستند. یک گردش کار با مرحله هوش مصنوعی طبق برنامه زمانبندی خود اجرا میشود.
- یک ترجمه از بررسی ناموفق عبور میکند
- یک بررسی در سطح خطا، ذخیرهسازی در ویرایشگر را متوقف میکندهر بررسی روی خاموش، هشدار یا خطا تنظیم میشود.
- یک نفر قبلاً ردیف را ویرایش کرده است
- اتوماسیونها بهطور پیشفرض مقادیر خالی را پر میکنندیک گزینه اجباری و یک اقدام پاکسازی، موارد پرشده را بازنویسی میکنند.
- درخواستهای پول (Pull) در یک مخزن شلوغ
- یک شاخه جدید برای هر درخواست پولبا برچسب زمانی نامگذاری میشود.
- معیار سنجش پلن
- کلمات پردازششدههم زبان پایه و هم زبان هدف شمرده میشوند.
- هزینه هوش مصنوعی
- سهمیه کلمات هوش مصنوعی بر اساس پلنکلمات هوش مصنوعی استاندارد و حرفهای خطوط جداگانهای در پلن دارند.
- همان کار: 5,000 رشته در 10 زبان
- $1,049 در ماهAdvanced (billed yearly)
- GitHub، GitLab، Bitbucket، Azure Repos، رابط خط فرمان و سرور MCP
- همه مواردادغامها در تمام پلنها موجود هستند.
- یک رشته جدید ادغام میشود
- پس از فعالسازی، ترجمه میشوددر بخش تنظیمات، ترجمه خودکار، سپس با هر بار آپلود اجرا میشود. همگامسازی گیت بهطور پیشفرض هر ساعت یکبار انجام میشود.
- یک ترجمه از بررسی ناموفق عبور میکند
- یک بررسی در سطح خطا، ذخیرهسازی را متوقف میکندهر بررسی روی هشدار یا خطا تنظیم میشود.
- یک نفر قبلاً ردیف را ویرایش کرده است
- گزینهها ردیفهای انسانی و تأییدشده را حفظ میکنندیک گزینه جایگزینی همه نیز وجود دارد.
- درخواستهای پول (Pull) در یک مخزن شلوغ
- یک شاخه سرویس، همگامسازی ساعتیساعتی حالت پیشفرض است و بازه زمانی قابل تغییر است.
- معیار سنجش پلن
- کلمات میزبانیشدهکلمات برای ترجمه، ضربدر تعداد زبانهای هدف.
- هزینه هوش مصنوعی
- یک اعتبار جداگانه یا کلید اختصاصی شماهوش مصنوعی مدیریتشده Crowdin از اعتبارات و خارج از اشتراک پرداخت میشود.
- همان کار: 5,000 رشته در 10 زبان
- $138 در ماهPro with 560K hosted words (billed monthly)، بهعلاوه هوش مصنوعی
- GitHub، GitLab، Bitbucket، Azure Repos، رابط خط فرمان و سرور MCP
- همه موارداین مورد Bitbucket Server را نیز پوشش میدهد.
فرآیند را از هر جایی که رشتههای متنی شما قرار دارند، آغاز کنید. همه مسیرها به یک خط لوله واحد ختم میشوند.
نحوه راهاندازی بومیسازی پیوسته
- 01
استخراج رشتهها از کد
هر رشتهای که کاربر میبیند باید یک کلید پایدار در فایل محلی داشته باشد. Transglot از ۲۰ فرمت پشتیبانی میکند، بنابراین از همان فرمت فعلی خود استفاده کنید.
jsonyamlxliffarb - 02
اتصال مخزن
دستور init فایلهای محلی شما را پیدا میکند، از طریق مرورگر شما را وارد سیستم میکند، آنچه را که از قبل دارید آپلود کرده و اولین ترجمه را اجرا میکند.
npx transglot@latest init - 03
اجرا در هر ادغام (Merge)
GitHub Action را اضافه کنید، CLI را از هر CI دیگری فراخوانی کنید یا اپلیکیشن را برای GitHub، GitLab، Bitbucket یا Azure Repos نصب نمایید.
transglot push --wait - 04
تعیین مواردی که نیاز به بررسی انسانی دارند
مقدار min_state را در یک قانون pull روی reviewed تنظیم کنید تا آن فایل فقط شامل رشتههایی باشد که توسط انسان بازبینی شدهاند. اگر این کار را نکنید، پیشنویسها منتشر میشوند.
min_state: reviewed
هزینه اجرای آن در هر ادغام: کلماتی که تغییر کردهاند.
«کلمه» به معنای یک کلمه مبدأ است که برای هر زبان مقصد یکبار شمرده میشود. حجم هر اجرا بر اساس تغییرات تعیین میشود؛ بنابراین ادغامی که دوازده کلمه را در پنج زبان تغییر دهد، شصت کلمه محسوب میشود، صرفنظر از بزرگی پروژه.
منطبق با طرح Starter: $19/mo، 300,000 کلمه در ماه.
این مقدار حدود 9% از سقف مجاز است.
این مورد فقط ترجمه را محاسبه میکند. بررسیهای کیفیت، پیشنویسهای لحن برند و اصلاحات نیز به عنوان کلمه شمارش میشوند و تطابقهای دقیق از حافظه هزینهای ندارند. رابط خط فرمان (CLI) و اکشن گیتهاب از پلن Starter شروع میشوند و برنامههای گیتهاب، گیتلب، بیتباکت و Azure Repos از پلن Team آغاز میشوند.
سه مسئلهای که بومیسازی پیوسته حل نمیکند
رشتههایی که همچنان در کد گیر کردهاند
یک پایپلاین فقط میتواند چیزی را ترجمه کند که بتواند بخواند. رشتههای سختکد شده و جملاتی که از قطعات مختلف به هم چسبانده شدهاند باید ابتدا اصلاح شوند و معمولاً دلیل اصلی توقف راهاندازی هستند.
عدم مالکیت کسی بر واژگان
اتوماسیون رشتهها را جابهجا میکند. اما تصمیم نمیگیرد محصول شما چه نامهایی را برای چیزها انتخاب کند. کسی باید مسئولیت واژهنامه را بر عهده بگیرد، در غیر این صورت زبانی که کسی آن را نمیخواند بدون توجه هیچکس دچار انحراف میشود.
متنی که نیاز به قضاوت دارد
متون حقوقی، قیمتگذاری و شعارهای برند شایسته بررسی توسط یک شخص هستند. آنها را برای بازبینی ارسال کنید و تا زمانی که کسی تأیید نهایی نکرده است، آنها را از فایلهای نهایی خارج نگه دارید.
سوالات متداول درباره بومیسازی پیوسته
سوالاتی که تیمها قبل از فعالسازی آن میپرسند.
بومیسازی پیوسته چیست؟
بومیسازی پیوسته چه تفاوتی با بومیسازی سنتی دارد؟
آیا بومیسازی پیوسته همان CI/CD است؟
آیا برای بومیسازی پیوسته به پایپلاین CI/CD نیاز دارم؟
آیا بومیسازی پیوسته به معنای عدم بازبینی انسانی است؟
آیا یک اجرای خودکار میتواند ویرایش مترجم را بازنویسی کند؟
آیا بومیسازی پیوسته برای یک تیم کوچک ارزشمند است؟
چگونه مانع شوم که هزینه یک اجرا بیشتر از انتظاراتم شود؟
آیا با GitLab، Bitbucket و Azure DevOps کار میکند؟
آیا میتوانم بدون گیت بومیسازی پیوسته انجام دهم؟
آیا ترجمهها بدون انتشار نسخه جدید بهروز میشوند؟
چگونه یک پروژه موجود را منتقل کنم؟
41 اتصالدهنده، از پیش ساختهشده.
یک مخزن متصل کنید. ادغام بعدی بقیه کار را انجام میدهد.
یک دستور فایلهای منطقه زبانی شما را پیدا میکند، از طریق مرورگر شما را وارد سیستم میکند و اولین ترجمه را اجرا مینماید.