2010-07-08 2 views
-1

я некрасивый исключение из Зенд Перевести:Зенд Перевести ини адаптер исключение «Ini файл„Массив“не найден»

Фатальная ошибка: Uncaught исключение «Zend_Translate_Exception» с сообщением «Ini файл„Массив“не найден» в C: \ WWW \ библиотеки \ ZendFramework-1.10.5-минимальная \ библиотека \ Zend \ Перевести \ адаптер \ Ini.php: 54

application.ini

resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "ini"
resources.translate.data.directory = APPLICATION_PATH "/ языки"
resources.translate.options.scan = "каталог"
resources.translate.locale = "EN"

структура каталогов

приложение \ языки \
приложений \ языки \ EN \ component1.ini
приложений \ языки \ EN \ component2.ini
приложение \ языки \ эш \ component1.ini
приложение \ Языки \ \ эш component2.ini

виновника - Zend \ Перевести \ адаптер \ 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 ($ данные) возвращает *

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

Что я делаю неправильно?

+0

Вы должны отформатировать этот код, так как это его очень трудно unerstand. – Iznogood

+0

Только что узнал, что двойные пробелы -> br в markdown :) – yannis

ответ

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"); 
    } 
}