Используйте переменные внешние виды phalcon

Я использую Phalcon и его способность упростить перевод с помощью его Class Translate. Пока я передаю переменную t из индекса во все представления, прямо при настройке вольт, вот так:

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

Это работает, но у меня также есть страницы для перевода снаружи из представлений папок, в.php, а не.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

Другие вопросы по тегам