آموزش رفع مشکل ترجمه وردپرس 6.7
با انتشار نسخه ۶.۷ وردپرس تغییراتی در این افزونه برای لود فایلهای زبان (رشتههای ترجمه) انجام گرفته که همین عامل سبب شده بسیاری افزونهها و قالبها با خطای لود نشدن ترجمه مواجه شوند. از اینرو اگر از قالب و افزونه غیرایرانی استفاده کنید، لازم است که تغییراتی موقتی در ساختار وردپرس ایجاد کنید.
با توجه به تغییری که در این نسخه وردپرس برای فایلهای ترجمه لحاظ شده، از این پس باید تمامی توسعهدهندگان مسیر لود فایلهای ترجمه را در قالب یا افزونه مشخص کرده باشند. دلیل آن هم برای این است که فایلهای ترجمهای که بهصورت php و json در جهت بهبود عملکرد سرعت سایت ایجاد میشوند، از این دستور برای ایجاد فایلها در پوشه langueges که درون wp-content قرار دارد استفاده خواهند کرد.
رفع مشکل ترجمه در وردپرس 6.7
ماجرا از آنجایی شروع میشود که وردپرس در این نسخه ساختار جدیدی را برای مشخص کردن مسیر فایلهای ترجمه افزوده است. دلیل این امر نیز به چند ماه قبل برمیگردد که با معرفی افزونه Performante Translations ساختاری در وردپرس در جهت بهبود سرعت سایت از طریق لود فایلهای زبان ایجاد شد. از آنجا که این روش بهصورت موقتی بود و قرار بر این بود که این راهکار در هسته وردپرس قرار گیرد، بالاخره بعد از گذراندن دوران تست حالا در نسخه ۶.۷ معرفی شده است.
- کار نکردن ترجمه افزونهها: افزونههایی که پیش از آپدیت وردپرس به ۶.۷ به درستی کار میکردند حالا ترجمه آنها بارگیری نمیشود.
- کار نکردن ترجمه قالب: قالبی که از آن استفاده میکنید، حالا قادر به نمایش نسخه ترجمه شده نیست.
- از بین رفتن فایلهای ترجمه: ممکن است فایلهای ترجمه با این آپدیت از پوشه زبان قالب یا افزونه حذف شده باشند که با آپدیت یا نصب دوباره قالب/افزونه احتمالا مشکل برطرف خواهد شد.
این مسئله همچنین در صفحه افزونهها ممکن است طی یک پیغام هشدار برای هر یک از افزونههای که با این مشکل مواجه هستند خود را نشان دهند که حاوی پیغامی بهصورت «بارگذاری ترجمه برای دامنه <PLUGIN> خیلی زود انجام شده است.» نمایش داده شود.
مراحل رفع مشکل ترجمهها در وردپرس ۶.۷
ابتدا از مسیر تنظیمات> عمومی در پیشخوان وردپرس بررسی کنید که نسخه وردپرس شما روی زبان فارسی قرار داشته باشد. همچنین یکبار در این مرحله روی دکمه ذخیره تغییرات کلیک کنید.
در مرحله بعدی اطمینان حاصل کنید که فایلهای با فرمت mo.
و po.
که مربوط به فایل ترجمه قالب و افزونه هستند در مسیر قالب یا افزونه مورد نظر موجود باشند. برای این منظور میتوانید وارد هاست شده و به ترتیب دو مسیر زیر را بررسی کنید:
- public_html/wp-content/themes
- public_html/wp-content/plugins
با ورود به این دو مسیر پوشه افزونهها و قالب را خواهید دید. حالا باید یکبهیک وارد پوشه هر افزونه شده و به دنبال پوشههایی با نامهایی مثل lang
, languages
باشید. در صورتی که این پوشهها فاقد فایل زبان با فرمتهای ذکر شده بودند کافی است نسخه بهروز قالب یا افزونه مورد نطر خود را مجددا آپلود کنید.
سپس میتوانید بسته به اینکه فایل زبان قالب یا افزونه لود نمیشود مراحل زیر را برای رفع مشکل دنبال کنید.
رفع مشکل ترجمه قالب وردپرس 6.7
در صورتی که بعد از آپدیت وردپرس به نسخه 6.7 فایل زبان قالب لود نمیشود، میتوانید با قرار دادن یک کد فانکشن در فایل functions.php مسیر پوشهای که حاوی فایلهای ترجمه است را معرفی کنید. برای این منظور کد زیر را در مکان مناسبی از این فایل قرار دهید.
//Load Wordpress Languages (Fix Issue 6.7 Version)
load_theme_textdomain('YOURTEXTDOMAIN', get_template_directory() . '/languages');
همانطور که در خط دوم مشاهده میکنید، در این مرحله باید دو کار را انجام داده و مطابق با قالب خود این فانکشن را ویرایش کنید:
- ابتدا بهجای
YOURTEXTDOMAIN
نام تکستدامین قالب خود را اضافه کنید. برای یافتن این نام میتوانید فایل style.css قالب خود را چک کنید که در خطوط ابتدایی مانند نمونه زیر ذکر شده است.
- سپس درون پوشه قالب بررسی کنید که فایلهای زبان شما در کدام پوشه قرار دارند. معمولا در قالبهای استاندارد از پوشههایی با نام langs یا languages استفاده میشود. بررسی کرده و نام پوشه را با کد بالا بهجای languages جایگزین کنید. دقت کنید که اسلش قبل از نام پوشه حتما باید وجود داشته باشد.
اگر با کد بالا این مشکل حل نشد میتوانید از کد زیر نیز استفاده کنید.
//Load Wordpress Languages (Fix Issue 6.7 Version)
load_textdomain( 'YOURTEXTDOMAIN', get_template_directory() . '/languages/' . determine_locale() . '.mo' );
رفع مشکل ترجمه افزونه وردپرس ۶.۷
اما اگر این مشکل برای افزونهها وجود دارد، طبق ساختاری جدید که وردپرس مشخص کرده است باید با استفاده از دستور Domain Path مسیری که فایلهای زبان افزونه در آن قرار دارد را تعیین کنید.
برای این منظور کافی است مشابه مرحله قبل که نام TextDomain درون فایل استایل معرفی میشود، در اینجا هم از طریق فایل php افزونه این معرفی را انجام دهید. برای انجام این کار وارد پوشه افزونه مورد نظر در مسیر public_html/wp-content/plugins شوید. سپس فایل php که معمولا همنام با افزونه مورد نظر است را پیدا کنید. برای مثال در اینجا من افزونه ووکامرس را بررسی میکنم.
همانطور که در تصویر بالا میبینید، درون پوشه woocommerce یک فایل php با همین نام قرار دارد. آن را به کمک ویرایشگر هاست باز کرده و سپس در همان خطوط ابتدایی که کدهای معرفی افزونه قرار دارند، خط مربوط به مسیر فایلهای ترجمه را که در خط ۱۰ مشخص شده وارد کنید.
به همین ترتیب هرکدام از افزونههایی که این مشکل را دارند ویرایش کرده و با استفاده از قطعه کد Domain Path مسیری که فایلهای ترجمه درون آن قرار دارد را مشخص کنید. دقت کنید که قبل از شروع مسیر پوشه باید از «*» و «/» استفاده کنید. مثلا اگر فایلهای ترجمه درون پوشه langs قرار دارند، باید به صورت زیر وارد کنید.
* Domain Path: /langs/
نکات پایانی
الزاما قرار نیست برای همه افزونهها این کار را انجام دهید. افزونههایی نظیر ووکامرس، المنتور و… که تعداد نصب بسیار بالایی دارند طی یک آپدیت جزئی خود Domain Path را مشخص کردهاند. اما اگر از افزونهای استفاده میکنید که اخیرا آپدیت نشده است، ضروری است تا ارائه آپدیت از سوی سازنده خودتان این کار را انجام دهید.
بنابراین در صورت استفاده از آخرین نسخه افزونهها و قالبهایی که استاندارد هستند استفاده کنید که از تاریخ انتشار وردپرس ۶.۷ به بعد آپدیت آنها ارائه شده است چنین مشکلی نخواهید داشت.
همچنین برای محکمکاری میتوانید وارد مسیر پیشخوان> بهروزرسانیها شده و یکبار این صفحه را رفرش کنید تا در صورتی که فایل زبان هر یک از افزونهها یا قالب وردپرس آپدیت شده است آنها را بهروز کنید. با انجام اینکار در صورتی که فایلهای زبان به هر دلیلی از درون پوشه حذف شده باشند، مجددا بارگیری خواهند شد.
همچنین با ارائه این آپدیت در صورتی که از افزونه Performante Translations استفاده میکنید، دیگر لزومی به استفاده از آن ندارید. چرا که ایجاد رشتههای زبان در قالب فایلهای PHP و Json به هسته وردپرس افزوده شده است و لزومی به استفاده از افزونه نخواهید داشت.
در پایان اگر هر مشکل دیگری در این خصوص وجود دارد که به کمک روشها و مراحل فوق موفق به حل این مسئله نشدید، میتوانید با قرار دادن قطعه کد زیر درون فایل wp-config.php حالت دیباگ وردپرس را فعال کنید تا خطاها همراه مسیر نمایش داده شوند و بهتر قادر به حل این مسئله باشید.
define('WP_DEBUG', true);
در صورتی که هر گونه سوال یا مشکل دیگری در این خصوص دارید میتوانید با ارسال از بخش دیدگاهها آن را در میان بگذارید تا زما را راهنمایی کنم.
خیلی ممنون از مطلب بسیار مفیدتون
قالب رو تونستم با این روش درست کنم
ولی افزونه Easy Digital Downloads درست نشد با این روش.
همه جوره تست کردم ولی باز انگلیسی هست.
هم فایل زبان موجوده و هم با اسلش و بدون اسلش تست کردم.
درود
نسخه ۶.۷.۱ چند ساعت پیش در دسترس قرار گرفته، آپدیت کنید و مجددا بررسی کنید.
سلام
مقاله مفیدی برای من بود
مشکل من حل شد
بسیار ممنونم
درود مهران جان
خوشحالم که برات کاربردی بود. ممنون از فیدبکت.