最佳实践使用i18n语言代码来识别语言和地区?

时间:2018-08-01 09:14:10

标签: internationalization seo

我计划在当前的Web项目中使用语言/区域代码来标识语言和区域,即“ en-US”或“ de-CH”。 使用“ en-IN”之类的代码来识别带有英语文本的印度地区的内容是否有效?

1 个答案:

答案 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

关于区域部分的用法,它说

  

区域子标签用于指示相关的语言变化      与特定国家,地区或地区相对应或适用于该特定国家/地区或地区。      通常,区域子标签用于指示变化,例如      地区方言或用法,或特定地区的拼写约定。      它也可以用来表示以某种方式表示内容      例如,适合在整个地区使用的      量身定制的西班牙语内容将在整个拉丁美洲有用。

     

以下规则适用于区域子标签:

     
      
  1. 区域子标签必须遵循任何主要语言,并且必须扩展      语言或脚本子标签,并且必须在任何其他类型的      子标签。
  2.   
     

[...]

     
      
  1. 语言标签中最多只能有一个区域子标签,并且      区域子标签可以省略,因为它不添加任何区别      标签的值。
  2.   

关于该语言是该国的官方语言,还是实际上是一种通用语言,一言未发。仅当区别不会增加太多价值时,您才可以省略该区域,而不必这样做。

请注意,语言标记正式上都是小写,而区域代码是大写

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上进行搜索。