Exemplo n.º 1
0
 /**
  * Get options array for locale dropdown
  *
  * @param   bool $translatedName translation flag
  * @return  array
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 protected function _getOptionLocales($translatedName = false)
 {
     $currentLocale = $this->localeResolver->getLocale();
     $locales = \ResourceBundle::getLocales('') ?: [];
     $languages = (new LanguageBundle())->get($currentLocale)['Languages'];
     $countries = (new RegionBundle())->get($currentLocale)['Countries'];
     $options = [];
     $allowedLocales = $this->_config->getAllowedLocales();
     foreach ($locales as $locale) {
         if (!in_array($locale, $allowedLocales)) {
             continue;
         }
         $language = \Locale::getPrimaryLanguage($locale);
         $country = \Locale::getRegion($locale);
         if (!$languages[$language] || !$countries[$country]) {
             continue;
         }
         if ($translatedName) {
             $label = ucwords(\Locale::getDisplayLanguage($locale, $locale)) . ' (' . \Locale::getDisplayRegion($locale, $locale) . ') / ' . $languages[$language] . ' (' . $countries[$country] . ')';
         } else {
             $label = $languages[$language] . ' (' . $countries[$country] . ')';
         }
         $options[] = ['value' => $locale, 'label' => $label];
     }
     return $this->_sortOptionArray($options);
 }
Exemplo n.º 2
0
 public function getStrictDomainDataProvider()
 {
     ini_set('memory_limit', '6G');
     // All available locales
     $locales = \ResourceBundle::getLocales('');
     // Fake locales
     $locales[] = 'xx_XX_XXXX';
     $locales[] = 'en_XX';
     $locales[] = 'en_US_XXXX';
     $locales[] = 'xx_Cyrl';
     // Invalid locales
     $locales[] = 'foobarfoobarfoobar';
     $locales[] = 'foo bar';
     // All available currencies
     $currencies = [];
     $currencyResources = \ResourceBundle::create('en', 'ICUDATA-curr', true);
     $currencySymbols = $currencyResources->get('Currencies');
     foreach ($currencySymbols as $currencyCode => $bundle) {
         $currencies[] = $currencyCode;
     }
     $data = [];
     foreach ($locales as $locale) {
         foreach ($currencies as $currencyCode) {
             $data[] = [$locale, $currencyCode];
         }
     }
     return $data;
 }
 /**
  * Return array of locales, supported by the theme
  *
  * @param \Magento\Framework\View\Design\ThemeInterface $theme
  * @return array
  */
 protected static function _getThemeLocales(\Magento\Framework\View\Design\ThemeInterface $theme)
 {
     $result = [];
     $patternDir = self::_getLocalePatternDir($theme);
     foreach (\ResourceBundle::getLocales('') as $locale) {
         $dir = str_replace('<locale_placeholder>', $locale, $patternDir);
         if (is_dir($dir)) {
             $result[] = $locale;
         }
     }
     return $result;
 }
Exemplo n.º 4
0
 /**
  * Retrieve list of locales
  *
  * @return  array
  */
 public function getLocaleList()
 {
     $languages = (new LanguageBundle())->get(Resolver::DEFAULT_LOCALE)['Languages'];
     $countries = (new RegionBundle())->get(Resolver::DEFAULT_LOCALE)['Countries'];
     $locales = \ResourceBundle::getLocales('') ?: [];
     $list = [];
     foreach ($locales as $locale) {
         if (!in_array($locale, $this->allowedLocales)) {
             continue;
         }
         $language = \Locale::getPrimaryLanguage($locale);
         $country = \Locale::getRegion($locale);
         if (!$languages[$language] || !$countries[$country]) {
             continue;
         }
         $list[$locale] = $languages[$language] . ' (' . $countries[$country] . ')';
     }
     asort($list);
     return $list;
 }
Exemplo n.º 5
0
 public function index()
 {
     \CI::load()->helper('form');
     \CI::load()->library('form_validation');
     //set defaults
     $data = ['company_name' => '', 'theme' => 'default', 'homepage' => '', 'products_per_page' => '24', 'default_meta_keywords' => '', 'default_meta_description' => '', 'sendmail_path' => '/usr/sbin/sendmail -bs', 'email_from' => '', 'email_to' => '', 'email_method' => 'Mail', 'smtp_server' => '', 'smtp_username' => '', 'smtp_password' => '', 'smtp_port' => '25', 'country_id' => '', 'city' => '', 'address1' => '', 'address2' => '', 'zone_id' => '', 'zip' => '', 'locale' => locale_get_default(), 'timezone' => date_default_timezone_get(), 'currency_iso' => 'USD', 'ssl_support' => '', 'stage_username' => '', 'stage_password' => '', 'require_login' => '', 'new_customer_status' => '1', 'weight_unit' => 'LB', 'dimension_unit' => 'IN', 'order_status' => '', 'inventory_enabled' => '', 'allow_os_purchase' => '', 'tax_address' => '', 'tax_shipping' => ''];
     \CI::form_validation()->set_rules('company_name', 'lang:company_name', 'required');
     \CI::form_validation()->set_rules('default_meta_keywords', 'lang:default_meta_keywords', 'trim|strip_tags');
     \CI::form_validation()->set_rules('default_meta_description', 'lang:default_meta_description', 'trim|strip_tags');
     \CI::form_validation()->set_rules('theme', 'lang:theme', 'required');
     \CI::form_validation()->set_rules('homepage', 'lang:select_homepage');
     \CI::form_validation()->set_rules('products_per_page', 'lang:products_per_page');
     \CI::form_validation()->set_rules('email_from', 'lang:email_from', 'required|valid_email');
     \CI::form_validation()->set_rules('email_to', 'lang:email_to', 'required|valid_email');
     \CI::form_validation()->set_rules('email_method', 'lang:email_method', 'required');
     if (\CI::input()->post('email_method') == 'smtp') {
         \CI::form_validation()->set_rules('smtp_server', 'lang:smtp_server', 'required');
         \CI::form_validation()->set_rules('smtp_username', 'lang:smtp_username', 'required');
         \CI::form_validation()->set_rules('smtp_password', 'lang:smtp_password', 'required');
         \CI::form_validation()->set_rules('smtp_port', 'lang:smtp_port', 'required');
     } elseif (\CI::input()->post('email_method') == 'sendmail') {
         \CI::form_validation()->set_rules('sendmail_path', 'lang:sendmail_path', 'required');
     }
     \CI::form_validation()->set_rules('country_id', 'lang:country');
     \CI::form_validation()->set_rules('address1', 'lang:address');
     \CI::form_validation()->set_rules('address2', 'lang:address');
     \CI::form_validation()->set_rules('zone_id', 'lang:state');
     \CI::form_validation()->set_rules('zip', 'lang:zip');
     \CI::form_validation()->set_rules('locale', 'lang:locale', 'required');
     \CI::form_validation()->set_rules('timezone', 'lang:timezone', 'required');
     \CI::form_validation()->set_rules('currency_iso', 'lang:currency', 'required');
     \CI::form_validation()->set_rules('ssl_support', 'lang:ssl_support');
     \CI::form_validation()->set_rules('stage', 'lang:stage');
     \CI::form_validation()->set_rules('stage_username', 'lang:stage_username');
     \CI::form_validation()->set_rules('stage_password', 'lang:stage_password');
     \CI::form_validation()->set_rules('require_login', 'lang:require_login');
     \CI::form_validation()->set_rules('new_customer_status', 'lang:new_customer_status');
     \CI::form_validation()->set_rules('weight_unit', 'lang:weight_unit');
     \CI::form_validation()->set_rules('order_status', 'lang:order_status');
     \CI::form_validation()->set_rules('inventory_enabled', 'lang:inventory_enabled');
     \CI::form_validation()->set_rules('allow_os_purchase', 'lang:allow_os_purchase');
     \CI::form_validation()->set_rules('tax_address', 'lang:tax_address');
     \CI::form_validation()->set_rules('tax_shipping', 'lang:tax_shipping');
     // get the values from the DB
     $data = array_merge($data, \CI::Settings()->get_settings('gocart'));
     $data['config'] = $data;
     //break out order statuses to an array
     //get installed themes
     $data['themes'] = [];
     $themePath = FCPATH . 'themes/';
     if ($handle = opendir($themePath)) {
         while (false !== ($entry = readdir($handle))) {
             if ($entry != "." && $entry != ".." && is_dir($themePath . $entry)) {
                 $data['themes'][$entry] = $entry;
             }
         }
         closedir($handle);
     }
     asort($data['themes']);
     //get locales
     $locales = \ResourceBundle::getLocales('');
     $data['locales'] = [];
     foreach ($locales as $locale) {
         $data['locales'][$locale] = locale_get_display_name($locale);
     }
     asort($data['locales']);
     //get ISO 4217 codes
     $data['iso_4217'] = [];
     $iso_4217 = json_decode(json_encode(simplexml_load_file(FCPATH . 'ISO_4217.xml')));
     $iso_4217 = $iso_4217->CcyTbl->CcyNtry;
     foreach ($iso_4217 as $iso_code) {
         if (isset($iso_code->Ccy)) {
             $data['iso_4217'][$iso_code->Ccy] = $iso_code->Ccy;
         }
     }
     asort($data['iso_4217']);
     $data['countries_menu'] = \CI::Locations()->get_countries_menu();
     if (!empty($data['country_id'])) {
         $data['zones_menu'] = \CI::Locations()->get_zones_menu($data['country_id']);
     } else {
         $countries_menu = array_keys($data['countries_menu']);
         $data['zones_menu'] = \CI::Locations()->get_zones_menu(array_shift($countries_menu));
     }
     $data['page_title'] = lang('common_gocart_configuration');
     $pages = \CI::Pages()->get_pages_tiered();
     $data['pages'] = [];
     foreach ($pages['all'] as $page) {
         if (empty($page->url)) {
             $data['pages'][$page->id] = $page->title;
         }
     }
     if (\CI::form_validation()->run() == FALSE) {
         $data['error'] = validation_errors();
         $this->view('settings', $data);
     } else {
         \CI::session()->set_flashdata('message', lang('config_updated_message'));
         $save = \CI::input()->post();
         //fix boolean values
         $save['ssl_support'] = (bool) \CI::input()->post('ssl_support');
         $save['require_login'] = (bool) \CI::input()->post('require_login');
         $save['new_customer_status'] = \CI::input()->post('new_customer_status');
         $save['allow_os_purchase'] = (bool) \CI::input()->post('allow_os_purchase');
         $save['tax_shipping'] = (bool) \CI::input()->post('tax_shipping');
         $save['homepage'] = \CI::input()->post('homepage');
         \CI::Settings()->save_settings('gocart', $save);
         redirect('admin/settings');
     }
 }
Exemplo n.º 6
0
<?php

var_dump(count(\ResourceBundle::getLocales('')) > 0);
Exemplo n.º 7
0
<?php

$r = new ResourceBundle('en', 'ICUDATA');
$r->count();
$r->getErrorCode();
$r->getErrorMessage();
$r->get(0);
ResourceBundle::getLocales('');
resourcebundle_get($r, 0);
resourcebundle_locales('');
 public function actionSuggestLocale($term)
 {
     $result = [];
     $locales = \ResourceBundle::getLocales('');
     foreach ($locales as $locale) {
         if ($term !== '' && strncasecmp($term, $locale, min(strlen($term), strlen($locale))) === 0) {
             $result[] = $locale;
         }
     }
     Yii::$app->response->format = Response::FORMAT_JSON;
     return $result;
 }
Exemplo n.º 9
0
 function index()
 {
     $this->load->helper('form');
     $this->load->library('form_validation');
     $this->form_validation->set_rules('company_name', 'lang:company_name', 'required');
     $this->form_validation->set_rules('theme', 'lang:theme', 'required');
     $this->form_validation->set_rules('email', 'lang:cart_email', 'required|valid_email');
     $this->form_validation->set_rules('country_id', 'lang:country');
     $this->form_validation->set_rules('address1', 'lang:address');
     $this->form_validation->set_rules('address2', 'lang:address');
     $this->form_validation->set_rules('zone_id', 'lang:state');
     $this->form_validation->set_rules('zip', 'lang:zip');
     $this->form_validation->set_rules('locale', 'lang:locale', 'required');
     $this->form_validation->set_rules('currency_iso', 'lang:currency', 'required');
     $data = $this->Settings_model->get_settings('gocart');
     $data['config'] = $data;
     //break out order statuses to an array
     //get installed themes
     $data['themes'] = array();
     if ($handle = opendir(FCPATH . APPPATH . '/themes')) {
         while (false !== ($entry = readdir($handle))) {
             if ($entry != "." && $entry != ".." && is_dir(FCPATH . APPPATH . '/themes/' . $entry)) {
                 $data['themes'][$entry] = $entry;
             }
         }
         closedir($handle);
     }
     asort($data['themes']);
     //get locales
     $locales = ResourceBundle::getLocales('');
     $data['locales'] = array();
     foreach ($locales as $locale) {
         $data['locales'][$locale] = locale_get_display_name($locale);
     }
     asort($data['locales']);
     //get ISO 4217 codes
     $data['iso_4217'] = array();
     $iso_4217 = json_decode(json_encode(simplexml_load_file(FCPATH . 'ISO_4217.xml')));
     $iso_4217 = $iso_4217->CcyTbl->CcyNtry;
     foreach ($iso_4217 as $iso_code) {
         if (isset($iso_code->Ccy)) {
             $data['iso_4217'][$iso_code->Ccy] = $iso_code->Ccy;
         }
     }
     asort($data['iso_4217']);
     $data['countries_menu'] = $this->Location_model->get_countries_menu();
     if (!empty($data['country_id'])) {
         $data['zones_menu'] = $this->Location_model->get_zones_menu($data['country_id']);
     } else {
         $data['zones_menu'] = $this->Location_model->get_zones_menu(array_shift(array_keys($data['countries_menu'])));
     }
     $data['page_title'] = lang('common_gocart_configuration');
     if ($this->form_validation->run() == FALSE) {
         $data['error'] = validation_errors();
         $this->view($this->config->item('admin_folder') . '/settings', $data);
     } else {
         $this->session->set_flashdata('message', lang('config_updated_message'));
         $save = $this->input->post();
         //fix boolean values
         $save['ssl_support'] = $this->input->post('ssl_support');
         $save['require_login'] = $this->input->post('require_login');
         $save['new_customer_status'] = $this->input->post('new_customer_status');
         $save['allow_os_purchase'] = $this->input->post('allow_os_purchase');
         $save['tax_shipping'] = $this->input->post('tax_shipping');
         $this->Settings_model->save_settings('gocart', $save);
         redirect(config_item('admin_folder') . '/settings');
     }
 }