<script custom-tag="" type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Inefficient load of customizations for System Localization -> Non-Translated Items","image":"http://support.servicenow.com/29f1d2661baf6010cafa53d8624bcb43.iix","author":{"name":"ServiceNow Support","url":"http://support.servicenow.com/now"},"keywords":"ServiceNow, NowSupport public Knowledge Base articles, Support and Troubleshooting,KB0813304,","wordcount":"370","publisher":"ServiceNow","url":"https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0813304","datePublished":"2020-02-06","dateCreated":"2020-02-05","dateModified":"2024-09-25","description":"<h2>Inefficient load of customizations for System Localization -> Non-Translated Items</h2><br/><div style=\"overflow-x:auto\"><article><div ><h3 >Issue </h3><section><p>All options under '<strong>S","articleBody":"<h2>Inefficient load of customizations for System Localization -> Non-Translated Items</h2><br/><div style=\"overflow-x:auto\"><article><div ><h3 >Issue </h3><section><p>All options under '<strong>System Localization -> Non-Translated Items</strong>' contain the following arguments in the default URL:<br /><br /><em>sys_id=javascript:new I18nUtils().getCustomizations('sys_ui_message', new Array('key', 'application'));</em> <br /><br />For an instance with large number of non-english UI Messages the modules will never load and the transactions will time out</p>\r\n<p>This includes Modules:</p>\r\n<ul style=\"list-style-position: inside;\"><li>Translated Name / Fields</li><li>Messages</li><li>Field Labels</li><li>Choice</li></ul></section></div><div ><h3 >Resolution</h3><section><p>This issue has been identified as a known issue within the ServiceNow Platform as documented within PRB1253433 however it has been marked as 'Working As Expected'</p>\r\n<p>Following review it was confirmed that these modules had been marked as 'inactive' and were not meant to be enabled for customer use.</p>\r\n<p>If you believe you still need to access the specific data within the modules/tables in question then you can implement of the of the following workarounds:</p>\r\n<p><strong>1)</strong> Navigate directly to the tables specified for each module without using the default links which trigger the additional script include</p>\r\n<p>IE:</p>\r\n<p><instance-name>.service-now.com/sys_ui_message_list.do</p>\r\n<p><instance-name>.service-now.com/sys_translated_list.do</p>\r\n<p><instance-name>.service-now.com/sys_documentation_list.do</p>\r\n<p><strong>2)</strong> Create a UI page with the following script :</p>\r\n<pre><?xml version="1.0" encoding="utf-8" ?><br /><j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"><br /><body><br /><div><b><u>Non-Translated Messages</u></b><br /><br /><br /><table id="sTable" align="left" style="width:300px"><br /><tr bgcolor="grey"><br /><th><b>Sys ID</b></th><br /><th><b>Key</b></th><br /><th><b>Application</b></th><br /><th><b>Message</b></th><br /><th><b>Language</b></th><br /></tr><br /><g2:evaluate var="jvar_results" object='true' jelly="true"><br />var getFieldValues = function (record, fields) {<br />var list = record[fields[0]];<br />for (var field = 1; field &lt; fields.length; field++) {<br />list += ':' + record[fields[field]];<br />}<br />return list;<br />}<br />var table = 'sys_ui_message';<br />var fields = new Array('key', 'application');<br />// get list of records in other languages<br />var records = new Array();<br />var record = new GlideRecord(table);<br />record.addQuery('language', '!=', 'en');<br />record.query();<br />var list = new Object();<br />var recordList = '';<br />while (record.next()) {<br />recordList = getFieldValues(record, fields);<br />list[recordList] = true;<br />}<br />// next check if each English record is found<br />// in our translated list, if not add it to our return array<br />var check = new GlideRecord(table);<br />check.addQuery('language', 'en');<br />check.query();<br />var checkList = '';<br />while (check.next()) {<br />checkList = getFieldValues(check, fields);<br />if (list[checkList]) {<br />continue;<br />}<br />var entry = {};<br />entry.currentKey = check.getValue('key');<br />entry.currentApplication = check.getValue('application');<br />entry.currentMsg = check.getValue('message');<br />entry.currentLanguage = check.getValue('language');<br />entry.currentSysId = check.getValue('sys_id');<br />records.push(entry);<br />}<br />records;<br /></g2:evaluate><br /><j2:forEach items="$[jvar_results]" var="jvar_entry"><br /><tr><br /><td><a href="sys_ui_message.do?sys_id=$[jvar_entry.currentSysId]"> $[jvar_entry.currentSysId]</a></td><br /><td>$[jvar_entry.currentKey]</td><br /><td>$[jvar_entry.currentApplication]</td><br /><td>$[jvar_entry.currentMsg]</td><br /><td>$[jvar_entry.currentLanguage]</td><br /></tr><br /></j2:forEach><br /></table><br /><br /><br /></div><br /></body><br /></j:jelly></pre></section></div></article></div>"}</script>