Sharepoint - Get the current UI language with ECMAScript
You have two easy ways to get the LCID in SP JavaScript
- var lcid =_spPageContextInfo.currentLanguage;
- var lcid = SP.Res.lcid;
Note that option 1 returns an int (i.e. 1033) and option 2 return a string (i.e. "1053").
In my case I needed to know the language before the SharePoint javascript libraries are loaded in order to hide elements before they are shown on the screen (not possible with _spBodyOnLoadFunctionNames).
Turns out SharePoint sets the lang attribute of the root HTML element according to the language and as a bonus it's already translated to the "en-us" format.
This is done with a simple call to
document.getElementsByTagName('html')[0].getAttribute('lang')
Yet another ways to determine LCID
in SP via JavaScript
1 Global variable g_wsaLCID
:
var lcid = g_wsaLCID;
2 Language
property of Web
client object via CSOM (JavaScript)
function getWebLocale(complete) {
var context = SP.ClientContext.get_current();
var web = context.get_web();
context.load(web);
context.executeQueryAsync(
function(sender, args){
var lcid = web.get_language(); //returns LCID
return complete(lcid);
},
function(sender, args){
complete(-1);
});
}
//Usage
function printWebLanguageSettings(){
getWebLocale(function(lcid){
console.log(lcid);
});
}
SP.SOD.executeOrDelayUntilScriptLoaded(printWebLanguageSettings, 'sp.js');