مراحل کلی کار

۱- آشنایی کامل با زبان HTML و CSS برای ترجمه قالب
۲- آشنایی کامل با زبان PHP برای ترجمه افزونه
۳- افزودن قابلیت ترجمه شدن
۴- ایجاد فایل ترجمه و ترجمه‌ی آن
۵- فراخوانی فایل ترجمه توسط افزونه/قالب
افزودن قابلیت ترجمه شدن

برای اینکار باید تمامی رشته‌های متنی موجود در افزونه/قالب را با توبع مخصوص ترجمه فراخوانی کرد. توابع ترجمه‌ی وردپرس دو تابع __ و e_ هستند٬ تفاوت این دو تابع این است که تابع __ مقدار داده شده‌اش را بازمی‌گرداند (return) و تابع e_ مقدار داده شده‌اش را چاپ (echo) می‌کند.
این توابع٬ دو آرگومان رو دریافت می‌کنن که اولی رشته‌ی موردنظر ما و دومی در واقع یه شاخص هست که اینجا بهش domain می‌گیم٬ این شاخص در طول ترجمه‌ی یه افزونه/قالب ثابت هست.بهتره برای انتخاب نام شاخص از قوانین نامگذاری متغیرها پیروی کنید. یعنی با حروف شروع بشه و به‌جز - و _ از سیمبل دیگه‌ای استفاده نشه.
مثلن برای قالب کوبریک٬ من از شاخص «kubrick» استفاده کردم.
مثال:
فرض کنیم در یک افزونه/قالب رشته‌ای به‌صورت زیر وجود دارد٬ همون‌طور که می‌بینیم این رشته در واقع در صفحه چاپ می‌شه و بدون انجام هیچ عملیاتی مستقیماً نشون داده می‌شه٬ پس باید اونو با تابع e_ فراخوانی کرد:
کد:
<div class="post-date">the post date  is</div>
که به‌صورت زیر در میاد:
کد:
<div class="post-date"><?php _e('the post date  is','shakhes'); ?></div>
بعضی رشته‌ها هستن که توی توابع استفاده می‌شن و با واسطه نشون داده می‌شن یا قبل از نمایش روشون عملیاتی انجام می‌شه؛ این‌جور رشته‌ها رو باید با تابع __ فراخوانی کرد.
مثال:
رشته‌ی زیر را که به‌عنوان یک آرگومان در تابع استفاده شده را می‌خواهیم قابل ترجمه شدن کنیم:
کد:
<div class="post-date"><?php next_posts_link('« Previous Entries'); ?></div>
که بعد از اعمال توابع ترجمه به‌صورت زیر درمیاد:
کد:
<div class="post-date"><?php next_posts_link(__('« Previous  Entries','shakhes')); ?></div>
ایجاد فایل ترجمه

برای اینکار از برنامه‌ی poEdit استفاده می‌کنیم:
۱- برنامه‌ی poEdit را اجرا کنید
۲- به منوی File رفته و گزینه‌ی ...New catalog را انتخاب کنید.
۳- در پنجره باز شده یک نام برای پروژه انتخاب کنید (زیاد مهم نیست!)
۴- به قسمت paths بروید و مسیر پوشه‌ای که فایل‌های قالب/افزونه در آنجا قرار دارند را در قسمت base path وارد کنید٬ سپس دکمه‌ی New item رو بزنید (آیکونی دوم از سمت چپ٬ شبیه یک مربع با ستاره‌ای در گوشه‌ی بالا) و در کادر ایجاد شده دوباره مسیر پوشه‌ی فایل‌ها را که در base path وارد کرده بودید را وارد کنید.
۵- به قسمت keywords بروید و دکمه‌ی New item رو بزنید و در کادر ایجاد شده٬ __ (۲تا زیرخط) را وارد کنید٬ سپس دوباره گزینه‌ی New item را کلیک کنید و در کادر ایجاد شده e_ را وارد کنید.
۶- حال دکمه‌ی OK را بزنید و یک نام برای فایل po. خود انتخاب کنید٬ اگر برای قالب می‌خواهید فایل ترجمه بسازید باید فایل po را fa_IR نامگذاری کنید و برای افزونه shakhes-fa_IR
۷- پس از انتخاب نام مناسب٬ برنامه رشته‌های متنی قابل ترجمه‌شدن را پیدا کرده و نمایش می‌دهد٬ پس از اینکه تمامی رشته‌ها را ترجمه کردید٬ پرونده را ذخیره کنید٬ در این هنگام برنامه یک فایل mo. هم برای شما در کنار فایل po. قبلی می‌سازد
۸- این فایل mo. را اگر برای قالب باشد٬ باید در پوشه‌ی خود قالب قرار دهید و اگر برای افزونه باشد باید آن را در پوشه‌ی wp-content/plugins قرار دهید.
فراخوانی فایل ترجمه توسط افزونه/قالب

پس از اینکه فایل mo را در محل مناسب قرار دادیم باید به قالب/افزونه بفهمانیم که همچین فایلی وجود دارد تا بتواند برای ترجمه از آن استفاده کند٬ بدین منظور از توابع load_plugin_textdomain و load_theme_textdomain استفاده می‌کنیم.
برای قالب‌ها

تابع load_theme_textdomain را به‌صورت زیر در خط ابتدایی فایل header.phpه قالب اضافه می‌کنیم:
کد:
<?php load_theme_textdomain('shakhes'); ?>
اگر قالب٬ قسمتی را هم به بخش مدیریت وردپرس اضافه می‌کند (مثل قالب کوبریک)٬ باید تابع بالا را در خط ابتدایی فایل functions.php هم فراخوانی کرد.
برای افزونه‌ها

تابع load_plugin_textdomain را به‌صورت زیر در خط ابتدایی فایل اصلی افزونه اضافه می‌کنیم:
کد:
<?php load_plugin_textdomain('shakhes'); ?>
همین.