در این مقاله قصد داریم نشان دهیم که چطور می توان در جوملا، متن هایی را ایجاد کرد که قابل ترجمه باشند. یعنی بتوان به راحتی برای زبان های مختلف، یک متن را ایجاد کرد.
برای ایجاد یک متن قابل ترجمه، از کلاس استاتیک JText استفاده می کنیم. به این دلیل به کلاس JText استاتیک می گوییم که این کلاس نیاز به اضافه کردن یک شیء نصب، برای استفاده از آن قبل از استفاده از متدهای آن ندارد.
این بدین معنی است که اگر بخواهیم از این کلاس استفاده کنیم، نیازی نیست که شیء تعریف کننده ی این کلاس را قبل از استفاده از متدهای این کلاس، اضافه کنیم.
ایجاد یک متن قابل ترجمه در جوملا
تصور کنید که می خواهیم یک متن را در جوملا چاپ کنیم، برای این کار از دستور echo استفاده می کنیم درست مانند زیر:
مثال1
<?php echo 'Welcome'; ?>
همان طور که مشاهده می کنید، این دستور متن انگلیسی 'Welcome' را در خروجی چاپ می کند. حالا فرض کنید که ما می خواهیم به نوعی یک متغیر ایجاد کنیم که مقادیر برای زبان های مختلف را در خود قرار دهد. و یا فرض کنید که یک عبارت مانند "Welcome" داریم که نیاز به ترجمه دارد(به زبان های دیگر). برای انجام این کار باید چه کار کنیم؟ جواب بسیار ساده است!
در جوملا، در کلاس JText، یک متد به نام "_" وجود دارد که با استفاده از این متد می توان یک متغیر را تعریف کرد که به هنگام نیاز، به ترجمه ی عبارت اصلی اشاره می کند.
بعنوان مثال، تصور نمایید که در قالب جوملایی خود یک عبارت انگلیسی به نام "Welcome" داریم که این عبارت نیاز به ترجمه شدن دارد، بنابراین می توانیم به صورت زیر عمل کنیم:
مثال 2
<?php echo JText::_( 'Welcome' ); ?>
این دستور باعث می شود که سیستم ترجمه ی جوملا، به جستجوی فایل زبان مناسب برای عبارت WELCOME، که نوعی متغیر غیر حساس به حروف بزرگ و کوچک است، برای زبان مورد نظر، بپردازد.
بعنوان مثال، وقتی که کاربر، زبان قالب را انگلیسی انتخاب می کند، متن زیر در متغیر WELCOME قرار می گیرد و نمایش داده می شود:
مثال 3
WELCOME=Welcome to your site!
اما وقتی که کاربر، زبان قالب را فارسی انتخاب می کند، متن زیر در متغیر WELCOME قرار می گیرد و نمایش داده می شود:
مثال 4
WELCOME=به سایت خود خوش آمدید
نکته: توجه داشته باشید که، اگر بعنوان مثال، کاربر زبان قالب را فارسی قرار دهد، اما فایل زبان فارسی وجود نداشته باشد، یا رشته ی مناسب در فایل زبان فارسی، نمایش داده نشود، جوملا این عبارت را به مروگر نخواهد فرستاد و از مقدار اصلی محافظت خواهد کرد.
با اقتباس از مرکز مستندات جوملا