2010-07-08 5 views
-1

내가 젠드에서 못생긴 예외가 번역 얻을 :젠드 번역 INI 어댑터 예외 "INI 파일을 찾을 수 없습니다 '배열'"

치명적인 오류 :에 '을 (를) 찾을 수 없습니다' 'INI 파일'배열 메시지 catch되지 않은 예외 'Zend_Translate_Exception를' C : \ www가 라이브러리 \ \ ZendFramework-1.10.5-최소한의 \ 라이브러리 \ 젠드 \ 번역 \ 어댑터 \ Ini.php : 54

application.ini

resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "ini",210 resources.translate.data.directory = APPLICATION_PATH "/ 언어"
resources.translate.options.scan = "디렉토리"
resources.translate.locale = "EN"

디렉토리 구조

component2.ini
응용 프로그램 \ 언어는 \ \

응용 프로그램 \ 언어 \
응용 프로그램 \ 언어 \ EN component1.ini
응용 프로그램 \ 언어 \ \ 엔 엘 \는
을 component1.ini 젠드 \는 \ 어댑터 \이 시점 위해서 var_dump에서 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"); 
    } 
} 

($ 데이터)를 번역 *

array(1) { 
    ["directory"] =>string(45) "C:\www\projects\helloworld\application/languages" 
}* 
을 반환 - 엘 \ \개 응용 프로그램 \ 언어

범인을 component2.ini

내가 뭘 잘못하고 있니?

+0

: 당신이 그 배열을 반복해야 문자열의 배열에 존재하는 파일을 확인하기 위해

. – Iznogood

+0

그냥 더블 스페이스 -> br in markdown :) 알아 냈어. – yannis

답변

2

$ 데이터가 "배열"이기 때문에 파일 이름을 포함하는 "문자열"이어야합니다. 이 unerstand에 매우 어렵로하기 때문에 당신은 그 코드를 포맷해야

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