مقدمه: من آخرین نسخه وردپرس فارسی رو دانلود و روی سیستم خودم به صورت لوکال نصب کردم. یک تم فارسی هم پیدا کردم و اون رو هم نصب کردم و اون رو طبق نیاز و سلیقه خودم تغییر دادم. از این تم خوشم میاد اما ظاهرا این تم یک مقدار قدیمی هستش!
معرفی مشکل: در صفحه archive.php در دایرکتوری تم مربوطه، بعضی عبارتها که باید به فارسی برگردانده میشد، ترجمه معادل در فایل زیانی که توی تم قرار گرفته بود نداشت، مثلا 'Author' اصلا در فایل زبان پیدا نمیشد. بعد از بررسی فهمیدم که این فایلهای زبان ظاهرا قدیمی هستند و بعضی از عبارتها در آنها وجود ندارد، بنایراین آنها را با فایلهای زبان اصلی که در دایرکتوری wp-content/languages قرار داشتند جایگزین کردم و مشکل تا حدی حل شد...
طرح مشکل: در صفحه مربوطه (archive.php) عباراتی که برای مشخص کردن عنوان صفحه آرشیو نمایش داده شده به کار برده میشد در قایلهای زبان (چه مال خود تم و چه اصلی) پیدا نمیشد! من تصمیم گرفتم که این عبارتها رو از تم پیش فرض بردارم (به این خیال که این عبارتها حتما در فایلهای زبان ترجمه معدل دارند!)
اما حتی در تم پیش فرض twentyten هم که صفحه مربوطه (archive.php) را باز کردم، این عبارتها (مثلا Daily Archives و Monthly Archives و Yearly Archives) در قایلهای زبان معادل نداشت!
باز هم دست از تلاش نکشیدم، گفتم از متن عبارتی که در قسمت (sidebar) همین تم از آن استفاده شده بود کپی کنم. (البته آن را هم مجبور شده بودم اصلاح کنم! اما در نهایت کاملا درست کار می کرد)
مشکل اصلی اینجاست که با اینکه عبارت را عینا کپی کردم و با اینکه مطالبی مثل اسم ماه (در تاریخ) به درستی ترجمه می شود، اما متن جمله اصلی ترجمه نمی شود (دقیقا در قسمت sidebar در همین صفحه ترجمه به درستی نمایش داده می شود)... متن کدی که گذاشتم رو اینجا قرار میدم:
<?php /* If this is a category archive */ if (is_category()) { ?>
<h2 class="pagetitle"><?php printf(__('You are currently browsing the archives for the %s category.', 'kubrick'), single_cat_title('', false)); ?></h2>
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h2 class="pagetitle"><?php printf(__('Posts Tagged ‘%s’', 'kubrick'), single_tag_title('', false) ); ?></h2>
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h2 class="pagetitle"><?php printf(__('You are currently browsing the <a href=\"%1$s/\">%2$s</a> blog archives for the day %3$s.', 'kubrick'), get_bloginfo('url'), get_bloginfo('name'), get_the_time(__('l, F jS, Y', 'kubrick'))); ?></h2>
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h2 class="pagetitle"><?php printf(__('You are currently browsing the <a href=\"%1$s/\">%2$s</a> blog archives for %3$s.', 'kubrick'), get_bloginfo('url'), get_bloginfo('name'), get_the_time(__('F, Y', 'kubrick'))); ?></h2>
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h2 class="pagetitle"><?php printf(__('You are currently browsing the <a href=\"%1$s/\">%2$s</a> blog archives for the year %3$s.', 'kubrick'), get_bloginfo('url'), get_bloginfo('name'), get_the_time('Y')); ?></h2>
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
<h2 class="pagetitle"><?php _e('Archives', 'kubrick'); ?></h2>
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2 class="pagetitle"><?php printf(__('You are currently browsing the <a href=\"%1$s/\">%2$s</a> blog archives.', 'kubrick'), get_bloginfo('url'), get_bloginfo('name')); ?></h2>
<?php } ?>
و این نتیجه ای است که نمایش داده می شود:
You are currently browsing the VenuxWorld blog archives for نوامبر, 2010.
سوال اصلی: چرا متن جمله ترجمه نمی شود، با اینکه دقیقا همین کد در قسمت سایدبار این عبارت را نتیجه میدهد:
شما در حال حاضر بایگانی وبلاگ VenuxWorld در نوامبر, 2010 را مشاهده میکنید.
پ.ن. با توجه به اینکه من در وردپرس تازه کار هستم ممکن است مطلبی را جا انداخته باشم ... من سعی کردم تمام مراحل را بنویسم تا مشکلم واضح تر بشود، اما اگر با اینکار باعث خستگی شما شدم پوزش می خواهم... پیشاپیش ممنون از وقتی که برای پاسخگویی می گذارید.