zh vs cn
zh表示中文,cn表示中国。一个是语言,一个是地区。你在HTML里写lang="zh",意思是这个页面主要语言是中文;你在国家选择器里看到CN,意思是中国这个地区。
很多人问zh是什么,其实是被/cn/这种URL带偏了。/cn/可以作为市场入口,但它不适合替代语言标签。尤其在hreflang里,cn单独出现基本就不对。
zh是什么?它不是“中文页面”的万能贴纸,而是一个语言代码,用来告诉系统这份内容属于中文。麻烦在于,中文还会分简体、繁体、地区版本。把这些概念分清,你写网页、做App语言包、配SEO都会顺手很多。
zh表示中文,cn表示中国。一个是语言,一个是地区。你在HTML里写lang="zh",意思是这个页面主要语言是中文;你在国家选择器里看到CN,意思是中国这个地区。
很多人问zh是什么,其实是被/cn/这种URL带偏了。/cn/可以作为市场入口,但它不适合替代语言标签。尤其在hreflang里,cn单独出现基本就不对。
zh-CN比zh更具体,表示中国大陆地区使用的中文。它适合大陆市场页面,比如人民币价格、国内发票、ICP备案说明、国内客服时间这些内容。
如果你只是想表达“中文”,zh够用;如果页面内容明显为大陆用户定制,zh-CN更准确。问题的关键不是哪个更高级,而是它们表达的范围不同。
zh-CN强调地区,zh-Hans强调简体字。一个页面是简体中文,但面向新加坡用户,用zh-Hans往往比zh-CN更合适。因为新加坡也用简体,但不是中国大陆市场。
做产品语言包时,我更倾向用zh-Hans命名简体资源。做具体市场落地页时,再用zh-CN、zh-SG这种地区标签。这样资源层和业务层不会绑死。
zh-Hant是繁体中文,zh-TW是台湾地区中文。台湾通常用繁体,但繁体不等于台湾。香港、澳门也用繁体,词汇和语气还不完全一样。
如果你只有一套繁体界面,不区分台湾香港,用zh-Hant比较稳。若页面写了台湾付款方式、台湾地址格式、台湾客服电话,那就该用zh-TW。
网页里常见三处:HTML的lang属性、hreflang标注、URL路径。App里常见两处:语言资源目录和用户语言偏好。不同位置可以用同一套规范,但别忘了有些平台要求格式不同,比如zh-CN和zh_CN。
我的习惯是先在文档里写一张locale表:显示名称、内部代码、网页代码、翻译平台代码、目标市场。五列写清楚,后面少吵很多架,也少出很多莫名其妙的跳转bug。