public function testWhetherGetAvailableLocaleCodesReturnsAllAvailableLocaleCodes() { $expected = array(Translator::DEFAULT_LOCALE, 'de_DE', 'fr_FR'); $result = Translator::getAvailableLocaleCodes(); sort($expected); sort($result); $this->assertEquals($expected, $result, 'Translator::getAvailableLocaleCodes does not return all available locale codes'); }
/** * @see Form::createElements() */ public function createElements(array $formData) { $languages = array(); $languages['autodetect'] = sprintf($this->translate('Browser (%s)', 'preferences.form'), $this->getLocale()); foreach (Translator::getAvailableLocaleCodes() as $language) { $languages[$language] = $language; } $tzList = array(); $tzList['autodetect'] = sprintf($this->translate('Browser (%s)', 'preferences.form'), $this->getDefaultTimezone()); foreach (DateTimeZone::listIdentifiers() as $tz) { $tzList[$tz] = $tz; } $this->addElement('select', 'language', array('required' => true, 'label' => $this->translate('Your Current Language'), 'description' => $this->translate('Use the following language to display texts and messages'), 'multiOptions' => $languages, 'value' => substr(setlocale(LC_ALL, 0), 0, 5))); $this->addElement('select', 'timezone', array('required' => true, 'label' => $this->translate('Your Current Timezone'), 'description' => $this->translate('Use the following timezone for dates and times'), 'multiOptions' => $tzList, 'value' => $this->getDefaultTimezone())); if (Auth::getInstance()->hasPermission('application/stacktraces')) { $this->addElement('checkbox', 'show_stacktraces', array('required' => true, 'value' => $this->getDefaultShowStacktraces(), 'label' => $this->translate('Show Stacktraces'), 'description' => $this->translate('Set whether to show an exception\'s stacktrace.'))); } $this->addElement('checkbox', 'show_benchmark', array('required' => true, 'label' => $this->translate('Use benchmark'))); $this->addElement('checkbox', 'auto_refresh', array('required' => false, 'label' => $this->translate('Enable auto refresh'), 'description' => $this->translate('This option allows you to enable or to disable the global page content auto refresh'), 'value' => 1)); if ($this->store) { $this->addElement('submit', 'btn_submit_preferences', array('ignore' => true, 'label' => $this->translate('Save to the Preferences'), 'decorators' => array('ViewHelper'))); } $this->addElement('submit', 'btn_submit_session', array('ignore' => true, 'label' => $this->translate('Save for the current Session'), 'decorators' => array('ViewHelper'))); $this->setAttrib('data-progress-element', 'preferences-progress'); $this->addElement('note', 'preferences-progress', array('decorators' => array('ViewHelper', array('Spinner', array('id' => 'preferences-progress'))))); $this->addDisplayGroup(array('btn_submit_preferences', 'btn_submit_session', 'preferences-progress'), 'submit_buttons', array('decorators' => array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'control-group'))))); }
/** * @see Form::createElements() */ public function createElements(array $formData) { if (setlocale(LC_ALL, 0) === 'C') { $this->warning($this->translate('Your language setting is not applied because your platform is missing the corresponding locale.' . ' Make sure to install the correct language pack and restart your web server afterwards.'), false); } if (!(bool) Config::app()->get('themes', 'disabled', false)) { $themes = Icinga::app()->getThemes(); if (count($themes) > 1) { $defaultTheme = Config::app()->get('themes', 'default', StyleSheet::DEFAULT_THEME); if (isset($themes[$defaultTheme])) { $themes[$defaultTheme] .= ' (' . $this->translate('default') . ')'; } $this->addElement('select', 'theme', array('label' => $this->translate('Theme', 'Form element label'), 'multiOptions' => $themes, 'value' => $this->preferences->getValue('icingaweb', 'theme', $defaultTheme))); } } $languages = array(); $languages['autodetect'] = sprintf($this->translate('Browser (%s)', 'preferences.form'), $this->getLocale()); foreach (Translator::getAvailableLocaleCodes() as $language) { $languages[$language] = $language; } $tzList = array(); $tzList['autodetect'] = sprintf($this->translate('Browser (%s)', 'preferences.form'), $this->getDefaultTimezone()); foreach (DateTimeZone::listIdentifiers() as $tz) { $tzList[$tz] = $tz; } $this->addElement('select', 'language', array('required' => true, 'label' => $this->translate('Your Current Language'), 'description' => $this->translate('Use the following language to display texts and messages'), 'multiOptions' => $languages, 'value' => substr(setlocale(LC_ALL, 0), 0, 5))); $this->addElement('select', 'timezone', array('required' => true, 'label' => $this->translate('Your Current Timezone'), 'description' => $this->translate('Use the following timezone for dates and times'), 'multiOptions' => $tzList, 'value' => $this->getDefaultTimezone())); if (Auth::getInstance()->hasPermission('application/stacktraces')) { $this->addElement('checkbox', 'show_stacktraces', array('required' => true, 'value' => $this->getDefaultShowStacktraces(), 'label' => $this->translate('Show Stacktraces'), 'description' => $this->translate('Set whether to show an exception\'s stacktrace.'))); } $this->addElement('checkbox', 'show_benchmark', array('required' => true, 'label' => $this->translate('Use benchmark'))); $this->addElement('checkbox', 'auto_refresh', array('required' => false, 'label' => $this->translate('Enable auto refresh'), 'description' => $this->translate('This option allows you to enable or to disable the global page content auto refresh'), 'value' => 1)); if ($this->store) { $this->addElement('submit', 'btn_submit_preferences', array('ignore' => true, 'label' => $this->translate('Save to the Preferences'), 'decorators' => array('ViewHelper'))); } $this->addElement('submit', 'btn_submit_session', array('ignore' => true, 'label' => $this->translate('Save for the current Session'), 'decorators' => array('ViewHelper'))); $this->setAttrib('data-progress-element', 'preferences-progress'); $this->addElement('note', 'preferences-progress', array('decorators' => array('ViewHelper', array('Spinner', array('id' => 'preferences-progress'))))); $this->addDisplayGroup(array('btn_submit_preferences', 'btn_submit_session', 'preferences-progress'), 'submit_buttons', array('decorators' => array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'control-group'))))); }