Ejemplo n.º 1
0
function format_country($country_iso, $culture = null)
{
    $c = sfCultureInfo::getInstance($culture === null ? sfContext::getInstance()->getUser()->getCulture() : $culture);
    $countries = $c->getCountries();
    if (!isset($countries[$country_iso])) {
        $c = new sfCultureInfo(sfConfig::get('sf_default_culture'));
        $countries = $c->getCountries();
    }
    return isset($countries[$country_iso]) ? $countries[$country_iso] : $country_iso;
}
 /**
  * Set the country list via the sfCultureInfo system.
  * @return void
  */
 protected function setCountriesFromCultureInfo()
 {
     $c = new sfCultureInfo(sfContext::getInstance()->getUser()->getCulture());
     $countries = $c->getCountries();
     foreach ($countries as $key => $value) {
         if (is_int($key)) {
             unset($countries[$key]);
         }
     }
     unset($countries['ZZ']);
     $countries = array('' => '--') + $countries;
     $this->setCountries($countries);
 }
 /**
  * Configures the current validator.
  *
  * Available options:
  *
  *  * culture:   The culture to use for internationalized strings (required)
  *  * countries: An array of country codes to use (ISO 3166)
  *
  * @param array $options   An array of options
  * @param array $messages  An array of error messages
  *
  * @see sfValidatorChoice
  */
 protected function configure($options = array(), $messages = array())
 {
     parent::configure($options, $messages);
     $this->addRequiredOption('culture');
     $this->addOption('countries');
     // populate choices with all countries
     $culture = isset($options['culture']) ? $options['culture'] : 'en';
     $cultureInfo = new sfCultureInfo($culture);
     $countries = array_keys($cultureInfo->getCountries());
     // restrict countries to a sub-set
     if (isset($options['countries'])) {
         if ($problems = array_diff($options['countries'], $countries)) {
             throw new InvalidArgumentException(sprintf('The following countries do not exist: %s.', implode(', ', $problems)));
         }
         $countries = $options['countries'];
     }
     sort($countries);
     $this->setOption('choices', $countries);
 }
Ejemplo n.º 4
0
function format_country($country_iso, $culture = null)
{
    $c = new sfCultureInfo($culture === null ? sfContext::getInstance()->getUser()->getCulture() : $culture);
    $countries = $c->getCountries();
    return isset($countries[$country_iso]) ? $countries[$country_iso] : '';
}
Ejemplo n.º 5
0
/**
 * Returns a <select> tag populated with all the countries in the world.
 *
 * The select_country_tag builds off the traditional select_tag function, and is conveniently populated with
 * all the countries in the world (sorted alphabetically). Each option in the list has a two-character country
 * code for its value and the country's name as its display title.  The country data is retrieved via the sfCultureInfo
 * class, which stores a wide variety of i18n and i10n settings for various countries and cultures throughout the world.
 * Here's an example of an <option> tag generated by the select_country_tag:
 *
 * <samp>
 *  <option value="US">United States</option>
 * </samp>
 *
 * <b>Examples:</b>
 * <code>
 *  echo select_country_tag('country', 'FR');
 * </code>
 *
 * @param  string field name
 * @param  string selected field value (two-character country code)
 * @param  array  additional HTML compliant <select> tag parameters
 * @return string <select> tag populated with all the countries in the world.
 * @see select_tag, options_for_select, sfCultureInfo
 */
function select_country_tag($name, $selected = null, $options = array())
{
    $c = new sfCultureInfo(sfContext::getInstance()->getUser()->getCulture());
    $countries = $c->getCountries();
    if ($country_option = _get_option($options, 'countries')) {
        foreach ($countries as $key => $value) {
            if (!in_array($key, $country_option)) {
                unset($countries[$key]);
            }
        }
    }
    asort($countries);
    $option_tags = options_for_select($countries, $selected, $options);
    return select_tag($name, $option_tags, $options);
}
Ejemplo n.º 6
0
 public static function getCountry($iso, $culture)
 {
     $c = new sfCultureInfo($culture);
     $countries = $c->getCountries();
     return array_key_exists($iso, $countries) ? $countries[$iso] : '';
 }
$languages_en = $c_en->getLanguages();
$languages_fr = $c_fr->getLanguages();
$t->is($languages_en['fr'], 'French', '->getLanguages() returns a list of languages in the language of the localized version');
$t->is($languages_fr['fr'], 'français', '->getLanguages() returns a list of languages in the language of the localized version');
$t->is($languages_en, $c_en->Languages, '->getLanguages() is equivalent to ->Languages');
// ->getCurrencies()
$t->diag('->getCurrencies()');
$currencies_en = $c_en->getCurrencies();
$currencies_fr = $c_fr->getCurrencies();
$t->is($currencies_en['EUR'][1], 'Euro', '->getCurrencies() returns a list of currencies in the language of the localized version');
$t->is($currencies_fr['EUR'][1], 'euro', '->getCurrencies() returns a list of currencies in the language of the localized version');
$t->is($currencies_en, $c_en->Currencies, '->getCurrencies() is equivalent to ->Currencies');
// ->getCountries()
$t->diag('->getCountries()');
$countries_en = $c_en->getCountries();
$countries_fr = $c_fr->getCountries();
$t->is($countries_en['ES'], 'Spain', '->getCountries() returns a list of countries in the language of the localized version');
$t->is($countries_fr['ES'], 'Espagne', '->getCountries() returns a list of countries in the language of the localized version');
$t->is($countries_en, $c_en->Countries, '->getCountries() is equivalent to ->Countries');
// ->getScripts()
$t->diag('->getScripts()');
$scripts_en = $c_en->getScripts();
$scripts_fr = $c_fr->getScripts();
$t->is($scripts_en['Arab'], 'Arabic', '->getScripts() returns a list of scripts in the language of the localized version');
$t->is($scripts_fr['Arab'], 'arabe', '->getScripts() returns a list of scripts in the language of the localized version');
$t->is($scripts_en, $c_en->Scripts, '->getScripts() is equivalent to ->Scripts');
// ->getTimeZones()
$t->diag('->getTimeZones()');
$time_zones_en = $c_en->getTimeZones();
$time_zones_fr = $c_fr->getTimeZones();
$t->is($time_zones_en[1][0], 'America/Los_Angeles', '->getTimeZones() returns a list of time zones in the language of the localized version');
Ejemplo n.º 8
0
 /**
  * Gets a country name.
  *
  * @param  string $iso      The ISO code
  * @param  string $culture  The culture for the translation
  *
  * @return string The country name
  */
 public function getCountry($iso, $culture = null)
 {
     $c = new sfCultureInfo(is_null($culture) ? $this->culture : $culture);
     $countries = $c->getCountries();
     return array_key_exists($iso, $countries) ? $countries[$iso] : '';
 }