SHET22

Performant Translations وردپرس چطور سرعت رو بیشتر می‌کنه؟

توی این مقاله می‌بینیم سیستم ترجمه وردپرس قبلاً چطور فایل‌های ترجمه رو پردازش می‌کرد و چرا این کار روی سرعت سایت اثر می‌ذاشت. بعد هم سراغ Performant Translations می‌ریم تا ببینیم این قابلیت از وردپرس ۶.۵ به بعد چه تغییری ایجاد کرده و آیا هنوز به نصب افزونه جداگانه نیاز دارید یا نه.

سیستم قدیمی ترجمه وردپرس

در روش قدیمی، کار معمولاً با یک فایل POT شروع می‌شد. این فایل مثل یک الگو، همه عبارت‌های قابل ترجمه قالب یا افزونه رو نگه می‌داشت. بعد با نرم‌افزاری مثل Poedit از روی اون یک فایل PO برای زبان موردنظر، مثلاً فارسی، ساخته می‌شد.

مترجم عبارت‌ها رو داخل فایل PO ترجمه می‌کرد و در پایان یک فایل MO تحویل می‌گرفت. فایل MO نسخه‌ای بود که وردپرس برای نمایش ترجمه‌ها ازش استفاده می‌کرد. پس POT الگوی اولیه بود، PO متن اصلی و ترجمه‌شده رو نگه می‌داشت و MO برای خواندن ترجمه‌ها در سایت به کار می‌رفت.

اگه فایل PO رو با برنامه‌ای مثل Notepad یا TextEdit باز می‌کردید، ورودی‌هایی مثل msgid و msgstr می‌دیدید. برای نمونه، عبارت اصلی «Confirm Booking» در بخش msgid قرار می‌گرفت و ترجمه «تأیید رزرو» جلوی msgstr نوشته می‌شد.

وقتی زبان وردپرس روی فارسی قرار می‌گرفت، وردپرس به‌جای نمایش «Confirm Booking» ترجمه ذخیره‌شده اون رو پیدا می‌کرد و «تأیید رزرو» رو نشون می‌داد. همین روند برای بقیه عبارت‌های قالب، افزونه و خود وردپرس هم انجام می‌شد.

سیستم قدیمی ترجمه وردپرس
سیستم قدیمی ترجمه وردپرس

افزونه‌های چندزبانه‌ای مثل WPML هم برای نمایش متن در زبان‌های مختلف از همین رشته‌های ترجمه کمک می‌گیرن. منظور از رشته ترجمه، همون تکه‌های متنی مثل عنوان دکمه، پیام خطا یا نام یک گزینه هست که باید به زبان کاربر نمایش داده بشه.

سازنده‌های قالب و افزونه معمولاً فایل‌های PO و MO محصولشون رو داخل پوشه همون محصول قرار می‌دادن. به این شکل، یک قالب می‌تونست ترجمه فارسی، عربی یا زبان‌های دیگه داشته باشه و وردپرس متن مناسب هر زبان رو از فایل مربوط به اون بخونه. این روش سال‌ها بخش اصلی سیستم ترجمه وردپرس بود و هنوز هم فایل MO در این سیستم پشتیبانی می‌شه.

وبسایت wpml برای ترجمه
وبسایت wpml برای ترجمه

چرا سیستم قدیمی می‌تونه سرعت سایت رو پایین بیاره؟

مشکل اصلی این بود که وردپرس باید فایل‌های MO رو باز و محتوای اون‌ها رو پردازش می‌کرد تا ترجمه هر عبارت پیدا بشه. وقتی یک سایت چند افزونه و قالب با تعداد زیادی رشته ترجمه داشته باشه، این پردازش می‌تونه زمان و حافظه بیشتری مصرف کنه و بارگذاری صفحه رو کندتر کنه.

مقدار این افت سرعت برای همه سایت‌ها یکسان نیست. تعداد فایل‌ها و عبارت‌های ترجمه، قالب و افزونه‌های فعال و تنظیمات سرور روی نتیجه اثر می‌ذارن. برای همین بهتره به‌جای تکیه روی یک درصد ثابت، سرعت سایتتون رو قبل و بعد از هر تغییر اندازه بگیرید.

افزونه Performant Translations چه کاری انجام داد؟

افزونه Performant Translations برای سریع‌تر کردن همین بخش از وردپرس ساخته شد. بیشتر قابلیت‌های این پروژه از وردپرس ۶.۵ وارد هسته وردپرس شدن؛ یعنی اگه نسخه جدید وردپرس رو دارید، بخش اصلی این بهینه‌سازی از قبل داخل سایتتون هست.

افزونه Performant Translations
افزونه Performant Translations

در روش جدید، وردپرس می‌تونه ترجمه‌ها رو از فایل‌هایی با پسوند l10n.php بخونه. این فایل‌ها اطلاعات ترجمه رو در قالب PHP نگه می‌دارن و وردپرس در صورت در دسترس بودن، اون‌ها رو به فایل MO ترجیح می‌ده. نتیجه اینه که ترجمه‌ها با روش سریع‌تری بارگذاری می‌شن.

Performant Translations چطور کار می‌کنه؟

فایل l10n.php شامل عبارت‌های ترجمه در قالبی هست که PHP راحت‌تر پردازشش می‌کنه. بسته‌های زبانی که از WordPress.org دریافت می‌شن می‌تونن این فایل‌ها رو همراه خودشون داشته باشن. برای بعضی ترجمه‌های تجاری یا اختصاصی که از WordPress.org نمیان، افزونه Performant Translations هنوز می‌تونه مفید باشه و فایل مناسب رو تولید کنه.

یکی از مزیت‌های فایل PHP اینه که می‌تونه از OPcache استفاده کنه؛ البته به شرطی که این قابلیت روی هاستتون فعال باشه. OPcache بخشی از PHP هست که نتیجه آماده‌سازی کد رو در حافظه نگه می‌داره تا سرور مجبور نباشه همون فایل رو در هر درخواست از اول پردازش کنه.

با فعال بودن OPcache، سرور می‌تونه فایل‌های ترجمه PHP رو سریع‌تر در اختیار وردپرس بذاره. در نتیجه وقتی صفحه‌ای شامل عبارت‌های ترجمه‌شده مثل «سلام»، «Bonjour» یا «Hola» باز می‌شه، پیدا کردن و نمایش اون عبارت‌ها سربار کمتری داره.

این تغییر می‌تونه زمان بارگذاری صفحات ترجمه‌شده رو بهتر کنه، ولی نتیجه نهایی به سایت و سرور شما بستگی داره. هرچه تعداد فایل‌ها و رشته‌های ترجمه بیشتر باشه، احتمال این‌که تفاوت قابل‌توجه‌تری ببینید هم بیشتره.

ورود Performant Translations به هسته وردپرس ۶.۵

ورود Performant Translations به هسته وردپرس ۶.۵
ورود Performant Translations به هسته وردپرس ۶.۵

بخش اصلی Performant Translations در وردپرس ۶.۵ وارد هسته شد. وردپرس از این نسخه کتابخانه سریع‌تری برای ترجمه داره، فایل‌های l10n.php رو می‌شناسه و وقتی این فایل‌ها موجود باشن، اون‌ها رو پیش از فایل‌های MO بارگذاری می‌کنه.

پس اگه وردپرس ۶.۵ یا نسخه جدیدتری دارید و بسته‌های زبان سایتتون از WordPress.org دریافت می‌شن، معمولاً لازم نیست افزونه Performant Translations رو جداگانه نصب کنید. خود وردپرس این روش سریع‌تر رو برای این بسته‌های ترجمه به کار می‌گیره.

شرایط برای قالب‌ها و افزونه‌های تجاری یا اختصاصی کمی فرق داره. اگه ترجمه اون‌ها خارج از WordPress.org ارائه شده و فایل l10n.php نداره، افزونه Performant Translations ممکنه همچنان به کارتون بیاد. برای توضیح بیشتر می‌تونید مطلب بهبود سرعت وردپرس با افزونه Performant Translations رو هم بخونید.

توصیه به توسعه‌دهنده‌های وردپرس

برای بیشتر کاربران نسخه‌های جدید وردپرس، این بهینه‌سازی بدون نیاز به تنظیم خاصی انجام می‌شه. فقط یادتون باشه وردپرس، قالب‌ها و افزونه‌هاتون رو به‌روز نگه دارید و برای بررسی نتیجه واقعی، سرعت سایت رو با شرایط یکسان آزمایش کنید.

اگه توسعه‌دهنده وردپرس هستید، بهتره بسته‌های ترجمه محصولتون رو بررسی کنید و مطمئن بشید با سیستم جدید ترجمه سازگارن. بعد از ساخت یا تغییر ترجمه‌ها، عملکرد اون‌ها رو در یک سایت آزمایشی بررسی کنید تا هم عبارت‌ها درست نمایش داده بشن و هم خطایی در بارگذاری فایل‌ها پیش نیاد.

ما هم ترجمه محصولات میهن وردپرس رو با این روش سازگار کرده‌ایم تا پردازش عبارت‌های فارسی سربار کمتری برای سایتتون داشته باشه.

اگه سایتتون فارسیه، اول نسخه وردپرس و منبع فایل‌های ترجمه رو بررسی کنید. بعد از شرکت هاستینگ بپرسید OPcache روی PHP فعاله یا نه و در پایان سرعت چند صفحه ثابت رو قبل و بعد از تغییرها اندازه بگیرید. این آزمایش ساده بهتر از هر عدد عمومی نشون می‌ده Performant Translations چقدر برای سایت شما مفید بوده.

جمع‌بندی: برای سریع‌تر شدن ترجمه‌های وردپرس چه کاری انجام بدید؟

Performant Translations وردپرس پردازش فایل‌های ترجمه رو سبک‌تر و سریع‌تر می‌کنه. بخش اصلی این قابلیت از وردپرس ۶.۵ داخل هسته هست و فایل‌های l10n.php رو در صورت موجود بودن، پیش از فایل‌های MO بارگذاری می‌کنه. این فایل‌ها می‌تونن از OPcache هم کمک بگیرن تا سرور مجبور نباشه ترجمه‌ها رو در هر درخواست دوباره از اول پردازش کنه.

اگه وردپرس به‌روز دارید و ترجمه‌ها از WordPress.org دریافت می‌شن، معمولاً کار اضافه‌ای لازم نیست. ولی اگه از قالب یا افزونه تجاری و اختصاصی استفاده می‌کنید، بهتره منبع ترجمه و وجود فایل‌های l10n.php رو بررسی کنید. در آخر هم سرعت چند صفحه مشخص رو قبل و بعد از تغییر با شرایط یکسان اندازه بگیرید؛ چون مقدار بهبود برای هر سایت فرق داره.

سؤال‌های متداول درباره Performant Translations وردپرس

آیا Performant Translations از وردپرس ۶.۵ داخل هسته هست؟

بله، بخش اصلی قابلیت‌های Performant Translations از وردپرس ۶.۵ وارد هسته شده. وردپرس از این نسخه کتابخانه سریع‌تری برای ترجمه داره و در صورت موجود بودن فایل‌های l10n.php، اون‌ها رو پیش از فایل‌های MO بارگذاری می‌کنه.

آیا هنوز به نصب افزونه Performant Translations نیاز دارید؟

اگه وردپرس ۶.۵ یا نسخه جدیدتر دارید و بسته‌های ترجمه از WordPress.org دریافت می‌شن، معمولاً نیازی به نصب افزونه ندارید. این افزونه ممکنه برای ترجمه قالب‌ها و افزونه‌های تجاری یا اختصاصی که فایل l10n.php ندارن، هنوز مفید باشه.

فایل l10n.php چه فرقی با فایل MO داره؟

هر دو فایل اطلاعات ترجمه رو نگه می‌دارن، ولی ساختارشون فرق داره. فایل MO با قالب قدیمی ترجمه ذخیره می‌شه، در حالی که l10n.php یک فایل مبتنی بر PHP هست و وردپرس می‌تونه اون رو سریع‌تر بارگذاری کنه و از OPcache هم کمک بگیره.

آیا این قابلیت سرعت سایت فارسی رو بیشتر می‌کنه؟

می‌تونه سرعت پردازش ترجمه‌های سایت فارسی رو بهتر کنه، ولی مقدار اثر برای همه سایت‌ها یکسان نیست. تعداد فایل‌ها و رشته‌های ترجمه، قالب و افزونه‌های فعال و تنظیمات سرور روی نتیجه اثر می‌ذارن. بهتره سرعت سایتتون رو قبل و بعد از تغییر با شرایط یکسان آزمایش کنید.

چطور بفهمید OPcache روی هاستتون فعاله؟

ساده‌ترین راه اینه که از پشتیبانی هاست بپرسید OPcache برای نسخه PHP سایتتون فعاله یا نه. اگه به اطلاعات PHP در پنل هاست دسترسی دارید، می‌تونید بخش OPcache رو هم بررسی کنید؛ ولی برای یک کاربر تازه‌کار، پرسیدن از پشتیبانی هاست مطمئن‌تره.

نظر شما در این مورد چیه؟

  1. U393024۱۶ مهر ۱۴۰۵

    سلام آقای راد خیلی وقته ویدیو جدیدی نزاشتید

    • رضا راد۱۶ مهر ۱۴۰۵

      درود بر شما. به زودی قرار میدیم

  2. U419319۱۳ مهر ۱۴۰۵

    سلام. خسته نباشید. من از سایت https://lottiefiles.com/ چند تا انیمیشن برای لودیگ سایتم، صفحه خطا 404 سایتم و… انتخاب کردم و Lottie JSON دانلود کردم. حالا اینا رو چجوری برای این صفحات بزارم؟؟؟

    • رضا راد۱۵ مهر ۱۴۰۵

      درود وقت شما بخیر. اگر با المنتور طراحی می‌کنید، ویجت Lottie رو به صفحه اضافه کنید و فایل JSON رو داخل اون بارگذاری کنید؛ برای صفحه ۴۰۴ هم ابتدا یک قالب ۴۰۴ در قالب‌ساز المنتور بسازید و انیمیشن رو همونجا قرار بدین. برای لودینگ سایت بهتره از افزونه‌ای استفاده کنید که امکان آپلود فایل Lottie یا JSON برای پیش‌لودر رو داشته باشه

  3. U348801۵ مهر ۱۴۰۵

    پس نیاز نیست اون افزونه رو برای این کار دیگه نصب کنیم؟

    • رضا راد۷ مهر ۱۴۰۵

      بله، اگر وردپرس شما نسخه ۶.۵ یا بالاتر باشه دیگه نیازی به نصب افزونه Performant Translations ندارید چون این قابلیت به هسته وردپرس اضافه شده.

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسخارج از ساعات کاری هستیم؛ دستیار هوش مصنوعی پاسخگوی شماست.هوش مصنوعی

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.