diff --git a/extra/intl-extra/src/IntlExtension.php b/extra/intl-extra/src/IntlExtension.php index 8bf122605e..acf928ad94 100644 --- a/extra/intl-extra/src/IntlExtension.php +++ b/extra/intl-extra/src/IntlExtension.php @@ -13,6 +13,7 @@ use Symfony\Component\Intl\Countries; use Symfony\Component\Intl\Currencies; +use Symfony\Component\Intl\Exception\MissingResourceException; use Symfony\Component\Intl\Languages; use Symfony\Component\Intl\Locales; use Symfony\Component\Intl\Timezones; @@ -156,37 +157,65 @@ public function getFunctions() public function getCountryName(string $country, string $locale = null): string { - return Countries::getName($country, $locale); + try { + return Countries::getName($country, $locale); + } catch (MissingResourceException $exception) { + return $country; + } } public function getCurrencyName(string $currency, string $locale = null): string { - return Currencies::getName($currency, $locale); + try { + return Currencies::getName($currency, $locale); + } catch (MissingResourceException $exception) { + return $currency; + } } public function getCurrencySymbol(string $currency, string $locale = null): string { - return Currencies::getSymbol($currency, $locale); + try { + return Currencies::getSymbol($currency, $locale); + } catch (MissingResourceException $exception) { + return $currency; + } } public function getLanguageName(string $language, string $locale = null): string { - return Languages::getName($language, $locale); + try { + return Languages::getName($language, $locale); + } catch (MissingResourceException $exception) { + return $language; + } } public function getLocaleName(string $data, string $locale = null): string { - return Locales::getName($data, $locale); + try { + return Locales::getName($data, $locale); + } catch (MissingResourceException $exception) { + return $data; + } } public function getTimezoneName(string $timezone, string $locale = null): string { - return Timezones::getName($timezone, $locale); + try { + return Timezones::getName($timezone, $locale); + } catch (MissingResourceException $exception) { + return $timezone; + } } public function getCountryTimezones(string $country): array { - return Timezones::forCountryCode($country); + try { + return Timezones::forCountryCode($country); + } catch (MissingResourceException $exception) { + return []; + } } public function formatCurrency($amount, string $currency, array $attrs = [], string $locale = null): string diff --git a/extra/intl-extra/tests/Fixtures/country_name.test b/extra/intl-extra/tests/Fixtures/country_name.test index d1b729dd1b..ffda0c5641 100644 --- a/extra/intl-extra/tests/Fixtures/country_name.test +++ b/extra/intl-extra/tests/Fixtures/country_name.test @@ -1,6 +1,7 @@ --TEST-- "country_name" filter --TEMPLATE-- +{{ 'UNKNOWN'|country_name }} {{ 'FR'|country_name }} {{ 'US'|country_name }} {{ 'US'|country_name('fr') }} @@ -8,7 +9,8 @@ --DATA-- return []; --EXPECT-- +UNKNOWN France United States États-Unis -Suisse +Suisse \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/country_timezones.test b/extra/intl-extra/tests/Fixtures/country_timezones.test index 224b80eab0..cd20bfb347 100644 --- a/extra/intl-extra/tests/Fixtures/country_timezones.test +++ b/extra/intl-extra/tests/Fixtures/country_timezones.test @@ -1,10 +1,12 @@ --TEST-- "country_timezones" function --TEMPLATE-- +{{ country_timezones('UNKNOWN')|length }} {{ country_timezones('FR')|join(', ') }} {{ country_timezones('US')|join(', ') }} --DATA-- return []; --EXPECT-- +0 Europe/Paris -America/Adak, America/Anchorage, America/Boise, America/Chicago, America/Denver, America/Detroit, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Indianapolis, America/Juneau, America/Kentucky/Monticello, America/Los_Angeles, America/Louisville, America/Menominee, America/Metlakatla, America/New_York, America/Nome, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Phoenix, America/Sitka, America/Yakutat, Pacific/Honolulu +America/Adak, America/Anchorage, America/Boise, America/Chicago, America/Denver, America/Detroit, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Indianapolis, America/Juneau, America/Kentucky/Monticello, America/Los_Angeles, America/Louisville, America/Menominee, America/Metlakatla, America/New_York, America/Nome, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Phoenix, America/Sitka, America/Yakutat, Pacific/Honolulu \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/currency_name.test b/extra/intl-extra/tests/Fixtures/currency_name.test index d0e1cf4aa2..47c0ddc95a 100644 --- a/extra/intl-extra/tests/Fixtures/currency_name.test +++ b/extra/intl-extra/tests/Fixtures/currency_name.test @@ -1,6 +1,7 @@ --TEST-- "currency_name" filter --TEMPLATE-- +{{ 'UNKNOWN'|currency_name }} {{ 'EUR'|currency_name }} {{ 'JPY'|currency_name }} {{ 'EUR'|currency_name('fr') }} @@ -8,7 +9,8 @@ --DATA-- return []; --EXPECT-- +UNKNOWN Euro Japanese Yen euro -yen japonais +yen japonais \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/currency_symbol.test b/extra/intl-extra/tests/Fixtures/currency_symbol.test index 9212d43169..fc1ac9d79a 100644 --- a/extra/intl-extra/tests/Fixtures/currency_symbol.test +++ b/extra/intl-extra/tests/Fixtures/currency_symbol.test @@ -1,10 +1,12 @@ --TEST-- "currency_symbol" filter --TEMPLATE-- +{{ 'UNKNOWN'|currency_symbol }} {{ 'EUR'|currency_symbol }} {{ 'JPY'|currency_symbol }} --DATA-- return []; --EXPECT-- +UNKNOWN € -¥ +¥ \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/language_name.test b/extra/intl-extra/tests/Fixtures/language_name.test index 8339ae90b7..b166d92bc2 100644 --- a/extra/intl-extra/tests/Fixtures/language_name.test +++ b/extra/intl-extra/tests/Fixtures/language_name.test @@ -1,6 +1,7 @@ --TEST-- "language_name" filter --TEMPLATE-- +{{ 'UNKNOWN'|language_name }} {{ 'de'|language_name }} {{ 'fr'|language_name }} {{ 'de'|language_name('fr') }} @@ -9,8 +10,9 @@ --DATA-- return []; --EXPECT-- +UNKNOWN German French allemand français -français canadien +français canadien \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/locale_name.test b/extra/intl-extra/tests/Fixtures/locale_name.test index e3dc5694cf..5617abb3bc 100644 --- a/extra/intl-extra/tests/Fixtures/locale_name.test +++ b/extra/intl-extra/tests/Fixtures/locale_name.test @@ -1,6 +1,7 @@ --TEST-- "locale_name" filter --TEMPLATE-- +{{ 'UNKNOWN'|locale_name }} {{ 'de'|locale_name }} {{ 'fr'|locale_name }} {{ 'de'|locale_name('fr') }} @@ -9,8 +10,9 @@ --DATA-- return []; --EXPECT-- +UNKNOWN German French allemand français -français (Canada) +français (Canada) \ No newline at end of file diff --git a/extra/intl-extra/tests/Fixtures/timezone_name.test b/extra/intl-extra/tests/Fixtures/timezone_name.test index 501a40ad26..7ca9200aa1 100644 --- a/extra/intl-extra/tests/Fixtures/timezone_name.test +++ b/extra/intl-extra/tests/Fixtures/timezone_name.test @@ -1,12 +1,14 @@ --TEST-- "timezone_name" filter --TEMPLATE-- +{{ 'UNKNOWN'|timezone_name }} {{ 'Europe/Paris'|timezone_name }} {{ 'America/Los_Angeles'|timezone_name }} {{ 'America/Los_Angeles'|timezone_name('fr') }} --DATA-- return []; --EXPECT-- +UNKNOWN Central European Time (Paris) Pacific Time (Los Angeles) -heure du Pacifique nord-américain (Los Angeles) +heure du Pacifique nord-américain (Los Angeles) \ No newline at end of file