Is it possible to get the display language from within ECMAScript? Similar to Get the current UI language from a webpart, I'd like to get the user's display language, however I want to access it with the Client Object Model in JavaScript (http://msdn.microsoft.com/en-us/library/ee538253.aspx). Is it somehow possible to access the System.Threading namespace? Or are there any other possibilities?
4 Answers
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").
- 356
- 5
- 20
- 18,207
- 40
- 64
-
Great, thanks a lot Wictor! Both are working perfectly! – Modery Nov 10 '10 at 14:42
-
1Great, Wictor! Is it possible to convert lcid to culture name in javascript? like 1033-> en-us, 1053 -> sv-se? – Anatoly Mironov Feb 16 '12 at 15:44
-
2Another option is to directly use the 'L_Menu_LCID' variable in page. More here: http://vrdmn.blogspot.in/2011/08/javascript-lmenubaseurl-varaible-for.html – Vardhaman Deshpande Oct 29 '12 at 16:54
-
1_spPageContextInfo.currentUICultureName will give you en-US – Aslan Mar 13 '18 at 20:18
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')
- 396
- 3
- 4
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');
- 42,498
- 3
- 86
- 167
When using the Bing translation, the methods above didn't work (the values don't get updated when the language is changed).
What worked for me was
LanguagePicker.currentLang
- 131
- 3