Zend framework2 如何将语言变量传递给ZF2中的布局?

Zend framework2 如何将语言变量传递给ZF2中的布局?,zend-framework2,Zend Framework2,我刚刚启动了Zend Framework 2,我希望能够将一种语言附加到doctype 引导: $this->layout()->setVariable('language', 'nl'); Layout.phtml <html lang="<?php echo $language;?>"> 您至少有两个选项: 您可以编写自定义视图帮助器来解析和返回语言,并在布局中使用它,如: <html lang="<?php echo $this->

我刚刚启动了Zend Framework 2,我希望能够将一种语言附加到doctype

引导:

$this->layout()->setVariable('language', 'nl');
Layout.phtml

<html lang="<?php echo $language;?>">

您至少有两个选项:

  • 您可以编写自定义视图帮助器来解析和返回语言,并在布局中使用它,如:

    <html lang="<?php echo $this->langHelper() ?>">
    

  • @foozy的另一种方法:

    使用php的
    Locale
    作为当前语言环境的容器。这将直接用于任何其他i18n材料(gettext、Zend\i18n、条令的可翻译等)

    使用它:

    <html lang="<?= Locale::getPrimaryLanguage(Locale::getDefault())?>">
    
    
    
    public function onBootstrap(MvcEvent $e) {
        $viewModel = $e->getApplication()->getMvcEvent()->getViewModel();
        $viewModel->language = 'en';
    }
    
    // Now in your layout:
    <html lang="<?php echo $this->language ?>">
    
    use Locale;
    
    public function onBootstrap(MvcEvent $e)
    {
        Locale::setDefault('en_GB');
    }
    
    <html lang="<?= Locale::getPrimaryLanguage(Locale::getDefault())?>">
    
    <?php
    if (!isset($locale)) {
        $locale = Locale::getDefault();
    }
    ?>
    
    <html lang="<?= Locale::getPrimaryLanguage($locale)?>">
    
    <? $this->layout()->locale = 'nl_NL' ?>