Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从trans()Symfony 2中获取原始单词_Symfony_Translation - Fatal编程技术网

如何从trans()Symfony 2中获取原始单词

如何从trans()Symfony 2中获取原始单词,symfony,translation,Symfony,Translation,用户应该给出他的国家名称,问题是所有国家的名称都被翻译成不同的语言,我必须重新翻译成英语,以便将名称与数据库中的名称进行比较。 我确实喜欢,但它不起作用: $translated_country = $this->get('translator')->trans($q_country, array(), null, 'en_US'); $countries = array("A, B, C"); if

用户应该给出他的国家名称,问题是所有国家的名称都被翻译成不同的语言,我必须重新翻译成英语,以便将名称与数据库中的名称进行比较。 我确实喜欢,但它不起作用:

$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 德国:德国
我希望当用户输入Deutschland时,在我的代码中,我得到的是德语

,您需要将每个国家的英语语言环境中的匹配项翻译成您支持的其他语言

# 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' */

有没有简单的方法解决这个问题,而且简单的翻译不需要额外的扩展你只是想让它从用户的语言环境翻译回英语,与数据库进行比较,对吗?对,在我的数据库中,名称是英文的,在我的自动完成中,我用不同的语言显示名称,因此,当用户在自动完成德国选择时,我希望将其转换为德国