---
sourceDocument: Australia ServiceNow AI Platform user interface
sourceDocumentLink: https://www.servicenow.com/docs/r/platform-user-interface

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia ServiceNow AI Platform user interface

ft:clusterId :

    - platux

bundleId :

    - platux

workflow :

    - Platform


---

# Internationalize a widget

# Internationalize a widget {#ariaid-title1}

* Release version: Australia
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

Use the `${}` or `gs.getMessage()` syntax in the
HTML Template, Client Script, or
Server Script fields of a widget to tag strings for translation so you
can localize your Service Portal content.

The `${}` or `gs.getMessage()` searches in the messages table
\[sys_ui_message\] in the platform to see what the translation would be.

Use the HTML template to internationalize strings in a widget. Type the following in an HTML
template.

    <div>
      <p>${This message will be internationalized.}</p>
      <p>However, this will NOT be.</p>
    </div>

Writing text as `${message}` is the equivalent of writing
`${gs.getMessage("message")}` in other parts of the system, but written as a
more legible shorthand.  
Note:  
In some cases, the translation might have quotes or double quotes on it. That could lead to JavaScript errors if you are using the ${} syntax in the client script. The safest way to fetch a translated message is to do it in the server script. Then, assign the value to a client-side Angular binding.

## Translating strings in the client script

    function() {
      var c =this;
      c.message="${This message will be internationalized}";
    }

HTML template:

    <div>
      <!-- The output of this text will be internationalized. -->
      <p>{{c.message}}</p>
    </div>

## Translating strings in the server script

Use the server script to translate schema options and other values during server-side
runtime.  
Server script

    function() {  
      data.message=gs.getMessage("this message contains 'quotes'");
      //You can also translate schema options using the server script
      //For example, data.message=gs.getMessage(options.title);
    }

HTML template

    <div>  
      <p>{{c.data.message}}</p>
    </div>


