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

با انتشار نسخه ۶.۷ وردپرس، تغییرات مهمی در نحوه بارگذاری فایلهای ترجمه افزونهها و قالبها اعمال شده که هرچند به بهبود عملکرد هسته وردپرس کمک میکنند، اما ممکن است مشکلاتی را برای افزونهها یا قالبهایی که از روشهای قدیمی استفاده میکنند، ایجاد کنند.
در این آموزش، به بررسی این تغییرات و راهحلهای آن میپردازیم.
۱. ترجمه در وردپرس چگونه کار میکند؟
وردپرس برای پشتیبانی از زبانهای مختلف، از مفهوم متندامنه (Text Domain) استفاده میکند. متندامنه در واقع یک شناسه برای تشخیص فایلهای ترجمه مرتبط با افزونه یا قالب است. برای بارگذاری این ترجمهها، از توابعی مثل `load_plugin_textdomain` و `load_theme_textdomain` استفاده میشود.
اما نکتهای که باید به آن توجه کرد، این است که این توابع باید در زمان مناسبی از چرخه اجرای وردپرس فراخوانی شوند. برای این کار، معمولا از هوکهای اکشن مثل `init` استفاده میشود.
۲. تغییرات جدید در وردپرس ۶.۷
در نسخه ۶.۷ وردپرس، توابع مرتبط با بارگذاری ترجمهها بهینهسازی شدهاند. مهمترین تغییرات عبارتاند از:
استفاده از تابع خصوصی جدید: توابع `load_plugin_textdomain` و `load_theme_textdomain` دیگر به طور مستقیم فایلهای ترجمه را بارگذاری نمیکنند. این کار اکنون به یک تابع خصوصی به نام `_load_textdomain_just_in_time` واگذار شده است.
حذف فیلترهای قدیمی: فیلترهای `theme_locale` و `plugin_locale` که قبلاً برای تغییر محلیسازی استفاده میشدند، از هسته وردپرس حذف شدهاند. بنابراین، امکان قلاب کردن کد به این فیلترها وجود ندارد.
این تغییرات باعث بهبود عملکرد وردپرس شده، اما در عین حال میتواند ناسازگاریهایی برای برخی افزونهها یا قالبها ایجاد کند.