lang属性

定义

HTML的 lang 属性表示语言代码,用于网页或部分网页的语言。

根据W3C推荐标准,应该通过<html>标签中的 lang 属性对每张页面的主要语言进行声明。

<html lang=“en”>
  …
</html>

 

在XHTML中,采用如下方式在<html>标签中对语言进行声明:

<html xmlns=“http://www.w3.org/1999/xhtml” lang=“en” xml:lang=“en”>
  …
</html>

 

lang语言标签的排列方式

目前,最新的语言标签标记法的国际标准是 IETF 的 BCP 47(Best Current Practice),也就是 RFC 5646 取代了之前的 RFC 4646,3066和1766,名称《Tags for Identifying Languages》。lang属性的取值遵循 BCP 47 — Tags for Identifying Languages 。

 

RFC 5646 规定语言标签按如下方式排列:

language—extlang—script—region—variant—extension—privateuse

  1. language:这部分就是ISO 639 规定的主代码,比如中文是 zh。
  2. script:表示变体,比如简体汉字是 zh-Hans,繁体汉字是 zh-Hant。
  3. region:表示语言使用的地理区域。比如zh-Hans-CN就是中国大陆使用的简体中文。
  4. variant:表示方言。
  5. extension-privateus:表示扩展用途和私有标识。

所有语言标签都是大小写无关的,但是按照惯例,language标签小写,region标签大写,script标签首字母大写。不同标签之间用连字号—链接。

  

RFC 5646 定义了HTML中必须使用的语言代码。语言代码包括一个主代码和一系列子代码,主代码必须使用,子代码可以不使用。格式为:主代码,主代码-子代码,主代码-子代码-子代码,……。

2个字母的主语言标签与 ISO 639 一致,不允许使用标准意外的其他值。所有标签都可以在IANA registry 查询,获取更多信息可以阅读 Choosing a language tab 

备注:ISO 639是数个由国际标准化组织(ISO)为各语言所订定的语言代码。此标准还在持续更新。

 

浏览器支持:所有浏览器均支持lang属性。

 

实例说明 

单一的zh和zh-CN均属于废弃用法。

备注:zh — 中文   cmn — 普通话  Han — 汉字  Hans — 简体中文   Hans — 繁体中文

 

实例:

zh-cmn 普通话

zh-cmn-Hans 简体中文

zh-cmn-Hant 繁体中文

zh-cmn-Hant-HK 香港地区使用的繁体中文

zh-cmn-Hans-CN 大陆地区使用的简体中文

zh-hak 客家话

zh-yue 粤语

zh-yue-Hant-HK 香港地区使用的粤语,繁体中文

 

需要加地区的代码情况一般比较少,除非为了强调不同地区汉语使用差异。比如:

<p lang=“zh-cmn-Hans”>
  <b lang=“zh-cmn-Hans-CN”>菠萝</b><b lang=“zh-cmn-Hant-TW”>鳳梨</b>其实是同一种水果。指示大陆和台湾成为不同,且新马一带的称谓也不同,称之为<b lang=“zh-cmn-Hans-SG”>黄梨</b>
</p> 

备注:菠萝和凤梨有区别吗?

 

当然,由于历史原因,有时候不得不继续使用 zh-CN。比如中文维基百科,沿用了传统的zh-CN/zh-HK/zh-SG/zh-TW(按照标准应该使用 zh-cmn-Hans-CN、zh-cmn-Hant-HK、zh-cmn-Hans-SG、zh-cmn-Hant-TW)。这时候,合理的软件行为,是将 zh-CN 等转化为 zh-cmn-Hans(即转化为最常见的误用所对应的实际标准写法)。

 

实际上,各相关标准,也存在一定的滞后。例如CSS的:lang选择器,不支持选择仅仅简体/繁体中文(而不管是cmn或是yue或是min等汉语方言)。理想情况是CSS3对:lang选择器的语法进行升级,即BCP 47中的高级匹配算法,支持 :lang(*-Hans)这样的写法。

Selectors Level 4 已经加入了对 BCP 47 高级匹配算法的支持,即支持 :lang(*-Hans) 的写法。

 

 

 

 /*此随笔内容根据网上内容整理而成,非原创。如有侵权,表示歉意,请告知。*/

 

参考内容:

[1] HTML语言代码参考手册

[2] 网页头部的声明应该是用lang=“zh”还是lang=“zh-cn”?

 

可参考外文链接:

[1] Language information and text direction

[2] Understanding the New Language Tags

[3] Language tags in HTML and XML

 

 

转载于:https://www.cnblogs.com/susansjy/p/4698612.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值