/** * 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; }
public function testIsLanguageSelectionEnabledFalse() { Zend_Registry::get('Zend_Config')->supportedLanguages = 'de'; $this->assertEquals(array('de'), $this->config->getSupportedLanguages()); $this->assertFalse($this->config->isLanguageSelectionEnabled()); }