new TranslationServiceClient([options])

Construct an instance of TranslationServiceClient.

Parameters

Name Type Optional Description

options

 

Yes

The configuration object. See the subsequent parameters for more details.

Values in options have the following properties:

Name Type Optional Description

credentials

 

Yes

Credentials object.

credentials.client_email

 

Yes

credentials.private_key

 

Yes

email

 

Yes

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename

 

Yes

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port

 

Yes

The port on which to connect to the remote host.

projectId

 

Yes

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

promise

 

Yes

Custom promise module to use instead of native Promises.

servicePath

 

Yes

The domain name of the API remote host.

Properties

static

apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

static

port

The port for this API service.

static

scopes

The scopes needed to make gRPC calls for every method defined in this service.

static

servicePath

The DNS address for this API service.

Methods

batchTranslateText(request[, options][, callback]) → Promise

Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location.

This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

const sourceLanguageCode = '';
const targetLanguageCodes = [];
const inputConfigs = [];
const outputConfig = {};
const request = {
  sourceLanguageCode: sourceLanguageCode,
  targetLanguageCodes: targetLanguageCodes,
  inputConfigs: inputConfigs,
  outputConfig: outputConfig,
};

// Handle the operation using the promise pattern.
client.batchTranslateText(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const sourceLanguageCode = '';
const targetLanguageCodes = [];
const inputConfigs = [];
const outputConfig = {};
const request = {
  sourceLanguageCode: sourceLanguageCode,
  targetLanguageCodes: targetLanguageCodes,
  inputConfigs: inputConfigs,
  outputConfig: outputConfig,
};

// Handle the operation using the event emitter pattern.
client.batchTranslateText(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const sourceLanguageCode = '';
const targetLanguageCodes = [];
const inputConfigs = [];
const outputConfig = {};
const request = {
  sourceLanguageCode: sourceLanguageCode,
  targetLanguageCodes: targetLanguageCodes,
  inputConfigs: inputConfigs,
  outputConfig: outputConfig,
};

// Handle the operation using the await pattern.
const [operation] = await client.batchTranslateText(request);

const [response] = await operation.promise();

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

sourceLanguageCode

string

 

Required. Source language code.

targetLanguageCodes

Array of string

 

Required. Specify up to 10 language codes here.

inputConfigs

Array of Object

 

Required. Input configurations. The total number of files matched should be <= 1000. The total content size should be <= 100M Unicode codepoints. The files must use UTF-8 encoding.

This object should have the same structure as InputConfig

outputConfig

Object

 

Required. Output configuration. If 2 input configs match to the same file (that is, same input path), we don't generate output for duplicate inputs.

This object should have the same structure as OutputConfig

parent

string

Yes

Required. Location to make a regional call.

Format: projects/{project-id}/locations/{location-id}.

The global location is not supported for batch translation.

Only AutoML Translation models or glossaries within the same region (have the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.

models

Object with string properties

Yes

Optional. The models to use for translation. Map's key is target language code. Map's value is model name. Value can be a built-in general model, or an AutoML Translation model.

The value format depends on model type:

  • AutoML Translation models: projects/{project-id}/locations/{location-id}/models/{model-id}

  • General (built-in) models: projects/{project-id}/locations/{location-id}/models/general/nmt, projects/{project-id}/locations/{location-id}/models/general/base

If the map is empty or a specific model is not requested for a language pair, then default google model (nmt) is used.

glossaries

Object with Object properties

Yes

Optional. Glossaries to be applied for translation. It's keyed by target language code.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is a gax.Operation object. The promise has a method named "cancel" which cancels the ongoing API call.

createGlossary(request[, options][, callback]) → Promise

Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

const formattedParent = client.locationPath('[PROJECT]', '[LOCATION]');
const glossary = {};
const request = {
  parent: formattedParent,
  glossary: glossary,
};

// Handle the operation using the promise pattern.
client.createGlossary(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.locationPath('[PROJECT]', '[LOCATION]');
const glossary = {};
const request = {
  parent: formattedParent,
  glossary: glossary,
};

// Handle the operation using the event emitter pattern.
client.createGlossary(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.locationPath('[PROJECT]', '[LOCATION]');
const glossary = {};
const request = {
  parent: formattedParent,
  glossary: glossary,
};

// Handle the operation using the await pattern.
const [operation] = await client.createGlossary(request);

const [response] = await operation.promise();

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

 

Required. The project name.

glossary

Object

 

Required. The glossary to create.

This object should have the same structure as Glossary

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is a gax.Operation object. The promise has a method named "cancel" which cancels the ongoing API call.

deleteGlossary(request[, options][, callback]) → Promise

Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

const formattedName = client.glossaryPath('[PROJECT]', '[LOCATION]', '[GLOSSARY]');

// Handle the operation using the promise pattern.
client.deleteGlossary({name: formattedName})
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const formattedName = client.glossaryPath('[PROJECT]', '[LOCATION]', '[GLOSSARY]');

// Handle the operation using the event emitter pattern.
client.deleteGlossary({name: formattedName})
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const formattedName = client.glossaryPath('[PROJECT]', '[LOCATION]', '[GLOSSARY]');

// Handle the operation using the await pattern.
const [operation] = await client.deleteGlossary({name: formattedName});

const [response] = await operation.promise();

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

name

string

 

Required. The name of the glossary to delete.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is a gax.Operation object. The promise has a method named "cancel" which cancels the ongoing API call.

detectLanguage(request[, options][, callback]) → Promise

Detects the language of text within a request.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});


client.detectLanguage({})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

Yes

Required. Location to make a regional or global call.

Format: projects/{project-id}/locations/{location-id}.

For global calls, use projects/{project-id}/locations/global.

Only models within the same region (has same location-id) can be used. Otherwise an INVALID_ARGUMENT (400) error is returned.

model

string

Yes

Optional. The language detection model to be used.

Format: projects/{project-id}/locations/{location-id}/models/language-detection/{model-id}

Only one language detection model is currently supported: projects/{project-id}/locations/{location-id}/models/language-detection/default.

If not specified, the default model is used.

content

string

Yes

The content of the input stored as a string.

mimeType

string

Yes

Optional. The format of the source text, for example, "text/html", "text/plain". If left blank, the MIME type defaults to "text/html".

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing DetectLanguageResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing DetectLanguageResponse. The promise has a method named "cancel" which cancels the ongoing API call.

getGlossary(request[, options][, callback]) → Promise

Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

const formattedName = client.glossaryPath('[PROJECT]', '[LOCATION]', '[GLOSSARY]');
client.getGlossary({name: formattedName})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

name

string

 

Required. The name of the glossary to retrieve.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Glossary.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing Glossary. The promise has a method named "cancel" which cancels the ongoing API call.

getProjectId(callback)

Return the project ID used by this class.

Parameter

Name Type Optional Description

callback

function(Error, string)

 

the callback to be called with the current project Id.

getSupportedLanguages(request[, options][, callback]) → Promise

Returns a list of supported languages for translation.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});


client.getSupportedLanguages({})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

Yes

Required. Location to make a regional or global call.

Format: projects/{project-id}/locations/{location-id}.

For global calls, use projects/{project-id}/locations/global.

Only models within the same region (have same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.

displayLanguageCode

string

Yes

Optional. The language to use to return localized, human readable names of supported languages. If missing, then display names are not returned in a response.

model

string

Yes

Optional. Get supported languages of this model.

The format depends on model type:

  • AutoML Translation models: projects/{project-id}/locations/{location-id}/models/{model-id}

  • General (built-in) models: projects/{project-id}/locations/{location-id}/models/general/nmt, projects/{project-id}/locations/{location-id}/models/general/base

Returns languages supported by the specified model. If missing, we get supported languages of Google general base (PBMT) model.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing SupportedLanguages.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing SupportedLanguages. The promise has a method named "cancel" which cancels the ongoing API call.

glossaryPath(project, location, glossary) → String

Return a fully-qualified glossary resource name string.

Parameters

Name Type Optional Description

project

String

 

location

String

 

glossary

String

 

Returns

String 

listGlossaries(request[, options][, callback]) → Promise

Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

// Iterate over all elements.
client.listGlossaries({})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.

const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listGlossaries(nextRequest, options).then(callback);
  }
}
client.listGlossaries({}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

Yes

Required. The name of the project from which to list all of the glossaries.

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

filter

string

Yes

Optional. Filter specifying constraints of a list operation. Filtering is not supported yet, and the parameter currently has no effect. If missing, no filtering is performed.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Array, nullable Object, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is Array of Glossary.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListGlossariesResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is Array of Glossary.

    When autoPaginate: false is specified through options, the array has three elements. The first element is Array of Glossary in a single response. The second element is the next request object if the response indicates the next page exists, or null. The third element is an object representing ListGlossariesResponse.

    The promise has a method named "cancel" which cancels the ongoing API call.

listGlossariesStream(request[, options]) → Stream

Equivalent to listGlossaries, but returns a NodeJS Stream object.

This fetches the paged responses for listGlossaries continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});


client.listGlossariesStream({})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

Yes

Required. The name of the project from which to list all of the glossaries.

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

filter

string

Yes

Optional. Filter specifying constraints of a list operation. Filtering is not supported yet, and the parameter currently has no effect. If missing, no filtering is performed.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

See also
https://nodejs.org/api/stream.html
Returns

Stream 

An object stream which emits an object representing Glossary on 'data' event.

locationPath(project, location) → String

Return a fully-qualified location resource name string.

Parameters

Name Type Optional Description

project

String

 

location

String

 

Returns

String 

matchGlossaryFromGlossaryName(glossaryName) → String

Parse the glossaryName from a glossary resource.

Parameter

Name Type Optional Description

glossaryName

String

 

A fully-qualified path representing a glossary resources.

Returns

String 

  • A string representing the glossary.

matchLocationFromGlossaryName(glossaryName) → String

Parse the glossaryName from a glossary resource.

Parameter

Name Type Optional Description

glossaryName

String

 

A fully-qualified path representing a glossary resources.

Returns

String 

  • A string representing the location.

matchLocationFromLocationName(locationName) → String

Parse the locationName from a location resource.

Parameter

Name Type Optional Description

locationName

String

 

A fully-qualified path representing a location resources.

Returns

String 

  • A string representing the location.

matchProjectFromGlossaryName(glossaryName) → String

Parse the glossaryName from a glossary resource.

Parameter

Name Type Optional Description

glossaryName

String

 

A fully-qualified path representing a glossary resources.

Returns

String 

  • A string representing the project.

matchProjectFromLocationName(locationName) → String

Parse the locationName from a location resource.

Parameter

Name Type Optional Description

locationName

String

 

A fully-qualified path representing a location resources.

Returns

String 

  • A string representing the project.

translateText(request[, options][, callback]) → Promise

Translates input text and returns translated text.

Example

const translate = require('@google-cloud/translate');

const client = new translate.v3beta1.TranslationServiceClient({
  // optional auth parameters.
});

const contents = [];
const targetLanguageCode = '';
const request = {
  contents: contents,
  targetLanguageCode: targetLanguageCode,
};
client.translateText(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

contents

Array of string

 

Required. The content of the input in string format. We recommend the total content be less than 30k codepoints. Use BatchTranslateText for larger text.

targetLanguageCode

string

 

Required. The BCP-47 language code to use for translation of the input text, set to one of the language codes listed in Language Support.

mimeType

string

Yes

Optional. The format of the source text, for example, "text/html", "text/plain". If left blank, the MIME type defaults to "text/html".

sourceLanguageCode

string

Yes

Optional. The BCP-47 language code of the input text if known, for example, "en-US" or "sr-Latn". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response.

parent

string

Yes

Required. Location to make a regional or global call.

Format: projects/{project-id}/locations/{location-id}.

For global calls, use projects/{project-id}/locations/global.

Models and glossaries must be within the same region (have same location-id), otherwise an INVALID_ARGUMENT (400) error is returned.

model

string

Yes

Optional. The model type requested for this translation.

The format depends on model type:

  • AutoML Translation models: projects/{project-id}/locations/{location-id}/models/{model-id}

  • General (built-in) models: projects/{project-id}/locations/{location-id}/models/general/nmt, projects/{project-id}/locations/{location-id}/models/general/base

For global (non-regionalized) requests, use location-id global. For example, projects/{project-id}/locations/global/models/general/nmt.

If missing, the system decides which google base model to use.

glossaryConfig

Object

Yes

Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned.

This object should have the same structure as TranslateTextGlossaryConfig

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing TranslateTextResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing TranslateTextResponse. The promise has a method named "cancel" which cancels the ongoing API call.