
PolyLingo در مقابل Polylang: تفاوت چیست و چه زمانی از هر کدام استفاده کنیم
By Robert M
PolyLingo در مقابل Polylang: تفاوت چیست و چه زمانی از هر کدام استفاده کنیم
اگر اینجا آمدهاید، احتمالاً در یکی از دو وضعیت هستید: از Polylang در وردپرس راضی هستید اما میپرسید آیا معادلی برای پروژهای که روی وردپرس نیست وجود دارد، یا اینکه کاملاً از وردپرس مهاجرت میکنید و میخواهید بفهمید چه اتفاقی برای تنظیمات چندزبانه شما میافتد.
این پست به هر دو سوال مستقیماً پاسخ میدهد. ما پوشش میدهیم که هر ابزار واقعاً چه کاری انجام میدهد، هر کدام کجا قرار میگیرند و چگونه بین آنها انتخاب کنیم.
Polylang چیست (و چه چیزی نیست)
Polylang یک افزونه وردپرس است. یکی از بهترین افزونههای چندزبانه در اکوسیستم وردپرس است. سوئیچرهای زبان را مدیریت میکند، به شما اجازه میدهد نسخههای ترجمه شده پستها و صفحات را ایجاد کنید، برچسبهای hreflang را مدیریت میکند و به طور تمیز با ویرایشگر بلوک وردپرس ادغام میشود. اگر سایت وردپرسی دارید، این یک ابزار جدی و به خوبی نگهداری شده است و دلیل خوبی دارد که میلیونها نصب فعال دارد.
محدودیت دقیقاً در توضیح است: این یک افزونه وردپرس است. هیچ API ندارد که بتوانید از خارج وردپرس فراخوانی کنید. مفهومی از فایل locale به صورت JSON، فایل محتوا به صورت Markdown یا قالب HTML در پروژه Next.js ندارد. کل مدل آن فرض میکند محتوا در پایگاه داده وردپرس است و توسط وردپرس رندر میشود.
این انتقاد نیست. فقط دامنه ابزار است.
PolyLingo چیست
PolyLingo یک API ترجمه است. شما محتوا (متن ساده، Markdown، JSON یا HTML) ارسال میکنید و نسخههای ترجمه شده در هر زبانی که بخواهید در یک درخواست دریافت میکنید. هیچ نظری درباره CMS، فریمورک یا تنظیمات استقرار شما ندارد. هر جایی که بتوانید درخواست HTTP بفرستید کار میکند.
هدف اصلی طراحی حفظ فرمت است. اکثر APIهای ترجمه حول جملات ساخته شدهاند: یک رشته میفرستید، یک رشته دریافت میکنید. این مدل وقتی محتوای شما ساختار دارد به سرعت شکست میخورد. یک فایل locale JSON را در یک سرویس ترجمه معمولی بچسبانید و نام کلیدهای ترجمه شده، جداکنندههای خراب یا متنی که قبلاً شیء بود دریافت میکنید. PolyLingo ساختار را غیرقابل تغییر میداند. فقط مقادیر رشتهای تغییر میکنند؛ بقیه دقیقاً همانطور که ارسال شدهاند بازمیگردند.
یک مثال مشخص. شما این را ارسال میکنید:
{"btn": {"save": "Save", "cancel": "Cancel"}}
یک مترجم مبتنی بر جمله ممکن است این را به شما بدهد:
{"button": {"save": "Guardar", "cancel": "Cancelar"}}
کلید btn به button تبدیل شده است. این برنامه شما را خراب میکند. PolyLingo به شما میدهد:
{"btn": {"save": "Guardar", "cancel": "Cancelar"}}
کلیدها دست نخوردهاند. فقط مقادیر ترجمه شدهاند.
همین اصل برای Markdown (سرفصلها سرفصل میمانند، بلوکهای کد دست نخورده میمانند، URLهای لینک تغییر نمیکنند) و HTML (تگها و ویژگیها حفظ میشوند، فقط گرههای متنی و ویژگیهای مناسب ترجمه میشوند) صدق میکند.
تفاوت واقعی: دامنه
سادهترین راه بیان:
Polylang محتوای چندزبانه را در داخل وردپرس مدیریت میکند. این یک لایه CMS است. مدیریت میکند که کدام پست نسخه اسپانیایی کدام پست انگلیسی است، سوئیچرهای زبان تولید میکند و ترجمهها را هنگام بهروزرسانی محتوا همگام نگه میدارد.
PolyLingo محتوای ساختاریافته را از طریق API ترجمه میکند. این یک لایه ترجمه است. شما محتوا میدهید، ترجمهها را برمیگرداند. اینکه با آن ترجمهها چه میکنید به شما بستگی دارد.
آنها مشکلات مجاور را حل میکنند، نه همان مشکل را. به همین دلیل مقایسه واقعاً «کدام بهتر است» نیست بلکه «چه مشکلی دارم» است.
چه زمانی از Polylang استفاده کنیم
- سایت شما روی وردپرس اجرا میشود و میخواهید روی وردپرس بمانید
- به یک جریان کاری مدیریت محتوا نیاز دارید: ویراستاران بین نسخههای زبانی جابجا میشوند، پیگیری وضعیت ترجمه، سوئیچرهای زبان در قالب
- توسعهدهنده نیستید و میخواهید راهحلی مبتنی بر رابط کاربری داشته باشید
- از ووکامرس استفاده میکنید و نیاز به مدیریت ترجمه محصول در داخل وردپرس دارید
Polylang در همه این موارد عالی است. اگر وردپرس پشته شماست، ابزار مناسب است.
چه زمانی از PolyLingo استفاده کنیم
- با Next.js، Nuxt، SvelteKit، Astro یا هر فریمورک غیر وردپرس دیگری میسازید
- از CMS بدون سر (Contentful، Sanity، Prismic) استفاده میکنید و نیاز دارید محتوا را هنگام انتشار یا از طریق webhook ترجمه کنید
- محتوای شما در فایلهای locale JSON است که باید بدون خراب شدن ساختار کلیدها ترجمه شوند
- از وردپرس مهاجرت میکنید و میخواهید جریان کاری چندزبانه خود را همراه ببرید
- محتوای Markdown دارید (پستهای وبلاگ، مستندات، توضیحات محصول) و به نسخههای ترجمه شده نیاز دارید که قالببندی را خراب نکنند
- میخواهید در یک تماس API به چند زبان ترجمه کنید به جای اینکه برای هر زبان یک تماس بگیرید
نقطه انتهایی /translate در PolyLingo آرایهای به نام targets میپذیرد، بنابراین یک درخواست میتواند همه ۳۶ زبان پشتیبانی شده را همزمان برگرداند. برای یک فایل locale که باید در ده زبان عرضه شود، این یک تماس API به جای ده تماس است.
درباره مهاجرت از وردپرس چه میشود؟
اگر سایت وردپرس را به یک تنظیم بدون سر یا ایستا منتقل میکنید، محتوای Polylang شما به طور خودکار همراهتان نمیآید. ترجمهها به عنوان متادیتای پست وردپرس ذخیره میشوند و به صورت تمیز به فایلهای Markdown یا ساختارهای JSON صادر نمیشوند.
مسیر عملی که اکثر تیمها میروند:
- محتوای وردپرس خود را به Markdown یا JSON صادر کنید (ابزارهایی مانند
wordpress-export-to-markdownبخش مکانیکی را انجام میدهند) - از PolyLingo برای ترجمه محتوای صادر شده به زبانهای هدف خود استفاده کنید
- فایلهای حاصل را در ساختار محتوای جدید خود کنار زبان منبع ذخیره کنید
نقطه انتهایی دستهای PolyLingo (POST /translate/batch) دقیقاً برای این ساخته شده است. میتوانید تا ۱۰۰ آیتم محتوا را در یک درخواست ارسال کنید، هر کدام با فرمت خود، همه با همان مجموعه زبانهای هدف. برای مهاجرت سایتی با صدها صفحه، این ابزار مناسب کار است.
خلاصه کنار هم
| PolyLingo | Polylang | |
|---|---|---|
| کار میکند بدون وردپرس | بله | خیر |
| حفظ فرمت (JSON، Markdown، HTML) | بله | فقط محتوای وردپرس |
| یک درخواست، همه زبانها | بله | خیر |
| دسترسی REST API | بله | خیر |
| رابط مدیریت محتوا | رابط مترجم (بدون کد) | مدیریت کامل وردپرس |
| تشخیص خودکار فرمت محتوا | بله | ندارد |
| پشتیبانی زبانهای راست به چپ (RTL) | بله | بله |
| صورتحساب مبتنی بر استفاده | بله | افزونه رایگان / هزینه ثابت Polylang Pro |
نسخه کوتاه
اگر روی وردپرس هستید و میمانید روی وردپرس: از Polylang استفاده کنید. برای آن محیط ساخته شده و در آن خوب است.
اگر خارج از وردپرس هستید، از وردپرس میروید یا هر چیزی میسازید که وردپرس نیست: PolyLingo همان جریان کاری چندزبانه ساختاریافته را از طریق API به شما میدهد که با هر چیزی که میسازید کار میکند.
این دو ابزار همچنین میتوانند همزیستی داشته باشند. برخی تیمها Polylang را روی سایت اصلی بازاریابی خود اجرا میکنند (که روی وردپرس باقی میماند) و از PolyLingo برای سایت مستندات، رشتههای UI برنامه وب یا قالبهای ایمیل خود استفاده میکنند. جریان کاری یکسان است؛ پشته لازم نیست یکسان باشد.
امتحانش کنید
سطح رایگان PolyLingo شامل ۱۰۰٬۰۰۰ توکن در ماه است. این برای چندین پست وبلاگ در ده زبان یا یک فایل locale متوسط در ۳۶ زبان کافی است. کارت اعتباری لازم نیست.
curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
-H "Authorization: Bearer $POLYLINGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "# Welcome\n\nTranslate **any format** without breaking the structure.",
"format": "markdown",
"targets": ["es", "fr", "de", "ja"]
}'