رفتن به مطلب

پرسشی در زمینه فارسی سازی قالب وردپرس


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

سلام، وفت شما بخیر

من قصد داشتم یک قالبی رو بصورت تمرینی ترجمه کنم، چون تاحالا تجربه ای نداشتم. دو تا آموزش در این زمینه رو مطالعه کردم اما دچار پارادوکس شدم! من فعلا تو فاز اول یعنی ترجمه با نرم افزار Poedit دچار مشکل شدم و هنوز به RTL سازی فایل CSS نرسیدم. تو آموزش اول اینطوری گفته که شما فقط برین نرم افزار Poedit رو نصب کنید و و بعد از دادن مشخصات و همچنین معرفی دو تابع __ و e_ و ذخیره کردن فایل po در محل پوسته (یا فایل Lang) خود نرم افزار لیست کلماتی رو که باید ترجمه کنید رو براتون میاره! خب من این کار رو کردم و البته بعد از دادن چند تا Error اون لیست رو برام آورد.

اما آموزش دوم میگه شما اول برین داخل فایل هاتون مثل index.php و تک تک رشته های عادی رو داخل تابع _e و کلماتی که خودشون داخل یک تابع PHP هستند رو با __ محصور کنید! که خب اگه قرار باشه این فرآیند تک تک برای همه فایل ها پیاده بشه مطمئنا از روش اول زمانبرتر و البته حوصله سر بر تر خواهد بود!

من میخواستم بدونم که اصولا فرق این دو روش چیه و شیوه استاندارد برای فارسی سازی واژه های انگلیسی با فارسی کدوم یک از اینهاست؟ متشکرم

لینک به ارسال

روش اول استاندارد هست

فقط برای rtl سازی فایل rtl.css را ایجاد کنید

http://forum.wp-parsi.com/tutorials/article/188-%D8%B4%DB%8C%D9%88%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%81%D8%A7%DB%8C%D9%84-rtlcss/

  • امتیاز 4
لینک به ارسال

قالب که قابلیت ترجمه داشته باشه از عبارت های قابل ترجمه اش داخل علائم گفته شده هستند یعنی بجای

hello

نوشته


<?php _e( 'Hello', 'MyTheme' ); ?>

اما قالبی که این قابلیت را نداشته باسه باید قبل از ترجمه به روشی که در آموزش دوم گفته شد براش این قابلیت ایجاد شه

  • امتیاز 5
لینک به ارسال

خیلی ممنون، متوجه شدم.

فقط الان در کار با نرم افزار Poedit با چند Error مواجه شدم. وقتی از از طریق New Catalog اطلاعات لازم رو وارد می کنم و دو تابع __ و _e رو معرفی می کنم باید فایل fa_IR خودم رو در فایل پوسته خودم ذخیره کنم. طبق آموزشی که مطالعه کردم گفته در صورتی که پوسته شما شامل فایل Lang یا Language بود فایل رو در اینجا ذخیره کنید. الان پوسته من دارای پوشه Lang هست و داخلش هم یک فایل با نام Default.po قرار داره. اما وقتی من میخوام فایل fa_IR خودمو اینجا ذخیره کنم با این Error مواجه میشم:

Poedit_A.png

و بعدش دیگه هیچ لیستی از لغات انگلیسی برای ترجمه نمیاره! اما وقتی به پوشه Lang مراجعه می کنیم می بینیم که دو فایل fa_IR.po و fa_IR.mo ساخته شده!

اما در بخشی از اون آموزش گفته شده بود که اگه پوسته شما دارای پوشه Lang نبود شما فایل fa_IR رو داخل فولدر اصلی پوسته (جایی که همه فایل ها و فولدرها هستند) ذخیره کنید. خب پس این مورد دوم برای من نباید صدق کنه دیگه نه؟ چون من که پوشه Lang رو دارم! با اینحال گفتم این مورد رو هم تست کنم، بعد از ذخیره فایل fa_IR در فولدر اصلی پوسته با Error زیر مواجه میشم:

Poedit_B.png

و وقتی به فولدر اصلی پوسته مراجعه می کنم می بینم که fa_IR.po و fa_IR.mo داخل همون پوشه ساخته شدند. اما فرق این Error با اون Error اینه که بعد از OK زدن، لیست لغاتی که باید ترجمه بشن در نرم افزار Poedit برای من لیست میشه! طوری که انگار همه چیز خوب پیش رفته! ولی اگه خوب پیش رفته Error بالا به چه معنیه؟ یعنی بعضی از واژه ها برای ترجمه شناخته نشدند و بعضی شدند؟ یا چه دلیل دیگه ای؟! مرسی

لینک به ارسال

ارور ها رو باید فیکس کنید

معمولا به این دلایله

اگر در متنی علائمی مثل % وجود داشته باشه باید علامت در ترجمه هم تکرار بشه

و اگر متنی دو حالت برای جمع و مفرد داره باید هر دو حالتش معنی داشته باشه

بهترین کار برای اینکه به ارور نخورید اینه که در ابتدای کار از طریق ctrl+B متن اصلی را کپی کنید جای ترجمه و بعد ترجمه را با حذف کاراکتر های انگلیسی بجز % و 1% و 2% و s% انجام بدید

  • امتیاز 2
لینک به ارسال

پوشه زبان فقط بودنش مهم نیست در فایل function.php محل قرار گرفتن فایل زبان در قالب تعریف می شه با کدی شبیه


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

معنی این کد اینه که در پوشه قالب و پوشه languages فایل زبان وجود داره و اگر نام پوشه را نداشت می شد روت قالب و اگر بجای اون نام می نوشت lang می شد lang

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

  • امتیاز 2
لینک به ارسال

و یک نکته دیگه برای اینکه راحت تر باشید فایل Default.po را کپی کنید و ری نیمش کنید به fa_IR.po و راحت بازش کنید و می بینید همه چیش آماده است و فقط ترجمه ها را باید قرار داد

با استفاده از ترجمه خودکار بعضی از آیتم ها که با نمونه دیفالت وردپرس برابری دارند هم خودکار ترجمه می شوند

  • امتیاز 2
لینک به ارسال

و یک نکته دیگه برای اینکه راحت تر باشید فایل Default.po را کپی کنید و ری نیمش کنید به fa_IR.po و راحت بازش کنید و می بینید همه چیش آماده است و فقط ترجمه ها را باید قرار داد

با استفاده از ترجمه خودکار بعضی از آیتم ها که با نمونه دیفالت وردپرس برابری دارند هم خودکار ترجمه می شوند

ممنون از معرفی این روش، فقط دو تا سوال دارم:

الف. اگه از همون فایل کپی بگیرو و Rename اش کنم و تغییرات رو ایجاد و مجددا ذخیره کنم فقط یک فایل با پسوند po دارم، ولی اگه از طریق همون فرآیند نرم افزاری این کار رو انجام می دادم یک فایل دیگه با پسوند mo هم ایجاد میشد، فرق این دو در چیه؟ و آیا دقیقا دو فرآیند یکسان هستند؟

ب. گفتید با استفاده از ترجمه خودکار بعضی از آیتم ها بصورت خودکار ترجمه میشن، منظورتون چیه؟ خود نرم افزار این کار رو خودکار انججام میده یا قابلیتی هست که باید فعالش کنم؟

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

ترجمه قالب وردپرس بسیار ساده ست .... ( منظور از ترجمه = ترجمه به زبان فارسی بود ) ...

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

من خودم قالب های انگلیسی زبان و خیلی راحت ترجمه می کنم ....

قدم اول : قالب و باید دانلود کنی یا داشته باشی

قدم دوم : بسیار بسیار ساده ست برو توی سورس و کلمات که تایپ شده رو فارسی کن مثلا نوشته Home خیلی راحت به " صفحه اصلی " تغییرش بده کاری نداره ....

خوب حالا که همه ی متن ها رو فارسی کردی البته بهت بگم بعضی از متن ها رو با دستو echo چاپ می کنن و البته انگلیسی نوشته با کدهای php استباه نگیر نگی این php بزار تغییرش نده ...

تا اگه قالب کنترل پنل داشته باشه بعضی از تگ ها رو گذاشتن که مشکلی نیست می تونی از مدیرش تغییرش بدی مثل متن کپی رایت آدرس عکس لوگو و قسمت های دیگه

قدم سوم : RTL کردن قالب : این زیاد ضروری نیست بستگی به قالبت داره یعنی باید ببینی حتما باید dir بشه rtl خوب انجام می دی ولی اگه Ltr ش قشنگه خوب چه کاریه بزار باشه .... و اما حالا می خواهیم راست به چپ کنیم ...

" اینجا باید html و css و کامل یا حداقل از 100 درصد 95 درصد و یاد داشته باشید می دونید چی میگم دیگه نه .... "

خوب حالا می ری توی استایل دایکشن های قالب و تغییر می دی البته حتما باید عملی* این کار رو انجام بدی ....

بعضی وقتا باید کلا استایل و دیو ( div ) مورد نظر رو بلکل عوض کنی ....

مثلا بعضی از استایل ها برای سمت چپ نوشته شدن فرض می کنیم یه لینک فاصله ش از سمت چپ 5 پیکسل هست .... حالا بخوای بیاریش این ور باید padding-left و به padding-right تغییر بدی

امیدوارم توضیحاتم کار ساز شده باشه :rolleyes:

وردپرس خیلی شیرینه من خودم واقعا خوشم میاد ازش ....

ولی خوب چه کاریه برو قالب اختصاصی برای خودت درست خیلی ام بی دردسر :D

داخل سایت خودم آموزشهاش هست ( البته تبلیغ نبود ) ....


* : منظورم از عملی این بود که روی وردپرس این کار را رو کنید یعنی وردپرس رو لوکال هاست نصب کنی بعد باهاش کار کنی می دونم بلدی اینو برای اون کسی که بعدن ها با این تایپک آشنا میشه نوشتم :o

یا حق ....

توکل به خدا ...

  • امتیاز 1
لینک به ارسال

من الان فایل Default.po رو کاملا ترجمه کردم اما بخش Theme Option هنوز به همون شکل انگلیسی باقیه و اصلا واژه هایی که داخل اونجا استفاده شده در فایل Default نیست، چطور میشه واژه های اونجا رو هم ترجمه کرد؟

  • امتیاز 1
لینک به ارسال

فایل mo را خود poedit می سازه و نیازی نیست شما کاری روش انجام بدید

تعاریفی را سیستم پیدا می کنه که در قالب دیفالت وردپرس عینا تکرار شده اند مثل معمولا تعداد نظرات

باید واژه ها را در فایل php پیدا کنید و. به نحوی که قبلا در مورد hello مثال زده شد اونها را برای ترجمه خوانا کنید

  • امتیاز 3
لینک به ارسال

من الان واژه های عادی رو ترجمه کردم، بعد دیدم بخش Theme Option هنوز ترجمه نشده، الان که داخل فولدرهای پوسته رو نگاه می کنم می بینم یک فولدر به نام include هست که شامل فایل هایی هست که به Theme Option مربوط میشه ولی هیج فایل Lang ای موجود نیست، آیا من باید دونه دونه این فایل های php رو ترجمه کنم؟ بعد چجوری به هم ربطش بدم؟ مگه نباید یک فایل واحد fa_IR.po داشته باشیم؟

  • امتیاز 1
لینک به ارسال

من الان واژه های عادی رو ترجمه کردم، بعد دیدم بخش Theme Option هنوز ترجمه نشده، الان که داخل فولدرهای پوسته رو نگاه می کنم می بینم یک فولدر به نام include هست که شامل فایل هایی هست که به Theme Option مربوط میشه ولی هیج فایل Lang ای موجود نیست، آیا من باید دونه دونه این فایل های php رو ترجمه کنم؟ بعد چجوری به هم ربطش بدم؟ مگه نباید یک فایل واحد fa_IR.po داشته باشیم؟

با سلام

نه دوست عزیز به احتمال زیاد لازم نیست

کافیه نرم افزار poedit رو باز کنی و یه new catalog بزنی و اون سه قسمت رو که پر کردی مسیر نصبش رو اون پوشه ای theme option بزن خودش به احتمال خیلی زیاد فایل هایی زبانت رو شناسایی میکنه

و دیگه خودش شناسایی میکن هفایل زبانت رو و نیاز به ربط دادن به هم نداره و تا اونجایی که من میدونم حتما نباید یه فایل po داشته باشی

ویرایش شده توسط MR.Ali
  • امتیاز 2
لینک به ارسال

کافیه نرم افزار poedit رو باز کنی و یه new catalog بزنی و اون سه قسمت رو که پر کردی مسیر نصبش رو اون پوشه ای theme option بزن خودش به احتمال خیلی زیاد فایل هایی زبانت رو شناسایی میکنه

من همین کار رو کردم و همه واژه ها و جملات داده شده رو هم ترجمه کردم اما هنوز بخش اعظمی از پوسته فارسی نیست!

  • امتیاز 1
لینک به ارسال

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


<?php _e('متن نوشته '); ?>

قرار بدید

دقت کنید علامت ' داخل نوشته باید به \' تبدیل شود یعنی


this is a 'book'

تبدیل بشه به


<?php _e('this is a \' book \' '); ?>

  • امتیاز 5
لینک به ارسال
  • 8 ماه بعد...
  • 5 ماه بعد...
  • 2 سال بعد...

سلام میخواهم افزونه ای رو فارسی سازی کنم .

فایل .pot  رو داخل poedit باز کردم بعد از بعد از انتخاب زبان و ذخیره کردن ارور زیر زیر رو میده .

there was a problem formatting the file nicely (but it saved all right) .

 و یک فایل با پسوند po ذخیره میشه اما با پسوند mo به وجود نمیاد. چکار باید بکنم ؟

Capture.PNG

لینک به ارسال
در ۱ ساعت قبل، fjabbari گفته است :

سلام میخواهم افزونه ای رو فارسی سازی کنم .

فایل .pot  رو داخل poedit باز کردم بعد از بعد از انتخاب زبان و ذخیره کردن ارور زیر زیر رو میده .

there was a problem formatting the file nicely (but it saved all right) .

 و یک فایل با پسوند po ذخیره میشه اما با پسوند mo به وجود نمیاد. چکار باید بکنم ؟

Capture.PNG

به صورت دستی پسوند رو ایجاد کنید

توی گوگل بنویسید po to mo

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

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...