Ngôn ngữ-Nội dung và Ngôn ngữ Chấp nhận là gì?


82

Tôi đã thấy các tiêu đề HTTP của Content-LanguageAccept-Language, ai đó có thể giải thích chúng dùng để làm gì và sự khác biệt giữa chúng không? Tôi có một trang web đa ngôn ngữ và tự hỏi liệu tôi có nên đặt cả hai trang web đó thành ngôn ngữ đã chọn hiện tại của người dùng hay không.


Bạn có thể không nên bận tâm đến việc thêm Ngôn ngữ-Nội dung vào trang web của mình, bởi vì các trình duyệt thường không sử dụng chúng. Tuy nhiên, bạn có thể sử dụng thuộc tính lang trong HTML của mình.
james.garriss

Câu trả lời:


103

Content-Language, một tiêu đề thực thể, được sử dụng để mô tả (các) ngôn ngữ dành cho đối tượng, để cho phép người dùng phân biệt theo ngôn ngữ ưa thích của chính người dùng. Tiêu đề thực thể được sử dụng trong cả hai, yêu cầu HTTP và phản hồi. 1

Accept-Language, một tiêu đề HTTP yêu cầu, quảng cáo ngôn ngữ nào mà khách hàng có thể hiểu được và biến thể ngôn ngữ nào được ưu tiên. 2 Có thể có nhiều ngôn ngữ, mỗi ngôn ngữ có trọng lượng hoặc giá trị 'chất lượng' tùy chọn. Ví dụ:

Accept-Language: da, en-GB;q=0.8, en;q=0.7

(Trọng lượng mặc định là 1, vì vậy điều này tương đương với da;q=1, en-GB;q=0.8, en;q=0.7).

Bạn sẽ phải phân tích cú pháp các giá trị và trọng số để xem liệu có sẵn bản dịch thích hợp hay không và cung cấp cho người dùng bản dịch ở trọng số ngôn ngữ ưu tiên cao nhất.

Bạn nên cung cấp cho người dùng một giải pháp thay thế, chẳng hạn như giá trị đặt cookie, để buộc một ngôn ngữ nhất định cho trang web của bạn. Điều này là do một số người dùng có thể muốn xem trang web của bạn bằng một ngôn ngữ nhất định mà không thay đổi tùy chọn chấp nhận ngôn ngữ của họ.


13
Chỉnh sửa một chút cho câu trả lời của bạn: Ngôn ngữ-Nội dung là tiêu đề nội dung, vì vậy nó áp dụng cho nội dung từ máy chủ đến máy khách hoặc từ máy khách đến máy chủ.
james.garriss

1
RFC2616: “Trường tiêu đề thực thể Ngôn ngữ-Nội dung mô tả (các) ngôn ngữ tự nhiên của đối tượng dự kiến ​​cho thực thể kèm theo. Tuy nhiên, chỉ vì có nhiều ngôn ngữ trong một thực thể không có nghĩa là nó dành cho nhiều đối tượng ngôn ngữ. Một ví dụ sẽ là phần sơ lược về ngôn ngữ của người mới bắt đầu, chẳng hạn như "Bài học đầu tiên bằng tiếng Latinh", rõ ràng là nhằm mục đích sử dụng cho khán giả biết tiếng Anh. Trong trường hợp này, Nội dung-Ngôn ngữ đúng ra sẽ chỉ bao gồm "en". ” R. Fielding, UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee; 1999.
Ucho

Vì vậy, đó chắc chắn không phải là ngôn ngữ trên trang. Xem RFC 2616 Phần 14.12 .
Ucho

20

Content-Languagemô tả ngôn ngữ mà một phần nội dung cụ thể dành cho. Accept-Languagelà danh sách các ngôn ngữ mà tác nhân người dùng muốn có nội dung. Cách tốt nhất để nghĩ về điều này là Content-Languagemô tả nội dung và Accept-Languagetruyền tải sở thích.



5

Trường tiêu đề thực thể Ngôn ngữ-Nội dung mô tả (các) ngôn ngữ tự nhiên của đối tượng dự kiến ​​cho thực thể kèm theo. Lưu ý rằng điều này có thể không tương đương với tất cả các ngôn ngữ được sử dụng trong phần thân thực thể.

Trường tiêu đề yêu cầu Ngôn ngữ chấp nhận hạn chế tập hợp các ngôn ngữ tự nhiên được ưu tiên làm phản hồi cho yêu cầu

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


0

Các Content-Language tiêu đề thực thể được sử dụng để mô tả ngôn ngữ (s) dành cho khán giả, do đó nó cho phép người dùng để phân biệt theo ngôn ngữ ưa thích riêng của người sử dụng.

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes

- Tham chiếu Web MDN - Tiêu đề HTTP - Ngôn ngữ-Nội dung

Các Accept-Languageyêu cầu HTTP tiêu đề quảng cáo mà ngôn ngữ khách hàng có thể hiểu được, và đó locale biến được ưa thích. (Theo ngôn ngữ, chúng tôi muốn nói đến các ngôn ngữ tự nhiên, chẳng hạn như tiếng Anh, chứ không phải ngôn ngữ lập trình.)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes

- Tham chiếu web MDN - Tiêu đề HTTP - Ngôn ngữ chấp nhận

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.