/**
  * Get an instance of the view helper.
  *
  * @return Application_View_Helper_LanguageSelector
  */
 public function languageSelector()
 {
     if (isset($this->view->languageSelectorDisabled) && $this->view->languageSelectorDisabled === true) {
         return null;
     }
     $returnParams = Zend_Controller_Action_HelperBroker::getStaticHelper('ReturnParams');
     $currentLocale = new Zend_Locale(Zend_Registry::get('Zend_Translate')->getLocale());
     $configHelper = new Application_Configuration();
     // only show languages that are present in resources and activated in configuration
     $translations = Zend_Registry::get('Zend_Translate')->getList();
     $supportedLang = $configHelper->getSupportedLanguages();
     $translations = array_intersect($translations, $supportedLang);
     $result = array();
     foreach ($translations as $translation) {
         if ($currentLocale->getLanguage() !== $translation) {
             $languageName = $currentLocale->getTranslation($translation, 'language', $translation);
             $languageUrl = $this->view->url(array_merge(array('action' => 'language', 'controller' => 'index', 'module' => 'home', 'language' => $translation), $returnParams->getReturnParameters()), null, true);
             array_push($result, array('name' => htmlspecialchars($languageName), 'url' => $languageUrl));
         }
     }
     return $result;
 }
Example #2
0
 public function testIsLanguageSelectionEnabledFalse()
 {
     Zend_Registry::get('Zend_Config')->supportedLanguages = 'de';
     $this->assertEquals(array('de'), $this->config->getSupportedLanguages());
     $this->assertFalse($this->config->isLanguageSelectionEnabled());
 }