如何在Symfony中从ICU转换为语言标签?

时间:2018-02-06 14:25:33

标签: php symfony intl

我正在使用Symfony应用程序,我有一个语言选择器,到目前为止一切正常,但是我使用第三方系统,我必须在其中转换选项的值选择从ICU到RFC 5646,这是我的代码中的一部分,以便更好地理解:

<select>
   <option>Please select</option>
   <option value="en">English</option>
   <option value="es">European Spanish</option>
   <option value="es_419">Latin American Spanish</option>
   <option value="fr">French</option>
</select>

现在,我必须向第三方系统发送以下内容:es-ESes-MXen-GBen-US

我使用Symfony\Component\Intl使用此函数$languageCodes = Intl::getLanguageBundle()->getLanguageNames();来获取select的内容,并在Twig中使用for语句填充它,我知道一个简单的解决方案可以只是硬编码RFC5646标签,但项目太大了,我们在应用程序的其他部分使用ICU,此外,这种语言选择器太重要了,不能硬编码(也太大)。

因此我的问题是,是否有任何包或函数可以找到从php-intl ICU代码到RFC 5646的等价? 提前致谢。 最好成绩。

0 个答案:

没有答案