Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-09-2008 16:14:35

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

[résolu] [Zend_Translate] Fonctionne plus...

Bonjour,

Voila, j'ai développé une app en local sur WAMP qui fonctionnait bien.

Voici mon bootstrap

Code:

<?php

    /*
     * ****
     * Bootstrap Zend project
     * ****
     */
    
    /*
     * Gestion des erreurs d'Apache
     */
    error_reporting(E_ALL|E_STRICT);
    
    

    /*
     * Gestion du time_zone par defaut
     */
    date_default_timezone_set('Europe/London');
    
    
    //define("WEBAPP_DIR", '/opt/www/nomduprojet/current/');
    //define("MODEL_DIR", WEBAPP_DIR . "/application/models");
    
    /*
     * Gestion de la racine de l'application
     */
    set_include_path('.'
        . PATH_SEPARATOR . '../library'
        . PATH_SEPARATOR . '../application/models'
        . PATH_SEPARATOR . get_include_path());
    
    
    /*
     * Appel, le module Zend Loader, qui va se charger de gérer les appel aux classes
     */
    require_once "Zend/Loader.php";
    Zend_Loader::registerAutoload();
    
    
    /*
     * Charge le fichier langue suivant cele définie dans par le naviguateur
     */
    $options_separator = array('separator' => '|');
    $translate = new Zend_Translate('csv', '../application/languages/fr/fr.csv', 'fr', $options_separator);
    $translate->addTranslation('../application/languages/en/en.csv', 'en', $options_separator); # Ajoute la langue English au translate
    $language_local = new Zend_Locale();
    $translate->setLocale($language_local);
    Zend_Registry::set('translate', $translate);
    
    
    /*
     * Charge et sauvegarde la configuration de Zend, d'après le fichier conf.ini
     */
    $config = new Zend_Config_Ini('../application/config/config.ini', 'general');
    Zend_Registry::set('config', $config);
    
    
    /*
     * Créer une instance database
     */
    $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($db);
    Zend_Registry::set('dbAdapter', $db);
    
    
    /*
     * Installe le Front_Controller
     */
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->throwExceptions($config->exceptions->config->enabled);
    $frontController->setControllerDirectory('../application/controllers');
    $frontController->setBaseUrl('/');
    
    
    /*
     * Lance la configuration du Front_Controller
     */
    $frontController->dispatch();
?>

Dans le indexController , j'ai fais fais une fonction init() qui appel les config de base pour ce controller.

Code:

public function init()
    {
        /*
         * Initialise la base de l'url
         */
        $this->view->baseUrl = $this->_request->getBaseUrl();
        /*
         * Initialise l'object translate
         * Ex: $this->view->PanelTrackingTitle = $this->translate->_('PanelTrackingTitle');
         */
        $this->translate = Zend_Registry::get('translate');
        
        /*
         * Envoi les données du membre dans le viwer
         */
        $this->view->auth = Zend_Auth::getInstance()->getIdentity();
    }

Ensuite dans l'action indexAction(), j'ai envoyé au viewer, une des chaines de mon CSV, comme cela:

Code:

    public function indexAction()
    {
        /*
         * Exemple du texte
         */
        $this->view->NewTrackingFormErrorTitle = $this->translate->_('NewTrackingFormErrorTitle');

...
...
...

Mais voila, maintenant que j'ai déployé l'app, sur le serveur distant qui tourne sur du LAMP, la reconnaissance des chaines n'est plus reconnue, dans le viewer Index.phtml.

En gros dans le viewer, quand je récupère la variable

Code:

$this->NewTrackingFormErrorTitle;

Il m'affiche simplement le nom de la variable, soit: NewTrackingFormErrorTitle

Je ne sais pas si, cela vient du serveur, mais je dois dire, que la je comprend vraiment pas pourquoi ça ne fonctionne plus.

Je suis ouvert au proposition wink

Merci

Dernière modification par Badoux (26-09-2008 16:30:23)

Hors ligne

 

#2 22-09-2008 08:48:28

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

Re: [résolu] [Zend_Translate] Fonctionne plus...

Alors pas d'idée ? Je pense que c'est flagrant comme problème, pour un expert. Alors c'est peut-être moi qui ne suis pas claire ?

Pour aider, je vous présente, mes débug, qui pourront peut-être, vous avancer : ?

J'ai essayer de voir si la méthode de récupération Zend_Registry::get('translate') ressortait quelque chose. ?

Pour cela, j'ai fais un passage de variable dans l'action Index, du controller du même nom.

controller/IndexController.php

Code:

public function indexAction()
{
    $this->view->ReturnTranslate = $this->translate;
...
...
...

Ensuite dans le viewer index, j'ai ajouté le passage de contenu, comme ça:

views/scripts/index/index.phtml

Code:

<?php
    echo print_r($this->ReturnTranslate);
?>

Ben oui, il ressort bien le contenu suivant

views/scripts/index/index.phtml

Code:

Zend_Translate Object ( [_adapter:private] => Zend_Translate_Adapter_Csv Object ( [_automatic:private] => [_options:protected] => Array ( [clear] => [scan] => [locale] => fr [delimiter] => ; [length] => 0 [enclosure] => " [separator] => | ) [_translate:protected] => Array ( [fr] => Array ( ) [en] => Array ( ) ) [_file] => Resource id #12 ) ) 1

Problème c'est que je ne sais pas exactement ce que devrait ressortir le Zend_Registry::get('translate'). Donc, quand je vois un length = 0, je me dis que la variable est vide. J'en sais rien et vous ?

Hors ligne

 

#3 22-09-2008 09:03:44

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [résolu] [Zend_Translate] Fonctionne plus...

Bonjour Badoux,

Evite de relancer tes messages trop vite surtout le week-end...

Sinon comme pour tout déploiement entre windows et unix, je parie sur un problème de majuscule. Unix est case sensitive et pas windows.

Est-ce que tu peux vérifier tes chemins ../application/languages/fr/fr.csv, notamment pour les majuscule. Il semble qu'ils ne soient pas enregistrés.

Maintenant si tu as moyen de passer tes messages d'erreur PHP en E_ALL, il est probable que PHP te signalera ton erreur directement.

Dis nous si ça résout ton problème.
A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 22-09-2008 09:22:38

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

Re: [résolu] [Zend_Translate] Fonctionne plus...

Salut Philippe,

(Désolé pour la relance, mais je voulais simplement apporter d'avantage d'info) wink

Sinon, j'ai eu en effet, ce problème de majuscule en passant de windows à linux. Mais la j'ai vérifié et tous mes chemin/répertoire sont en minuscule.

Je sais pas si tu as regardé mon premier message, j'y ai ajouté la copie de mon bootstrap, ou tu peux voir que j'ai bien passé les erreurs de PHP en E_ALL, mais pas d'erreur à l'horizont. Tu peux voir aussi que mes chemins jusqu'à mon/mes rep langues sont bien en minuscule. Donc normalement ça dois être bon. Mais non...

P.S: Vive le respect de la case. hmm

Hors ligne

 

#5 26-09-2008 14:41:37

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

Re: [résolu] [Zend_Translate] Fonctionne plus...

Alors personne n'as d'idée. La je sèche, grave. J'ai tout essayé. sad

Et pas de majuscule à l'horizon.

Ce que je peux dire, c'est que normalement, quand je fais un print_r du contenu du tableau  $this->translate, il devrait dans au niveau de [_translate:protected] => Array(..., sortir tout le texte. Mais la en l'occurence il est vide, comme vous pouvez le voir dans mon deuxième message.

Code:

Zend_Translate Object ( [_adapter:private] => Zend_Translate_Adapter_Csv Object ( [_automatic:private] => [_options:protected] => Array ( [clear] => [scan] => [locale] => fr [delimiter] => ; [length] => 0 [enclosure] => " [separator] => | ) [_translate:protected] => Array ( [fr] => Array ( ) [en] => Array ( ) ) [_file] => Resource id #12 ) ) 1

Donc, d'après vous, cela peut venir d'ou ?

Merci.

Dernière modification par Badoux (26-09-2008 14:54:38)

Hors ligne

 

#6 26-09-2008 15:24:19

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

Re: [résolu] [Zend_Translate] Fonctionne plus...

Résolu:

Voila, en fait, pour je ne sais qu'elle raison, sous WAMP, le paramètre array('separator' => '|');", fonctionne très bien, mais pas sous Linux ou il faut utiliser le array('delimiter' => '|');

Je dis bizarre, mais soulagé wink

Voila la solution au cas ou.

WAMP

Code:

$options_separator = array('separator' => '|');
    $translate = new Zend_Translate('csv', '../application/languages/fr/fr.csv', 'fr', $options_separator);
    $translate->addTranslation('../application/languages/en/en.csv', 'en'); # Ajoute la langue English au translate
    $language_local = new Zend_Locale();
    $translate->setLocale($language_local);
    Zend_Registry::set('translate', $translate);

Mais sous

LAMP

Code:

$options_separator = array('delimiter' => '|');
    $translate = new Zend_Translate('csv', '../application/languages/fr/fr.csv', 'fr', $options_separator);
    $translate->addTranslation('../application/languages/en/en.csv', 'en'); # Ajoute la langue English au translate
    $language_local = new Zend_Locale();
    $translate->setLocale($language_local);
    Zend_Registry::set('translate', $translate);

++

Hors ligne

 

#7 26-09-2008 16:27:08

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [résolu] [Zend_Translate] Fonctionne plus...

Hello,

Tu n'as pas les même versions du ZF sur les 2 machines !!!

En version 1.6.x, c'est "delimiter".
En version 1.5.x, c'est "separator".

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#8 26-09-2008 16:29:00

Badoux
Membre
Date d'inscription: 25-03-2008
Messages: 32

Re: [résolu] [Zend_Translate] Fonctionne plus...

Exactement. J'étais certain que cela venait d'une incompatibilité entre les deux versions.

Merci quand même. wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages