/** * {@inheritdoc} */ public function getList($locale = null) { if ($this->countryRepository) { $countryNames = $this->countryRepository->getList($locale); } else { $locale = LocaleHelper::canonicalize($locale); // symfony/intl uses underscores. $locale = str_replace('-', '_', $locale); $countryNames = $this->regionBundle->getCountryNames($locale); } return $countryNames; }
/** * {@inheritdoc} */ public function getList(array $parents, $locale = null) { $definitions = $this->loadDefinitions($parents); if (empty($definitions)) { return []; } $definitionLocale = isset($definitions['locale']) ? $definitions['locale'] : ''; $useLocalName = LocaleHelper::match($locale, $definitionLocale); $list = []; foreach ($definitions['subdivisions'] as $code => $definition) { $list[$code] = $useLocalName ? $definition['local_name'] : $definition['name']; } return $list; }
/** * Processes the locale string. */ function process_locale($locale) { // Be more precise when it comes to Chinese Simplified. if ($locale == 'zh') { $locale = 'zh-hans'; } return LocaleHelper::canonicalize($locale); }
/** * @covers ::getVariants */ public function testGetVariants() { $variants = LocaleHelper::getVariants('bs-Cyrl-BA'); $this->assertEquals(['bs-Cyrl-BA', 'bs-Cyrl', 'bs'], $variants); }
/** * Gets the address values used to build the view. * * @param AddressInterface $address The address. * @param AddressFormat $addressFormat The address format. * * @return array The values, keyed by address field. */ protected function getValues(AddressInterface $address, AddressFormat $addressFormat) { $values = []; foreach (AddressField::getAll() as $field) { $getter = 'get' . ucfirst($field); $values[$field] = $address->{$getter}(); } // Replace the subdivision values with the names of any predefined ones. $originalValues = []; $subdivisionFields = $addressFormat->getUsedSubdivisionFields(); $parents = []; foreach ($subdivisionFields as $index => $field) { if (empty($values[$field])) { // This level is empty, so there can be no sublevels. break; } $parents[] = $index ? $originalValues[$subdivisionFields[$index - 1]] : $address->getCountryCode(); $subdivision = $this->subdivisionRepository->get($values[$field], $parents); if (!$subdivision) { break; } // Remember the original value so that it can be used for $parents. $originalValues[$field] = $values[$field]; // Replace the value with the expected code. $useLocalName = LocaleHelper::match($address->getLocale(), $subdivision->getLocale()); $values[$field] = $useLocalName ? $subdivision->getLocalCode() : $subdivision->getCode(); if (!$subdivision->hasChildren()) { // The current subdivision has no children, stop. break; } } return $values; }