merged branch astina/fallback-locale-fix (PR #5746)
This PR was submitted for the master branch but it was merged into the 2.1 branch instead (closes #5746). Commits ------- 96d87ad [Locale] fixed fallback locale Discussion ---------- [Locale] fixed fallback locale The `getFallbackLocale()` method in `Symfony\Component\Locale\Locale` did not return a fallback locale if the current locale (`Locale::getDefault()`) was a 5-char locale like de_CH. `LocaleTest` failed when the locale was set to de_CH before running (see changes in LocaleTest). (second attempt after messing up PR#5641) --------------------------------------------------------------------------- by eriksencosta at 2012-10-15T05:08:25Z Original PR: #5641.
This commit is contained in:
commit
dba9bc3595
@ -285,12 +285,8 @@ class Locale extends \Locale
|
||||
*/
|
||||
protected static function getFallbackLocale($locale)
|
||||
{
|
||||
if ($locale === self::getDefault()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (false === $pos = strrpos($locale, '_')) {
|
||||
return self::getDefault();
|
||||
return null;
|
||||
}
|
||||
|
||||
return substr($locale, 0, $pos);
|
||||
|
@ -19,6 +19,9 @@ class LocaleTest extends LocaleTestCase
|
||||
public function testGetDisplayCountriesReturnsFullListForSubLocale()
|
||||
{
|
||||
$this->skipIfIntlExtensionIsNotLoaded();
|
||||
|
||||
Locale::setDefault('de_CH');
|
||||
|
||||
$countriesDe = Locale::getDisplayCountries('de');
|
||||
$countriesDeCh = Locale::getDisplayCountries('de_CH');
|
||||
|
||||
@ -30,6 +33,9 @@ class LocaleTest extends LocaleTestCase
|
||||
public function testGetDisplayLanguagesReturnsFullListForSubLocale()
|
||||
{
|
||||
$this->skipIfIntlExtensionIsNotLoaded();
|
||||
|
||||
Locale::setDefault('de_CH');
|
||||
|
||||
$languagesDe = Locale::getDisplayLanguages('de');
|
||||
$languagesDeCh = Locale::getDisplayLanguages('de_CH');
|
||||
|
||||
@ -41,6 +47,9 @@ class LocaleTest extends LocaleTestCase
|
||||
public function testGetDisplayLocalesReturnsFullListForSubLocale()
|
||||
{
|
||||
$this->skipIfIntlExtensionIsNotLoaded();
|
||||
|
||||
Locale::setDefault('de_CH');
|
||||
|
||||
$localesDe = Locale::getDisplayLocales('de');
|
||||
$localesDeCh = Locale::getDisplayLocales('de_CH');
|
||||
|
||||
|
Reference in New Issue
Block a user