texima

آموزش فارسی سازی / چگونه یک ماژول، پلاگین و یا کامپوننت را فارسی کنیم؟؟

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

کاربران عزیز، این آموزش پیش نیازی برای ترجمه ی افزونه هاست، بنا بر این مطالعه ی دقیق این آموزش به کسانی که بتازگی تصمیم به ترجمه ی افزونه گرفته اند توصیه می شود.

چگونه فایل زبان بسازیم!

در این آموزش کوتاه، یاد گیری شیوه ی ایجاد فایل زبان و معرفی آن به به XML مد نظر است. در این آموزش سعی می کنیم برای افزونه ی plg_content_flashChart که یک پلاگین است ، فایل زبان ساخته و آن را به فایل XML معرفی کنیم.

بیشتر افزونه ها به صورت پیش فرض دارای فایل زبان اصلی هستند و برای ترجمه ی افزونه به صورت استاندارد لازم است فایل زبان فارسی را ایجاد و به XML معرفی کنید. فایل های زبان معمولا در پوشه های LANGUEGES قرار دارند.

چگونه فایل زبان فارسی را ایجاد کنیم؟

برای این کار لازم است:

- در پوشه ی زبان افزونه یک فولدر جدید با نام fa-IR ایجاد کنید. چرا که جوملا از چنین تگی برای تشخیص اینکه زبان سایت شما چیست استفاده می کند و بدنبال فایل های زبان مربوط به افزونه ی مورد نظر بر اساس زبان انتخابی در این پوشه میگردد.

- محتوای پوشه ی en-GB را کپی و در پوشه ی ایجاد شده ی fa-IR بازنشانی کنید و نام آن را مثلا از en-GB.plg_content_flashChart.ini به fa-IR. plg_content_flashChart.ini تغییر داده و سپس به ترجمه ی محتوای آن بپردازید.

برای مثال در قبال MODULE CLASS SUFFIX=Module Class Ssuffix می بایست Module Class Ssuffix را به " پسوند کلاس ماژول " ترجمه کنیم، به این مفهوم که متن حروف بزرگ ثابت مانده و متن حروف کوچک به فارسی تغییر می یابد که پس از ترجمه به این ترتیب خواهد بود:

MODULE CLASS SUFFIX=پسوند کلاس ماژول

چگونه فایل زبان جدید را به XML معرفی کنیم؟

برای اینکار لازم است ابتدا بدانیم XML چیست! XML به نصاب جوملا نوع افزونه را معرفی مینماید و به آن می گوید که افزونه از چه نوعیست و به نوعی شناسنامه و پیکره بندی اصلی افزونه را در خود جای داده است، همچنین جدا از اینکه xml خود نوعی زبان برنامه نویسی است به جوملا نصاب جوملا میگوید که کدام فایل بسته نصبی باید در کدام پوشه ریخته شود به عنوان مثال فایل زبان ما را باید در پوشه langueges در پوشه fa-IR بریزد . خوب به صورت پیش فرض که افزونه زبان فارسی و این فایل را ندارد پس حال که ما آن را ایجاد نموده ایم باید به فایل xml که وظیفه معرفی و نصب افزونه را دارد نیز بگوییم که به جوملا بگوید این فایل ها هم هست که باید در پوشه زبان فارسی ریخته شود. فایل XML همیشه در نخستین فولدر افزونه (روت) وجود دارد و با پسوند XML و نام افزونه قابل شناسائی است.

حالا لازم است بعد از آماده سازی فایل زبان جدید آن را به XML افزونه معرفی نمائید برای اینکار لازم است فایل XML را باز کرده متن زیر را جستجو کنید:

<languages folder="language">
<language tag="en-GB">en-GB.plg_content_flashChart.ini</language>
</languages>

سپس <language tag="en-GB">en-GB.plg_content_flashChart.ini</language> را به شکل زیر کپی و بازنشانی کنید:

<languages folder="language">
<language tag="en-GB">en-GB.plg_content_flashChart.ini</language>
<language tag="en-GB">en-GB.plg_content_flashChart.ini</language>
</languages>

و خط کپی شده را به شکل زیر تغییر دهید:

<languages folder="language">
<language tag="en-GB">en-GB.plg_content_flashChart.ini</language>
<language tag="fa-IR"> fa-IR.plg_content_flashChart.ini</language>
</languages> 

با این کار شما فایل زبان جدید را به XML معرفی کرده اید.

توجه داشته باشید نام افزونه را در عنوان فایل زبان به عنوان افزونه ی فعلی تغییر دهید. در این آموزش از نام plg_content_flashChart استفاده شده است. با این تصویر توجه کنید:

[ATTACH=CONFIG]1195[/ATTACH]

به این مسئله نیز توجه کنید، گاهی اوقات فایل زبان بصورت باز در پوشه ی اصلی (روت) افزونه و با در فولدر زبان تعبیه شده است. در این صورت فرآیند ایجاد فولدر جدید fa-IR را نادیده بگیرید.

با این توصیف در معرفی فایل بهXML تغییر چندانی صورت نخواهد گرفت و با کمی دقت کار انجام خواهد شد.

مسئله ی دیگر در مورد کامپوننت هاست که عمومن دارای دو بخش مجزای کاربری و مدیریت هستند و به طبع دارای دو فایل زبان مجزا برای بخش کاربری و بخش مدیریت هستند. در این صورت نیز تغییر چندانی در ایجاد و معرفی فایل زبان صورت نخواهد گرفت و تنها لازم است فرآیند ایجاد فایل زبان فارسی و معرفی آن به XML را دوبار انجام دهید. این توضیح لازم است که بخش معرفی فایل زبان بخش کاربری در XML بین تگ های <administration> و </administration> قرار دارد، اما فرآیند معرفی آن همچون بخش کاربری است.

چگونه فایل زبان را از پایه بسازیم!

توجه داشته باشید، این آموزش برای اکثر ماژول ها و پلاگین ها کاربرد دارد اما ممکن است در برخی موارد در صورتیکه برنامه نویس اصول جوملا را رعایت نکرده باشد کاملا موثر نباشد که البته احتمال اندکی در این باب وارد است. ضمن اینکه گاهی اوقات بخصوص در مورد کامپوننت ها ممکن است برخی تگ های مربوط به زبان در فایل های php نهفته باشد که در آن صورت مقوله کمی متفاوت تر است و در حوصله ی این آموزش نمی گنجد!

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

چگونه فایل زبان اصلی را بسازیم؟

تنظیمات در ماژول ها و پلاگین ها از طریق فایل XML به جوملا معرفی می شود، بنا بر این زبان این نوع افزونه ها در فایل XML تعبیه شده است. برای ایجاد فایل زبان اصلی فرآینده زیر را انجام دهید:

فایل XML را باز کنید و تگ params را بیابید، بعد از این تگ تا آخرین تگ </params> تمامی خطوط را کپی کرده و به یک فایل تکست در محیط نو ت پد منتقل کنید سپس محتوای label و description هر خط را جدا و کدهای اضافی را حذف کنید.

برای مثال خط زیر:

<param name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="PARAMMODULECLASSSUFFIX" /> 

به خط زیر تغییرمی یابد:

MODULE CLASS SUFFIX= Module Class Ssuffix
PARAMMODULECLASSSUFFIX= Param Module class suffix 

این فرآیند را برای تمامی خطوط پارامتر انجام دهید و متن آماده شده را به یک فایل آماده ی خالی با پسوند ini منتقل کرده و با یونیکد UTF8 ذخیره نمائید. در نهایت بر مبنای توضیحات داده شده در ابتدای آموزش به ترجمه ی آن به زبان فارسی اقدام نمائید.

یک موضوع را فراموش نکنید!

دو بخش دیگر و البته مهم نیز وجود دارد که باید در فایل زبان قرار دهید و آن نام و توضیح افزونه است که ترجمه ی آنها نیز ضرورت دارد، نام افزونه را می توانید بین تگ های <name> و </name> بیابید و توضیحات افزونه نیز بین تگ های <description> و </description> قرار دارد. این دو جمله را به ابتدای فایل زبان افزوده و ترجمه ی آن را نیز وارد کنید. با این کار نام افزونه و توضیحات آن هنگام نصب و تنظیمات افزونه با زبان کابر نمایش داده می شود.

برای مثال، نام و توضیحات افزونه که در XML بشکل زیر است:

<name>content_flashChart</name>
<description>content_flashChart for joomla</description>

به این شکل تغییر می یابد:

content_flashChart=افزونه ی نمودار فلش
content_flashChart for joomla=افزونه ی نمودار فلش برای مطالب جوملا

دو فایل زبان انگلیسی و فارسی را درون فولدری با نام language انتقال داده و فولدر مذکور را در روت افزونه قرار دهید سپس برای معرفی فایل های زبان به XML فرآیند زیر را انجام دهید:

بعد از تگ </files> این کد را اضافه کنید:

<languages folder="language">
<language tag="en-GB">en-GB.plg_content_flashChart.ini</language>
<language tag="fa-IR"> fa-IR.plg_content_flashChart.ini</language>
</languages>

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


منبع: گروه جومینا

1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

سلام

به جوملا ایران خوش اومدین در صورتی که ماژولتون تجاری نیست قرار بدین تا بررسی بشه...

Share this post


Link to post
Share on other sites

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

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

صابر جان این لینک دانلود افزونه فارسی شده توسط ایشونه:

ماژول cdlogin

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

سایت سازنده باز نشد

ولی اگه تجاری بود به خودم بگین برش دارم

ویرایش شده در توسط Vahid Taheri

Share this post


Link to post
Share on other sites

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

این ماژول که گذاشتید اصلا خودش مشکل داره معرفی فایلها توی xml فایل زبان اینجوری معرفی شده

<language tag="en-GB">en-GB.mod_login.ini</language>

در حالی که en-GB.mod_login.ini توی پوشه زبان اینجوریه en-GB.mod_cdlogin.ini

صحیحش این هست

<language tag="en-GB">en-GB.mod_cdlogin.ini</language>

برای ترجمه یه پوشه به نام fa-IR توی پوشه language بسازید و محتویات پوشه en-GB رو داخلش کپی کنید

و اول اسم فایلها به جای en-GB بنویسید fa-IR بعد ترجمه کنید

توی فایل xml هم به جای این قسمت

	<languages folder="language/en-GB">
	<language tag="en-GB">en-GB.mod_login.ini</language>
               <language tag="ar-AA">ar-AA.mod_login.ini</language>
	<language tag="en-GB">en-GB.mod_cdlogin.sys.ini</language>
</languages>

این کد رو قرار بدین

	<languages>
	<language tag="en-GB">language/en-GB/en-GB.mod_cdlogin.ini</language>
	<language tag="fa-IR">language/fa-IR/fa-IR.mod_cdlogin.ini</language>
               <language tag="ar-AA">language/ar-AA/ar-AA.mod_cdlogin.ini</language>
	<language tag="en-GB">language/en-GB/en-GB.mod_cdlogin.sys.ini</language>
	<language tag="fa-IR">language/fa-IR/fa-IR.mod_cdlogin.sys.ini</language>
               <language tag="ar-AA">language/ar-AA/ar-AA.mod_cdlogin.sys.ini</language>
</languages>

ویرایش شده در توسط saber

Share this post


Link to post
Share on other sites

صابر جان ایشون فارسی نمیخان.عربی رو میخان که یک فایل رو به عربی ترجمه کردن و فایل .sys.ini رو ترجمه نکردن درباره مورد اول هم اینطوری نوشتن ar-AA.mod_login که بهتره مثل فایل اصلی نام گذاری کنن و حرف شما کاملا درسته

Share this post


Link to post
Share on other sites

عربی هم فرقی نمیکنه همون کار رو باید انجام بدن توی پوشه ای که برای عربی ساختن ar-AA همون فایلهای پوشه en-GB رو کپی و تغییر نام داده و ترجمه کنن

قسمت معرفی به فایل xml هم اینجور میشه

	<languages>
	<language tag="en-GB">language/en-GB/en-GB.mod_cdlogin.ini</language>
               <language tag="ar-AA">language/ar-AA/ar-AA.mod_cdlogin.ini</language>
	<language tag="en-GB">language/en-GB/en-GB.mod_cdlogin.sys.ini</language>
	<language tag="ar-AA">language/ar-AA/ar-AA.mod_cdlogin.sys.ini</language>

</languages>

Share this post


Link to post
Share on other sites

دوستان به خاطر کمکتون خیلی ممنون.واما سوال بعدی من :

یه سایت جوملا دارم با 2 زبان عربی و انگلیسی - با زبان انگلیسی که مشکلی ندارم و افزونه ها درست کار میکنن

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

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

Share this post


Link to post
Share on other sites

ماژول در صورتی به زبان عربی تبدیل نمیشه که فایل زبانش اشکال داشته باشه.. فایل زبان عربی ماژول ورود رو چک کنید احیانا کوتیشن کم و زیاد نباشه

Share this post


Link to post
Share on other sites
من این راه هارو رفتم ولی نشد

نشون نمیده وقتی زبان سایت عوض میشه

سامان جان مشکلتون همون ? هاست که در تاپیک دیگه گفتین؟

اگر اونا هست باید دیتابیس و فایل ترجمه utf-8 باشه

Share this post


Link to post
Share on other sites

خیلی آموزش جامع و عالی بود. ممنون.

یک سوال واسم پیش اومد!

چه کدی هست که باید در ترجمه (.ini فایل) قرار بدم که ماژولم راست به چپ بشه!؟

چون چن وقت پیش از یه سایتی که یادم نیست یک فایل ترجمه فارسی (.ini فایل) دانلود کردم که وقتی کپیش کردم، ماژولم ضمن اینکه ترجمه شد خودش هم راست به چپ شد!! متاسفانه گم کردم فایلش رو و نمیتونم ببینم که چه کد اضافه ای داشت!

یک سوال شاید بیربط!

من کامپوننت CB رو دارم کمکم ترجمه میکنم، چطور راست به چپش کنم؟ (سیستم ترجمش یکم فرق میکنه!)

Share this post


Link to post
Share on other sites

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

برای راست چین کردن ، ابتدا کار ترجمه رو تموم کنید و بعد روی نسخه فارسی و یک قالب کاملا فارسی نصب کنید و در نهایت با استفاده از ابزار firebug راست چین کنید

Share this post


Link to post
Share on other sites

با تشکر از آموزشی که دادید

فقط من یک ماژوا اینگلیسی از قبل نصب کردم.حالا چطور فارسیش کنم؟

Share this post


Link to post
Share on other sites

ضمن اینکه گاهی اوقات بخصوص در مورد کامپوننت ها ممکن است برخی تگ های مربوط به زبان در فایل های php نهفته باشد که در آن صورت مقوله کمی متفاوت تر است و در حوصله ی این آموزش نمی گنجد!

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

یا منبع انگلیسی یا فارسی رو بگین که توضیح داده.ممنون

Share this post


Link to post
Share on other sites
فقط من یک ماژوا اینگلیسی از قبل نصب کردم.حالا چطور فارسیش کنم؟

فرق نمیکنه میتونید فایل زبانش رو از مسیر languages/en-GB پیدا کنید و ترجمه کنید

ضمن اینکه گاهی اوقات بخصوص در مورد کامپوننت ها ممکن است برخی تگ های مربوط به زبان در فایل های php نهفته باشد که در آن صورت مقوله کمی متفاوت تر است و در حوصله ی این آموزش نمی گنجد!

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

باید در هنگام ذخیره فایل encoding آن را utf8 انتخاب کنید تا مشکلی نداشته باشه

Share this post


Link to post
Share on other sites

سلام

ای کاش فایل pdf آموزش را هم برای دالنود قرار میدادید

اینطوری خیلی بهتر میشد

Share this post


Link to post
Share on other sites

سلام سایت من جایی که میخواد به یه مطلی خاص نظر بدی اون بخش رو انگلیسی می نویسه چطور فارسیش کنم؟ افزونه سیستم جامع جومینا فارسی و انگلیسی رو هم نصب کردم اون هم می نویسهadd cooment چطور این کلمات رو فارسی کنم؟ چطور دثیقن به کد های ماژول هل و کامپوتنت ها دست پیدا کنم برای تغییر؟هرچی میگردم توکد قالب پیدا نمیشن خواهشا دقیق توضیح بدین /مممنون/جوملا1.5

[ATTACH=CONFIG]5419[/ATTACH]

Share this post


Link to post
Share on other sites

با سلام و خسته نباشید.

بنده میخوام یه افزونه رو فارسی کنم. توش فایل و پوشه زبان نداره. توی فایل xml هم حرفی از زبان زده نشده.

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

میشه بفرمایید مشکل از کجاست؟

Share this post


Link to post
Share on other sites

اگر خودش فایل زبان نداره احتمالا داخل فایلهای php هستن و تنظیمات بخش مدیریت ماژول هم از همون خود فایل xml هست

Share this post


Link to post
Share on other sites

متشکرم جناب saber

مشکل رو خودم حل کردم. توضیح میدم که اگر اشتباهی کردم شما بفرمایید.

توی فایل php تماما نام فیلد ها به کار رفته بود که کلا با برچسب فیلدها متفاوت بودن. بنده تک تک برچسب ها رو بر اساس قوانین جوملا 2.5 (که نباید فاصله داشته باشن و باید با حروف بزرگ باشن)تغییر دادم و توی یه فایل ini فارسیشون کردم.

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

ولی حالا 2 تا مشکل دارم:

1- توی روت افزونه پوشه زبان میسازم و فایل ini رو داخلش قرار میدم. توی فایل xml هم زبان رو توی محل مورد نظر تعریف میکنم ولی موقع نصب پیغام میده که نصب کننده فایل زبان شناسایی نشد.

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

ممنون میشم راهنماییم کنید

Share this post


Link to post
Share on other sites

1- توی روت افزونه پوشه زبان میسازم و فایل ini رو داخلش قرار میدم. توی فایل xml هم زبان رو توی محل مورد نظر تعریف میکنم ولی موقع نصب پیغام میده که نصب کننده فایل زبان شناسایی نشد.

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

ممنون میشم راهنماییم کنید

با اجازه ی استاد هاشم زاده :ooof:

1- توی افزونه هایی که زبانشون در یک فایل های ini تعریف میشه ، معمولا در فایل php اصلی افزونه همچین کدی قرار میگیره :

	public function __construct(& $subject, $config)
{
	parent::__construct($subject, $config);
	$this->loadLanguage();
}

البته این کد بین کد کلاس افزونه ، یعنی کدی مشابه این قرار میگیره :

class نام افزونه extends نوع افزونه

2- منظورتون رو دقیق نمیفهمم. چون اصلا نمیدونم نوع افزونه چی هست. کامپوننته ، ماژوله یا پلاگینه ؟

ولی در کل چک کنید encoding فایل ها مخصوصا فایل xml بر روی utf-8 باشه. (البته فایل های زبان ini هم باید utf-8 باشند )

اگر سوال دیگری بود در خدمتیم

موفق باشید

Share this post


Link to post
Share on other sites

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

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

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

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


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

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

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


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