在语言环境更改时更改html lang属性

时间:2013-01-30 04:24:41

标签: html symfony internationalization symfony-2.1 lang

我有一个运行PHP / Symfony2的多语言网站。

我想在用户切换语言(=切换语言环境)时更改html lang属性。

实现这一目标的最佳方法是什么?

PS:我的最终目标是能够切换不同语言的字体(中文看起来与我选择的英文字体太差了)。我正在考虑使用CSS:lang()伪选择器:html:lang(zh)

2 个答案:

答案 0 :(得分:6)

假设你使用html5和twig作为模板引擎:

<!doctype html>

<html lang="{{ app.request.locale }}">

...

答案 1 :(得分:1)

存储区域设置的推荐方法是语言代码下划线国家/地区代码,例如EN_GB。

  

术语“区域设置”大致指用户的语言和国家/地区。它   可以是应用程序用于管理翻译的任何字符串   和其他格式差异(例如货币格式)。 ISO 639-1   语言代码,下划线(_),然后是ISO 3166-1 alpha-2国家/地区   建议使用代码(例如法语/法国的fr_FR)。   http://symfony.com/doc/current/book/translation.html

因此,在lang属性中使用区域设置的安全方法是:

<html lang="{{ app.request.locale|split('_')[0] }}">

这适用于 en_GB 区域设置和 en 区域设置。