Bonjour,
Je travail sur Zend 1.x, j'aurais une question ..
j'essaie de changer de langue en session mais j'ai cette erreur:
je travail aussi avec la librairie Jquery Time Picker pour changer la langue les jours de la semaine
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,
voici mon languageLogin.php:
la fonctionnalité developper est quand l'utilisateur choisi une langue pour la première fois
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); } }
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:
merci!
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
Partager