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

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

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

آماده کردن افزونه برای ترجمه

اولین قدم شناسایی دامنه متنی است که افزونه شما از آن استفاده خواهد کرد. این یک شناسه منحصر به فرد است و تمام متنی را که به افزونه شما تعلق دارد نشان می دهد. دامنه متنی باید با اسلاگ افزونه شما مطابقت داشته باشد، به این معنی که اگر افزونه شما در پوشه ای به نام pdev-plugin قرار داشته باشد، دامنه متنی pdev-plugin خواهد بود. توجه به این نکته مهم است که اگر افزونه شما در Wordpress.org میزبانی می‌شود، دامنه متنی با آدرس URL افزونه شما مطابقت دارد، به عنوان مثال:
wordpress.org/plugins/<slug>
هشدار مهم است که به یاد داشته باشید که یک دامنه متنی هرگز نباید از یک متغیر یا ثابت به عنوان مقدار استفاده کند. شما همچنین باید همیشه از خط تیره استفاده کنید و از خط زیرین استفاده نکنید.
در مواردی، ممکن است موردی برای تعریف یک دامنه متن سفارشی وجود داشته باشد که با نام افزونه شما مطابقت نداشته باشد. برای انجام این کار، می توانید یک دامنه متن سفارشی را در هدر افزونه خود تعریف کنید:
/*
* Plugin Name: PDEV Plugin
* Author: Michael Myers
* Text Domain: halloween-plugin
*/
این مرحله فقط در صورتی لازم است که نیاز به تنظیم دامنه متنی سفارشی با نام افزونه خود داشته باشید. 
اکنون که دامنه متنی افزونه خود را شناسایی کرده اید، با استفاده از تابع load_plugin_textdomain() افزونه خود را قابل ترجمه می کنید.
<?php
load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path );
?>
این تابع به وردپرس می‌گوید اگر فایل ترجمه برای زبان کاربر وجود دارد و پارامترهای زیر را می‌پذیرد، آن را بارگذاری کند:
➤➤ $domain: یک رشته منحصر به فرد که متنی را در افزونه شما که برای ترجمه آماده شده است مشخص می کند. همانطور که قبلاً توضیح داده شد، باید به آن مقداری مشابه با نام پوشه افزونه خود بدهید.
➤➤ $abs_rel_path: یک پارامتر منسوخ شده که دیگر نباید استفاده شود. تنظیم این روی false بهترین است.
➤➤ $plugin_rel_path: مسیر نسبی به ترجمه های افزونه شما از فهرست پلاگین کاربر (WP_PLUGIN_DIR).
اگر پلاگینی با نام پوشه pdev-plugin ایجاد می کردید، کد شما به شکل زیر خواهد بود:
<?php
add_action( 'init', 'pdev_load_textdomain' );
function pdev_load_textdomain() {
load_plugin_textdomain( 'pdev-plugin', false, 'pdev-plugin/languages' );
}
?>
در اینجا، مقدار $domain pdev-plugin است تا با نام پوشه افزونه مطابقت داشته باشد، مقدار $abs_rel_path نادرست است زیرا غیرضروری است، و مقدار $plugin_rel_path pdev-plugin/languages است، زیرا اینجا جایی است که فایل‌های ترجمه را ذخیره می‌کنید. همچنین متوجه خواهید شد که از قلاب init برای ثبت ترجمه های افزونه خود استفاده می کنید.
آخرین پارامتر دایرکتوری پلاگین (pdev-plugin) و زیر شاخه پلاگین (زبان ها) است.