allora dovrebbe funzionare lo stesso

la prima riga
codice:
lang = ((document.all) && !(window.opera)) ? window.navigator.systemLanguage : window.navigator.language;
dice che la variabile lang = window.navigator.systemLanguage solo se usi IE, e window.navigator.language in tutti gli altri casi

dai risultati che mi posti tu la cosa coincide anche sul Mac

la seconda riga
codice:
lang = lang.substr(0,2).toLowerCase();
prende le prime due lettere della lingua e le trasforma in minuscolo


A questo punto prova di nuovo questo sui vari browser e dimmi dove non riporta correttamente la lingua

codice:
lang = ((document.all) && !(window.opera)) ? window.navigator.systemLanguage : window.navigator.language;
lang = lang.substr(0,2).toLowerCase();
alert(lang);
Ciao