- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 03:56 AM
Hi,
I am trying to get language of logged in User and based that I want translated value of a UI Action button. So as below script include should return "Neu" when language is "de".
Script Include:
var ButtonsForRelatedList = Class.create();
ButtonsForRelatedList.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getButtonsForRelatedList:function(){
var langOfUser = gs.getSession().getLanguage();
var translatedNewValue;
if(langOfUser != 'en'){
var gr = new GlideRecord('sys_translated');
gr.addQuery('name', 'sys_ui_action');
gr.addQuery('language', langOfUser);
gr.addQuery('value', 'New');
gr.query();
if(gr.hasNext()){
translatedNewValue = gr.label;
}
}
else{
translatedNewValue = "New";
}
return translatedNewValue;
},
type: 'ButtonsForRelatedList'
});
Client Script
function onLoad() {
var state = g_form.getValue('state');
if(state == '3' || state =='7'){//state is closed or cancelled
var ga = new GlideAjax('ButtonsForRelatedList');
ga.addParam('sysparm_name', 'getButtonsForRelatedList');
ga.getXML(getResponse);
}
function getResponse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
}
}
So I am getting answer as null instead of 'Neu'.
Something is going wrong in translatedNewValue = gr.label; in script include. Even when I tried in background script, it is not giving me value. Suggest what I am doing wrong over here?
Solved! Go to Solution.
- Labels:
-
Best Practices
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 04:23 AM
this script worked for me in background script execution.
var gr = new GlideRecord("sys_translated");
gr.addEncodedQuery("name=sys_app_application^value=Call Center");
gr.query();
while(gr.next()){
gs.print(gr.getValue("label")+"\n");
}
output:
Thank you,
Ali

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 04:01 AM
Hi
When you are doing this
var translatedNewValue; try assigning a initial value.
Do something like this :-
var translatedNewValue="";
Mark correct if it helps.
Regards,
Omkar Mone
www.dxsherpa.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 04:07 AM
I did but still it is returning null.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 04:05 AM
Try below script:
var ButtonsForRelatedList = Class.create();
ButtonsForRelatedList.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getButtonsForRelatedList:function(){
var langOfUser = gs.getSession().getLanguage();
var translatedNewValue="New";
if(langOfUser != 'en'){
var gr = new GlideRecord('sys_translated');
gr.addQuery('name', 'sys_ui_action');
gr.addQuery('language', langOfUser);
gr.addQuery('value', 'New');
gr.query();
if(gr.hasNext()){
translatedNewValue = gr.label;
}
}
return translatedNewValue;
},
type: 'ButtonsForRelatedList'
});
Thanks,
Ali
Thank you,
Ali

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2018 04:10 AM
Hi
Try passing with toString().