I am trying to use Watson translator service from my node.js app through the API documentation from IBM https://www.ibm.com/watson/developercloud/alchemyvision/api/v1/#apiexplorer
var request = require("request");
var LanguageTranslatorV3 = require('watson-developer-cloud/language-translator/v3');
var english_message
var languageTranslator = new LanguageTranslatorV3({
version: '2018-05-01',
username: '1234',
password: '1234',
url: 'https://gateway.watsonplatform.net/language-translator/api'
});
function translatorEnglish(message) {
var parameters = {
text: message.text,
model_id: 'es-en'
};
languageTranslator.translate(
parameters,
function(error, response, body) {
if (error)
console.log(error)
else
console.log(JSON.stringify(response, null, 2));
}
);
}
I get the following correct response in logs
{
"translations": [
{
"translation": "Hi."
}
],
"word_count": 1,
"character_count": 4
}
but when i try to extract the output translation value i always get the output as Undefined
.
console.log(response.translations.translation); => undefined
Can you please check and let me know if i am doing anything wrong?
Thanks
Try
console.log(response.translations[0].translation); // Hi
This is because translations
is an array and has one item at index 0
.
{
"translations": [
{
"translation": "Hi."
}
],
"word_count": 1,
"character_count": 4
}