symfony 2.3 以降、国名は Intl とRegionBundleを使用して翻訳できます。
デフォルトで返される配列はgetCountryNames()
次のようになります。
=> array('AF' => 'アフガニスタン', ...)
国名だけに興味がある場合は、次のようなものを使用します。
use Symfony\Component\Intl\Intl;
// get all country names in locale "locale"
$countries = array_values(Intl::getRegionBundle()->getCountryNames('de'));
// get all country names for current locale
$countries = array_values(Intl::getRegionBundle()->getCountryNames());
... トランスレータを使用して配列を変換したいだけの場合。
$translator = $this->get('translator');
foreach ($countries as $key => $country) {
$countries[$key] = $translator->trans($country, array(), null, 'de');
}
Translator API ドキュメントを参照し、クックブックの Translations の章を読んでください。