1.最小它是如何工作
在你查看使用功能__()
,例如,用英文寫(主要語言):
<?php echo __('My name is Tom');?>
然後在.po
文件for French/app/Locale/fra/LC_MESSAGES/default.po translate:
msgid "My name is Tom"
msgstr "Mon nom est Tom"
您可以使用poedit還是不錯的PHP編輯器(UTF-8)所示eclipse
然後在控制器 - 可以AppController.php
- >public function beforeFilter()
你可以設置你的語言,如:
$this->Session->write('Config.language', 'fra');
和...
不要忘記設置您的主要語言/Config/core.php
例如:
Configure::write('Config.language', 'eng');
和使用會話組件 - 在你的控制器:
public $components = array('Session');
2。有關完整的多語言系統 您需要:
- 附加功能初始化語言像
$this->_setLanguage();
從網址參數
- 附加功能獲得語言切換語言在你的視圖/站點佈局的鏈接語言PARAM
- 集你的config/routes.php文件
- 可以路由擴展的HtmlHelper語言PARAM添加到所有喲烏爾鏈接,如:
應用::使用( '的HtmlHelper', '查看/助手'); 類MyHtmlHelper擴展的HtmlHelper {
public function url($url = null, $full = false) {
if(!isset($url['language']) && isset($this->params['language'])) {
$url['language'] = $this->params['language'];
}
return parent::url($url, $full);
}
}
UPDATE:
表現場實地所有語言:http://api.cakephp.org/2.4/source-class-L10n.html#177-326
你是絕對正確的,當我設置在覈心默認語言。 php ::配置::寫('Config.language','eng');工作正常 但當我改變英語法語,在beforeFilter() $ this-> Session-> write('Config.language','fre'); 法國版本不起作用。 終於在英文版本正常工作,但不適用於法文版本 – psanjib
您應該使用'fra'而不是'fre' - 對不起,我的錯誤 –
我也使用'fra',但在得到您的反饋後,我使用'fre'不工作 – psanjib