예제 #1
0
 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');
 }
예제 #2
0
 /**
  * @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')))));
 }
예제 #3
0
 /**
  * @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')))));
 }