-1

ZendTranslateから醜い例外が発生します。

致命的なエラー:C:\ www \ libraries \ ZendFramework-1.10.5-minimal \ library \ Zend \ Translate \ Adapter \ Ini.php:54にメッセージ「Iniファイル」「配列」がない「キャッチされない例外」「Zend_Translate_Exception」

application.ini

resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "ini"
resources.translate.data.directory = APPLICATION_PATH "/ languages"
resources.translate.options.scan = "directory"
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" 
}*  

私は何が間違っているのですか?

4

1 に答える 1

2

$data が「配列」であるという理由だけで、ファイル名を保持する「文字列」である必要があります。

文字列の配列にファイルが存在するかどうかを確認するには、その配列を反復処理する必要があります。

foreach ($data as $file) {
    if (!file_exists($file)) {  
         require_once 'Zend/Translate/Exception.php';  
         throw new Zend_Translate_Exception("Ini file '".$file."' not found");
    }
}
于 2011-04-13T16:44:21.230 に答える