SlideShare a Scribd company logo
Language Translations
Tested in ServiceNow
Istanbul & Jakarta Releases
4/17/2018 1© 2018 DataIntent LLC
Purpose
The function of this presentation is to explain the processes for adding
translations to a Scoped Custom Application in ServiceNow.
English to Spanish translations are covered, but the methods employed
apply to all languages.
4/17/2018 2© 2018 DataIntent LLC
Language Internalization
4/17/2018 3© 2018 DataIntent LLC
Activating plugins and languages is performed by the purchaser of the custom
application for their Global ServiceNow production instance.
The same activations are performed in the custom application development
instance.
Language Internalization
ServiceNow plug-in activation writes to Global Application Scope.
4/17/2018 4© 2018 DataIntent LLC
Knowledge
Article
Facts About Global Scope:
• All custom app components must in the custom application scope.
• Typically, only applications provided by ServiceNow are in the global scope*
• However all custom apps created before application scope was implemented
are also in the global scope*
• Apps in the global scope are also not eligible for upload to the ServiceNow
Store*
• When language internalization is activated data is written to the global scope
• This data can be effected by ServiceNow updates
• This data should be confirmed by language expert although changes are made
in the global scope
* Quotes from ServiceNow documentation
4/17/2018 5© 2018 DataIntent LLC
Facts About Custom Application Scope
The only objects that can be imported into Scoped Custom Applications are records
written to the Scoped Custom Application, other objects are written to the global
application by default; And cannot be uploaded to the ServiceNow store.
4/17/2018 6© 2018 DataIntent LLC
Global VS. Custom Scoped Client Scripts
Client Scripts which are created as part of a Scoped Custom
Application, are executed slightly differently than their non-scoped
counterparts.
Inaccessible APIs for Scoped Custom Applications Modified APIs for Scoped Custom Applications
GlideRecord GlideAjax
window g_form
document GlideDialogWindow
$ (Prototype library)
$$ (Prototype library selector shortcut)
jQuery
$j (jQuery shortcut)
$F (Sizzle form element value shortcut)
This information was provided by Cory Seering, a ServiceNow Employee via the Developer Community.
Open attached .pdf for more details.
4/17/2018 7© 2018 DataIntent LLC
Translation Objects
The following slides explain the
process of inserting translations for:
• Modules
• Form sections
• Field labels
• Choices
• Translated text
• Using reference fields as an import
data workaround
• Client side scripts
• Server side scripts
4/17/2018 8© 2018 DataIntent LLC
Modules
4/17/2018 9© 2018 DataIntent LLC
Example of modules filtered
using the word “translate”
Modules — Structure
Module Created
in Studio
New Module
ServiceNow Browser
Module labels can
now be created /
edited via:
Translation Support >
Translated Name /
Fields
Exact match of
module label in
System
Localization
Application
menu?
New Module
Saved
Label
(en)
No
Yes
Label Translated
by System
New Label
(es)
Label
(es)
4/17/2018 10© 2018 DataIntent LLC
Modules — Inserting
1. Follow the menu path: Translation Support > Translated Name / Fields
2. Complete:
1. Label = (translated text)
2. Element = title
3. Language = “es”
4. Table = sys_app_module
5. Value = English label
3. Click submit button.
4/17/2018 11© 2018 DataIntent LLC
Modules — Workaround
If the steps on the slide labeled “Modules — Inserting “ fails
(as it occasionally does); the steps below provide a workaround.
1. Login to instance with the language required for the translation selected.
2. Change the Module title from ServiceNow browser.
3. Update.
4. The new label is saved in the language.
Notes:
The setting of Global is automatically applied to application usage.
(Not in Global ServiceNow app, but globally across the custom app)
ServiceNow
Browser
Module labels can
be edited via:
Translation Support
> Translated Name /
Fields
or
Translation Support
> Field Label
4/17/2018 12© 2018 DataIntent LLC
Disclaimer — Modules Workaround
4/17/2018 13© 2018 DataIntent LLC
Disclaimer — Modules Workaround
WARNING:
• Making configuration changes after switching to another language
may have unforeseen consequences, including wiping out 90% of
your translations for an entire table.
• When changing the language in the ServiceNow Navigator, Studio IDE
automatically changes to the newly selected language.
• When the language is set back to the original language in the
ServiceNow Navigator, Studio IDE does not change back to the
original language, a browser language change and refresh is required
to set Studio IDE back to English.
4/17/2018 14© 2018 DataIntent LLC
Scenario
1. A table is created in English.
2. Spanish labels and choices are applied to fields in the table.
3. Language settings are changed to another language.
4. A change is made to an object in the table using Studio IDE.
(example: an attribute is changed for one column)
5. The labels are changed to original English value while plurals for the
labels are not effected.
6. All other translated text, choices, etc. may also* be changed
to an English value.
*Results in testing varied
4/17/2018 15© 2018 DataIntent LLC
Scenario Example — Before & After
4/17/2018 16© 2018 DataIntent LLC
Form Sections
4/17/2018 17© 2018 DataIntent LLC
Example of form sections (tabs) from my personal instance
Form Sections — Structure
Translation Support >
Translated Name /
Fields table
New
Record
Created
(es)
System UI > Forms
(ServiceNow Browser)
Form Sections
Edits performed using
Translation Support >
Translated Name / Fields
table
Form
(Studio)
Form Section
(en)
Form Section
(en)
Form Section
(en)
Position Sys UI section Table
Position Sys UI section Table
Position Sys UI section Table
4/17/2018 18© 2018 DataIntent LLC
Form Sections — Inserting
1. Navigate to Translation Support > Translated Name / Fields.
2. Click New button.
3. Select the following options:
a. Table = "sys_ui_section"
b. Element = "caption"
c. Language = “es“
d. Value = "Notes" (Provide the English name of the form section)
e. Label(translate) = “Notas" (Translated Spanish text)
4. The ID field is used to identify a specific record.
5. Click Submit button.
4/17/2018 19© 2018 DataIntent LLC
Form Sections — Workarounds
The following problems related to form sections require workarounds.
Issues:
• Process stopped working for multiple tabs.
• The system only matches the first instance of the caption per Scoped Custom
Application.
• Broken relationship between sys_ui_section & sys_ui_form_section
documented in ServiceNow Developer’s Community.
• Show / Hide form sections is not possible because JavaScript / JSON
cannot recognize the full UTF-8 character set (including diacritics).
4/17/2018 © 2018 DataIntent LLC 20
Workaround — Displaying Form Sections
Show / hide a UI Action (form button) based on browser session language settings:
• Display a table of translations as a system message.
• Display a Knowledge Article with a table of translations in a new browser
window using a button.
• Display a Knowledge Article with a table of translations in a new browser
window using a check-box (true/false) via a UI Policy.
4/17/2018 21© 2018 DataIntent LLC
Hide / Show UI Action (form button)
Requirement:
A client script that hides or shows a button based on the user’s session browser
language settings.
Issue
The script contains the API g_lang which is not documented in any ServiceNow
materials and is not found in JavaScript, JSON, or Angular scripting.
Question for ServiceNow:
Is usage of the API g_lang, considered being within best practices for ServiceNow?
4/17/2018 22© 2018 DataIntent LLC
Hide / Show Button — Language Condition
Client Script
This script contains $$; A Prototype library selector
shortcut API.
The Prototype library selector shortcut API is Inaccessible
to Scoped Custom Applications with OOB settings.
Document Object Model (DOM) manipulation is required
to utilize the Prototype library selector shortcut API.
In the custom app, create an explicit system property to
allow DOM manipulation by creating the property
glide.script.block.client.globals set to false.
Issue
DOM manipulation is considered opting out of best
practices and avoided if possible, because of
maintainability issues when browsers are updated.
4/17/2018 23© 2018 DataIntent LLC
UI Action — System Message
Requirement: The form contains a UI Action (form button) that opens a URL
link in a new browser window leading to a Knowledge Article with a table
containing translations for the section labels. The button is shown or hidden
based on the current browser language settings.
Issue
A table containing section or field labels is a simple way to deal
with translations, but impedes a seamless UI experience.
4/17/2018 24© 2018 DataIntent LLC
UI Action — System Message
UI Action Settings:
• Active — true
• Show insert — true
• Show update — true
• Client — false
• Form button — true
• Condition —
onClick()
4/17/2018 25© 2018 DataIntent LLC
UI Action — Script
UI Action Script
4/17/2018 26© 2018 DataIntent LLC
Issue
The code “current.setAbortAction” is utilized to avoid the user “losing” new entries on the form; this
workaround adds an error message to the info message and could cause confusion for the end-user.
UI Action — System Message
System message displayed following mouse click.
4/17/2018 27© 2018 DataIntent LLC
UI Action — System Message Without Error
System message displayed following mouse click.
Issue
If current.setAbortAction is not utilized the user exists the record returning to list view new while new
entries on the form are cleared.
4/17/2018 28© 2018 DataIntent LLC
UI Action — Open URL In A New Window
Requirement:
Open a URL linking to a Knowledge Article in new browser window using a UI
Action (form button) with a table containing translations for the section labels.
4/17/2018 29© 2018 DataIntent LLC
UI Action — Open URL In A New Window
4/17/2018 30© 2018 DataIntent LLC
Requirement (continued):
The button is shown or hidden based on the current browser language settings.
UI Action — Open URL In A New Window
4/17/2018 31© 2018 DataIntent LLC
UI Action — Open URL In A New Window
Requirement (continued):
The button is shown or hidden based on the current browser language settings.
4/17/2018 32© 2018 DataIntent LLC
When the Traducir
button is clicked a
Knowledge Article is
opened in a new
window
UI Action — Open URL In A New Window
4/17/2018 33© 2018 DataIntent LLC
Issue:
A table containing section or field labels is a simple way to deal with translations, but impedes
a seamless UI experience.
UI Action — Open URL In A New Window
UI Action Settings:
• Active — true
• Show insert — true
• Show update — true
• Client — true
• Form button — true
• OnClick — viewPortal()
• Condition — !(new KBCommon().isStackNameDialog())
4/17/2018 34© 2018 DataIntent LLC
UI Action — Open URL In A New Window
UI Action Script
4/17/2018 35© 2018 DataIntent LLC
UI Policy — Open URL In New Window
Requirements:
• A UI Policy that opens a URL linking to a Knowledge Article in new browser
window containing translations for the section labels.
• The check-box is shown or hidden based on the current browser language
settings.
4/17/2018 © 2018 DataIntent LLC 36
UI Policy — Open URL In New Window
UI Policy script:
4/17/2018 © 2018 DataIntent LLC 37
Form section:
Technical metadata - Metadata técnica
Form Sections With Diacritics
This workaround is required for tabs containing text with diacritic accents.
Examples: á, è, í, ú, etc.
Issue
Intrusive — the workaround mentioned here, requires changes to the
Scoped Custom Application.
4/17/2018 38© 2018 DataIntent LLC
Workarounds — Displaying Form Sections
Show / hide form view containing new fields (other language), based on browser
session language settings:
• The new fields are creating in the existing English table with corresponding fields.
• The data is copied from newly created fields to the corresponding English fields in
the application.
• The data is cleared from the new language field when the form is closed. If an
existing record is opened the fields auto populate with data from the server.
4/17/2018 39© 2018 DataIntent LLC
New Sections and Views
Form Section
(en)
Form
(Studio)
Original View
(en)
Form Section
(es) New View (es)New Section
Original Section
Form Section
(pb)
New View (pb)
New Section
4/17/2018 40© 2018 DataIntent LLC
Tables & Fields
Form Section
fields
(en)
Form Section
fields
(es)
Form Section
fields
(pb)
Form
(Studio)
Original Field
(en)
4/17/2018 41© 2018 DataIntent LLC
Tables & Fields
Form Section
fields
(en)
Form Section
fields
(es)
Form Section
fields
(pb)
Form
(Studio)
Original Field
(en)
4/17/2018 42© 2018 DataIntent LLC
Form Section
fields
(en)
Form Section
fields
(es)
Form Section
fields
(pb)
Copying & Clearing Data
4/17/2018 43© 2018 DataIntent LLC
Form Section
fields
(en)
Form Section
fields
(es)
Form Section
fields
(pb)
Form
(Studio)
Original Field
(en)
Form Section
fields
(en)
Form Section
fields
(es)
Form Section
fields
(pb)
Labels
4/17/2018 44© 2018 DataIntent LLC
Examples of form labels from my personal instance
Labels — Structure
(ServiceNow Studio)
Language
Label
Hint
Plural
Help / URL
Column label
(ServiceNow Studio)
Language
Label
Hint
Plural
Help / URL
Table label
Translation Support >
Field Labels
Data Dictionary
sys_documentation.list
ServiceNow Browser
Translated
label
4/17/2018 45© 2018 DataIntent LLC
Labels — Inserting
1. Follow the menu path: Translation Support > Language file or
enter sys_documentation.list in the ServiceNow browser and press the Enter key.
2. Complete:
1. Table = x_table
2. Label = (translated text)
3. Plural = (plural of translated text)
4. Language = “es”
5. Help text
6. Hint text
3. Click submit button.
4/17/2018 46© 2018 DataIntent LLC
4/17/2018 47© 2018 DataIntent LLC
Choices
Examples of a choice lists from my personal instance
Choices — Structure
(ServiceNow Studio)
Column labelTable Choice
Hint
Language
Label
Value
Sequence
Translation Support >
Choices
sys_choice.list
Data Dictionary
ServiceNow Browser
Translated
choice
4/17/2018 48© 2018 DataIntent LLC
Choices — Inserting
The following works with Choice & String fields.
1. Navigate to Translation Support > Choices.
2. Click New button.
3. Choose the following options,
a. Table = “x_table"
b. Element = “u_field"
c. Language = “es“
d. Value = “a" (choice value must match translation)
e. Label(translate) = Translated text
f. Sequence = “0” (sequence much match translation)
g. Hint
4. Click on Submit button.
Translated choices are not
listed in alphabetical order
like the English choices.
This may be fixed with a
Business Rule…
4/17/2018 49© 2018 DataIntent LLC
Translated Text
Translated text entered into records
4/17/2018 50© 2018 DataIntent LLC
Examples of translated text from my personal instance
Facts — Translated HTML / Text
• Translated Text & Translated HTML have the
same structure and function
• Translated HTML / Text is applied to one record
• The text displayed depends on the user’s
language settingRecord no. 001
Translated Text
English
Translated Text
Spanish
One Record
4/17/2018 51© 2018 DataIntent LLC
Non-Translated Field Data
Non-translated field data is not effected by translated text in the
record. All users have the same view of non-translated field data
regardless of their language setting.
Translated HTML
or Text
Record no. 001 String True / False
Non-translated field data is not effected by
language settings
4/17/2018 52© 2018 DataIntent LLC
Editing Translated HTML / Text Fields
Editing:
• Translated HTML & Translated Text can be edited
directly within a record
or via the menu path:
Translation Support > Translated Text.
• Only the translated HTML / Text is displayed or edited
using Translated Texts table; the non-translated fields
for the record are not available in this table.
Record no. 001
Translated Text
English
Translated Text
Spanish
One Record
Translated Texts Table
Translated Text
Spanish
4/17/2018 53© 2018 DataIntent LLC
Translated Text / Translated HTML
Three useful functions for working with translated text:
• User Entry
• Reference field
• Redirect to another table*
*Not actually translated text but requirement of displaying translated
text to user is achieved
4/17/2018 54© 2018 DataIntent LLC
User Entry — Structure
HTML / Text
English
ServiceNow Browser User language setting is English
Record no. 001 String True / False
HTML / Text
English
Record no. 002 String True / False
HTML / Text
Spanish
ServiceNow Browser User language setting is Spanish
Record no. 001 String True / False
HTML / Text
Spanish
Record no. 002 String True / False
Attachment
English
Attachments can be
viewed by all users
Attachment
Spanish
4/17/2018 55© 2018 DataIntent LLC
HTML / Text — Record Viewed in English
Attachment
English
Attachment
Spanish
HTML bar
Translated
Text
String
String
True/False
Choice
Reference with
translated text
Choice
String
Translated
HTML
Number
Reference
Decimal
4/17/2018 56© 2018 DataIntent LLC
HTML / Text — Record Viewed in Spanish
Attachment
English
Attachment
Spanish
HTML bar
Translated
Text
String
String
True/False
Choice
Reference with
translated text
Choice
String
Translated
HTML
Number
Reference
Decimal
4/17/2018 57© 2018 DataIntent LLC
Reference Field Workaround
Using reference fields as an import data workaround
4/17/2018 © 2018 DataIntent LLC 58
Use reference fields
containing translated
text to import
multiple translations.
The text displayed
depends on the user’s
language setting.
Reference Field — Structure
Reference Field
Form
Record no.
Translated
Text or
HTML
Reference Table
Fields
ServiceNow
Generated
columns
4/17/2018 59© 2018 DataIntent LLC
A script in the UI
policy shows
the relevant
field based on
logged-in
language
settings.
Create as many
tables as
required table
using one table
per language.
Reference Field Redirect — Structure
Reference Field
Spanish
Form
Countries
(Table with records in English)
Record no. 001
Record no. 002
Afghanistan
Algeria
Albania
Record no. 003
Países
(Table with records in Spanish)
Record no. 001
Record no. 002
Afganistán
Albania
ArgeliaRecord no. 003
Fields
Reference Field
English onLoad Client Script
setDisplay fields True/False
4/17/2018 60© 2018 DataIntent LLC
UI Policy Script
function onLoad() {
//Use g_lang to retrieve language settings from browser session
//(this is not the user language setting stored on server)
//Use g_form.setDisplay with field set with value of true / false
//Use g_lang para recuperar configuraciones de idioma de la sesión del navegador
// (esta no es la configuración de idioma del usuario almacenada en el servidor)
// Usa g_form.setDisplay con el campo establecido con el valor de verdadero / falso
if(g_lang == 'en'){
g_form.setDisplay('u_colores', false);
g_form.setDisplay('u_colors', true);
g_form.setDisplay('u_cor', false);
}
else if(g_lang == 'es'){
g_form.setDisplay('u_colores', true);
g_form.setDisplay('u_colors', false);
g_form.setDisplay('u_cor', false); }
else if(g_lang == 'pb'){
g_form.setDisplay('u_colores', false);
g_form.setDisplay('u_colors', false);
g_form.setDisplay('u_cor', true);
}
}
This script shows the user
one of three fields based
on session browser
language settings.
4/17/2018 61© 2018 DataIntent LLC
Translated Text — Inserting
Translated text
Edit the Record directly or:
1. Follow the menu path: Translation Support > Translated Text.
2. Required fields:
1. Document (match to record)
2. Field name
3. Language
4. Table name
5. Value (translated text)
3. Click the Submit button.
Issue
The Attributes for Reference Auto Complete Fields
do not work with translated text (numbers work
though...) There may be a way to use a client
script to facilitate this process.
4/17/2018 62© 2018 DataIntent LLC
Client / Server Development
4/17/2018 63© 2018 DataIntent LLC
Jelly : Executable XML
Client / Server Development Suggestions:
• It is recommended to only change scripts manually; The dangers
presented by importing this data outweighs any benefits, also data is
written to the Global Application by default.
• If an existing script references a field label and not a field value, the
script must be changed to reference the value.
• Having labeled tables allows users logged in with other languages to
view actions more clearly.
4/17/2018 © 2018 DataIntent LLC 64
Client Scripts:
• Provide description in both languages ex.:
• Display u_book_language or u_book_idioma based on session language — en
• Muestra u_book_language o u_book_idioma porque en el idioma de la sesión —
es
• Messages:
• Create a message and a translated message
or
• Insert messages directly into code
• if(g_lang == 'en’){ g_form.addInfoMessage('The Language field has "English"
values.’)
• Script: Add translated notes if helpful
• // English note
• //nota en español
4/17/2018 65© 2018 DataIntent LLC
UI Policies
• The Short description field contains limited space probably not helpful to
store translations here. A Knowledge Article can be used to display a
cross walk with translations.
• The Description field can be use to enter details in multiple langueges.
• Ex. Data info. — en
Información sobre los datos — es
• When to Apply conditions & UI Policy Actions are saved by ServiceNow as
code containing the u_field references, no changes are required for
translations.
4/17/2018 66© 2018 DataIntent LLC
END OF PRESENTATION
4/17/2018 © 2018 DataIntent LLC 68

More Related Content

What's hot

Introduction to React Native - Nader Dabit
Introduction to React Native - Nader DabitIntroduction to React Native - Nader Dabit
Introduction to React Native - Nader Dabit
Amazon Web Services
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
NodeXperts
 
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
Sandy Winarko
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
Simplilearn
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
Mario Beck
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete Tutorial
Sveta Smirnova
 
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DBHow a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
Carlos Sierra
 
SIEBEL CRM - Ess Architecture - 05
SIEBEL CRM - Ess Architecture - 05 SIEBEL CRM - Ess Architecture - 05
SIEBEL CRM - Ess Architecture - 05
MICLADE
 
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Tony Pearson
 
Understanding my database through SQL*Plus using the free tool eDB360
Understanding my database through SQL*Plus using the free tool eDB360Understanding my database through SQL*Plus using the free tool eDB360
Understanding my database through SQL*Plus using the free tool eDB360
Carlos Sierra
 
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's newIBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
Sandra Sergi
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
rainynovember12
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
GraphRM
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Masahiko Sawada
 
Java logging
Java loggingJava logging
Java logging
Jumping Bean
 
Oracle Application Express (APEX) and Microsoft Sharepoint integration
Oracle Application Express (APEX) and Microsoft Sharepoint integrationOracle Application Express (APEX) and Microsoft Sharepoint integration
Oracle Application Express (APEX) and Microsoft Sharepoint integration
Dimitri Gielis
 
Real-Time Web Apps & Symfony. What are your options?
Real-Time Web Apps & Symfony. What are your options?Real-Time Web Apps & Symfony. What are your options?
Real-Time Web Apps & Symfony. What are your options?
Phil Leggetter
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 
InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internal
mysqlops
 

What's hot (20)

Introduction to React Native - Nader Dabit
Introduction to React Native - Nader DabitIntroduction to React Native - Nader Dabit
Introduction to React Native - Nader Dabit
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
 
Sdd template
Sdd templateSdd template
Sdd template
 
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete Tutorial
 
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DBHow a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
 
SIEBEL CRM - Ess Architecture - 05
SIEBEL CRM - Ess Architecture - 05 SIEBEL CRM - Ess Architecture - 05
SIEBEL CRM - Ess Architecture - 05
 
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
 
Understanding my database through SQL*Plus using the free tool eDB360
Understanding my database through SQL*Plus using the free tool eDB360Understanding my database through SQL*Plus using the free tool eDB360
Understanding my database through SQL*Plus using the free tool eDB360
 
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's newIBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
Java logging
Java loggingJava logging
Java logging
 
Oracle Application Express (APEX) and Microsoft Sharepoint integration
Oracle Application Express (APEX) and Microsoft Sharepoint integrationOracle Application Express (APEX) and Microsoft Sharepoint integration
Oracle Application Express (APEX) and Microsoft Sharepoint integration
 
Real-Time Web Apps & Symfony. What are your options?
Real-Time Web Apps & Symfony. What are your options?Real-Time Web Apps & Symfony. What are your options?
Real-Time Web Apps & Symfony. What are your options?
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internal
 

Similar to Language Translations for Custom Scoped Applications in ServiceNow

POS 408 Education Specialist / snaptutorial.com
POS 408 Education Specialist / snaptutorial.comPOS 408 Education Specialist / snaptutorial.com
POS 408 Education Specialist / snaptutorial.com
McdonaldRyan107
 
POS/408 ENTIRE CLASS UOP TUTORIALS
POS/408 ENTIRE CLASS UOP TUTORIALSPOS/408 ENTIRE CLASS UOP TUTORIALS
POS/408 ENTIRE CLASS UOP TUTORIALS
Sharon Reynolds
 
POS 408 Effective Communication - tutorialrank.com
POS 408  Effective Communication - tutorialrank.comPOS 408  Effective Communication - tutorialrank.com
POS 408 Effective Communication - tutorialrank.com
Bartholomew58
 
Pos 408 Social Responsibility - tutorialrank.com
Pos 408  Social Responsibility - tutorialrank.comPos 408  Social Responsibility - tutorialrank.com
Pos 408 Social Responsibility - tutorialrank.com
PrescottLunt1008
 
Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
Atwix
 
What's New In EP5 for SAP, Microsoft, Salesforce and Oracle
What's New In EP5 for SAP, Microsoft, Salesforce and OracleWhat's New In EP5 for SAP, Microsoft, Salesforce and Oracle
What's New In EP5 for SAP, Microsoft, Salesforce and Oracle
OpenText
 
API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...
SlideTeam
 
InfoPain and Beyond
InfoPain and BeyondInfoPain and Beyond
InfoPain and Beyond
Stephan Onisick
 
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
Mohan Dutt
 
Android Development : (Android Studio, PHP, XML, MySQL)
Android Development : (Android Studio, PHP, XML, MySQL)Android Development : (Android Studio, PHP, XML, MySQL)
Android Development : (Android Studio, PHP, XML, MySQL)
Kavya Barnadhya Hazarika
 
Ratnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh Singh
 
Ratnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh Singh
 
Владимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistencyВладимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistency
Atwix
 
Real Time Project
Real Time ProjectReal Time Project
Real Time Project
NetSet Software (P) Ltd.
 
Neha
NehaNeha
SAP Training Manual Project Systems .pdf
SAP Training Manual Project Systems .pdfSAP Training Manual Project Systems .pdf
SAP Training Manual Project Systems .pdf
DineshChanakya1
 
Web application development process
Web application development processWeb application development process
Web application development process
John Smith
 
Overview on What’s New in SAP Cloud Platform Business Rules
Overview on What’s New in SAP Cloud Platform Business RulesOverview on What’s New in SAP Cloud Platform Business Rules
Overview on What’s New in SAP Cloud Platform Business Rules
SAP Cloud Platform
 

Similar to Language Translations for Custom Scoped Applications in ServiceNow (20)

POS 408 Education Specialist / snaptutorial.com
POS 408 Education Specialist / snaptutorial.comPOS 408 Education Specialist / snaptutorial.com
POS 408 Education Specialist / snaptutorial.com
 
POS/408 ENTIRE CLASS UOP TUTORIALS
POS/408 ENTIRE CLASS UOP TUTORIALSPOS/408 ENTIRE CLASS UOP TUTORIALS
POS/408 ENTIRE CLASS UOP TUTORIALS
 
POS 408 Effective Communication - tutorialrank.com
POS 408  Effective Communication - tutorialrank.comPOS 408  Effective Communication - tutorialrank.com
POS 408 Effective Communication - tutorialrank.com
 
Pos 408 Social Responsibility - tutorialrank.com
Pos 408  Social Responsibility - tutorialrank.comPos 408  Social Responsibility - tutorialrank.com
Pos 408 Social Responsibility - tutorialrank.com
 
Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
 
What's New In EP5 for SAP, Microsoft, Salesforce and Oracle
What's New In EP5 for SAP, Microsoft, Salesforce and OracleWhat's New In EP5 for SAP, Microsoft, Salesforce and Oracle
What's New In EP5 for SAP, Microsoft, Salesforce and Oracle
 
Manikanta_Chimata
Manikanta_ChimataManikanta_Chimata
Manikanta_Chimata
 
API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...
 
InfoPain and Beyond
InfoPain and BeyondInfoPain and Beyond
InfoPain and Beyond
 
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
14 Easy Steps to End-User Empowerment: Convert Custom Reports to BI Publisher
 
Android Development : (Android Studio, PHP, XML, MySQL)
Android Development : (Android Studio, PHP, XML, MySQL)Android Development : (Android Studio, PHP, XML, MySQL)
Android Development : (Android Studio, PHP, XML, MySQL)
 
Ratnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years exp
 
Ratnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years expRatnesh_JavaJ2ee_3years exp
Ratnesh_JavaJ2ee_3years exp
 
Владимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistencyВладимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistency
 
Real Time Project
Real Time ProjectReal Time Project
Real Time Project
 
Neha
NehaNeha
Neha
 
SAP Training Manual Project Systems .pdf
SAP Training Manual Project Systems .pdfSAP Training Manual Project Systems .pdf
SAP Training Manual Project Systems .pdf
 
Nazeer Resume
Nazeer ResumeNazeer Resume
Nazeer Resume
 
Web application development process
Web application development processWeb application development process
Web application development process
 
Overview on What’s New in SAP Cloud Platform Business Rules
Overview on What’s New in SAP Cloud Platform Business RulesOverview on What’s New in SAP Cloud Platform Business Rules
Overview on What’s New in SAP Cloud Platform Business Rules
 

Recently uploaded

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Language Translations for Custom Scoped Applications in ServiceNow

  • 1. Language Translations Tested in ServiceNow Istanbul & Jakarta Releases 4/17/2018 1© 2018 DataIntent LLC
  • 2. Purpose The function of this presentation is to explain the processes for adding translations to a Scoped Custom Application in ServiceNow. English to Spanish translations are covered, but the methods employed apply to all languages. 4/17/2018 2© 2018 DataIntent LLC
  • 4. Activating plugins and languages is performed by the purchaser of the custom application for their Global ServiceNow production instance. The same activations are performed in the custom application development instance. Language Internalization ServiceNow plug-in activation writes to Global Application Scope. 4/17/2018 4© 2018 DataIntent LLC Knowledge Article
  • 5. Facts About Global Scope: • All custom app components must in the custom application scope. • Typically, only applications provided by ServiceNow are in the global scope* • However all custom apps created before application scope was implemented are also in the global scope* • Apps in the global scope are also not eligible for upload to the ServiceNow Store* • When language internalization is activated data is written to the global scope • This data can be effected by ServiceNow updates • This data should be confirmed by language expert although changes are made in the global scope * Quotes from ServiceNow documentation 4/17/2018 5© 2018 DataIntent LLC
  • 6. Facts About Custom Application Scope The only objects that can be imported into Scoped Custom Applications are records written to the Scoped Custom Application, other objects are written to the global application by default; And cannot be uploaded to the ServiceNow store. 4/17/2018 6© 2018 DataIntent LLC
  • 7. Global VS. Custom Scoped Client Scripts Client Scripts which are created as part of a Scoped Custom Application, are executed slightly differently than their non-scoped counterparts. Inaccessible APIs for Scoped Custom Applications Modified APIs for Scoped Custom Applications GlideRecord GlideAjax window g_form document GlideDialogWindow $ (Prototype library) $$ (Prototype library selector shortcut) jQuery $j (jQuery shortcut) $F (Sizzle form element value shortcut) This information was provided by Cory Seering, a ServiceNow Employee via the Developer Community. Open attached .pdf for more details. 4/17/2018 7© 2018 DataIntent LLC
  • 8. Translation Objects The following slides explain the process of inserting translations for: • Modules • Form sections • Field labels • Choices • Translated text • Using reference fields as an import data workaround • Client side scripts • Server side scripts 4/17/2018 8© 2018 DataIntent LLC
  • 9. Modules 4/17/2018 9© 2018 DataIntent LLC Example of modules filtered using the word “translate”
  • 10. Modules — Structure Module Created in Studio New Module ServiceNow Browser Module labels can now be created / edited via: Translation Support > Translated Name / Fields Exact match of module label in System Localization Application menu? New Module Saved Label (en) No Yes Label Translated by System New Label (es) Label (es) 4/17/2018 10© 2018 DataIntent LLC
  • 11. Modules — Inserting 1. Follow the menu path: Translation Support > Translated Name / Fields 2. Complete: 1. Label = (translated text) 2. Element = title 3. Language = “es” 4. Table = sys_app_module 5. Value = English label 3. Click submit button. 4/17/2018 11© 2018 DataIntent LLC
  • 12. Modules — Workaround If the steps on the slide labeled “Modules — Inserting “ fails (as it occasionally does); the steps below provide a workaround. 1. Login to instance with the language required for the translation selected. 2. Change the Module title from ServiceNow browser. 3. Update. 4. The new label is saved in the language. Notes: The setting of Global is automatically applied to application usage. (Not in Global ServiceNow app, but globally across the custom app) ServiceNow Browser Module labels can be edited via: Translation Support > Translated Name / Fields or Translation Support > Field Label 4/17/2018 12© 2018 DataIntent LLC
  • 13. Disclaimer — Modules Workaround 4/17/2018 13© 2018 DataIntent LLC
  • 14. Disclaimer — Modules Workaround WARNING: • Making configuration changes after switching to another language may have unforeseen consequences, including wiping out 90% of your translations for an entire table. • When changing the language in the ServiceNow Navigator, Studio IDE automatically changes to the newly selected language. • When the language is set back to the original language in the ServiceNow Navigator, Studio IDE does not change back to the original language, a browser language change and refresh is required to set Studio IDE back to English. 4/17/2018 14© 2018 DataIntent LLC
  • 15. Scenario 1. A table is created in English. 2. Spanish labels and choices are applied to fields in the table. 3. Language settings are changed to another language. 4. A change is made to an object in the table using Studio IDE. (example: an attribute is changed for one column) 5. The labels are changed to original English value while plurals for the labels are not effected. 6. All other translated text, choices, etc. may also* be changed to an English value. *Results in testing varied 4/17/2018 15© 2018 DataIntent LLC
  • 16. Scenario Example — Before & After 4/17/2018 16© 2018 DataIntent LLC
  • 17. Form Sections 4/17/2018 17© 2018 DataIntent LLC Example of form sections (tabs) from my personal instance
  • 18. Form Sections — Structure Translation Support > Translated Name / Fields table New Record Created (es) System UI > Forms (ServiceNow Browser) Form Sections Edits performed using Translation Support > Translated Name / Fields table Form (Studio) Form Section (en) Form Section (en) Form Section (en) Position Sys UI section Table Position Sys UI section Table Position Sys UI section Table 4/17/2018 18© 2018 DataIntent LLC
  • 19. Form Sections — Inserting 1. Navigate to Translation Support > Translated Name / Fields. 2. Click New button. 3. Select the following options: a. Table = "sys_ui_section" b. Element = "caption" c. Language = “es“ d. Value = "Notes" (Provide the English name of the form section) e. Label(translate) = “Notas" (Translated Spanish text) 4. The ID field is used to identify a specific record. 5. Click Submit button. 4/17/2018 19© 2018 DataIntent LLC
  • 20. Form Sections — Workarounds The following problems related to form sections require workarounds. Issues: • Process stopped working for multiple tabs. • The system only matches the first instance of the caption per Scoped Custom Application. • Broken relationship between sys_ui_section & sys_ui_form_section documented in ServiceNow Developer’s Community. • Show / Hide form sections is not possible because JavaScript / JSON cannot recognize the full UTF-8 character set (including diacritics). 4/17/2018 © 2018 DataIntent LLC 20
  • 21. Workaround — Displaying Form Sections Show / hide a UI Action (form button) based on browser session language settings: • Display a table of translations as a system message. • Display a Knowledge Article with a table of translations in a new browser window using a button. • Display a Knowledge Article with a table of translations in a new browser window using a check-box (true/false) via a UI Policy. 4/17/2018 21© 2018 DataIntent LLC
  • 22. Hide / Show UI Action (form button) Requirement: A client script that hides or shows a button based on the user’s session browser language settings. Issue The script contains the API g_lang which is not documented in any ServiceNow materials and is not found in JavaScript, JSON, or Angular scripting. Question for ServiceNow: Is usage of the API g_lang, considered being within best practices for ServiceNow? 4/17/2018 22© 2018 DataIntent LLC
  • 23. Hide / Show Button — Language Condition Client Script This script contains $$; A Prototype library selector shortcut API. The Prototype library selector shortcut API is Inaccessible to Scoped Custom Applications with OOB settings. Document Object Model (DOM) manipulation is required to utilize the Prototype library selector shortcut API. In the custom app, create an explicit system property to allow DOM manipulation by creating the property glide.script.block.client.globals set to false. Issue DOM manipulation is considered opting out of best practices and avoided if possible, because of maintainability issues when browsers are updated. 4/17/2018 23© 2018 DataIntent LLC
  • 24. UI Action — System Message Requirement: The form contains a UI Action (form button) that opens a URL link in a new browser window leading to a Knowledge Article with a table containing translations for the section labels. The button is shown or hidden based on the current browser language settings. Issue A table containing section or field labels is a simple way to deal with translations, but impedes a seamless UI experience. 4/17/2018 24© 2018 DataIntent LLC
  • 25. UI Action — System Message UI Action Settings: • Active — true • Show insert — true • Show update — true • Client — false • Form button — true • Condition — onClick() 4/17/2018 25© 2018 DataIntent LLC
  • 26. UI Action — Script UI Action Script 4/17/2018 26© 2018 DataIntent LLC Issue The code “current.setAbortAction” is utilized to avoid the user “losing” new entries on the form; this workaround adds an error message to the info message and could cause confusion for the end-user.
  • 27. UI Action — System Message System message displayed following mouse click. 4/17/2018 27© 2018 DataIntent LLC
  • 28. UI Action — System Message Without Error System message displayed following mouse click. Issue If current.setAbortAction is not utilized the user exists the record returning to list view new while new entries on the form are cleared. 4/17/2018 28© 2018 DataIntent LLC
  • 29. UI Action — Open URL In A New Window Requirement: Open a URL linking to a Knowledge Article in new browser window using a UI Action (form button) with a table containing translations for the section labels. 4/17/2018 29© 2018 DataIntent LLC
  • 30. UI Action — Open URL In A New Window 4/17/2018 30© 2018 DataIntent LLC Requirement (continued): The button is shown or hidden based on the current browser language settings.
  • 31. UI Action — Open URL In A New Window 4/17/2018 31© 2018 DataIntent LLC
  • 32. UI Action — Open URL In A New Window Requirement (continued): The button is shown or hidden based on the current browser language settings. 4/17/2018 32© 2018 DataIntent LLC When the Traducir button is clicked a Knowledge Article is opened in a new window
  • 33. UI Action — Open URL In A New Window 4/17/2018 33© 2018 DataIntent LLC Issue: A table containing section or field labels is a simple way to deal with translations, but impedes a seamless UI experience.
  • 34. UI Action — Open URL In A New Window UI Action Settings: • Active — true • Show insert — true • Show update — true • Client — true • Form button — true • OnClick — viewPortal() • Condition — !(new KBCommon().isStackNameDialog()) 4/17/2018 34© 2018 DataIntent LLC
  • 35. UI Action — Open URL In A New Window UI Action Script 4/17/2018 35© 2018 DataIntent LLC
  • 36. UI Policy — Open URL In New Window Requirements: • A UI Policy that opens a URL linking to a Knowledge Article in new browser window containing translations for the section labels. • The check-box is shown or hidden based on the current browser language settings. 4/17/2018 © 2018 DataIntent LLC 36
  • 37. UI Policy — Open URL In New Window UI Policy script: 4/17/2018 © 2018 DataIntent LLC 37
  • 38. Form section: Technical metadata - Metadata técnica Form Sections With Diacritics This workaround is required for tabs containing text with diacritic accents. Examples: á, è, í, ú, etc. Issue Intrusive — the workaround mentioned here, requires changes to the Scoped Custom Application. 4/17/2018 38© 2018 DataIntent LLC
  • 39. Workarounds — Displaying Form Sections Show / hide form view containing new fields (other language), based on browser session language settings: • The new fields are creating in the existing English table with corresponding fields. • The data is copied from newly created fields to the corresponding English fields in the application. • The data is cleared from the new language field when the form is closed. If an existing record is opened the fields auto populate with data from the server. 4/17/2018 39© 2018 DataIntent LLC
  • 40. New Sections and Views Form Section (en) Form (Studio) Original View (en) Form Section (es) New View (es)New Section Original Section Form Section (pb) New View (pb) New Section 4/17/2018 40© 2018 DataIntent LLC
  • 41. Tables & Fields Form Section fields (en) Form Section fields (es) Form Section fields (pb) Form (Studio) Original Field (en) 4/17/2018 41© 2018 DataIntent LLC
  • 42. Tables & Fields Form Section fields (en) Form Section fields (es) Form Section fields (pb) Form (Studio) Original Field (en) 4/17/2018 42© 2018 DataIntent LLC Form Section fields (en) Form Section fields (es) Form Section fields (pb)
  • 43. Copying & Clearing Data 4/17/2018 43© 2018 DataIntent LLC Form Section fields (en) Form Section fields (es) Form Section fields (pb) Form (Studio) Original Field (en) Form Section fields (en) Form Section fields (es) Form Section fields (pb)
  • 44. Labels 4/17/2018 44© 2018 DataIntent LLC Examples of form labels from my personal instance
  • 45. Labels — Structure (ServiceNow Studio) Language Label Hint Plural Help / URL Column label (ServiceNow Studio) Language Label Hint Plural Help / URL Table label Translation Support > Field Labels Data Dictionary sys_documentation.list ServiceNow Browser Translated label 4/17/2018 45© 2018 DataIntent LLC
  • 46. Labels — Inserting 1. Follow the menu path: Translation Support > Language file or enter sys_documentation.list in the ServiceNow browser and press the Enter key. 2. Complete: 1. Table = x_table 2. Label = (translated text) 3. Plural = (plural of translated text) 4. Language = “es” 5. Help text 6. Hint text 3. Click submit button. 4/17/2018 46© 2018 DataIntent LLC
  • 47. 4/17/2018 47© 2018 DataIntent LLC Choices Examples of a choice lists from my personal instance
  • 48. Choices — Structure (ServiceNow Studio) Column labelTable Choice Hint Language Label Value Sequence Translation Support > Choices sys_choice.list Data Dictionary ServiceNow Browser Translated choice 4/17/2018 48© 2018 DataIntent LLC
  • 49. Choices — Inserting The following works with Choice & String fields. 1. Navigate to Translation Support > Choices. 2. Click New button. 3. Choose the following options, a. Table = “x_table" b. Element = “u_field" c. Language = “es“ d. Value = “a" (choice value must match translation) e. Label(translate) = Translated text f. Sequence = “0” (sequence much match translation) g. Hint 4. Click on Submit button. Translated choices are not listed in alphabetical order like the English choices. This may be fixed with a Business Rule… 4/17/2018 49© 2018 DataIntent LLC
  • 50. Translated Text Translated text entered into records 4/17/2018 50© 2018 DataIntent LLC Examples of translated text from my personal instance
  • 51. Facts — Translated HTML / Text • Translated Text & Translated HTML have the same structure and function • Translated HTML / Text is applied to one record • The text displayed depends on the user’s language settingRecord no. 001 Translated Text English Translated Text Spanish One Record 4/17/2018 51© 2018 DataIntent LLC
  • 52. Non-Translated Field Data Non-translated field data is not effected by translated text in the record. All users have the same view of non-translated field data regardless of their language setting. Translated HTML or Text Record no. 001 String True / False Non-translated field data is not effected by language settings 4/17/2018 52© 2018 DataIntent LLC
  • 53. Editing Translated HTML / Text Fields Editing: • Translated HTML & Translated Text can be edited directly within a record or via the menu path: Translation Support > Translated Text. • Only the translated HTML / Text is displayed or edited using Translated Texts table; the non-translated fields for the record are not available in this table. Record no. 001 Translated Text English Translated Text Spanish One Record Translated Texts Table Translated Text Spanish 4/17/2018 53© 2018 DataIntent LLC
  • 54. Translated Text / Translated HTML Three useful functions for working with translated text: • User Entry • Reference field • Redirect to another table* *Not actually translated text but requirement of displaying translated text to user is achieved 4/17/2018 54© 2018 DataIntent LLC
  • 55. User Entry — Structure HTML / Text English ServiceNow Browser User language setting is English Record no. 001 String True / False HTML / Text English Record no. 002 String True / False HTML / Text Spanish ServiceNow Browser User language setting is Spanish Record no. 001 String True / False HTML / Text Spanish Record no. 002 String True / False Attachment English Attachments can be viewed by all users Attachment Spanish 4/17/2018 55© 2018 DataIntent LLC
  • 56. HTML / Text — Record Viewed in English Attachment English Attachment Spanish HTML bar Translated Text String String True/False Choice Reference with translated text Choice String Translated HTML Number Reference Decimal 4/17/2018 56© 2018 DataIntent LLC
  • 57. HTML / Text — Record Viewed in Spanish Attachment English Attachment Spanish HTML bar Translated Text String String True/False Choice Reference with translated text Choice String Translated HTML Number Reference Decimal 4/17/2018 57© 2018 DataIntent LLC
  • 58. Reference Field Workaround Using reference fields as an import data workaround 4/17/2018 © 2018 DataIntent LLC 58
  • 59. Use reference fields containing translated text to import multiple translations. The text displayed depends on the user’s language setting. Reference Field — Structure Reference Field Form Record no. Translated Text or HTML Reference Table Fields ServiceNow Generated columns 4/17/2018 59© 2018 DataIntent LLC
  • 60. A script in the UI policy shows the relevant field based on logged-in language settings. Create as many tables as required table using one table per language. Reference Field Redirect — Structure Reference Field Spanish Form Countries (Table with records in English) Record no. 001 Record no. 002 Afghanistan Algeria Albania Record no. 003 Países (Table with records in Spanish) Record no. 001 Record no. 002 Afganistán Albania ArgeliaRecord no. 003 Fields Reference Field English onLoad Client Script setDisplay fields True/False 4/17/2018 60© 2018 DataIntent LLC
  • 61. UI Policy Script function onLoad() { //Use g_lang to retrieve language settings from browser session //(this is not the user language setting stored on server) //Use g_form.setDisplay with field set with value of true / false //Use g_lang para recuperar configuraciones de idioma de la sesión del navegador // (esta no es la configuración de idioma del usuario almacenada en el servidor) // Usa g_form.setDisplay con el campo establecido con el valor de verdadero / falso if(g_lang == 'en'){ g_form.setDisplay('u_colores', false); g_form.setDisplay('u_colors', true); g_form.setDisplay('u_cor', false); } else if(g_lang == 'es'){ g_form.setDisplay('u_colores', true); g_form.setDisplay('u_colors', false); g_form.setDisplay('u_cor', false); } else if(g_lang == 'pb'){ g_form.setDisplay('u_colores', false); g_form.setDisplay('u_colors', false); g_form.setDisplay('u_cor', true); } } This script shows the user one of three fields based on session browser language settings. 4/17/2018 61© 2018 DataIntent LLC
  • 62. Translated Text — Inserting Translated text Edit the Record directly or: 1. Follow the menu path: Translation Support > Translated Text. 2. Required fields: 1. Document (match to record) 2. Field name 3. Language 4. Table name 5. Value (translated text) 3. Click the Submit button. Issue The Attributes for Reference Auto Complete Fields do not work with translated text (numbers work though...) There may be a way to use a client script to facilitate this process. 4/17/2018 62© 2018 DataIntent LLC
  • 63. Client / Server Development 4/17/2018 63© 2018 DataIntent LLC Jelly : Executable XML
  • 64. Client / Server Development Suggestions: • It is recommended to only change scripts manually; The dangers presented by importing this data outweighs any benefits, also data is written to the Global Application by default. • If an existing script references a field label and not a field value, the script must be changed to reference the value. • Having labeled tables allows users logged in with other languages to view actions more clearly. 4/17/2018 © 2018 DataIntent LLC 64
  • 65. Client Scripts: • Provide description in both languages ex.: • Display u_book_language or u_book_idioma based on session language — en • Muestra u_book_language o u_book_idioma porque en el idioma de la sesión — es • Messages: • Create a message and a translated message or • Insert messages directly into code • if(g_lang == 'en’){ g_form.addInfoMessage('The Language field has "English" values.’) • Script: Add translated notes if helpful • // English note • //nota en español 4/17/2018 65© 2018 DataIntent LLC
  • 66. UI Policies • The Short description field contains limited space probably not helpful to store translations here. A Knowledge Article can be used to display a cross walk with translations. • The Description field can be use to enter details in multiple langueges. • Ex. Data info. — en Información sobre los datos — es • When to Apply conditions & UI Policy Actions are saved by ServiceNow as code containing the u_field references, no changes are required for translations. 4/17/2018 66© 2018 DataIntent LLC
  • 67. END OF PRESENTATION 4/17/2018 © 2018 DataIntent LLC 68

Editor's Notes

  1. Hi and welcome the Content Translations presentation created for DataIntent. Please click on the presentation to proceed to the next slide.
  2. My mission is to explain how to apply language translations to a Scoped Custom App using OOB ServiceNow functionality. While I can say that adding translations is possible and that I have discovered various methods which are presented here; The difficulties presented by translating Scoped Custom Apps has led me to the solution that leaves the traditional SNOW form out of the picture entirely.
  3. For any large global client; language internalization will probably already be enabled unless part of a new SNOW implementation.
  4. Not all system elements are translated with localization. For example the message “Running Transaction” is not translated by default. A Knowledge Article can be included explaining what system elements have not been translated.
  5. Notable facts I found about working in the Global Scope…
  6. To the best of my knowledge this statement is true.
  7. Attachments can be opened outside of presentation view. Corry Seering is a good source to follow for learning about issues with Scoped Custom Apps.
  8. The following slides illustrate the structure and steps required for adding translations including issues and workarounds. The sheer number of problems and fixes; forced me to change my intended conclusions for this presentation. The issues and workarounds are worth focusing on, because they apply to other aspects of scoped custom apps than just translations.
  9. The enclosed slides illustrating structure and detailing steps, can be used as part of a RuleBase User manual or as a Knowledge Article. I leveraged ServiceNow Support, Training, and many ServiceNow Communities, while scouring the Internet in both English & Spanish to find this valuable content. There is no other documentation available via ServiceNow or locatable on the internet containing all of this data in one place.
  10. This workaround was required when I found random occurrences where the inserting module steps on the previous slide, failed. I am glad I ran across this issue because it brought to light a hazard to consider when creating and testing labels.
  11. The three slides following this slide contain valuable information that should be added to a Knowledge Article for review by ServiceNow Admins if language translations are in use.
  12. Step four is the key here; The best practice gleaned from this scenario and result, is to close Studio IDE before changing the browser language or impersonating users with language settings that are not English.
  13. A simple way to wipe out hours of work, whether in the Global Scope on in a Scoped Custom Application. I found it very interesting that the plural’s are not changed.
  14. This subject has been a thorn in my side for the last few months; there are no easy answers here, but maybe a few good solutions. If anything would be a deal beaker for using OOB ServiceNow functionality for language translations, this topic would be it… I could not have progressed with workarounds for these processes without help from the SNOW Developer’s community.
  15. The first issue presented here, did not become noticeable to me until I starting working within form sections of the RuleBase app; The problem had not yet been revealed to me because my personal instance did dot have multiple apps with like named tables or form sections.
  16. The following workarounds are required to display translated form sections. This group of workarounds revolves around the idea of displaying a table of translations to the end-user.
  17. This issue poses a question that I would like ServiceNow to provide an official response to.
  18. This issue around DOM Manipulation is a serious consideration for Scoped Custom Applications; since a lot of core SNOW functionality is not accessible with OOB settings. The script examples in this presentation could be listed in a user manual or in Knowledge Articles, and are useful for other aspects of ServiceNow Scoped Custom Application development beyond language translations.
  19. This could be a solution not just for section labels; but for all items requiring language translations.
  20. Part of this code prevents the user from having data cleared from form fields when the action executes; but this also causes an error message to be displayed.
  21. I think the Invalid update message is a deal breaker for this solution. The are a few complaints about “there not being a cleaner result” in the Developer’s Community, and replies from SNOW employees show no fixes are planned (I don’t think this is really viewed as an issue at SNOW).
  22. This slide illustrates the results of what happens when current.setAbortAction is not used in the script. I think the possible loss of newly entered data and returning to list view is a deal breaker for this solution.
  23. In the real world this may be a popular solution not just for section labels; But for all items requiring language translations, because it would take the least amount of time to implement and revisions & updates are performed by editing a Knowledge Article; not requiring an individual with the System Admin role.
  24. This is an example from my personal instance with a form using the browser with English settings.
  25. This is an example from my personal instance with the same form using the browser with Spanish settings. The “Enviar” button is the “Submit” button.
  26. The “Traducir” button is new to the form because of the change of language settings.
  27. The less than ideal user experience may be the deal breaker with this workaround…
  28. A UI Policy is limited to reacting to field changes and cannot interact directly with a button. This is an example of using a check-box to facilitate opening content in a new browser window. This option is worth exploring because only one UI policy is required. To Display a button based on language settings that opens content in a new window; both a Client Script and a UI Action are required.
  29. In line 5 of the UI Policy script; the check-box is reset to false allowing the box to be reselected as well as clearing the entry from the system.
  30. Because scripting in ServiceNow cannot natively recognize words with accents such as metadata técnica. The requirement of creating additional views & fields for an application may render this workaround impractical.
  31. The final workaround relates to; Having new form sections created and purposed to writing the data to new or existing fields in the application. The fields are temporary place holders as the data is cleared or populated when a form is closed or opened respectively.
  32. This workaround is required when showing or hiding tabs containing non-recognized UTF-8 characters. A new form section is created per additional language in the same table as the English section. A new form view is created per language.
  33. Data is written from the new form section fields to the corresponding English fields per field entry.
  34. When the form is closed the data is cleared from the temporarily used fields.
  35. If an existing record is opened in an additional language view, the form fields are populated with data from the English field.
  36. The remaining ServiceNow objects are not as complicated as Modules or Sections and have no open issues. The next 22 slides are not narrated as they are simple explanations of structures and steps for language translations. This is included because it is content that can be useful in a user manual or in Knowledge Articles. Slide 67 begins content that is not related to structures or work steps.