CakePHP - MultiLanguage


หลังจากที่ไม่ได้มาเขียนนานวันนี้ก็เลยแวะมาดูครับ หลังจากที่ได้ชื่นชมกับความน่ารักของน้อง "กระติ๊บ" ที่ยังไม่สร่างซ่า เข้าเว็บน้องเขานึกถึง Blog ตัวเองก็เลยมาเขียนมั่งดีกว่า

 

วันนี้จะเอาเทคนิคการทำเว็บหลายภาษามาให้อ่านกันครับโดยใช้ CakePHP Framework คู่ใจผมครับ

 

เวลาเปลี่ยนภาษา URL จะเป็นแบบนี้ครับ

 

เริ่มกันเลยนะครับ

 

app/config/routes.php

 

Router::connect(

 

'/:language/:controller/:action/*',array(),array('language'=>'[a-z]{3}'));

 

######################################################## 

app/app_controller.php

 

 

uses(

'L10n');
uses('I18n');

function

 

_setLanguage(){

 

if($this->Cookie->read('lang') && !$this->Session->check('Config.language')){

 

$this->Session->write('Config.language',$this->Cookie->read('lang'));

}

else if(isset($this->params['language']) && ($this->params['language']!=$this->Session->read('Config.language'))){

 

$this->Session->write('Config.language',$this->params['language']);

 

$this->Cookie->write('lang',$this->params['language'],null,'20 days');

}

}

######################################################

app/app_helper.php

 

 

 

 

 

<?php

class

 

 

AppHelper extends

Helper{

 

 

function url($url=null,$full=false

){

 

 

if(!isset($url['language']) && isset($this->params['language'

])){

 

 

$url['language']=$this->params['language'];

}

 

 

return parent::url($url,$full

);

}

}

?>

########################################################
app/views/layouts/default.ctp

<?php

 

 

 

echo $html->link('English', array('language'=>'eng')); ?> - <?php echo $html->link('ภาษาไทย', array('language'=>'tha')); ?>

########################################################

app/locale/eng/LC_MESSAGES/main.po

msgid "hello"

msgstr "Hello"

 

msgid "point"

msgstr "Point"

app/locale/tha/LC_MESSAGES/main.po

msgid "hello"

msgstr "สวัสดี"

 

msgid "point"

msgstr "แต้มกวน"

คำสำคัญ (Tags): #cakephp#multilanguage
หมายเลขบันทึก: 317544เขียนเมื่อ 1 ธันวาคม 2009 22:10 น. ()แก้ไขเมื่อ 21 มิถุนายน 2012 08:55 น. ()สัญญาอนุญาต: ครีเอทีฟคอมมอนส์แบบ แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกันจำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท