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 回答