1

すべての国名で満たされた配列があり、この名前を翻訳したいのですが、方法がわかりません

私のコントローラーでは、次のことを行いました。

$countries = array("Afghanistan", "Albania", "Algeria", "Angola", ....);

return $this->render('xBundle:x:xs.html.twig', array('countries' => json_encode($countries))

そして、私のテンプレートには次のものがあります。

List : {{countries}}
4

1 に答える 1

3

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 の章を読んでください。

于 2013-09-12T12:43:37.377 に答える