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

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

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

  • معرفی شاخه ترجمه به وردپرس (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

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

  • 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  و به صورت زیر است:

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

تابع load_theme_textdomain

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

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

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

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

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

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

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

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

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

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

  • 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 : توابعی از وردپرس که در پوسته یا پلاگین خودتون استفاده کردید رو وارد کنید.

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

 

 

مطالب مشابه

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

Settings API در وردپرس

وردپرس برای ساخت پنل تنظیمات شبیه به پنل تنظیمات پیش فرض خودش API هایی رو قرار داده . Settings API , Options API دو...

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

Administration Menus در وردپرس

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

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

cron job در وردپرس

مفهوم cron job در وردپرس یعنی انجام یه کار (job) به صورت سیکل زمانی (intreval) با زمان شروع مشخص(start time). به طور...

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

ابوالفضل صباغ

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

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

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

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