زمان جاری: 2012/05/25, 03:29 PM خوش آمدید مهمان گرامی! (ورودعضویت)



ایجاد دیکشنری یا همان تغییر زبان در کیک 2


ارسال موضوع  ارسال پاسخ 
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
ایجاد دیکشنری یا همان تغییر زبان در کیک 2
نویسنده پیام
amird آفلاین
امیر درجه
*

ارسال‌ها: 15
تاریخ عضویت: Jan 2012
رتبه: 0
تشکر: 16
20 بار تشکر شده در 9 پست
ارسال: #1
ایجاد دیکشنری یا همان تغییر زبان در کیک 2
سلام و .....

با آرزوی قبولی کدهای همه ی شما عزیزان در محزر کارفرمایان و مشتریان گرامی :دی (نمک ریزی)

آقا امروز می خوایم بریم سراغ یک آموزش خیلی خیلی ساده و 100 البته کاربردی مخصوصاً برای ما ایرانیا که زبونمون فارسی هست.

قضیه از این قرار که وقتی شما با کنسول کیک بیک می کنید و یه چیزی می سازید خوب اون می یاد به جز دیتاهای توی دیتابیستون بقیه چیزایی که ایجاد می کنه رو انگلیسی در نظر می گیره. یا اصلاً فرض کنید که خودتون دارید برای خودتون برنامه می نویسید کاری هم به کنسول کیک ندارید برنامه نویسان از اونجایی که دارای ضریب هوشی و سواد انگلیسی بسیار بالایی هستند (من برنامه نویس نیستما!!!!) معمولاً تست هایی که برای خودشون می سازن رو انگلیسی می سازن. یا اصلاً فرض کنیم سایت قراره دو زبونه بشه دیگه!

کیک راه حلی که داره مثله بسیاری از فریم ورک های دیگه اینه که یه سری متد داره که وقتی اونا رو بذارید پشت متون اونا رو مثل متن معمولی تفسیر می کنه مثله متد "__()" حالا شما می تونید با ایجاد یک فایل مناسب برای متن هایی که توی این متد قرار می گیرند و قرار دادن ترجمه اونها در همون فایل سایتتون رو ترجمه کنید ولی دیگه نه به همین سادگی یه خورده هم باید اصول رو رعایت کنید. یک راه سادش رو من زیر می کم ما بقی با خودتون.

ابتدا برید توی کنسول کیک و در مسیری که فولدر app برنامه قرار داره بزنید.

cake i18n extract

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

C:\wamp\www\CakeTests\2\app\View

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

برای زبون فارسی شما باید توی مسیر C:\wamp\www\CakeTests\2\app\Locale یه فولدر با نام per بسازید(برای سایر زبونها می تونید برید به اینجا) و توش هم یه فولدر دیگه به نام LC_MESSAGES فایل ترجمه قرار توی این فولدر قرار بگیره. حالا شما باید یه مسیری مثل زیر رو بدید به کیک برای ساخت فایل خروجی:

C:\wamp\www\CakeTests\2\app\Locale\per\LC_MESSAGES

در این مرحله با دادن مسیر و زدن اینتر فایل شما که حاوی عبارتی که در متد __() مانند
کد PHP:
echo __('Darajeh.net'
قرار گرفته هست رو به شما نشون می ده و شما می تونید با یک برنامه مثل poedit اونها رو ویرایش کنید. در ضمن کیک به شما فایلی با پسوند .pot می ده که بهتره اون رو به .po تغییر بدید. اسمش هم همون default باید بمونه.

حالا همه این کار رو که کرید که فایده نداره کیک بهتون فهش نمی ده با این کارا چون اصلاً اینا رو که نمی شناسه. برای اینکه اینا رو بشناسه شما باید تشریف ببرید توی فایل core.php که توی فولدر Config کیک هست و کد :
کد PHP:
Configure::write('Config.language''per'); 
رو قرار بدید و حالا لذتش رو ببرید.

امیدوارم مفید بوده باشه.

موفق و پیروز باشید.
منبع : http://blog.darajeh.net/articles/6-php/1...ephp2.html

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

بلاگم
(آخرین تغییر در این ارسال: 2012/03/02 03:59 PM توسط amird.)
2012/03/01 03:36 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : parsig payamsp Reran
saleh آفلاین
Administrator
*******

ارسال‌ها: 993
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 402
873 بار تشکر شده در 561 پست
ارسال: #2
RE: ایجاد دیکشنری یا همان تغییر زبان در کیک 2
ممنون . اما این قابلیت برای کیک 2 نیست از 1.1 این امکان بوده.

اما به نظرم یک مقدار گنگ بیان کردید این موضوع رو یا شاید جابجا.

زمانی که بحث چند زبانه سازی و بومی سازی وسط میاد، باید در نظر داشته باشیم که چند زبانه سازی از دو بخش مجزا تشکیل شده.

1- چند زبانه سازی پویا(محتوا)
2- چند زبانه سازی ثابت

درچند زبانه سازی ثابت یک مخزن از تمامی کلمات، جملات به کار رفته شده در سیستم مثل پیام ها، توضیحات و... به وجود میاد. که این بر اساس زبان دیفالت مخزن اصلی ایجاد میشه. و دارای پسوند .pot هست.
نقل قول:/app/locale/default.pot

اما محتوای این فایل بر چه اساسی ایجاد می آید؟!
بر اساس تعریف و تعیین توسط شما و به کمک توابع ترجمه مثل __() , __c(), ....
در اصل شما هر متنی که باید در زمان تغییر زبان سیستم، ترجمه شود رو توسط این توابع معرفی می کنید.

کد PHP:
echo $this->Html->link__('سلام'), '/' ); 

بعد ار اتمام پروژه حالا نوبت اضافه شدن ترجمه ها هست. پس اول باید مخزن رو ایجاد یا بروز کرد. پس در کنسول کامند زیر رو اجرا می کنید.
کد PHP:
cake i18n extract 

با اجرای این کامند کیک تموم فایل ها رو اسکن میکنه و مقداری که باید ترجمه شوند رو در فایل default.pot یا آنچه شما مسیر دادید رو قرار میده.

بعد از این کار شما باید مطابق نیاز سیستم برای هر زبان بک فولدر با ساختار زیر ایجاد کنید.
نقل قول:app\Locale\eng\LC_MESSAGES
app\Locale\far\LC_MESSAGES
حالا باید از مخزن های اصلی یک کپی گرفته و با پسوند .po در فولدر هر زبان قرار بدید.
نقل قول:app\Locale\eng\LC_MESSAGES\default.po
حال این فایل رو می بایست ویرایش کنید و شروع به ترجمه کنید.


برای تغییر زبان هم از روش بیان شده توسط امیر استفاده می کنیید.


برای محتوا هم باید به رفتار کنند ترجمه مراجعه کنید.
2012/03/01 04:49 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : parsig payamsp amird Reran
amird آفلاین
امیر درجه
*

ارسال‌ها: 15
تاریخ عضویت: Jan 2012
رتبه: 0
تشکر: 16
20 بار تشکر شده در 9 پست
ارسال: #3
RE: ایجاد دیکشنری یا همان تغییر زبان در کیک 2
ممنون از اضافه کردن توضیحات.

شاید این گنگی که شما می گید با خاظر کمبود تجربه من در زمینه کیک هست. که مطمئناً به مرور بهتر می شه.

نقل قول:اما این قابلیت برای کیک 2 نیست از 1.1 این امکان بوده.
من نگفتم این توی کیک 2 جدید هست! فقط گفتم روشش توی کیک 2 این جوریه.

موفق باشید.

بلاگم
2012/03/02 03:57 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : saleh
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: