【问题标题】:Is there any HTTP/HTML header/meta-tag that I can use to advertise supported Content-Language?是否有任何 HTTP/HTML 标头/元标记可用于宣传支持的内容语言?
【发布时间】:2015-10-26 04:37:49
【问题描述】:

只是想知道是否有一种机制可以“宣传”我可以在 Accept-Language 中接受哪些值并返回正确的 Content-Language。

有“Link: ; rel=alternate hreflang=pt-br”,但这迫使我创建一个新资源(而不是在不同的语言下公开相同的资源)。

http://www.w3schools.com/tags/att_link_hreflang.asp

这是一个相关的问题:

Content-Language and Accept-Language

【问题讨论】:

    标签: html http


    【解决方案1】:

    理想情况下,这应该在 HTTP 标头中完成 - 正如您所猜测的那样,HTML 标记并不是真正适合这样做的地方。

    About the Content-Type header, from the IETF:

    Content-Language 标头可以用逗号列出多种语言- 分隔列表。

    因此,Content-Language 标头的目的是列出当前资源的所有可能语言,而不仅仅是您所服务页面的语言。

    要宣传您接受的语言,请将它们全部添加到您的 Content-Language 标头中。


    例如also from the IETF:

    An official European Commission document (in a few of its official
       languages):
    
          Content-type: multipart/alternative
          Content-Language: da, de, el, en, fr, it
    

    【讨论】:

    • 该列表用于表示“文档中使用的语言”,而不是“文档可用的语言”。以下是示例: 英法词典 内容类型:application/dictionary 内容语言:en、fr(这是一本词典) 欧盟委员会官方文件(其几种官方语言): 内容类型:multipart/替代内容语言:da、de、el、en、fr、it 摘自星际迷航内容类型:视频/mpeg 内容语言:i-klingon
    • @user453455 我想我明白你现在想要做什么。您似乎想从客户端读取 Accept-Language 标头,然后以客户端接受的一种语言返回文档。与Content-Language 一样,Accept-Language 也是一个完整列表,因此客户端将向您发送用户能够阅读的所有语言,您可以选择其中任何一种进行回复。
    • 您是否建议 WEB SERVER 使用 Accept-Language 来枚举它可以作为 Content-Language 返回的语言?请注意,我的客户端无法枚举用户能够阅读的所有语言(我想了解服务器中可用的语言)。
    • @user453455 这就是我的建议,是的。除非我遗漏了什么,否则您的客户端也是用户的网络浏览器。
    【解决方案2】:

    您可以使用 HTML 标记来实现此效果,该标记使用http-equiv 表示您想要的 HTTP 标头。

    <meta http-equiv="accept-language" content="de, en">
    <meta http-equiv="content-language" content="de">
    

    但是,作为mentioned in this question,这确实是“穷人”的做法,您应该提供适当的 HTTP 标头:

    Content-Language: de
    Accept-Language: en, de
    

    如果你只是想表达网页是什么语言,那么你也可以使用&lt;html lang="de"&gt;

    编辑: 如果您希望在标题中正确表达这一点,则可以通过在文件顶部放置 PHP 代码 sn-p 来实现:

    header('Content-Language: de');
    header('Accept-Language: de, en');
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 2017-07-20
      • 2011-04-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 2011-02-02
      相关资源
      最近更新 更多