دیجی اسکریپت

آموزش ترجمه افزونه وردپرس | دیجی اسکریپت

آموزش ترجمه افزونه وردپرس
[ad_1]

ترجمه افزونه وردپرس را در این نوشته به شیوه ای متفاوت دنبال می‌کنیم؛ نوشته های بسیاری در این باره وجود داره که البته در این نوشته می‌خواهیم به شکلی متفاوت به بحث پارسی سازی یک ترجمه یک افزونه وردپرس بپردازیم. از سیر تا پیاز ترجمه یک افزونه وردپرسی را در این نوشته همراه ما باشید!

 

persian-making-wordpress-plugin

 

پارسی سازی افزونه وردپرسی

یک سری پرسش مطرح می‌کنیم؛ زمانی که تغییراتی در یک کد می‌دهید چه اتفاقی می‌افته؟ زمانی که یک افزونه رو به نگارش تازه بروز می‌کنید، چه اتفاقی می‌افته؟ این پرسش‌هایی هست که می‌خواهیم در این نوشته به آن‌ها پاسخ بدیم و البته از ابتدا هر چیزی درباره ترجمه یک افزونه وردپرسی هست رو بگیم.

ساخت یک افزونه برای وردپرس

کاملا مشخصه که برای ترجمه یک افزونه باید یک افزونه داشته باشیم ? بنابراین اگر افزونه رو در اختیار دارید که چه بهتر و اگر نه ما در این نوشته یک افزونه ساده برای نمایش جملات تصادفی در پیشخوان وردپرس می‌سازیم که در همین افزونه بحث ترجمه رو هم پیش می‌کشیم!

پیش از هر چیز یک پوشه در بخش افزونه های وردپرس به نام wp-admin-motivation بسازید؛ به این پوشه وارد بشید و فایلی با نام wp-admin-motivation.php بسازید و در این فایل کد زیر رو بذارید.

<?php
/*
Plugin Name: Admin Motivation
Plugin URI: http://onescript.ir
Description: Shows motivational messages in the admin bar
Author: onescript
Version: 1.0
Author URI: http://onescript.ir
Text Domain: wp-admin-motivation
*/
function get_motivation_text() {
&nbsp;&nbsp; &nbsp;$motivation = array(
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'You are awesome',
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'This website is boss',
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'You look great today',
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'Your earlobes are well rounded, good job!'
&nbsp;&nbsp; &nbsp;);
&nbsp;&nbsp; &nbsp;shuffle( $motivation );
&nbsp;&nbsp; &nbsp;return $motivation[0];
}
add_action( 'admin_notices', 'show_motivation_text' );
function show_motivation_text() {
&nbsp;&nbsp; &nbsp;$text = get_motivation_text();
&nbsp;&nbsp; &nbsp;echo "<p id='wp-admin-motivation'>$text</p>";
}
add_action( 'admin_enqueue_scripts', 'motivation_assets' );
function motivation_assets($hook) {
&nbsp;&nbsp;&nbsp; wp_enqueue_style( 'motivation-styles', plugin_dir_url( __FILE__ ) . 'styles.css' );
}

در این کد نخستین تابعی که به چشم می‌خوره ()get_motivation_text هست و کاری که در این تابع انجام میشه تعریف یک سری از جملات انگلیسی در یک آرایه هست و پس از اون با استفاده از تابع ()shuffle این جملات در هر بار فراخوانی بصورت تصادفی در آرایه جابه جا می‌شوند و در نهایت نخستین جمله از این آرایه که هر بار متفاوت هست بازگشت داده میشه.

در ادامه با کد ;add_action( ‘admin_notices’, ‘show_motivation_text’ ) تابع ()show_motivation_text رو در بخش اطلاعیه های پیشخوان وردپرس فراخوانی می‌کنیم.

اتفاقی که در این تابع می‌افته این هست که از تابع پیش از اون یک جمله انگلیسی گرفته می‌شه و در یک تگ p با شناسه (ID) برابر wp-admin-motivation چاپ میشه.

خوب تقریبا کار ساختن افزونه ما به پایان می‌رسه ولی پیش از اون چه بهتر که برای نمایش این جملات یک استایل هم در نظر بگیریم!

در ادامه با اضافه کردن  add_action( ‘admin_enqueue_scripts’, ‘motivation_assets’ ) در واقع اجرای تابع ()motivation_assets رو در نوبت می‌ذاریم ولی قرار در این تابع چه کاری انجام بشه؟ در این تابع یک فایل style.css به اضافه میشه! محتوای فایل style.css به شکل زیر هست.

#wp-admin-motivation {
	float: right;
	padding-right: 15px;
	padding-top: 7px;		
	margin: 0;
	font-size: 11px;
}

.rtl #wp-admin-motivation {
	float: left;
	padding-left: 15px;
}

کاملا مشخصه که در این کد چه کاری انجام شده و مهمتر اینکه برای حالت Right-To-Left (RTL) هم استایلی در نظر گرفتیم که برای زبان پارسی که در ادامه قرار به این افزونه اضافه بشه، مشکلی نداشته باشیم.

تا به این‌جای کار تنها چیزی که باقی میمونه این هست که این افزونه تنها از زبان انگلیسی پشتیبانی میکنه و کار اصلی ما یعنی ترجمه افزونه تازه از اینجای کار آغاز میشه.

ترجمه افزونه وردپرس

توابع زیادی برای ترجمه رشته های متنی یک افزونه و ترجمه افزونه وردپرس وجود دارد که در این نوشته به مهمترین این توابع اشاره می‌کنیم.

تابعی که با اون کار ترجمه رشته ها رو انجام میدیم تابع ()__ هست.این تابع دو پارامتر یا آرگومان دریافت میکنه، رشته ای که قراره ترجمه بشه و یک Text Domain که شناسه ای هست که برای اون افزونه در نظر گرفتیم.

نمونه ای از کاربرد تابع ()__ برای ترجمه یک رشته:

&lt;?php $greeting = __( 'Hello There!', 'text-domain' ); ?&gt;

این تابع ترجمه رشته موردنظر رو در صورت وجود بر میگردونه و در غیر اینصورت همون رشته اصلی رو بر میگردونه.

توجه داشته باشید در رابطه با اینکه چه ترجمه ای و از چه زبانی برای این رشته برگردانده بشه بستگی به زبان انتخاب شده در تنظیمات وردپرس داره.

از پازل ترجمه یک افزونه تنها Text Domain باقی میمونه که شاید ندونید چی هست.

Text Domain نامی هست که رشته های یک افزونه یا یک پوسته وردپرس رو با هم پیوند و در یک گروه قرار میده. بهتر هست که Text Domain که برای افزونه خودتون انتخاب می کنید همون نام فولدر یا دایرکتوری افزونه باشه (wp-admin-motivation در این نمونه).

در نهایت کد رشته های افزونه ما به شکل زیر تغییر میکنه:

$motivation = array(
    __( 'You are awesome', 'wp-admin-motivation'),
    __( 'This website is boss', 'wp-admin-motivation'),
    __( 'You look great today', 'wp-admin-motivation'),
    __( 'Your earlobes are well rounded, good job!, 'wp-admin-motivation')'
);

جایگذاری ترجمه های وردپرس

تابه‌حال ما رشته های افزونه خودمون رو برای ترجمه شدن آماده کردیم ولی هنوز ترجمه ای برای ترجمه افزونه وردپرس در کار نیست!

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

برای معرفی مکان فایل های ترجمه برای افزونه ای که نمونه آوردیم باید کد زیر رو در فایل افزونه قرار بدید.

add_action('plugins_loaded', 'wan_load_textdomain');
function wan_load_textdomain() {
    load_plugin_textdomain( 'wp-admin-motivation', false, dirname( plugin_basename(__FILE__) ) . '/lang/' );
}

در کد بالا تکست دامین و مسیر فایل های ترجمه که در واقع دایرکتوری /lang هست رو به وردپرس معرفی کردیم.

بنابراین به مسیر افزونه برید و مسیری بنام lang رو بسازید.

ساخت فایل های ترجمه برای وردپرس

حالا که به وردپرس هم مکان فایل های ترجمه برای افزونه مورد نظرمون رو معرفی کردیم کافیه تا فایل های ترجمه رو وابسته به هر زبان بسازیم.

توجه داشته باشید که در نهایت باید فایل های ترجمه ما فایل هایی با نام mo.[محل]-[نام افزونه] باشه. که در نمونه ما به صورت wp-admin-motivation-fa_IR.mo میشه.

برای آگاهی از ملیت های شناخته شده در وردپرس برای زبان های دیگر به صفحه “ملیت های وردپرس” مراجعه کنید.

بهترین راه برای ساخت فایل های ترجمه استفاده از نرم افزار Poedit هست. این نرم افزار خودکار رشته های یک افزونه یا پوسته رو شناسایی و دریافت میکنه و به شما امکان ترجمه هر کدوم رو میده و در نهایت به شما فایل .po و .mo رو میده.

فایل .po فایلی هست که میتونید هر بار اون رو ویرایش کنید و فایل .mo فایلی هست که وردپرس از شما میخواد و قابل ویرایش نیست (البته راهکار هایی داره).

برای دانلود نرم افزار Poedit اینجا کلیک کنید.

آموزش کار با نرم افزار Poedit برای ساخت فایل ترجمه

  • نرم افزارPoedit رو اجرا کنید و بر روی New و سپس Catalog کلیک کنید.
  • در پنجره باز شده اطلاعات خواسته شده رو وارد کنید و نگران بخش های charset  و plural forms نباشید.
  • حالا کافی هست تا فایل مورد نظر رو در مسیری که به وردپرس برای دریافت ترجمه معرفی کردید ذخیره کنید.
  • در بخش Source Paths بر روی نماد + کلیک کنید و مسیر اصلی افزونه رو Open کنید.
  • در بخش Source keywords تابع __ رو معرفی کنید.
  • حالا مشاهده می کنید که رشته ها از فایل های افزونه استخراج میشه.
  • در نهایت با ترجمه هر رشته و ذخیره فایل .mo متوجه ترجمه افزونه وردپرس میشید!

این نوشته آموزش ترجمه افزونه وردپرس برای اولین بار در مرجع دانلود اسکریپت منتشر شده است.

[ad_2]

لینک منبع مطلب

برچسب ها

این مطلب بدون برچسب می باشد.

ارسال دیدگاه جدید

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

  • نظرات شما پس از بررسی و تایید نمایش داده می شود.
  • لطفا نظرات خود را فقط در مورد مطلب بالا ارسال کنید.