2013-08-28 249 views
0

我发展与Zend框架2.致命错误:类“从Zend_Locale”未找到

我想达到与当前的区域设置自动内置,即/区域/控制器/动作/等URL的Web应用程序。我写了这个:

<?php 

$locale = new Zend_Locale(); 

?> 

<ul class="nav"> 
    <li> 
     <a href="/<?php echo $locale->getLanguage(); ?>/devices">Devices</a> 
     <ul> 
      <li> 
       <a href="/devices/add"><img src="img/navbar/add.png" alt="+"> Add</a> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <a href="/<?php echo $locale->getLanguage(); ?>/favorites">Favorites</a> 
     <ul> 
      <li> 
       <a href="/favorites/add"><img src="img/navbar/add.png" alt="+"> Add</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

,并把它放在一个navbar.phtml文件包括我这样

include("navbar.phtml"); 
在我的应用程序/视图/布局/ layout.phtml

但是,我只得到这个

Fatal error: Class 'Zend_Locale' not found in blabla\module\Application\view\layout\navbar.phtml on line 3 

有什么不对?我忘了一些“使用”?对不起,但我是一个PHP新手。

+1

'Zend_Locale'是Zend1的本地化方法。请参阅:http://framework.zend.com/manual/2.2/en/index.html#zend-i18n – naththedeveloper

+0

谢谢!得到它:D –

回答

0

好吧,我刚刚解决。

上面的代码是相对于旧版本的Zend Framework。

在Zend框架2正确的代码是这样的:

<?php 

$translator = new Zend\I18n\Translator\Translator(); 
$locale = substr($translator->getLocale(), 0, 2); 

?> 

<ul class="nav"> 
    <li> 
     <a href="/<?php echo $locale ?>/devices">Devices</a> 
     <ul> 
      <li> 
       <a href="/<?php echo $locale ?>/devices/add"><img src="img/navbar/add.png" alt="+"> Add</a> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <a href="/<?php echo $locale ?>/favorites">Favorites</a> 
     <ul> 
      <li> 
       <a href="/<?php echo $locale ?>/favorites/add"><img src="img/navbar/add.png" alt="+"> Add</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

而且不要忘记,使国际PHP扩展!

1

安装的PHP intl扩展是必须的。

+0

我找不到它!也许我正在使用来自旧版本框架的代码? –

+0

您是否安装了intl扩展? –

+0

是的,但问题不是由于缺少intl引起的。在Zend 2中似乎Zend_Locale类不再存在。 –