accept_language.rb, HTTP Accept-Language başlık alanını ayrıştırmak için tasarlanmış hafif ve iş parçacığı güvenli bir Ruby kütüphanesidir. Bu kütüphane, web uygulamalarının kullanıcıların tercih ettiği dilleri doğru bir şekilde anlamasına ve içerikleri buna göre sunmasına olanak tanır. Uygulama, RFC 7231 Bölüm 5.3.5 (Accept-Language başlık tanımı), RFC 7231 Bölüm 5.3.1 (kalite değerleri sözdizimi), RFC 4647 Bölüm 3.3.1 (temel filtreleme eşleştirme şeması) ve BCP 47 (dilleri tanımlama etiketleri) gibi ilgili RFC standartlarına tam uyumluluk sağlar. Bu sayede, HTTP/1.1 spesifikasyonunun orijinali olan RFC 2616 ile de tam geriye dönük uyumluluk sunar.
Kütüphane, Accept-Language başlığındaki dil tercihlerini q-değeri (quality value) adı verilen bir sistemle yönetir. Bu değerler 0 (kabul edilemez) ile 1 (en çok tercih edilen) arasında değişir ve belirtilmediğinde varsayılan olarak 1 kabul edilir. q-değerleri en fazla üç ondalık basamağa sahip olabilir; geçersiz değerler ilgili dil aralığının göz ardı edilmesine neden olur. Eşleştirme sürecinde, daha yüksek q-değerine sahip diller önceliklidir. Eğer birden fazla dil aynı q-değerine sahipse, başlıkta ilk belirtilen dil tercih edilir. Kütüphane ayrıca, RFC 4647'de tanımlanan Temel Filtreleme eşleştirme şemasını uygulayarak, dil etiketlerinin tam eşleşme veya ön ek eşleşmesi (tire ile ayrılmış) yoluyla nasıl eşleştiğini belirler.
accept_language.rb, joker karakter (*) desteği de sunar; bu, başlıkta başka bir aralık tarafından eşleşmeyen herhangi bir dili eşleştirmek için kullanılabilir. Ancak, açıkça belirtilen diller joker karakterden önceliklidir. Ayrıca, bir dilin q-değerini 0 olarak ayarlamak, o dilin açıkça kabul edilemez olduğunu belirtir ve bu dilin eşleşmesini engeller. Bu özellikler, geliştiricilere kullanıcıların dil tercihlerini esnek ve standartlara uygun bir şekilde yönetme imkanı sunar, böylece daha iyi bir uluslararası kullanıcı deneyimi sağlanır.
Bu kütüphane, web uygulamalarının kullanıcıların dil tercihlerini HTTP başlıkları aracılığıyla doğru ve standartlara uygun bir şekilde işlemesini sağlayarak uluslararasılaşmayı kolaylaştırır.