• اطلاعیه ها

    • Saeed Fard

      پوشش زنده وردکمپ ۲۰۱۸ اروپا توسط وردپرس پارسی   23/03/97

      اگر کاربر وردپرس هستید حتما تا به حال اسم وردکمپ رو شنیدید، کمپ و دورهمی بزرگ توسعه‌دهنده‌ها و کاربران وردپرس که سالانه در کشورهای مختلف برگزار میشه تحت عنوان وردکمپ هستش که از سمت مراجع اصلی وردپرس حمایت و برگزار می‌شه.   این‌ بار در سال 2018 وردکمپ اروپا در شهر بلگراد کشور صربستان در حال برگزاری هستش، این رویداد طی سه روز 24 تا 26 تیر ماه (June 14-16) برگزار میشه، در این رویداد مصطفی صوفی از وردپرس پارسی و به نمایندگی تمامی کاربران وردپرس فارسی حضور داره. وردپرس پارسی رویداد وردکمپ 2018 اروپا رو به صورت زنده توسط مصطفی پوشش می‌ده و در صورت علاقه‌مندی به این مراسم می‌تونید از طریق وردپرس پارسی دنبالش کنید.در حال حاضر یک روز از این مراسم گذشته که گزارش اون در قسمت پوشش زنده قرار گرفته. برای دنبال کردن مراسم وردکمپ اروپا به صورت لحظه‌ای به صفحه پوشش زنده در قسمت زیر مراجعه کنید. همینطور در آینده منتظر خبر برگزاری اولین وردکمپ در ایران توسط وردپرس‌پارسی باشید. https://wp-parsi.com/wceu-2018

      لینک خبر در وردپرس پارسی : https://wp-parsi.com/wceu-2018-live  
Usrapid

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

9 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

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

حالا سوال اینجاست ... بیشتر اون بخش هایی که میخواستم فارسی شده . اما الان مشکلم اینه که بخش 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
0

به اشتراک گذاری این پست


لینک به پست

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


$opt_name = 'mom_options_fa';

1

به اشتراک گذاری این پست


لینک به پست

حسن آقا انجام دادم . جواب نداد . :(

1

به اشتراک گذاری این پست


لینک به پست

سلام.

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


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

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

موفق باشید.

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

سلام.

به آرگومان دوم دقت کنید که چکار کرده ام. شما تابع 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
0

به اشتراک گذاری این پست


لینک به پست

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

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

2

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

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


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
0

به اشتراک گذاری این پست


لینک به پست

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

0

به اشتراک گذاری این پست


لینک به پست

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

اول نرم افزارهای 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:

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

موفق باشی.

3

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط s.1357
      سلام دوستان 
      من یک مشکلی در فارسی سازی قالب دارم.
      قالبی که دارم ، فایل ترجمه ش (Po.) ، در حالت عادی دارای متا هایی مانند __ , e_ نیست...!
      و وقتی هم یکی از کادر های ترجمه رو برای ترجمه وارد می کنم ، و سیو میکنم ، انجام نمیشه...!
      همه کار ها رو هم درست پیش میرم. (مثلا فایل ترجمه انگلیسی رو تغییر میدم زبانش رو و Save as میزنم و به fa_IR.po سیو می کنم..*)
      دست به کار شدم و فایل های ترجمه پیش فرض قالب رو پاک کردم و در Poedit ، برای قالب فایل ترجمه ساختم.
      پس از اینکه در بین فایل های PHP ، جست و جو کرد و متا های ترجمه رو برای ترجمه شدن پیدا کرد ، اولش ارور چند تا ارور داد.
      چند تا ارور داده که متن ارور همه شون ، این رو نوشته ::
      Empty msgid.  It is reserved by GNU gettext:
      gettext("") returns the header entry with
      meta information, not the empty string.
      ---------------------------------------------------------------------
      کاری به این ارور ها نداشتم و ادامه دادم.
      چون فایل رو به زبان English ایجاد کرده بودم ، با دکمه Alt + Enter که همون تنظیمات اصلی میشن ، فایل رو تغییر دادم و زبان رو فارسی کردم و...
      کار ها تموم شد و دو تا از عبارت های انگلیسی رو فارسی کردم و سیو کردم .
      رفتم و رفرش کردم صفحه رو دیدم ، هیچ تغییری در ترجمه ایجاد نشده. همونه که بود!
      --------------------------------------------------------------------------
      ضمن اینکه ، فایلی که به دست خودم درست شد و اون هم کار نکرد ، دارای متا بود که خودش پیدا کرده بود.
      در صورتی که فایل پیش فرض قالب ، اصلا متا نداشت.
      ---------------------------------------------------------------------------
      الآن من چیکار کنم؟ 
      لطفا دوستانی که میتونند ، به من کمک کنند.
      با تشکر
       
    • توسط ict universe
      با سلام
      من یه قالب فارسی گرفتم ولی یک کلمه هست که فارسی نمیشه میشه یه توضیح بدید که باید چیکار کنم
      این آدرس جایی که فارسی نمیشه
      http://shop.areg.ir/?page_id=16
      وقتی یه مخصول رو به سبد اضافه می کنید و به قسمت تسویه حساب میرید این کلمه فارسی نیست
      Billing Details
      میشه راهنمایی کنید که چجوری فارسی اش کنم
    • توسط runy
      سلام
      برای فارسی کردن برخی قسمت های افزونه ها و حتی پوسته ها نمی شه فقط از poedit استفاده کرد.مجبورم دستی به داخل کدها را دست کاری کنم.
      مثل قسمت Description: باید برم تو هاست با ویرایشگر هاست فارسی می نویسم.
      چطور میتونم در Notepad++ فارسی بنویسم؟؟؟؟؟
      آخه فارسی را علامت سوال می زاره و همین طور Notepad معمولی.