2014-12-05 106 views
0

我能够使用伏模板在Phalcon中添加多语言支持。Phalcon PHP NativeArray使用Volt模板访问多维数组

但我不能以伏特形式访问phalcon多维NativeArray。

这里是我的getTranslation功能:

private function _getTranslation() 
{ 
    global $config; 

    if (isset($config[$_SERVER['HTTP_HOST']]['language'])) { 
     $language = $config[$_SERVER['HTTP_HOST']]['language']; 
    } else if ($this->session->get('auth')) { 
     $language = "pt"; 
    } else { 
     //Ask browser what is the best language 
     $language = $this->request->getBestLanguage(); 
    } 

    //Check if we have a translation file for that lang 
    if (file_exists(__DIR__ . "/../translations/".$language.".php")) { 
     require __DIR__ . "/../translations/".$language.".php"; 
    } else { 
     // fallback to some default 
     require __DIR__ . "/../translations/en-US.php"; 
    } 

    //Return a translation object 
    return new \Phalcon\Translate\Adapter\NativeArray(array(
     "content" => $messages 
    )); 
} 

然后我SETVAR:

$this->view->setVar("t", $this->_getTranslation()); 

这将是这样的加载翻译文件:

$messages = array(
"pages" => array(
    "index" => array(
     "title" => "CREATE YOUR ACCOUNT TODAY", 
     "call_to_action" => "Join Now!", 
     "search_title" => "Find:", 
     "search_option" => "I Want To:", 
     "search_type" => "Type:", 
     "search_where" => "Located On:", 
     "search_button" => "GO", 
    ) 
); 

在伏模板我想访问像

$t['pages']['index']['call_to_action'] 

其中在伏可能是:

<div class="call_to_action">{{ t._('pages').('index').('call_to_action') }}</div> 

但是,这并不工作!

有什么方法可以访问伏特模板中的NativeArray多维元素?

回答

0

尝试此..

更多信息请参考枝杈documentation

{{ dump(t['pages']['index']['call_to_action']) }} 

输出示例:

string 'Join Now!' (length=9) 
+0

实际上只使用{{T [ '页'] [ '索引'] ['call_to_action']}}工作!谢谢Raj – erocha 2014-12-06 04:28:05