我有一个运行PHP / Symfony2的多语言网站。
我想在用户切换语言(=切换语言环境)时更改html lang属性。
实现这一目标的最佳方法是什么?
PS:我的最终目标是能够切换不同语言的字体(中文看起来与我选择的英文字体太差了)。我正在考虑使用CSS:lang()伪选择器:html:lang(zh)
答案 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 区域设置。