در نسخه‌های جدید وردپرس، از  نگارش ۶.۵ و بالاتر، سیستم ترجمه (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 در سرورهایی که این افزونه را فعال دارند.

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

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