2010-07-08 10 views
-1

je reçois une exception laide de Zend_Translate:Zend_Translate ini exception de l'adaptateur "fichier ini 'Array' not found"

Erreur fatale: Uncaught exception 'Zend_Translate_Exception' message 'fichier ini 'Array' not found' dans C: \ www \ bibliothèques \ bibliothèque ZendFramework-1.10.5-minimal \ \ Zend \ Traduire \ Adapter \ Ini.php: 54

application.ini

resources.translate.registry_key = "Zend_Translate"
resources.translate.adapter = "ini"
resources.translate.data.directory = APPLICATION_PATH "/ langues"
resources.translate.options.scan = "directory"
resources.translate.locale = "fr"

structure de répertoire

langues Application \ \
applications langages \ \ fr \ component1.ini
applications langages \ \ fr \ component2.ini
l'application des langues \ \ el \ component1.ini
l'application des langues \ \ el \ component2.ini

le coupable - Zend \ Traduire \ 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"); 
    } 
} 

à ce stade var_dump ($ data) retourne *

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

Qu'est-ce que je fais mal?

+0

Vous devez formater ce code parce qu'il est très difficile de son unerstand. – Iznogood

+0

Je viens de découvrir que les espaces doubles -> br dans markdown :) – yannis

Répondre

2

C'est juste parce que vos données $ sont "tableau", mais devraient être une "chaîne" qui contient un nom de fichier.

Afin de vérifier les fichiers pour l'existence dans le tableau de chaînes que vous devez itérer ce tableau:

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