我有一个使用 PHP/Symfony2 运行的多语言网站。
当用户切换语言(=切换语言环境)时,我想更改 html lang 属性。
实现这一目标的最佳方法是什么?
PS:我的最终目标是能够为不同的语言切换字体(我为英文选择的字体看起来太糟糕了)。我正在考虑使用 CSS :lang() 伪选择器:html:lang(zh)
我有一个使用 PHP/Symfony2 运行的多语言网站。
当用户切换语言(=切换语言环境)时,我想更改 html lang 属性。
实现这一目标的最佳方法是什么?
PS:我的最终目标是能够为不同的语言切换字体(我为英文选择的字体看起来太糟糕了)。我正在考虑使用 CSS :lang() 伪选择器:html:lang(zh)
假设您使用 html5 和 twig 作为模板引擎:
<!doctype html>
<html lang="{{ app.request.locale }}">
...
推荐的存储语言环境的方法是语言代码下划线国家代码,例如 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语言环境。