Liquid UI Forum
Using Your Liquid UI Products => WS aka Web Scripts (Attended RPA for SAP) => Topic started by: Benjamin Dasari on September 22, 2016, 01:40:34 PM
-
Purpose:
Using WSCurl, input text in a non-Western language and then use a service such as Google Translate to change the text into English or some other language.
Liquid UI Code:
// SAPLSMTR_NAVIGATION.E0100.sjs
load('wscurl');
// Function to check if the string value is blank
function isBlank(jvar){
if (jvar==void 0 || jvar=="" || jvar==null) {
return true;
}
else {
return false;
}
}
/* Function is used to input text in a non-Western language and then use a service
such as Google Translate to change the text into English or some other language */
function translate(param){
var z_text = param.toTranslate;
var z_language = param.targetLang;
/* Initialize the Curl object for making the call*/
var wsCurl = new Curl();
/* Fixed string to fetch data after translation from googleapis.com*/
var baseURL = "https://www.googleapis.com/language/translate/v2?key=AIzaSyChzKkNGfmuBAhZXPD7Pw-1nl4e0c6shNw&q=";
/* Say the text you want to convert is stored in variable "z_text", lets covert it to URI for web*/
var textToConvert = encodeURI(z_text);
/* Set source language identifier*/
var sourceLangIdentifier = "&source=";
/* Set source language (see language format below)*/
var sourceLang = "en";
/* Set translation language identifier*/
var translateLangIdentifier = "&target=";
/* Set translation language (see language format below)*/
var translateLang = z_language;
/* LANGUAGE FORMAT:
* google.language.Languages:
*
* 'AFRIKAANS' : 'af',
* 'ALBANIAN' : 'sq',
* 'AMHARIC' : 'am',
* 'ARABIC' : 'ar',
* 'ARMENIAN' : 'hy',
* 'AZERBAIJANI' : 'az',
* 'BASQUE' : 'eu',
* 'BELARUSIAN' : 'be',
* 'BENGALI' : 'bn',
* 'BIHARI' : 'bh',
* 'BULGARIAN' : 'bg',
* 'BURMESE' : 'my',
* 'CATALAN' : 'ca',
* 'CHEROKEE' : 'chr',
* 'CHINESE' : 'zh',
* 'CHINESE_SIMPLIFIED' : 'zh-CN',
* 'CHINESE_TRADITIONAL' : 'zh-TW',
* 'CROATIAN' : 'hr',
* 'CZECH' : 'cs',
* 'DANISH' : 'da',
* 'DHIVEHI' : 'dv',
* 'DUTCH': 'nl',
* 'ENGLISH' : 'en',
* 'ESPERANTO' : 'eo',
* 'ESTONIAN' : 'et',
* 'FILIPINO' : 'tl',
* 'FINNISH' : 'fi',
* 'FRENCH' : 'fr',
* 'GALICIAN' : 'gl',
* 'GEORGIAN' : 'ka',
* 'GERMAN' : 'de',
* 'GREEK' : 'el',
* 'GUARANI' : 'gn',
* 'GUJARATI' : 'gu',
* 'HEBREW' : 'iw',
* 'HINDI' : 'hi',
* 'HUNGARIAN' : 'hu',
* 'ICELANDIC' : 'is',
* 'INDONESIAN' : 'id',
* 'INUKTITUT' : 'iu',
* 'ITALIAN' : 'it',
* 'JAPANESE' : 'ja',
* 'KANNADA' : 'kn',
* 'KAZAKH' : 'kk',
* 'KHMER' : 'km',
* 'KOREAN' : 'ko',
* 'KURDISH': 'ku',
* 'KYRGYZ': 'ky',
* 'LAOTHIAN': 'lo',
* 'LATVIAN' : 'lv',
* 'LITHUANIAN' : 'lt',
* 'MACEDONIAN' : 'mk',
* 'MALAY' : 'ms',
* 'MALAYALAM' : 'ml',
* 'MALTESE' : 'mt',
* 'MARATHI' : 'mr',
* 'MONGOLIAN' : 'mn',
* 'NEPALI' : 'ne',
* 'NORWEGIAN' : 'no',
* 'ORIYA' : 'or',
* 'PASHTO' : 'ps',
* 'PERSIAN' : 'fa',
* 'POLISH' : 'pl',
* 'PORTUGUESE' : 'pt-PT',
* 'PUNJABI' : 'pa',
* 'ROMANIAN' : 'ro',
* 'RUSSIAN' : 'ru',
* 'SANSKRIT' : 'sa',
* 'SERBIAN' : 'sr',
* 'SINDHI' : 'sd',
* 'SINHALESE' : 'si',
* 'SLOVAK' : 'sk',
* 'SLOVENIAN' : 'sl',
* 'SPANISH' : 'es',
* 'SWAHILI' : 'sw',
* 'SWEDISH' : 'sv',
* 'TAJIK' : 'tg',
* 'TAMIL' : 'ta',
* 'TAGALOG' : 'tl',
* 'TELUGU' : 'te',
* 'THAI' : 'th',
* 'TIBETAN' : 'bo',
* 'TURKISH' : 'tr',
* 'UKRAINIAN' : 'uk',
* 'URDU' : 'ur',
* 'UZBEK' : 'uz',
* 'UIGHUR' : 'ug',
* 'VIETNAMESE' : 'vi',
* 'UNKNOWN' : ''
*/
/* Build the URL to make a call*/
var completeURL = baseURL + textToConvert + sourceLangIdentifier + sourceLang + translateLangIdentifier + translateLang;
set("V[g_URL]",completeURL);
/* This is the URL for your translation request. Note this use is for
* calls made to Google Translate which returns us the JSON object in string */
wsCurl.setopt(Curl.CURLOPT_URL, completeURL);
/* Final step is to call execute to dispatch email. You can check the return
* code to avoid errata string which can be found from "wsCurl.error"
* return value 0 means success */
var response = wsCurl.exec();
var error = wsCurl.error;
posStart = response.lastIndexOf(":") + 2;
posEnd = response.lastIndexOf("\"") + 1;
strTranslated = response.substring(posStart,posEnd);
set("V[g_translated]", strTranslated);
/* Response of THIS particular query is JSON. You can get HTML for other URLs
* Parse to suite your requirements
* e.g. response from the ABOVE URL is JSON string which looks like
* {
* "data": {
* "translations": [
* {
* "translatedText": "Bonjour tout le monde"
* }
* ]
* }
* }
*/
/* Close the http connection for the URL fetch*/
wsCurl.close();
/* Remove any reference for Garbage Collection*/
wsCurl= NULL;
}
// User Interface
clearscreen();
inputfield([1,1], "Orignal String", [1,15], {"name":"g_source1", "size":50});
inputfield([3,1], "Target Language", [3,15], {"name":"g_langugage1", "size":5});
if(isBlank(g_URL)){
g_URL = "";
}
text([7,1], "URL: " + "&V[g_URL]" );
if(isBlank(g_translated)){
g_translated = "";
}
inputfield([9,1], "Target String", [9,15], {"name":"g_translated", "size":200});
pushbutton([TOOLBAR], 'toTranslate', '?',{"process":translate, "using":{"toTranslate":g_source1,"targetLang":g_langugage1}});
See attachments for code samples!