Dynamic Translation - Save translated text for future?

Tim Deniston
Mega Sage
Mega Sage

I am looking into the Dynamic Translation capabilities using Microsoft Azure Translation service. One major issue I can see is that the cost of the Azure translation service will quickly get out of hand if the same text is being translated over and over. For example, if 5 different people translate the same email body in one incident and there are 1,000 characters in that email, that would be 5,000 characters translated.

Is there a way to store the translation the first time it's translated so future viewers don't need to have the same text translated? I think this would be very useful for text that is static once it's entered (journal fields, emails). For fields that might change (short description, description, etc.), the text could be stored until it changes and then the next person to need the text in a different language would need to have it translated again, but the new translation would be stored, and so on.

Has anyone solved this problem? 

1 ACCEPTED SOLUTION

Alex Coope - SN
ServiceNow Employee
ServiceNow Employee

@Tim Deniston,

Apologies for not responding to this sooner. So currently indeed any translations for string fields performed via Dynamic Translation is not stored as such (imagine the "Short Description" and "Description" fields as an example and yes the Activity history also for "comments"). There are a few reasons for this, one being data quantity another being translation quality improves over time. Due to the nature of how Machine Translation works (especially with the big MT Cloud providers like Google, MS and IBM) you may find that the returned translation might be ever so slightly different over time due to their trained models (e.g. it could be more accurate in the future).

The logic is to only translate as / when it is needed to for field contents and activity history, which in theory should reduce the amount needed per record.

It's also worth noting, that if a translated email was sent out via the "comments" field, then that would be stored in the Activity History because that's what was sent.

However, with that being said, it is something we've been discussing internally, weighing up how to balance the best possible outcome as there are pros and cons to both perspectives with no size fitting all needs and requirements,
- For example, if a customer only requires to store one other Language, then that perceivably would be ok. The challenge becomes if it's more than 1 and how to show that, for example if a Customer needed to store 20+ (bi-directionally between Opened For and Agent / Fulfiller for 100k's of Incidents / Cases etc (potentially per month or more). Should that then be always or just sometimes? etc

It becomes quite complex quite quickly, because the above scenario could arguably be significantly more expensive if it's default behaviour for any task type record,



Many thanks,
Kind regards

 

--------------------------------------------------------------------
Director of Globalization Deployment, Internationalization

View solution in original post

7 REPLIES 7

Yes, we need to translate data from few fields of the custom table to Chinese & use those into pdf generation. 

@Kavita Kulkarn1,

So technically, yes you can do that. Check my blog post here and look at how I called the DT API in the Script Include (you could just as easily do that via a BR, UI Action, or what-ever other trigger point you'd need) and populate a new field as desired for your PDF,

You would however suffer from at least 2 issues:

  • Translation quality could prove problematic with a high potential for loss of context, so you would need to set expectations that it's been Machine Translated (might be worth having a note in the generated PDF)
  • It might not scale just adding fields, so think very carefully about any new fields on your working table. It might be better to have a new table that holds multiple records for the referenced task with a column representing the attribute another field representing the string of text and another representing the language and another representing the sequence.
    As an idea think something like:
    [task reference] | attribute name | string of text | [language] | sequence number

I can't promise the above would meet your needs, but in theory and on paper it should be doable,

 

Many thanks,

kind regards

--------------------------------------------------------------------
Director of Globalization Deployment, Internationalization

Hi @Alex Coope - SN that's very helpful response. The tips will be handy for implementation!

 

Yes, I have set the context that it will still be a machine translation and may not be perfect.

 

I will do the POC before going ahead with this. That will help us to get clarity on design decisions and also to the customer on quality of translation.

 

-Kavita