تعداد بازدید: 2621

ساخت پلاگین ها و پوسته های قابل ترجمه در وردپرس

برای قابل ترجمه کردن پوسته ها و پلاگین های وردپرس باید مراحل زیر را طی کنید:

  • معرفی شاخه ترجمه به وردپرس (load text domain)
  • ساخت رشته های قابل ترجمه در پلاگین یا تم (با استفاده از توابع وردپرس)
  • ساخت فایل .pot با استفاده از نرم افزار poedit

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

فایل ترجمه ساخته شده از فایل .pot  اگر برای پوسته باشه باید از قالب زیر پیروی کنه:

{yourlanguage}_{yourcountry}.po

مثلا برای ایران و زبان پارسی میشه fa_IR.po

فایل ترجمه ساخته شده از فایل .pot  اگر برای پلاگین باشه باید از قالب زیر پیروی کنه:

{pluginTextDomain}-{yourlanguage}_{yourcountry}.po

که pluginTextDomain همون text-domain است که در زمان ساخت پلاگین اضافه کردیم. (معمولا همنام با پلاگین می باشد).


معرفی شاخه ترجمه به وردپرس (load text domain)

برای این کار باید مسیر فایل های ترجمه رو به وردپرس معرفی کنیم که این کار برای پوسته ها و پلاگین ها متفاوت خواهد بود.

تابع load_plugin_textdomain

ساختار این تابع به شکل زیر است.

<?php load_plugin_textdomain( $textDomain, $abs_rel_path__DEPRECATED, $plugin_rel_path ) ?>
  • textDomain : انتخاب text domain برای پلاگین که پیشنهاد میشه هم نام با پلاگین باشه.Text Domain رو می تونید از هدر های پلاگین قرار بدید. (جایی که مشخصات پلاگین از قبیل نویسنده و نام و … رو می نویسید). به شکل Text Domain: rng-translate
  • abs_rel_path__DEPRECATED :‌ برابر با false قرار بدید.
  • plugin_rel_path : مسیر شاخه ترجمه که باید به صورت path باشه . برای این کار تابعی که می نویسید در ریشه پلاگین باشه می تونید از تابع basename( dirname( __FILE__ ) ) استفاده کنید. (مسیر جاری پلاگین را به شما نشان میدهد ). همچنین میتونید دستی مسیر رو بدید . مثلا rng-translate/languages که میشه پلاگین rng-translate دایرکتوری languages.

نمونه کد برای textDomain و پلاگین rng-translate  و به صورت زیر است:

<?php
function translate_plugin_init() {
    load_plugin_textdomain( 'rng-translate', false ,basename( dirname( __FILE__ ) ) . '/languages' );
}
add_action('plugins_loaded', 'translate_plugin_init');

hook در پلاگین می تواند یکی از موارد plugins_loaded و init باشه.

تابع load_theme_textdomain

ساختار کلی این تابع به شکل زیر است:

<?php load_theme_textdomain( $domain, $path ) ?>
  • textDomain : انتخاب text domain برای پوسته که پیشنهاد میشه هم نام با پوسته باشه. Text Domain رو می تونید از هدر های پوسته تون قرار بدید. (جایی که مشخصات پوسته رو می نویسید). به شکل Text Domain: rudytheme
  • path : مسیر دایرکتوری پلاگین که باید به صورت مسیر باشه (uri نباشه). برای این کار می تونید از تابع get_template_directory() استفاده کنید که مطمئن تر هست از وارد کردن آدرس به صورت دستی.

نمونه کد برای textDomain و پوسته rudytheme  و به صورت زیر است:

<?php
if(!function_exists("rudy_load_text_domain")){
     function rudy_load_text_domain(){
         load_theme_textdomain( "rudytheme" , get_template_directory() . "/languages" );
     }
 }
 add_action("after_setup_theme","rudy_load_text_domain");

hook در پوسته init است.

ساخت رشته های قابل ترجمه در پلاگین یا تم (با استفاده از توابع وردپرس)

برای این کار وردپرس توابع زیادی داره که برخی از آن ها عبارتست از:

__()   ساختار این تابع به شکل زیر است(این تابع مقدار را بر میگرداند):

<?php __( string $text, string $domain = 'default' ) ?>

_e()   ساختار این تابع به شکل زیر است(این تابع مقدار را چاپ می کند):

<?php _e( $text, $domain ) ?>

نکته : از ترکیب تابع sprintf() پی اچ پی و __() وردپرس برای رشته هایی که در میان آن ها متغیر است می توانید استفاده کنید.

<?php echo sprintf(__("reza %s","rudytheme"), $variable ); ?>

_n() از این تابع برای زمانی که امکان کلمه جمع و یا مفرد وجود داشته باشد استفاده می کنیم.

<?php _n( string $single, string $plural, int $number, string $domain = 'default' ); ?>
  • single : مورد مفرد
  • plural : مورد جمع
  • number : همون عددی که باید مقایسه بشه که بعد مورد مفرد رو نمایش بده یا مورد جمع رو.(برای عدد 0 مقدار single و برای سایر plural)
  • domain : مقدار text domain

ساخت فایل .pot با استفاده از نرم افزار poedit

برای این کار در نرم افزار poedit روی file > new کلیک کنید.

زبان پلاگین یا پوسته رو انتخاب کنید (خیلی تاثیری نداره).

فایل رو با پسوند .pot ذخیره کنید.

روی گزینه Extract From Sources کلیک کنید.

سه تا تب وجود داره:

  • translation properties : اطلاعات مربوط به پروژه رو وارد می کنید.
  • source path : مسیر فایل پوسته یا پلاگین رو از add کنید (از قسمت Add Folder)
  • source keywords : توابعی از وردپرس که در پوسته یا پلاگین خودتون استفاده کردید رو وارد کنید.

بعد از تکمیل روی اوکی کلیک کنید.

 

 

مطالب مشابه

آموزش نکات و تکنیک های برنامه نویسی وردپرس

پایگاه داده وردپرس

در این مقاله قصد داریم تا پایگاه داده وردپرس ۴.۴ رو بررسی کنیم. پایگاه داده این نسخه از وردپرس تا mysql نسخه 5.0.15 و...

آموزش نکات و تکنیک های برنامه نویسی وردپرس

نکات امنیتی وردپرس

چون وردپرس یک سیستم متن باز است لذا کدهای آن و ساختار پایگاه داده آن برای تمامی افراد قابل دسترس است . به همین منظور...

ساختار پلاگین ووکامرس

پلاگین ووکامرس ( Woocommerce ) یک پلاگین برای پیاده سازی سیستم فروش محصول در بستر وردپرس می باشد. اگر ساختار پیش فرض...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

یک دیدگاه برای ساخت پلاگین ها و پوسته های قابل ترجمه در وردپرس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *