Tham gia bản dùng thử theo nguyên gốc cho Accept-Language giảm thiểu

Giảm thiểu ngôn ngữ chấp nhận là một nỗ lực nhằm giảm việc tạo vân tay số thụ động bằng cách giảm lựa chọn ưu tiên về ngôn ngữ của người dùng trong Accept-Language và chỉ gửi ngôn ngữ ưa thích nhất của người dùng (chỉ một).

Kể từ Chrome 109 Phiên bản beta, chúng tôi sẽ mở bản dùng thử theo nguyên gốc cho chính sách Giảm ngôn ngữ chấp nhận để cho phép các trang web chọn tham gia nhận nội dung giảm Tiêu đề Accept-Language. Thao tác này sẽ cho phép các trang web phát hiện và khắc phục vấn đề trước khi Accept-Language nhỏ gọn trở thành hành vi mặc định trong Chrome ở bản phát hành trong tương lai. Để thử nghiệm tính năng trước khi phát hành cho đối tượng người dùng ổn định, đảm bảo chọn tham gia và thử nghiệm trước ngày phát hành Chrome 109 (hiện tại theo lịch là ngày 10/1/2023).

Bên dưới là ví dụ về tiêu đề Accept-Language trước và sau khi giảm kích thước.

Hiện tại
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Ðã Ðề Nghị
Accept-Language: en-GB

Dưới đây là thông tin tổng quan về bản dùng thử theo nguyên gốc và những điều cần biết. Bạn có thể chia sẻ ý kiến phản hồi về thay đổi này hoặc bất kỳ vấn đề nào bạn gặp phải trong thời gian chạy bản dùng thử theo nguyên gốc ở kho lưu trữ Accept-Language Reduction GitHub kho lưu trữ.

Chấp nhận ngôn ngữ là gì?

Chiến lược phát hành đĩa đơn Ngôn ngữ chấp nhận được chia sẻ trên mọi yêu cầu HTTP và hiển thị trong JavaScript cho tất cả các tài nguyên do trình duyệt tải. Hiện tại, ứng dụng này chứa tất cả thông tin ngôn ngữ ưu tiên.

Tại sao Accept-Language bị giảm?

Giảm thiểu ngôn ngữ chấp nhận là một nỗ lực nhằm giảm việc tạo vân tay số thụ động các nền tảng khác trong Chrome.

Hiện tại, tiêu đề Accept-Language được chia sẻ theo mặc định trên mọi HTTP và được hiển thị trong JavaScript đối với tất cả tài nguyên mà trình duyệt tải. Nó chứa tất cả các lựa chọn ngôn ngữ ưu tiên của người dùng. Thay vì trình duyệt gửi danh sách đầy đủ các ngôn ngữ mà người dùng đã định cấu hình trong trường hợp trang web muốn cung cấp nội dung đa ngôn ngữ, chúng tôi đang giới thiệu một cách mới để các trang web chỉ rõ nội dung đa ngôn ngữ và trình duyệt sẽ chịu trách nhiệm quản lý ngôn ngữ và hiển thị ngôn ngữ ưu tiên.

Một lý do khác là nhiều trang web có thể không sử dụng tiêu đề Accept-Language để thương lượng ngôn ngữ (ví dụ: một nghiên cứu chỉ cho thấy 7,2% 10.000 trang web hàng đầu sử dụng Accept-Language). Chế độ ẩn danh của Chrome đã giảm Accept-Language thành 1.

Điều này ảnh hưởng như thế nào đến các nhà phát triển web?

Các trang web dựa vào Accept-Language để thương lượng ngôn ngữ nên chuẩn bị để nhận ít nhất Accept-Language và cân nhắc việc tham gia vào bản dùng thử theo nguyên gốc. Các giá trị Accept-Language đã giảm sẽ xuất hiện trong:

  • Tiêu đề của yêu cầu HTTP Accept-Language.
  • Phương thức getter navigator.languages JavaScript.

Trình duyệt sẽ chịu trách nhiệm thương lượng ngôn ngữ để chọn ngôn ngữ ưu tiên của người dùng để gửi đến các trang web. Để làm được điều này, các trang web cần thêm hai tiêu đề Variants (tiêu đề mới cho biết các trang web hỗ trợ ngôn ngữ) Accept-LanguageContent-Language trong tiêu đề phản hồi (xem ví dụ chi tiết bên dưới).

Gói Accept-Language giảm hiện tại không bao gồm iOS và WebView, đồng thời những nền tảng đó sẽ tiếp tục thu hút người dùng danh sách đầy đủ Accept-Language. Chúng tôi dự định hỗ trợ các nền tảng này trong thời gian tới.

Bản dùng thử theo nguyên gốc cho tính năng Giảm thiểu ngôn ngữ chấp nhận

Bản dùng thử theo nguyên gốc yêu cầu trang web tham gia cung cấp mã thông báo trong cho biết trình duyệt bật bản dùng thử đã chỉ định. Tuy nhiên, việc này có nghĩa là trong yêu cầu ban đầu của trình duyệt tới trang web, trình duyệt không có cách nào biết được nếu trang web đang tham gia vào bản dùng thử theo nguyên gốc. Điều này có nghĩa là phần đầu trong một phiên sẽ không gửi Accept-Language header đã giảm. Các yêu cầu đối với tài nguyên phụ trong trang đó, cả cùng nguồn gốc và nhiều nguồn gốc, sẽ nhận tiêu đề Accept-Language rút gọn. Các lần điều hướng cùng nguồn gốc tiếp theo cũng sẽ nhận được tiêu đề Accept-Language nhỏ hơn. Điều hướng trên nhiều nguồn gốc sẽ quay lại gửi tiêu đề đầy đủ, trong khi các yêu cầu từ nhiều nguồn gốc trong (chẳng hạn như yêu cầu iframe của bên thứ ba) sẽ vẫn gửi Accept-Language đã giảm nếu yêu cầu khung cấp cao nhất có mã thông báo dùng thử theo nguyên gốc hợp lệ.

Điều này tương tự như bản dùng thử theo nguyên gốc giảm thiểu Tác nhân người dùng và nếu bạn muốn để tìm hiểu thêm về việc triển khai Chromium nội bộ, bạn có thể đọc thêm trong Triển khai tiêu đề HTTP Remove Accept-Language.

Tham gia dùng thử theo nguyên gốc Giảm thiểu ngôn ngữ chấp nhận

Bạn có thể đọc thêm hướng dẫn trong Bắt đầu với bản dùng thử theo nguyên gốc của Chrome, nhưng các bước cần thiết được trình bày dưới đây.

Bước 1

Để đăng ký dùng thử theo nguyên gốc và nhận mã thông báo cho miền của bạn, hãy truy cập vào Bản dùng thử tính năng Giảm bớt ngôn ngữ được chấp nhận .

Bước 2

Cập nhật tiêu đề phản hồi HTTP:

  1. Thêm Origin-Trial: <ORIGIN TRIAL TOKEN> vào phản hồi HTTP của bạn tiêu đề, trong đó <ORIGIN TRIAL TOKEN> chứa mã thông báo bạn nhận được khi đăng ký bản dùng thử theo nguyên gốc.
  2. Thêm Content-Language vào tiêu đề phản hồi HTTP của bạn để cho biết ngôn ngữ dành cho đối tượng.
  3. Thêm Variants vào tiêu đề phản hồi HTTP để chỉ báo các trang web ngôn ngữ được hỗ trợ.
  4. [Không bắt buộc] Thêm Vary: Accept-Language vào phản hồi HTTP của bạn để tạo khoá bộ nhớ đệm cho thương lượng nội dung.
  5. Việc đặt các tiêu đề đó sẽ chỉ kích hoạt ngôn ngữ của trình duyệt thương lượng (có thể bắt đầu lại yêu cầu ban đầu) cho máy chủ gốc. Để trang web hiển thị đúng ngôn ngữ đại diện cho người dùng, bạn cũng cần cập nhật các trang web gửi nội dung dựa trên tiêu đề Accept-Language của người dùng (xem ví dụ bên dưới).

Bước 3

Tải trang web của bạn bằng Chrome M109 Beta (trở lên) và bắt đầu nhận chuỗi Accept-Language giảm.

Hãy gửi mọi vấn đề hoặc ý kiến phản hồi cho tính năng Accept-Language Reduction GitHub kho lưu trữ.

Bản minh hoạ

Để minh hoạ một trang web đa ngôn ngữ đã chọn tham gia bản dùng thử theo nguyên gốc (cùng với mã nguồn) xem https://reduce-accept-language.glitch.me/.

Để minh hoạ cách chọn tham gia và chọn không tham gia bản dùng thử theo nguyên gốc (cùng với mã nguồn) xem https://reduce-accept-language-ot.glitch.me/.

Ví dụ: example.com hỗ trợ ja (tiếng Nhật) và en (tiếng Anh). Đáp có thể là:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

Trang web biết rằng người dùng thích nội dung bằng tiếng Anh dựa trên chấp nhận ngôn ngữ. Tiêu đề phản hồi có thể bao gồm:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Nếu người dùng thích nội dung bằng tiếng Nhật, thì yêu cầu sẽ là:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

Trong trường hợp này, trang web sẽ phản hồi bằng tiêu đề cho nội dung tiếng Nhật:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Về phía máy chủ, trang web có thể đang tìm kiếm hỗ trợ ngôn ngữ cụ thể nhưng quay lại chế độ mặc định nếu không phát hiện thấy sự hỗ trợ nào:

if(accept_language == 'ja') {
    res
.response('ja_page')
}
else {
   res
.response('en_page')
}

Trong ví dụ trên, example.com phản hồi en hoặc ja dựa trên Giá trị Accept-Language, mặc định là en nếu không có giá trị nào trùng khớp. Trong trường hợp này, trang web cũng có thể cung cấp lệnh chuyển hướng đến các trang ngôn ngữ tương ứng, /en hoặc /ja dựa trên giá trị Accept-Language. Xem ví dụ chi tiết liên quan đến lệnh chuyển hướng đang bật tài liệu triển khai.

Hỗ trợ bản dùng thử theo nguyên gốc của bên thứ ba

Chúng tôi hiện không hỗ trợ đăng ký tên miền của bạn làm bên thứ ba phiên bản dùng thử. Nếu bạn vận hành một dịch vụ được triển khai dưới dạng tài nguyên phụ từ nhiều nguồn gốc (như phân phát quảng cáo hoặc phân tích), bạn sẽ chỉ nhận được số tiền giảm Tiêu đề Accept-Language nếu trang web cấp cao nhất đang tham gia vào nguồn gốc Google Cloud.

Xác thực rằng bản dùng thử theo nguyên gốc đang hoạt động

Hướng dẫn về khắc phục sự cố về bản dùng thử theo nguyên gốc của Chrome cung cấp một danh sách kiểm tra đầy đủ để đảm bảo mã thông báo của bạn được định cấu hình chính xác.

Bạn định cấu hình nhiều ngôn ngữ và mức độ ưu tiên của các ngôn ngữ đó từ chrome://settings/languages hoặc Cài đặt → Ngôn ngữ. Hãy cân nhắc chọn một ngôn ngữ mà trang web của bạn không hỗ trợ và chuyển ngôn ngữ đó lên đầu danh sách để đảm bảo rằng quy trình thương lượng lại được kích hoạt.

Tiêu đề của phản hồi ban đầu chứa mã thông báo dùng thử theo nguyên gốc sẽ có dạng như:

Ảnh chụp màn hình tiêu đề yêu cầu có giảm Accept-Language.

Các tiêu đề yêu cầu tiếp theo có chứa Accept-Language thu gọn sẽ có dạng như sau:

Tiêu đề của phản hồi ban đầu chứa mã thông báo bản dùng thử theo nguyên gốc.

Ngừng tham gia dùng thử theo nguyên gốc

Tại bất kỳ thời điểm nào trong thời gian dùng thử, bạn có thể ngừng tham gia và nhận danh sách đầy đủ Ngôn ngữ Chấp nhận của người dùng. Cách ngừng tham gia:

  1. Xoá tiêu đề Origin-Trial cho tính năng chấp nhận ngôn ngữ rút gọn từ phản hồi HTTP của bạn.
  2. [Không bắt buộc] Xoá tiêu đề Variants đã được thêm để chọn sử dụng bản dùng thử theo nguyên gốc trong phản hồi HTTP nếu bạn không muốn gửi tiêu đề này. Bạn cũng có thể sử dụng Variants có giá trị trống để hoàn thành này.
  3. [Không bắt buộc] Xoá tiêu đề Content-Language đã được thêm vào chọn sử dụng bản dùng thử theo nguyên gốc trong phản hồi HTTP nếu bạn không quan tâm đến đang gửi tiêu đề này.

Thời gian dùng thử theo nguyên gốc

Bản dùng thử theo nguyên gốc của tính năng Giảm thiểu ngôn ngữ chấp nhận sẽ chạy trong ít nhất 6 tháng, tương ứng với khoảng 6 mốc quan trọng của Chrome. Bản dùng thử theo nguyên gốc sẽ xuất hiện trong M109 và kết thúc bằng M114 (tức là bản phát hành Chrome cuối cùng có bản dùng thử có sẵn). Khi đó, Chrome sẽ đánh giá ý kiến phản hồi của ban đầu trước khi tiến hành gửi chuỗi Accept-Language rút gọn trong một theo giai đoạn: trước tiên giảm tiêu đề HTTP Accept-Language rồi giảm Giao diện JS. Nếu cần thêm thời gian để thử nghiệm, trang web có thể chọn tham gia bản dùng thử theo nguyên gốc ngừng sử dụng, cho phép họ truy cập vào Chuỗi Accept-Language trong ít nhất 6 tháng nữa. Chúng tôi sẽ xuất bản thêm thông tin chi tiết về việc ngừng sử dụng thử nghiệm khi sẵn sàng.

Chia sẻ ý kiến phản hồi

Hãy gửi mọi vấn đề hoặc ý kiến phản hồi cho tính năng Accept-Language Reduction GitHub kho lưu trữ.