2014-05-16 74 views
1

我正在使用翻譯行爲函數:__()來翻譯事物。它效果很好。 Unformtunately當我改變了語言控制器這樣的:如何更改特定視圖元素的語言?

Configure::write('Config.language', 'deu'); 

它改變了整個網站:(

語言有沒有辦法來翻譯讓利說只有特定部分(鑑於) ?例如,整個應用程序的語言是英語,但對於一些$這個 - >元素,我希望它在德國

我的嘗試:。在視圖中我改變這樣的語言:

<?php 
    Configure::write('Config.language', 'deu'); 
    echo __("Hello World"); 
?> 

它的工作原理,只有當CakeSession ::閱讀l18n.php除去部分:

if (empty($language)) { 
     // if (CakeSession::started()) { 
     // $language = CakeSession::read('Config.language'); 
     // } 
     if (empty($language)) { 
      $language = Configure::read('Config.language'); 
     } 
    } 

我可以重寫l18n.php所以我的作品,但它是核心,我不想碰它。有沒有辦法CakeSession ::寫入視圖? cakephp文檔說it is not possible

+0

我敢肯定,這是一個重複的 - 但有什麼阻止你配置:: write'ing到申語言,然後回來時,你已經完成? – AD7six

+0

,但是當我在控制器中配置::寫入時,它將翻譯所有內容,整個應用程序。我想翻譯視圖中的特定元素(它包含在$ this-> element()中) – MilMike

+0

我在視圖中也嘗試過,但語言不會改變。 :( – MilMike

回答

0

您可以在您的元素文件夾中創建一個名爲您想要的語言的文件夾,然後調用它。

以葡萄牙語(巴西)爲例:<?php echo $this->element('pt_BR/your_element'); ?>

+0

是個好主意。但是我做的是我通過在供應商目錄中使用自己的php並使用命名空間來覆蓋翻譯功能(下劃線)。效果很好。 – MilMike