<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":"369","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 >Description</h3><section><p>All options under &#39;<str","articleBody":"<h2>Inefficient load of customizations for System Localization -> Non-Translated Items</h2><br/><div style=\"overflow-x:auto\"><article><div ><h3 >Description</h3><section><p>All options under &#39;<strong>System Localization -&gt; Non-Translated Items</strong>&#39; contain the following arguments in the default URL:<br /><br /><em>sys_id&#61;javascript:new I18nUtils().getCustomizations(&#39;sys_ui_message&#39;, new Array(&#39;key&#39;, &#39;application&#39;));</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 &#39;Working As Expected&#39;</p>\r\n<p>Following review it was confirmed that these modules had been marked as &#39;inactive&#39; 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>&lt;instance-name&gt;.service-now.com/sys_ui_message_list.do</p>\r\n<p>&lt;instance-name&gt;.service-now.com/sys_translated_list.do</p>\r\n<p>&lt;instance-name&gt;.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>&lt;?xml version&#61;&#34;1.0&#34; encoding&#61;&#34;utf-8&#34; ?&gt;<br />&lt;j:jelly trim&#61;&#34;false&#34; xmlns:j&#61;&#34;jelly:core&#34; xmlns:g&#61;&#34;glide&#34; xmlns:j2&#61;&#34;null&#34; xmlns:g2&#61;&#34;null&#34;&gt;<br />&lt;body&gt;<br />&lt;div&gt;&lt;b&gt;&lt;u&gt;Non-Translated Messages&lt;/u&gt;&lt;/b&gt;<br />&lt;br /&gt;<br />&lt;table id&#61;&#34;sTable&#34;   align&#61;&#34;left&#34; style&#61;&#34;width:300px&#34;&gt;<br />&lt;tr bgcolor&#61;&#34;grey&#34;&gt;<br />&lt;th&gt;&lt;b&gt;Sys ID&lt;/b&gt;&lt;/th&gt;<br />&lt;th&gt;&lt;b&gt;Key&lt;/b&gt;&lt;/th&gt;<br />&lt;th&gt;&lt;b&gt;Application&lt;/b&gt;&lt;/th&gt;<br />&lt;th&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/th&gt;<br />&lt;th&gt;&lt;b&gt;Language&lt;/b&gt;&lt;/th&gt;<br />&lt;/tr&gt;<br />&lt;g2:evaluate  var&#61;&#34;jvar_results&#34; object&#61;&#39;true&#39; jelly&#61;&#34;true&#34;&gt;<br />var getFieldValues &#61; function (record, fields) {<br />var list &#61; record[fields[0]];<br />for (var field &#61; 1; field &amp;lt; fields.length; field&#43;&#43;) {<br />list &#43;&#61; &#39;:&#39; &#43; record[fields[field]];<br />}<br />return list;<br />}<br />var table &#61; &#39;sys_ui_message&#39;;<br />var fields &#61; new Array(&#39;key&#39;, &#39;application&#39;);<br />// get list of records in other languages<br />var records &#61; new Array();<br />var record &#61; new GlideRecord(table);<br />record.addQuery(&#39;language&#39;, &#39;!&#61;&#39;, &#39;en&#39;);<br />record.query();<br />var list &#61; new Object();<br />var recordList &#61; &#39;&#39;;<br />while (record.next()) {<br />recordList &#61; getFieldValues(record, fields);<br />list[recordList] &#61; 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 &#61; new GlideRecord(table);<br />check.addQuery(&#39;language&#39;, &#39;en&#39;);<br />check.query();<br />var checkList &#61; &#39;&#39;;<br />while (check.next()) {<br />checkList &#61; getFieldValues(check, fields);<br />if (list[checkList]) {<br />continue;<br />}<br />var entry &#61; {};<br />entry.currentKey &#61; check.getValue(&#39;key&#39;);<br />entry.currentApplication &#61; check.getValue(&#39;application&#39;);<br />entry.currentMsg &#61; check.getValue(&#39;message&#39;);<br />entry.currentLanguage &#61; check.getValue(&#39;language&#39;);<br />entry.currentSysId &#61; check.getValue(&#39;sys_id&#39;);<br />records.push(entry);<br />}<br />records;<br />&lt;/g2:evaluate&gt;<br />&lt;j2:forEach items&#61;&#34;$[jvar_results]&#34; var&#61;&#34;jvar_entry&#34;&gt;<br />&lt;tr&gt;<br />&lt;td&gt;&lt;a href&#61;&#34;sys_ui_message.do?sys_id&#61;$[jvar_entry.currentSysId]&#34;&gt; $[jvar_entry.currentSysId]&lt;/a&gt;&lt;/td&gt;<br />&lt;td&gt;$[jvar_entry.currentKey]&lt;/td&gt;<br />&lt;td&gt;$[jvar_entry.currentApplication]&lt;/td&gt;<br />&lt;td&gt;$[jvar_entry.currentMsg]&lt;/td&gt;<br />&lt;td&gt;$[jvar_entry.currentLanguage]&lt;/td&gt;<br />&lt;/tr&gt;<br />&lt;/j2:forEach&gt;<br />&lt;/table&gt;<br />&lt;br /&gt;<br />&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/j:jelly&gt;</pre></section></div></article></div>"}</script>
  Loading...