1

ユーザーは自分の国名を入力する必要があります。問題は、すべての国名が異なる言語に翻訳されていることです。データベース内の名前と名前を比較するには、英語に再変換する必要があります。私はそれが好きでしたが、うまくいきません:

$translated_country = $this->get('translator')->trans($q_country, array(), null, 'en_US');
                $countries          = array("A, B, C");

                if( in_array($translated_country, $countries))
                {}

たとえば、messages.de.yml Germany : Deutschland を持っています。ユーザーが Deutschland に入ると、コードで Germany を取得します。

4

1 に答える 1

0

サポートする他の言語に翻訳された国ごとに、EN ロケールで一致する必要があります。

# messages.en.yml
deutschland: germany
Германия: germany
russland: russia
Россия: russia

# messages.de.yml
germany: deutschland
russia: russland

# messages.ru.yml
russia: Россия
germany: Германия

$toTranslate = 'deutschland';

$translator  = $this->get('translator');
$translation = $translator->trans($toTranslate, array(), null, 'en_US');

/** $translation should be 'germany' */
于 2013-09-30T20:42:01.233 に答える