Zend Translate ini适配器异常“未找到Ini文件'数组'

时间:2010-07-08 05:01:52

标签: zend-framework zend-translate

我从Zend Translate那里得到了一个丑陋的例外:

致命错误:C:\ www \ libraries \ ZendFramework-1.10.5-minimal \ library \ Zend \ Translate \ Adapter \ Ini.php中未找到异常'Zend_Translate_Exception',消息'Ini文件'未找到数组' 54

的application.ini

resources.translate.registry_key =“Zend_Translate”
resources.translate.adapter =“ini”
resources.translate.data.directory = APPLICATION_PATH“/ languages”
resources.translate.options.scan =“目录”
resources.translate.locale =“en”

目录结构

应用\语言\
应用程序\语言\ EN \ component1.ini
应用程序\语言\ EN \ component2.ini
应用程序\语言\ EL \ component1.ini
应用\语言\ EL \ component2.ini

罪魁祸首 - Zend \ Translate \ Adapter \ Ini.php

protected function _loadTranslationData($data, $locale, array $options = array()) {  
  $this->_data = array();  

  if (!file_exists($data)) {  
      require_once 'Zend/Translate/Exception.php';  
      throw new Zend_Translate_Exception("Ini file '".$data."' not found");  
  }
}

此时var_dump($ data)返回*

array(1) { 
   ["directory"] =>string(45) "C:\www\projects\helloworld\application/languages" 
}*  

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这只是因为你的$数据是“数组”,但应该是一个包含文件名的“字符串”。

为了检查字符串数组中是否存在文件,您应该遍历该数组:

foreach ($data as $file) {
    if (!file_exists($file)) {  
         require_once 'Zend/Translate/Exception.php';  
         throw new Zend_Translate_Exception("Ini file '".$file."' not found");
    }
}