我计划在当前的Web项目中使用语言/区域代码来标识语言和区域,即“ en-US”或“ de-CH”。 使用“ en-IN”之类的代码来识别带有英语文本的印度地区的内容是否有效?
答案 0 :(得分:0)
以下是有关在实际HTML文档中指定语言的信息。服务器端编码可能有不同的最佳实践,具体取决于所使用的实际编程技术。
根据W3C [1]如何在(X)HTML文档中声明语言的方式,应该根据最佳实践47“识别语言的标记”来选择语言代码。 ”(RFC5646) [2]。
建议格式如下
langtag = language
["-" script]
["-" region]
*("-" variant)
*("-" extension)
["-" privateuse]
其中零件定义为
language = 2*3ALPHA ; shortest ISO 639 code
region = 2ALPHA ; ISO 3166-1 code
关于区域部分的用法,它说
区域子标签用于指示相关的语言变化 与特定国家,地区或地区相对应或适用于该特定国家/地区或地区。 通常,区域子标签用于指示变化,例如 地区方言或用法,或特定地区的拼写约定。 它也可以用来表示以某种方式表示内容 例如,适合在整个地区使用的 量身定制的西班牙语内容将在整个拉丁美洲有用。
以下规则适用于区域子标签:
- 区域子标签必须遵循任何主要语言,并且必须扩展 语言或脚本子标签,并且必须在任何其他类型的 子标签。
[...]
- 语言标签中最多只能有一个区域子标签,并且 区域子标签可以省略,因为它不添加任何区别 标签的值。
关于该语言是该国的官方语言,还是实际上是一种通用语言,一言未发。仅当区别不会增加太多价值时,您才可以省略该区域,而不必这样做。
请注意,语言标记正式上都是小写,而区域代码是大写。
tl; dr ,只要您使用有效的iso代码来表示语言和地区,就可以遵循最佳做法和标准,例如使用en-IN
ISO 639-2中的语言代码列表可以在https://www.loc.gov/standards/iso639-2/php/English_list.php中找到,而区域代码列表是listed on wikipedia,或者您可以在official ISO website上进行搜索。