چگونه وب‌سایت وردپرسی خود را برای جهانی شدن آماده کنیم؟ راهنمای جامع

چگونه سایت وردپرسی خود را جهانی کنیم؟

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

مقدمه‌ای بر جهانی‌سازی و بومی‌سازی وب‌سایت

دو مفهوم کلیدی در این فرآیند، جهانی‌سازی (Internationalization – I18N) و بومی‌سازی (Localization – L10N) هستند. جهانی‌سازی به معنای آماده‌سازی وب‌سایت برای پشتیبانی از زبان‌ها و فرهنگ‌های مختلف است. این شامل طراحی انعطاف‌پذیر، استفاده از کدگذاری مناسب و جدا کردن متن از کد می‌شود. بومی‌سازی، فرآیند تطبیق وب‌سایت با یک زبان و فرهنگ خاص است که شامل ترجمه متن، تنظیم قالب‌بندی تاریخ و زمان، و سازگاری با قوانین محلی می‌شود.

وردپرس به طور پیش‌فرض از زبان‌های بسیاری پشتیبانی می‌کند و با استفاده از افزونه‌ها و تم‌ها، می‌توان این قابلیت را گسترش داد. با افزایش تعداد کاربران غیر انگلیسی‌زبان وردپرس، اهمیت جهانی‌سازی و بومی‌سازی بیش از پیش احساس می‌شود.

ساخت وبسایت بین المللی
ساخت وبسایت بین المللی

برای توسعه‌دهندگان قالب‌ها و افزونه‌ها، دانش I18N و L10N یک ضرورت است. این مهارت‌ها، درهای بازارهای بین‌المللی را به روی کسب‌وکارها می‌گشایند.

در ادامه، یک راهنمای گام به گام برای جهانی‌سازی قالب‌ها و افزونه‌های وردپرس ارائه می‌دهیم.

فهرست مطالب:

  1. آشنایی با مفاهیم و ابزارهای ترجمه
    • فایل POT
    • فایل PO
    • فایل MO
    • GlotPress & Language Packs
    • تهیه نسخه پشتیبان و آماده‌سازی محیط
  2. جهانی‌سازی افزونه‌ها (I18N)
    • هدر افزونه
    • بارگذاری دامنه متن
    • حسابرسی رشته‌ها
    • ایجاد فایل POT
  3. جهانی‌سازی قالب‌ها (I18N)
    • هدر قالب
    • بارگذاری دامنه متن
    • حسابرسی رشته‌ها
    • ایجاد فایل POT
  4. جهانی‌سازی جاوا اسکریپت (I18N)

۱. آشنایی با مفاهیم و ابزارهای ترجمه

۱-۱. فایل‌های ترجمه: POT، PO و MO

فرایند I18N شامل استفاده از ابزارهایی برای شناسایی رشته‌های متنی قابل ترجمه و تولید فایل POT (Portable Object Template) است. این فایل، شامل تمام متن‌های قابل ترجمه در افزونه یا قالب شماست.

فایل PO (Portable Object) حاوی رشته‌های متنی در زبان اصلی شما و ترجمه‌های آن به زبان‌های مختلف است. این فایل‌ها توسط مترجمان ایجاد می‌شوند.

در نهایت، فایل PO به فایل MO (Machine Object) تبدیل می‌شود که توسط وردپرس برای نمایش ترجمه‌ها استفاده می‌شود. این فایل در دایرکتوری قالب یا افزونه قرار می‌گیرد.

۱-۲. تهیه نسخه پشتیبان و آماده‌سازی محیط

قبل از هر تغییری، از قالب، افزونه یا کل وب‌سایت خود یک نسخه پشتیبان تهیه کنید. همچنین، افزونه‌های غیرفعال یا بلااستفاده را حذف یا غیرفعال کنید. این کار، فرآیند بومی‌سازی را ساده‌تر می‌کند.

۲. جهانی‌سازی افزونه‌ها (I18N)

جهانی‌سازی افزونه‌ها شامل چندین مرحله است:

۲-۱. هدر افزونه

ابتدا، باید دامنه متن (Text Domain) و مسیر دامنه (Domain Path) را در هدر افزونه مشخص کنید.

 /* Plugin Name: نام افزونه شما Plugin URI: آدرس وبسایت توضیحات: توضیحات افزونه نویسنده: نام نویسنده نسخه: 1.0 آدرس نویسنده: آدرس وبسایت نویسنده Text Domain: نام-دامنه-متن Domain Path: /languages/ */

۲-۲. دامنه متن

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

برای مثال، اگر نام فایل افزونه شما my-plugin.php است، دامنه متن باید my-plugin باشد.

۲-۳. مسیر دامنه

مسیر دامنه، پوشه‌ای است که فایل‌های ترجمه در آن ذخیره می‌شوند. یک پوشه با نام languages/ در دایرکتوری افزونه ایجاد کنید و مسیر دامنه را در هدر افزونه به آن تنظیم کنید. این به وردپرس کمک می‌کند تا فایل‌های ترجمه را پیدا کند.

۲-۴. بارگذاری دامنه متن

با استفاده از تابع load_plugin_textdomain()، دامنه متن را بارگذاری کنید. این تابع، فایل ترجمه را برای زبان کاربر بارگذاری می‌کند.

 load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path );

پارامترها:

  • $domain: دامنه متن (ضروری)
  • $abs_rel_path: مسیر مطلق (اختیاری)
  • $plugin_rel_path: مسیر نسبی به پوشه زبان‌ها (اختیاری)

برای بارگذاری دامنه متن، از اکشن هوک plugins_loaded استفاده کنید.

 add_action( 'plugins_loaded', 'my_plugin_load_textdomain' ); function my_plugin_load_textdomain() {  load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } 

۲-۵. حسابرسی رشته‌ها

تمام رشته‌های متنی افزونه را در توابع ترجمه قرار دهید. رایج‌ترین توابع، __() (برای بازگرداندن رشته ترجمه‌شده) و _e() (برای نمایش رشته ترجمه‌شده) هستند.

 // نمایش رشته ترجمه شده _e( 'متن مورد نظر', 'my-plugin' );  // بازگرداندن رشته ترجمه شده $text = __( 'متن مورد نظر', 'my-plugin' ); 

توابع ترجمه دیگری نیز وجود دارند که در صورت نیاز می‌توانید از آن‌ها استفاده کنید.

۲-۶. ایجاد فایل POT

از ابزارهایی مانند Poedit برای تولید فایل POT استفاده کنید. Poedit یک رابط کاربری گرافیکی برای مدیریت ترجمه دارد.

پیکربندی Poedit:

  • از منوی File گزینه New را انتخاب کنید.
  • زبان مورد نظر خود را انتخاب کنید.
  • روی Extract from sources کلیک کنید.
  • تنظیمات را مطابق با نیاز خود انجام دهید.
  • فایل را با پسوند .pot در پوشه languages/ ذخیره کنید.

۳. جهانی‌سازی قالب‌ها (I18N)

جهانی‌سازی قالب‌ها مشابه با افزونه‌ها است. مراحل اصلی عبارتند از:

۳-۱. هدر قالب

هدر قالب خود را بررسی کنید و مطمئن شوید که دامنه متن و مسیر دامنه به درستی تنظیم شده‌اند.

 /* Theme Name: نام قالب شما Author: نام نویسنده Text Domain: نام-دامنه-متن Domain Path: /languages/ */ 

۳-۲. بارگذاری دامنه متن

در فایل functions.php قالب، از تابع load_theme_textdomain() برای بارگذاری دامنه متن استفاده کنید.

 load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' ); 

این تابع را در اکشن after_setup_theme قرار دهید.

 add_action( 'after_setup_theme', 'my_theme_setup' ); function my_theme_setup() {  load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' ); } 

۳-۳. حسابرسی رشته‌ها

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

به یاد داشته باشید از متن‌های نگه‌دارنده (Placeholder) در رشته‌های متنی استفاده کنید:

 // مثال:  printf( esc_html__( 'تعداد %d محصول', 'mytheme' ), $count ); 

۳-۴. ایجاد فایل POT

فایل POT را با استفاده از ابزارهایی مانند Poedit ایجاد کنید. این فرآیند مشابه با ایجاد فایل POT برای افزونه‌ها است.

۴. جهانی‌سازی جاوا اسکریپت (I18N)

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

 wp_localize_script( $handle, $name, $data ); 

پارامترها:

  • $handle: نام اسکریپت (ضروری)
  • $name: نام شیء جاوا اسکریپت (ضروری)
  • $data: آرایه‌ای از داده‌ها (ضروری)

مثال:

 add_action( 'wp_enqueue_scripts', 'my_theme_scripts' ); function my_theme_scripts() {  wp_enqueue_script( 'my-theme-script', get_template_directory_url() . '/js/my-theme-script.js' );  wp_localize_script( 'my-theme-script', 'myThemeI18n',   array(   'message' => __( 'سلام دنیا!', 'mytheme' ),  )  ); } 

در جاوا اسکریپت:

 alert( myThemeI18n.message ); 

نتیجه‌گیری

با دنبال کردن این مراحل، می‌توانید وب‌سایت وردپرسی خود را برای جهانی شدن آماده کنید. این فرآیند، به شما کمک می‌کند تا به مخاطبان بیشتری در سراسر جهان دسترسی پیدا کنید. اگر سوالی دارید، در بخش نظرات مطرح کنید.