Вдохновленный ответом Ханнуна Яссира, я использую Intl как в поле типа страны.Код расширения ветки:
<?php
namespace Tbl\SagaBundle\Twig;
use Symfony\Component\Intl\Intl;
class CountryExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('countryName', array($this, 'countryName')),
);
}
public function countryName($countryCode){
return Intl::getRegionBundle()->getCountryName($countryCode);
}
public function getName()
{
return 'country_extension';
}
}
?>
Добавление расширения ветки в использование services.yml
# src/Acme/DemoBundle/Resources/config/services.yml
services:
acme.twig.acme_extension:
class: Acme\DemoBundle\Twig\CountryExtension
tags:
- { name: twig.extension }
в шаблоне (по умолчанию название страны будет отображаться в локали (см. Symfony /Component / Intl / ResourceBundle / RegionBundleInterface.php)
{{ user.countryCode|countryName }}
Большое спасибо Yassir, эта версия не использует локаль, которая устарела с версии 2.3 >> http://symfony.com/components/Locale