رفتن به مطلب

مشکل در پارسی سازی قالب


پست های پیشنهاد شده

دوستان درود . من یک قالبی رو ترجمه کردم . فایل زبان این قالب در کاتالوگ که نگاه کردم از کلیدواژه های زیر پشتیبانی میکنه ... من بیشتر بخش هایی که نیاز بود در این فایل رو ترجمه کردم ... البته خیلی زیاد بود .من خیلی از بخش هاشو ترجمه نکردم چون دیدم واقعا نیازی نیست .

حالا سوال اینجاست ... بیشتر اون بخش هایی که میخواستم فارسی شده . اما الان مشکلم اینه که بخش theme_option یا تنظیمات پوسته فارسی نشده !

تمامی بخش ها خوبه ها ... اما دقیقا این بخش که واسم مهم بود فارسی نشده .

Capture.JPG

رفتم تو فایل theme_option تکست دامین هاشو نگاه کردم دیدم اینطوریه


'title' => __('Home Page', $mom_textdomain),

یعنی تمامش با __ گرفته شده ... اما به نظر شما الان مشکل کجاست که فارسی سازی رو از فایل انجام نمیده ؟!

درحالی که بقیه بخش ها رو فارسی کرده ...

البته من زیاد از php سر در نمیارم ... اما به نظر شما این کد ایراد داره ؟ بالای فایل theme_option بود .


$opt_name = 'mom_options';
if(defined('ICL_LANGUAGE_CODE')) {
$lang = ICL_LANGUAGE_CODE;
if ($lang != 'en' && $lang != '') {
$opt_name = 'mom_options_'.$lang;
}
}

پیشاپیش سپاس .

ویرایش شده توسط Usrapid
لینک به ارسال

این تکه کد میگه که اگر موجود بود ثابت ICL_LANGUAGE_CODEپس اون بریز توی متغیر $lang و اگر دلار لنگ برابر با en و یا برابر با خالی نبود مقدارش به این رشته اضافه کن . که اگر تو می خواهی کاملا فارسی انتخاب کنه همیشه بهتر توی خط 5 کد کاملا به این تغییر بده :


$opt_name = 'mom_options_fa';

لینک به ارسال

سلام.

ببینید چون بقیه بخش ها رو فارسی کرده پس مشکلی نیست و فایل زبان لود میشه اما اون دستوری که شما بالا نوشتیه حدس میزنم مربوط به متاباکس هست و دلیل لود نشدنش هم این هست که باید جایی که تابع اد متاباکس فراخوانی شده آرگومان دوم رو بزارید توی تابع __ به این صورت :


<?php
add_meta_box($this->id . '_metabox', __($this->title,'mytheme'), array($this, '_setup'), $type, $this->context, $this->priority);
?>

به آرگومان دوم دقت کنید که چکار کرده ام. شما تابع add_meta_box رو سرچ کن و به این صورت در بیار. ( البته اگر مطمئن هستی متاباکس هست )

موفق باشید.

لینک به ارسال

سلام.

به آرگومان دوم دقت کنید که چکار کرده ام. شما تابع add_meta_box رو سرچ کن و به این صورت در بیار. ( البته اگر مطمئن هستی متاباکس هست )

موفق باشید.

مرسی که اومدی و ممنونم از جوابت .

من چیزی که شما گفتی رو سرچ کردم در فایل اما چنین چیزی نبود ( Add_meta_box ) اختمالا خودم متوجه منظور شما نشدم اما

یک نمونه از خروجی theme_Option رو براتون قرار میدم . اگه از روی اون راهنمایی کنی واقعا لطف کردی



array (
'id' => 'breadcrumb',
'desc' => __('Enable or disable breadcrumb', $mom_textdomain),
'type' => 'switch',
'title' => __('Breadcrumb', $mom_textdomain),
'default' => 1,
),

پیشاپیش ممنون از وقتی که گذاشتی

//

الان رفتم یه دونه از اون فایل هایی که ترجمه کار کرده رو نگاه کردم دیدم اینجوریه


<?php _e('Summary', 'framework'); ?>

به نظر شما مربوط به همینه ؟ اگر اینه ... چطوری الان رو theme_option کار کنم ...

بیشتر اونایی که ترجمشون کار کرده روی

_e و Framework بوده تکست دامینشون .

ویرایش شده توسط Usrapid
لینک به ارسال

اها این متاباکس نیست ، خوب شما یک کاری کن توی پوشه ی پوسته عبارت load_plugin_textdomain رو جستجو کن و اگر پیدا شد پوشه ی پلوگینی که اینکلود شده رو از پوسته حذف کن ببین درست میشه این قسمت ها یا نه. اگر ترجمشون درست شد یعنی چندین فراخوانی توی زیرپوشه های پوسته برای لود زبان انجام شده و به خاطر این که لغطی در هر دو تا تکرار شده در نتیجه ترجمش لود نمیشه!

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

لینک به ارسال

من الان این رو پیدا کردم


load_theme_textdomain( 'theme', get_template_directory().'/languages' );
load_theme_textdomain( 'framework', get_template_directory().'/languages' );

اینم بخش پلاگین


load_plugin_textdomain( 'breadcrumbs-plus', false, 'breadcrumbs-plus/languages' );
load_plugin_textdomain('tivwp-dm', false, $folder_i18n);

هیج جا جز همون فایل Theme_option صحبتی از mom_textdomain نشده

حالا شما میگی من پوشه ی اینارو حذف کنم ؟ نمیفهمم چرا باید این کارو انجام بدم آخه مگه پوشه رو حذف میکنن ؟ :(

//

اون تاپیک هم دیدم ... باز نه من چیزی فهمیدم ... نه اون بنده خداها :D خدایی این همه زحمت میکشی ... وقت میزاری و راهنمایی میکنی ... اما نمیدونم یا من خیلی خنگم یا شما یه جوری میگی که من خنگ به نظر میرسم :D

ویرایش شده توسط Usrapid
لینک به ارسال

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

لینک به ارسال

خوب باشه عیبی نداره یه توضیح کامل مینویسم ولی دیگه سوال نکنیا !

اول نرم افزارهای notepad++ و super text search رو نصب کن .

به پوشه ی themes برو روی فولدر قالبت راست کلیک کن برو روی send to و نرم افزار super text search رو انتخاب کن.

حالا با نرم افزار super text search توی همه ی فایل های قالبت عبارت load_plugin_textdomin جستجو کن (تیک کتار عبارت include subdirectories رو بزار) . و توجه کن که منظورم پلاگین های وردپرست نیست فقط توی پوشه ی قالبت منظورم هست! .

یکی یکی به همه ی فایل هایی که پیدا کرده برو و جایی که این تابع فراخوانی شده قبلش دو عدد اسلش // بزار ! ( با این کار اون دستور به کامنت تبدیل میشه ) یا این که کلا اون دستور رو حذف کن.

حالا یکبار دیگه همین کار های بالا رو انجام بده اینبار عبارت load_theme_textdomain رو سرچ کن و هرچی پیدا شد رو کامنت کن و تنها یکیشون رو بزار باقی بمونه.

حالا میایم تکست دومین همه ی استرینگ ها رو مثل اونی میکنیم که باقی مونده یعنی مثلا یکی از فراخوانی ها باقی مونده که تکست دومینش 'framework' هست .

نرم افزار notepad++ رو باز کن عبارت کلید ctrl+f بزن برو به تب سوم find in files توی فیلد اول نام تکست دومینی که میخوای جایگزین بشه رو به همراه '' وارد کن و توی فیلد دوم نام تکتست دومینی که میخوای باقی بمونه رو وارد کن . مثلا : اولی رو بزار :

'breadcrumbs-plus'

و دومی رو بزار :

'framework'

بعد بزن replace in files . با این کار تکست دومین همه ی استرینگ ها ی او پلاگینه میشه تکست دومین اون فریم ورک.

همین کار رو برای بقیه تکست دومین ها انجام بده یعنی : بار دوم اولی رو بزار :

'tivwp-dm'

و دومی رو بزار :

'framework'

برای سومین بار همین کار رو بکن و theme رو هم جایگزین کن . بعدش توی مورد شما برو به پوشه ی languages اسم فایل ترجمتو به این صورت بنویس : fa_IR و ذخیره کن.

بعد برو توی پنل ادمین قطفا این بار کلمات ترجمه شدنه ! اگر نشده بودن بیا بزن تو گوشم. :blink::angry:

و دقت کن که این یک راه حل هست و راه درست ترش این هست که همه ی افزونه هایی که توی پوسته اینکلود شدنه رو جدا ترجمه کنی اما چون وارد نیستی همون کار رو بکن و مشکلی نداره.

موفق باشی.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...