Poniższa funkcja rozpoznaje języki obsługiwane przez przeglądarkę użyszkodnika i automatycznie ustawia zmienną sesyjną interface na wartość głĂłwnego języka w przeglądarce. Jeśli jednak ktoś przełączy sobie przeglądarkę na język nie należacy do zbioru dozwolonych językĂłw, to ustawiany jest język domyślny (tu: en, czyli angielski). Dozwolone języki są w zmiennej allowed_langs.
def default_lang
allowed_langs = ['pl', 'en', 'de', 'fr', 'ru']
if allowed_langs.include?(@request['interface'])
default = session[:interface] = @request['interface']
else
default = @request.env['HTTP_ACCEPT_LANGUAGE'].split(',')[0][0..1]
if !allowed_langs.include?(default)
default = 'en'
end
end
return default
Można zmienić zmienną sesyjną za pomocą metody POST lub GET. Wystarczy jeden raz wpisać w adresie URL: ?interface=fr aby domyślnym językiem teraz był francuski. Po takiej operacji przeglądarka nie ma tu nic do gadania. Tzn. ignorowane są jej ustawienia bowiem fakt że ktoś ręcznie tak sobie ustawił stanowi dowĂłd że chce aby w takim języku działał interfejs aplikacji.