Accept-Language

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Accept-Language HTTP 請求標頭表示用戶端偏好的自然語言和地區設置。伺服器使用內容協商來選擇其中一個提議,並在回應標頭 Content-Language 中告知用戶端所選擇的語言。瀏覽器根據其活動的用戶界面語言設置此標頭的所需值。用戶很少更改它,且不建議進行這樣的更改,因為這可能會導致指紋識別

當伺服器無法通過其他方式確定目標內容語言時(例如,使用依賴於明確用戶決策的特定 URL),此標頭作為提示。伺服器絕不應該覆蓋用戶明確選擇的語言。Accept-Language 的內容通常不受用戶控制(例如在旅行時)。用戶也可能希望以與用戶界面語言不同的語言訪問頁面。

當伺服器無法提供匹配語言的內容時,可能會返回 406(Not Acceptable)錯誤碼。但是,這種行為很少實現以提高用戶體驗,在這種情況下伺服器通常會忽略 Accept-Language 標頭。

標頭類型 請求標頭
禁止修改的標頭
CORS 安全清單請求標頭 是,但有額外限制,值只能是 0-9A-Za-z、空格或 *,-.;=

語法

http
Accept-Language: <language>
Accept-Language: *

// 多種語言,使用質量值語法加權:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

指令

<language>

語言標籤(有時稱「為地區標識」符)。這包括表示語言的 2-3 個字母的基本語言標籤,可選地後面跟有以 '-' 分隔的附加子標籤。最常見的附加訊息是國家或地區變體(例如 'zh-TW''fr-CA')或使用的字母類型(例如 'sr-Latn')。其他變體,如正字法類型('de-DE-1996'),通常不在此標頭的上下文中使用。

*

任何語言。'*' 用作通配符。

;q=(q 因子加權)

任何值,按相對的質量值權重)表示的優先順序排列。

範例

http
Accept-Language: de
http
Accept-Language: de-CH
http
Accept-Language: en-US,en;q=0.5

規範

Specification
HTTP Semantics
# field.accept-language

瀏覽器相容性

BCD tables only load in the browser

參見