[SalesForce] possible to determine browser language setting on site page

Is it possible to determine the browser language setting of a guest user on an external site from Apex or VF?

I'm leveraging custom labels and they seem to respond to the browser language setting of a guest user, however I also have some dynamic picklist values that I need to display in the correct language as well. Has anyone had experience with this or know of a way to get the browser language setting value?

Thanks!

Best Answer

The normal way to get that value is by Accept-Language request header.

I think this is not possible to get by Apex.

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_pages_pagereference.htm#RequestHeadersSectionTitle

//this is returning null
ApexPages.currentPage().getHeaders().get('Accept-Language');

A possible workaround could be to get it on VF using this technique in javascript

var language = window.navigator.userLanguage || window.navigator.language; //works on IE/CH/FF
if(language){
    nowDoSomethingWithIt(language);
}else{
  //other browsers gonna be a little tricky
  $.ajax({ 
    url: "http://ajaxhttpheaders.appspot.com", 
    dataType: 'jsonp', 
    success: function(headers) {
        language = headers['Accept-Language'];
        nowDoSomethingWithIt(language);
    }
  });
}

Once you have the language you could rerender the picklist using a

@remoteAction 
Related Topic