IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[Zend 1.x] Zend Locale plugin


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut [Zend 1.x] Zend Locale plugin
    Bonjour,

    Je travail sur Zend 1.x, j'aurais une question ..
    j'essaie de changer de langue en session mais j'ai cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Thu Jul 27 13:51:04.356520 2017] [php5:error] [pid 15842] [client 10.0.2.2:42158] PHP Fatal error:  Uncaught exception 'Zend_Locale_Exception' with message 'The locale '' is no known locale' in /home/vagrant/web/.git/externals/zend/src/Zend/Locale.php:1759\nStack trace:\n#0 /home/vagrant/web/.git/externals/zend/src/Zend/Translate/Adapter.php(432): Zend_Locale::findLocale('jquery.ui.timep...')\n#1 /home/vagrant/web/application/vendors/Icar/Controller/Plugin/LanguageLogin.php(61): Zend_Translate_Adapter->setLocale('jquery.ui.timep...')\n#2 /home/vagrant/web/.git/externals/zend/src/Zend/Controller/Plugin/Broker.php(309): Icar\\Controller\\Plugin\\LanguageLogin->preDispatch(Object(Zend_Controller_Request_Http))\n#3 /home/vagrant/web/.git/externals/zend/src/Zend/Controller/Front.php(941): Zend_Controller_Plugin_Broker->preDispatch(Object(Zend_Controller_Request_Http))\n#4 /home/vagrant/web/.git/externals/zend/src/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()\n#5 /home/vagrant/web/.git/externals/zend/src/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()\n#6 /home/vagra in /home/vagrant/web/.git/externals/zend/src/Zend/Controller/Plugin/Broker.php on line 312,
    je travail aussi avec la librairie Jquery Time Picker pour changer la langue les jours de la semaine

    voici mon languageLogin.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     class LanguageLogin extends FrontControllerPlugin
    {
        const REQUEST_PARAM_NAME = 'locale';
        const CONFIG_PARAM_NAME = 'resources.translator.default';
     
        public function preDispatch(\Zend_Controller_Request_Abstract $request)
        {
            $session = new \Zend_Session_Namespace(self::REQUEST_PARAM_NAME);
            $loginSession = new \Zend_Session_Namespace(\module\Controller\Plugin\AuthenticationLogging::class);
     
            if (isset($loginSession->logged) && !$loginSession->logged) {
                return;
            }
     
            $locale = $session->__get(self::REQUEST_PARAM_NAME);
            error_log("voivi le reslutat de ma variable locale1 : ".$locale);
            if (!$locale && \Zend_Auth::getInstance()->hasIdentity()) {
                $currentUser = \Zend_Auth::getInstance()->getIdentity()->getId();
                $service = new User();
                if ($currentUser) {
                    /** @var \module\Domain\User $userService */
                    $user = $service->getById($currentUser);
                }
                // Load lagugage from db
                if (isset($user) && $user->getUserLanguage()) {
                    $serviceLanguage = new Language();
                    /** @var \module\Domain\Language $language */
                    $language = $serviceLanguage->getById($user->getUserLanguage());
                    $locale = $language->getCodeLang();
     
                    // Set the language in the current session
                    $session->__set(self::REQUEST_PARAM_NAME, $locale);
                }
     
            }
            if (!$locale) {
                $locale = \proj\Config::configParam(self::CONFIG_PARAM_NAME);
            }
     
            if (Authorization::hasIdentity()) {
                $session->__set(self::REQUEST_PARAM_NAME, $locale);
            }
     
     
            if (strpos($locale, '_') === FALSE) {
                $locale .= '_' . strtoupper($locale);
            }
            error_log("voivi le reslutat de ma variable locale2 : ".$locale);
     
            if (\Zend_Registry::isRegistered(\proj\Application\Resource\Translator::REGISTRY_KEY)) {
                /** @var $translator \Zend_Translate */
                $translator = \Zend_Registry::get(\proj\Application\Resource\Translator::REGISTRY_KEY);
                $translator->getAdapter()->setLocale($locale);               //ligne 61 comme dans mon erreur plus haut..
     
                \Zend_Validate::getDefaultTranslator()->setLocale($locale);
            }
     
            \Zend_Registry::set('Zend_Locale', new \Zend_Locale($locale));
            setlocale(LC_ALL, $locale);
        }
    }
    la fonctionnalité developper est quand l'utilisateur choisi une langue pour la première fois
    je le met en BD et la charge à chaque fois sur le choix de l'utilisateur
    sinon j'ai une variable locale pour la langue par default

    voici le error log de ma variable locale qui varie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    voivi le reslutat de ma variable locale1 : jquery.ui.timepicker-fr.js, 
    voivi le reslutat de ma variable locale2 : jquery.ui.timepicker-frl.js_JQUERY.UI.TIMEPICKER-NL.JS
    merci!

  2. #2
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut Session et problème de concatenation
    Je reviens depuis juillet deja..

    j'ai resolu mon souci

    Le souci etait que je fesait quelque chose comme ca pour inclure un fichier JS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->appendFile('/js/library/jquery/ui/locale/jquery.ui.datepicker-'.str_replace('_','-',$locale).'.js')
    et la variable
    $locale
    je la recuperais de la session ce qui pas un souci je pense..

    mais ma variable session etait ecraser par cette ligne.

    J'ai du stocker la gestions des langues avec prefix,.. en BDD et le charger pour la concatenation de prefix et voila..

    Merci si vous avez une explication a ce comportement je suis preneur..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Zend et LOAD DATA LOCAL INFILE
    Par yamatoshi dans le forum Zend_Db
    Réponses: 1
    Dernier message: 08/03/2012, 20h48
  2. utilisation ZEND SERVER pour zend framework
    Par doudi1404 dans le forum Zend Studio
    Réponses: 1
    Dernier message: 21/04/2010, 10h10
  3. [ZF 1.8] Interface entre Zend DB et Zend Form
    Par sktstebo dans le forum Zend Framework
    Réponses: 1
    Dernier message: 22/06/2009, 17h04
  4. Zend studio et Zend platform ne se parlent pas
    Par manuplt dans le forum Zend
    Réponses: 1
    Dernier message: 26/04/2007, 13h47
  5. Différence entre Zend Platform et Zend Core
    Par bertil dans le forum Zend
    Réponses: 2
    Dernier message: 14/03/2007, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo