2014-04-16 33 views
1

在我的CakePHP的2.4應用程序, 在我的控制文件,我設置不同的語言是這樣的:CakePHP的gettext的,一個視圖文件內多國語言

$this->Session->write('Config.language', "eng"); 
Configure::write('Config.language', "eng"); 

我用這個在我看來文件:

echo __("Hello"); 

但有時我需要gettext用於不同的語言。

比如我需要一個像這樣的輸出我的CTP文件中:

Hola  
Bonjour 
Алло  

我怎樣才能得到這個輸出?

我能想到的唯一的可能性是:
- 在會議
設置Config.language - 讓這樣一個gettext的:__("Hello")
- 再次更改Config.language
- 製作的gettext這樣的:__("Hello")
- 再次
更改Config.language - 製作的gettext這樣的:__("Hello")

但裏面查看文件,不可能使用SessionHelper的一套方法。只有獲得方法可以使用。我不喜歡使用像$_SESSION這樣的原始PHP會話變量。但我需要爲我的視圖文件中的字符串獲取不同的翻譯。

我該如何獲得這個?

+0

會話助手是有點假剋制的 - 你可以使用'CakeSession'靜態接口從任何地方。 – AD7six

回答

2

__()只是I18n::translate的包裝。

使用「普通」 I18n::translate(語言PARAM)

+0

或者在調用'__之前,編寫語言[I18n類尋找它](https://github.com/cakephp/cakephp/blob/master/lib/Cake/I18n/I18n.php#L148-L151) ()'。 +1。 – AD7six

+0

這很好。謝謝。 'I18n :: translate(「我的句子」,null,null,6,null,「fr」)' – trante