Acesso mais Simples aos Dados do Componente Intl no Symfony 4.3

Andréia Bohner
1 min readApr 19, 2019

--

O projeto ICU (“International Components for Unicode”) é um conjunto amplamente utilizado de bibliotecas para fornecer suporte à globalização para aplicações. Como parte de sua missão, eles fornecem dados localizados comumente necessários em projetos (por exemplo, o nome de todos os países em todos os idiomas, o nome e os dados básicos de todas as moedas em todos os idiomas, etc.)

O componente Intl fornece os métodos necessários para acessar os dados localizados:

use Symfony\Component\Intl\Intl;

\Locale::setDefault('en');

$languages = Intl::getLanguageBundle()->getLanguageNames();
// => ['ab' => 'Abkhazian', ...]

$language = Intl::getLanguageBundle()->getLanguageName('de');
// => 'German'

$countries = Intl::getRegionBundle()->getCountryNames();
// => ['AF' => 'Afghanistan', ...]

$country = Intl::getRegionBundle()->getCountryName('GB');
// => 'United Kingdom'

$currency = Intl::getCurrencyBundle()->getCurrencyName('INR');
// => 'Indian Rupee'

$symbol = Intl::getCurrencyBundle()->getCurrencySymbol('INR');
// => '₹'

$fractionDigits = Intl::getCurrencyBundle()->getFractionDigits('INR');
// => 2

Embora funcione muito bem, no Symfony 4.3 ele foi melhorado para facilitar ainda mais e simplificar a estrutura de classes subjacente. O novo código é mais conciso e fácil de ler:

use Symfony\Component\Intl\Currencies;
use Symfony\Component\Intl\Languages;
use Symfony\Component\Intl\Regions;

\Locale::setDefault('en');

$languages = Languages::getNames();
// => ['ab' => 'Abkhazian', ...]

$language = Languages::getName('de');
// => 'German'

$countries = Regions::getNames();
// => ['AF' => 'Afghanistan', ...]

$country = Regions::getName('GB');
// => 'United Kingdom'

$currency = Currencies::getName('INR');
// => 'Indian Rupee'

$symbol = Currencies::getSymbol('INR');
// => '₹'

$fractionDigits = Currencies::getFractionDigits('INR');
// => 2

Tradução de: New in Symfony 4.3: Simpler access to Intl data

--

--