我正在使用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-ES
,es-MX
,en-GB
,en-US
。
我使用Symfony\Component\Intl
使用此函数$languageCodes = Intl::getLanguageBundle()->getLanguageNames();
来获取select的内容,并在Twig中使用for
语句填充它,我知道一个简单的解决方案可以只是硬编码RFC5646标签,但项目太大了,我们在应用程序的其他部分使用ICU,此外,这种语言选择器太重要了,不能硬编码(也太大)。
因此我的问题是,是否有任何包或函数可以找到从php-intl ICU代码到RFC 5646的等价? 提前致谢。 最好成绩。