Accept-Language
Penggunaan
Header Accept-Language merupakan bagian dari negosiasi konten. Klien mengirimkan daftar tag bahasa yang berperingkat, dan server memilih terjemahan terbaik yang tersedia untuk sumber daya yang diminta.
Browser mengisi header ini dari pengaturan bahasa sistem operasi. Nilainya mengikuti sintaks tag bahasa BCP 47, yang mendukung kode bahasa utama (en, de, fr) dan subtag regional (en-US, pt-BR, zh-CN). Nilai kualitas menentukan peringkat preferensi ketika beberapa bahasa dicantumkan.
Server mengomunikasikan bahasa konten yang dikembalikan melalui header respons Content-Language. Ketika tidak ada terjemahan yang cocok, sebagian besar server mengembalikan bahasa bawaan alih-alih merespons dengan 406 Not Acceptable, karena menyajikan konten dalam bahasa fallback biasanya lebih berguna daripada mengembalikan error.
language-tag
Sebuah tag bahasa BCP 47. Subtag utama seperti en cocok dengan varian regional mana pun. Tag dengan subtag region seperti en-GB menyasar locale tertentu.
*
Wildcard yang cocok dengan bahasa apa pun yang belum tercantum.
;q= (nilai kualitas)
Bobot antara 0 dan 1 yang menyatakan preferensi relatif. Nilai bawaannya adalah 1.0. Nilai 0 menandai sebuah bahasa sebagai tidak dapat diterima.
Contoh
Klien yang lebih menyukai bahasa Inggris Britania, dengan bahasa Inggris generik sebagai fallback dan bahasa Jerman pada prioritas yang lebih rendah. Server merespons dengan konten dalam bahasa Inggris generik.
Permintaan
GET / HTTP/1.1
Host: example.com
Accept-Language: en-GB, en;q=0.9, de;q=0.5
Respons
HTTP/1.1 200 OK
Content-Language: en
Permintaan dari browser yang dikonfigurasi untuk bahasa Prancis dengan fallback ke bahasa apa pun.
Accept-Language: fr-FR, fr;q=0.9, *;q=0.5
Daftar preferensi multibahasa yang menempatkan bahasa Spanyol pertama, bahasa Portugis kedua, dan bahasa Inggris ketiga.
Accept-Language: es, pt;q=0.8, en;q=0.6