2016-04-26 2 views
1

Я использую Phalcon и его способность облегчить перевод с помощью его Класса Перевести. До сих пор я передаю переменную т из индекса для всех мнений, право, когда я настраивал вольт, как это:Использование переменных внешних просмотров phalcon

$view = new View(); 
$view->setViewsDir(WEBSITE_PATH.'/views/'); 
// Return a translation object 
     $view->t = new Phalcon\Translate\Adapter\NativeArray([ 
     "content" => $localization 
     ]); 

Это работает, но у меня есть страницы, чтобы перевести вне с мнением папки , в .php, not .volt. Как передать/установить/передать эту переменную 't' в другие места?

ответ

1

Вы можете зарегистрировать переводы в вашем инжектором зависимости как

$di->setShared('translations', function() use($di) { 

    // Include or set your translations here, must be an array 
    $translations = ['Phalcon' => 'Falcon', 'Word' => 'Translation']; 

    return new \Phalcon\Translate\Adapter\NativeArray(array(
     'content' => $translations 
    )); 

}); 

Тогда вы можете вызвать перевод в любом контроллере, как

$this->translations->_('Phalcon') 

и в представлениях, как

<?=$this->translations->_('Word') ?> 

Далее чтение: https://docs.phalconphp.com/en/latest/reference/translate.html

+0

Спасибо! Еще один вопрос ... В чем разница между -> setShared и -> set? – Duveral

+1

С -> setShared тот же экземпляр службы всегда возвращается, а -> set возвратит новый экземпляр при каждом вызове. https://docs.phalconphp.com/en/latest/reference/di.html – PWD