The DynamicTranslation API provides methods that translate text, in real time, into multiple languages using translation service providers. This API is available for both standard clients and Angular-based Service Portal clients.

In addition, you can use this API to detect the language of a specific string and check whether the DynamicTranslation methods are enabled for a translation service. Use this API to create a seamless localization experience for your user interface, enabling one interface to service multiple countries.

Currently this API supports two translation service providers: Microsoft Azure Translator Service and Google Cloud Translator Service. You can also configure other translation services within your instance and then use the DynamicTranslation API to translate your text.

To use this API you must activate the Dynamic Translation plugin. For information on this plugin and additional information on Dynamic Translation, refer to Dynamic translation overview. Also, to use this API in a Service Portal widget, you must inject the dynamicTranslation service into the widget client script function.

Note: The name of the class to use in Service Portal clients is dynamicTranslation, while the name of the class to use in standard clients is DynamicTranslation.

DynamicTranslation - getDetectedLanguage(String text, Object parms)

Detects the language of the passed in text.

If you pass in a translator, the method uses that translation service to detect the source language. Otherwise, the detection is performed by the default translation service. Ensure that the text strings that you provide contain enough verbiage to enable proper language detection.

In addition to the detected language, the response contains a confidence level of the detection, along with other possible language alternatives. If a translator is not passed in, the method also returns the default translation service used to detect the language.

Table 1. Parameters
Name Type Description
text String Text to use to detect the language.
parms Object Optional. JSON object that contains additional translation parameters.
"parms": {
  "translator": "String"
}
parms.translator String Translation service to use to detect the language of a string. Translation services are configured under the Translator Configuration menu.

Possible values - not case-sensitive:

  • Google
  • Microsoft
  • IBM
  • <custom>
Note: To use custom translation services you must first configure the translation service in your instance. For details, see Integrate with a translation service provider.

Default: Translation service configured in the Translator Configuration [sn_dt_translator_configuration] table.

Table: Translator Configuration [sn_dt_translator_configuration]

Example

This example shows code that detects a string in English using IBM's translation service in a standard client script.

var detectedResponse = DynamicTranslation.getDetectedLanguage('Please detect the language of this text', {"translator":'IBM'}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );

Output:

detectedResponse {
  detectedLanguage:
    { "code": "en", "confidence": "1", "name": "en" }
  alternatives: 
    [
      { "code": "vi", "confidence": "0.86", "name": "vi" },
      { "code": "id", "confidence": "0.86", "name": "id" }
    ]                  
 }

Example

This example shows a client script that throws an error when an invalid translation service is passed in.

var detectedResponse = DynamicTranslation.getDetectedLanguage('Please detect the language of this text', {"translator":123}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );
Output:
{"code":"40003","message":"Translator (\"translator\" field) is invalid"}

Example

This example shows code that detects a string in English using IBM's translation service in a Service Portal widget client script. Note that the name of the class is dynamicTranslation not DynamicTranslation.

var detectedResponse = dynamicTranslation.getDetectedLanguage('Please detect the language of this text', {"translator":'IBM'}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );
Output:
detectedResponse {
  detectedLanguage:
    { "code": "en", "confidence": "1", "name": "en" }
  alternatives: 
    [
      { "code": "vi", "confidence": "0.86", "name": "vi" },
      { "code": "id", "confidence": "0.86", "name": "id" }
    ]                  
 }

Example

This example shows a Service Portal widget client script that throws an error when an invalid translation service is passed in.

var detectedResponse = dynamicTranslation.getDetectedLanguage('Please detect the language of this text', {"translator":123}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );
Output:
{"code":"40003","message":"Translator (\"translator\" field) is invalid"}

DynamicTranslation - getDetectedLanguages(Array texts, Object parms)

Detects the languages of the passed in text strings.

If you pass in a translator, the method uses that translation service to detect the source language. Otherwise, the detection is performed by the default translation service. Ensure that the text strings that you provide contain enough verbiage to enable proper language detection.

In addition to the detected language, the response contains a confidence level of the detection, along with other possible language alternatives. If a translator is not passed in, the method also returns the default translation service used to detect the language.

When calling this method from a portal client script, use the class name dynamicTranslation; such as dynamicTranslation.getTranslations(). When calling it from a platform client script, use the class name DynamicTranslation; such as DynamicTranslation.getTranslations().

Table 3. Parameters
Name Type Description
parms Object Optional. JSON object that contains additional translation parameters.
"parms": {
  "translator": "String"
}
parms.translator String Translation service to use to detect the language of a string. Translation services are configured under the Translator Configuration menu.

Possible values - not case-sensitive:

  • Google
  • Microsoft
  • IBM
  • <custom>
Note: To use custom translation services you must first configure the translation service in your instance. For details, see Integrate with a translation service provider.

Default: Translation service configured in the Translator Configuration [sn_dt_translator_configuration] table.

Table: Translator Configuration [sn_dt_translator_configuration]

texts Array List of text strings to use to detect the language(s).

Example

This example shows code from a portal client script that detects English as the language of the passed-in strings using the Microsoft translation service.

var detectedResponse = dynamicTranslation.getDetectedLanguages(["First text string language to detect", "Second text string language to detect"], {"translator": "Microsoft"}).then(function(res) {console.log(res);}, function(res) {console.log(res);});
gs.info(JSON.stringify(detectedResponse));

Output

{
  "translator":"Microsoft",
  "status":"Success",
  "detections":[
    {
      "isError":false,
      "detectedLanguage":{"name":"en", "code":"en", "confidence":"1"},
      "alternatives":[
        {"name":"id", "code":"id", "confidence":"0.83"},
        {"name":"ms", "code":"ms", "confidence":"0.83"}
      ]
    },
    {
      "isError":false,
      "detectedLanguage":{"name":"en", "code":"en", "confidence":"1"},
      "alternatives":[
        {"name":"fr", "code":"fr", "confidence":"0.83"},
        {"name":"id", "code":"id", "confidence":"0.83"}
      ]
    }
  ]
}

Example

This example shows code in a portal client script that returns a Partial status when two text strings are passed in and one of them is invalid. To use this code example in a platform client script, change dynamicTranslation.getDetectedLanguages to DynamicTranslation.getDetectedLanguages.

var detectedResponse = dynamicTranslation.getDetectedLanguages(["First text string language to detect", ""], {"translator": "Microsoft"}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );
gs.info(JSON.stringify(detectedResponse));

Output

{
  "translator":"Microsoft",
  "status":"Partial",
  "detections":[
    {
      "isError":false,
      "detectedLanguage":{"name":"en", "code":"en", "confidence":"1"},
      "alternatives":[
        {"name":"id", "code":"id", "confidence":"0.83"},
        {"name":"ms", "code":"ms", "confidence":"0.83"}
      ]
    },
    {
      "isError":true,
      "code":"40000",
      "message":"Text is missing or invalid"
    }
  ]
}

Example

This example shows code from a portal client script that throws an error when an invalid translation service is passed in. To use this code example for a platform client script, change dynamicTranslation.getDetectedLanguages to DynamicTranslation.getDetectedLanguages.

var detectedResponse = dynamicTranslation.getDetectedLanguages(["First text string language to detect", "Second text string language to detect"], {"translator": "123"}).then(function(res) {console.log(res); }, function(res) {console.log(res); } );
gs.info(JSON.stringify(detectedResponse));

Output

{"code":"40003","message":"Translator (\"translator\" field) is invalid","status":"Error"}

DynamicTranslation - getTranslation(String textToTranslate, Object parms)

Translates the passed in text to one or more languages.

The method uses translation services, such as Microsoft Azure Translator Service and Google Cloud Translator Service, to perform the translation. If you do not pass in translation parameters, the method uses the system default.

Example

This example shows the translation of plain text content from English (detected) into French and Italian using Microsoft's translation service in a standard client script.

DynamicTranslation.getTranslation("Translate this text using platform from client", {
  "targetLanguages": ["fr", "it"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:


{"translations":[
    {
      "targetLanguage":"it",
      "translatedText":"Tradurre questo testo utilizzando la piattaforma dal client"
    },
    {
      "targetLanguage":"fr",
      "translatedText":"Traduire ce texte en utilisant la plate-forme du client"
    }
  ],
  "translator":"Microsoft",
  "detectedLanguage":{"code":"en","name":"en"}
}

Example

This example shows a client script that throws an error when an invalid target language is passed in.

DynamicTranslation.getTranslation("Translate this text using platform from client", {
  "targetLanguages": ["123"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:

{"code":"40054","message":"Target language is invalid"}

Example

This example shows the translation of plain text content from English (detected) into French and Italian using Microsoft's translation service in a Service Portal widget client script. Note that the name of the class is dynamicTranslation not DynamicTranslation.

dynamicTranslation.getTranslation("Translate this text using platform from client", {
  "targetLanguages": ["fr", "it"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:


{"translations":[
    {
      "targetLanguage":"it",
      "translatedText":"Tradurre questo testo utilizzando la piattaforma dal client"
    },
    {
      "targetLanguage":"fr",
      "translatedText":"Traduire ce texte en utilisant la plate-forme du client"
    }
  ],
  "translator":"Microsoft",
  "detectedLanguage":{"code":"en","name":"en"}
}

Example

This example shows a Service Portal widget client script that throws an error when an invalid target language is passed in

dynamicTranslation.getTranslation("Translate this text using platform from client", {
  "targetLanguages": [123],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:

{"code":"40054","message":"Target language is invalid"}

DynamicTranslation - getTranslations(Array texts, Object parms)

Translates the passed in text strings to one or more languages.

The method uses translation services, such as Microsoft Azure Translator Service and Google Cloud Translator Service, to perform the translation. If you do not pass in translation parameters, the method uses the system default.

When calling this method from a portal client script, use the class name dynamicTranslation; such as dynamicTranslation.getTranslations(). When calling it from a platform client script, use the class name DynamicTranslation; such as DynamicTranslation.getTranslations().

Example

This example shows code in a portal client script that translates a list of text strings into French and Italian using the Microsoft translation service.

dynamicTranslation.getTranslations(["Translate first text using portal from client", "Translate second text using portal from client"], {
  "targetLanguages": ["fr", "it"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:

{
  "translations":[
    {
      "isError":false,
      "textTranslations":[
        {
          "targetLanguage":"it",
          "translatedText":"Tradurre il primo testo utilizzando il portale dal client"
        },
        {
          "targetLanguage":"fr",
          "translatedText":"Traduire le premier texte à l'aide du portail à partir du client"
        }
      ],
      "detectedLanguage": {"name":"en", "code":"en"}
    },
    {
      "isError":false,
      "textTranslations":[
        {
          "targetLanguage":"it",
          "translatedText":"Traduci il secondo testo utilizzando il portale dal client"
        },
        {
          "targetLanguage":"fr",
          "translatedText":"Traduire le deuxième texte à l'aide du portail à partir du client"
        }
      ],
      "detectedLanguage": {"name":"en", "code":"en"}
    }
  ],
  "translator":"Microsoft",
  "status":"Success"
}

Example

This example shows a portal client script that returns a Partial status when one of the two passed in text strings is invalid. To use this code example for a platform client script, change dynamicTranslation.getTranslations to DynamicTranslation.getTranslations.

dynamicTranslation.getTranslations(["Translate first text using portal from client", ""], {
  "targetLanguages": ["fr", "it"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": "Microsoft"
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:

{
  "translations":[
    {
      "isError":false,
      "textTranslations":[
        {
          "targetLanguage":"it",
          "translatedText":"Tradurre il primo testo utilizzando il portale dal client"
        },
        {
          "targetLanguage":"fr",
          "translatedText":"Traduire le premier texte à l'aide du portail à partir du client"
        }
      ],
      "detectedLanguage":{"name":"en", "code":"en"}
    },
    {
      "isError":true,
      "code":"40000",
      "message":"Text is missing or invalid"
    }
  ],
 "translator":"Microsoft",
 "status":"Partial"
}

Example

This example shows a portal client script that throws an error when an invalid translation service is passed in. To use this code example for a platform client script, change dynamicTranslation.getTranslations to DynamicTranslation.getTranslations.

dynamicTranslation.getTranslations(["Translate first text using portal from client", "Translate second text using portal from client"], {
  "targetLanguages": ["fr", "it"],
  "additionalParameters": [{
    "parameterName": "texttype",
    "parameterValue": "plain"
  }],
  "translator": 123
 }).then(function(res){console.log(res);}, function(res){console.log(res);});

Response:

{"code":"40003","message":"Translator (\"translator\" field) is invalid","status":"Error"}

DynamicTranslation - isEnabled(String translator)

Determines whether the various methods in the DynamicTranslation API are enabled for a translation service.

If you pass in a specific translation service, the method checks the method activation for that translation service; otherwise the method checks the default translation service.

When calling this method from a portal client script, use the class name dynamicTranslation; such as dynamicTranslation.isEnabled(). When calling it from a platform client script, use the class name DynamicTranslation; such as DynamicTranslation.isEnabled().

Table 9. Parameters
Name Type Description
translator String Optional. Translation service to use to verify whether the methods are active. Translation services are configured under the Translator Configuration menu.

Possible values - not case-sensitive:

  • Google
  • Microsoft
  • IBM
  • <custom>
Note: To use custom translation services you must first configure the translation service in your instance. For details, see Integrate with a translation service provider.

Default: Default translation service.

Example

This example shows a client script that checks whether the DynamicTranslation methods are enabled for the Microsoft translation service. To use this code example for a platform client script, change DynamicTranslation.getTranslations to dynamicTranslation.getTranslations.

DynamicTranslation.isEnabled('Microsoft').then(function(res){console.log(res);}, function(res){console.log(res);});

Output:

{"detection":true,"batchTranslation":true,"batchDetection":true,"translation":true}

Example

This example shows a client script that throws an error when an invalid translation service is passed in. To use this code example for a platform client script, change DynamicTranslation.getTranslations to dynamicTranslation.getTranslations.

DynamicTranslation.isEnabled(123).then(function(res){console.log(res);}, function(res){console.log(res);});

Output:

{"code":"40003","message":"Translator (\"translator\" field) is invalid"}