در نسخههای جدید وردپرس، از نگارش ۶.۵ و بالاتر، سیستم ترجمه (i18n) بهشکل قابلتوجهی بهبود یافته است. تا انعطاف بیشتر و کارایی بهتر در دسترس باشد.
در این نسخه میتوان بهجای فرمت فایلهای قدیمی .mo از فایلهای PHP استفاده کرد. روشی سریع، ساده و قابلویرایش برای توسعهدهندگان قالب و افزونه.
در این مقاله یاد میگیرید چطور با یک فایل PHP ترجمه کنار قالب خود، ترجمهها را با استفاده از این سیستم جدید ایجاد و مدیریت کنید.
۱- فعالسازی ترجمه در قالب
در فایل functions.php قالب، دامنه متنی را با پوشهی زبانها تنظیم کنید. مثلا برای قالب کهکشان وردپرس (KWP):
<?php
// functions.php
add_action( 'after_setup_theme', 'kwp_setup' );
function kwp_setup() {
load_theme_textdomain( 'kwp', get_template_directory() . '/languages' );
}
این قطعه مشخص میکند که وردپرس باید ترجمههای مربوط به دامنهٔ kwp را از مسیر languages بارگذاری کند.
۲- ساخت فایل ترجمه PHP
برای زبان عربی، کافی است یک فایل با نام زیر کنار قالب ایجاد کنید:
/wp-content/themes/kwp/languages/ar.l10n.php
<?php
return [
'messages' => [
'منو' => 'القائمة',
'تمامی حقوق برای %s محفوظ است.' => 'جميع الحقوق محفوظة لـ %s.',
],
];
فایلهای *.l10n.php وقتی کنار قالب باشند، به طور مستقیم توسط وردپرس خوانده میشوند و نیازی به ابزارهای خارجی مثل Poedit ندارند.
۳- استفاده در قالب
همان توابع معمول __() و _e() برای ترجمه رشتهها قابل استفاده هستند:
<button><?php _e( 'منو', 'kwp' ); ?></button> <footer> <?php printf( __( 'تمامی حقوق برای %s محفوظ است.', 'kwp' ), get_bloginfo( 'name' ) ); ?> </footer>
وردپرس در هنگامی که زبان سایت شما عربی باشد، ترجمههای موجود در فایل ar.l10n.php را بهصورت خودکار جایگزین میکند. با این روش میتوانید قالبها و افزونههایی ایجاد کنید که در زبانهای مختلف به درستی نمایش داده میشوند.
۴- مزایای روش PHP
سیستم جدید ترجمه در وردپرس فایلهای php ترجمه را با دستور include پردازش میکند، بنابراین:
- بارگذاری بسیار سریعتری دارند.
- حذف وابستگی به فایلهای باینری پیجیده mo
- امکان ویرایش ساده و نگهداری در ابزارهای کنترل نسخه مثل Git و SVN.
- پشتیبانی کامل از زمینههای ترجمه و قالببندی رشتهها.
- قابلیت بهینهسازی با OPCache در سرورهایی که این افزونه را فعال دارند.
