在HTML/XHTML语言中很多标签都有lang(XHTML中推荐lang和xml:lang同时使用)这个属性,它的作用是用来为一个元素的属性值和文本内容设置语言。这个属性的默认值是“未定义”,即没有分配语言。
lang属性的值是一个“语言代码”(language-code),语言代码由一个“主代码”(primary-code)和一个可选的“子代码”(subcode)系列组成,语法如下:
language-code = primary-code ( "-" subcode )*
也就是说“主代码”是必须有的,而“子代码”可以有0或者很多个。比如:zh-CN(中文-大陆),en(英语),fr(法语)en-US(英语-美国)。怎样设置语言代码值和其语法完整指南可以参考 BCP 47,两个字母的“主代码”可以参考[ISO639]规范。 对于中文网页如果你想表明语言是简体中文或繁体中文则推荐使用zh-Hans(表示简体中文)或zh-Hant(表示繁体中文);如果想表示不同地区则可以使用zh-CN(中文-大陆),zh-TW(中文-台湾),zh-HK(中文-香港),zh-MO(中文-澳门)。
语言代码的继承
元素继承语言代码按照如下优先级: 1.元素本身设置的 lang 属性; 2.元素的父元素的lang 属性; 3.HTTP "Content-Language" 头设置(例如:Content-Language: en-cockney); 4.用户代理的默认值或者用户自己的设置;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML lang="fr">
<HEAD>
<TITLE>Un document multilingue</TITLE>
</HEAD>
<BODY>
...Interpreted as French...
<P lang="es">...Interpreted as Spanish...
<P>...Interpreted as French again...
<P>...French text interrupted by<EM lang="ja">some
Japanese</EM>French begins here again...
</BODY>
</HTML>
属性值和元素内容的语言不同
有些中文网站有中文和英文两个版本,比如下面这段代码:
<p><a lang="en" title="英语版本" href="http://www.flashshe.com/perfect-web/ADMIN/indexEN.html" xml:lang="en">englishi</a></p>
<p title="英语版本"><a lang="en" href="http://www.flashshe.com/perfect-web/ADMIN/indexEN.html" xml:lang="en">englishi</a></p>
参考资料:
- 1、Language information and text direction;
- 2、Two-letter or three-letter language codes;
- 3、Why use the language attribute?;
- 4、Internationalization Best Practices: Specifying Language in XHTML & HTML Content;
- 5、ISO 639;
- 6、ISO 639-2 Codes;
此文禁止转载,但是您可以以超级链接的方式链接到这篇文章。