Translate / Client / start_text_translation_job

start_text_translation_job#

Translate.Client.start_text_translation_job(**kwargs)#

Starts an asynchronous batch translation job. Use batch translation jobs to translate large volumes of text across multiple documents at once. For batch translation, you can input documents with different source languages (specify auto as the source language). You can specify one or more target languages. Batch translation translates each input document into each of the target languages. For more information, see Asynchronous batch processing.

Batch translation jobs can be described with the DescribeTextTranslationJob operation, listed with the ListTextTranslationJobs operation, and stopped with the StopTextTranslationJob operation.

See also: AWS API Documentation

Request Syntax

response = client.start_text_translation_job(
    JobName='string',
    InputDataConfig={
        'S3Uri': 'string',
        'ContentType': 'string'
    },
    OutputDataConfig={
        'S3Uri': 'string',
        'EncryptionKey': {
            'Type': 'KMS',
            'Id': 'string'
        }
    },
    DataAccessRoleArn='string',
    SourceLanguageCode='string',
    TargetLanguageCodes=[
        'string',
    ],
    TerminologyNames=[
        'string',
    ],
    ParallelDataNames=[
        'string',
    ],
    ClientToken='string',
    Settings={
        'Formality': 'FORMAL'|'INFORMAL',
        'Profanity': 'MASK',
        'Brevity': 'ON'
    }
)
Parameters:
  • JobName (string) – The name of the batch translation job to be performed.

  • InputDataConfig (dict) –

    [REQUIRED]

    Specifies the format and location of the input documents for the translation job.

    • S3Uri (string) – [REQUIRED]

      The URI of the AWS S3 folder that contains the input files. Amazon Translate translates all the files in the folder and all its sub-folders. The folder must be in the same Region as the API endpoint you are calling.

    • ContentType (string) – [REQUIRED]

      Describes the format of the data that you submit to Amazon Translate as input. You can specify one of the following multipurpose internet mail extension (MIME) types:

      • text/html: The input data consists of one or more HTML files. Amazon Translate translates only the text that resides in the html element in each file.

      • text/plain: The input data consists of one or more unformatted text files. Amazon Translate translates every character in this type of input.

      • application/vnd.openxmlformats-officedocument.wordprocessingml.document: The input data consists of one or more Word documents (.docx).

      • application/vnd.openxmlformats-officedocument.presentationml.presentation: The input data consists of one or more PowerPoint Presentation files (.pptx).

      • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: The input data consists of one or more Excel Workbook files (.xlsx).

      • application/x-xliff+xml: The input data consists of one or more XML Localization Interchange File Format (XLIFF) files (.xlf). Amazon Translate supports only XLIFF version 1.2.

      Warning

      If you structure your input data as HTML, ensure that you set this parameter to text/html. By doing so, you cut costs by limiting the translation to the contents of the html element in each file. Otherwise, if you set this parameter to text/plain, your costs will cover the translation of every character.

  • OutputDataConfig (dict) –

    [REQUIRED]

    Specifies the S3 folder to which your job output will be saved.

    • S3Uri (string) – [REQUIRED]

      The URI of the S3 folder that contains a translation job’s output file. The folder must be in the same Region as the API endpoint that you are calling.

    • EncryptionKey (dict) –

      The encryption key used to encrypt this object.

      • Type (string) – [REQUIRED]

        The type of encryption key used by Amazon Translate to encrypt this object.

      • Id (string) – [REQUIRED]

        The Amazon Resource Name (ARN) of the encryption key being used to encrypt this object.

  • DataAccessRoleArn (string) –

    [REQUIRED]

    The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that grants Amazon Translate read access to your input data. For more information, see Identity and access management.

  • SourceLanguageCode (string) –

    [REQUIRED]

    The language code of the input language. Specify the language if all input documents share the same language. If you don’t know the language of the source files, or your input documents contains different source languages, select auto. Amazon Translate auto detects the source language for each input document. For a list of supported language codes, see Supported languages.

  • TargetLanguageCodes (list) –

    [REQUIRED]

    The target languages of the translation job. Enter up to 10 language codes. Each input file is translated into each target language.

    Each language code is 2 or 5 characters long. For a list of language codes, see Supported languages.

    • (string) –

  • TerminologyNames (list) –

    The name of a custom terminology resource to add to the translation job. This resource lists examples source terms and the desired translation for each term.

    This parameter accepts only one custom terminology resource.

    If you specify multiple target languages for the job, translate uses the designated terminology for each requested target language that has an entry for the source term in the terminology file.

    For a list of available custom terminology resources, use the ListTerminologies operation.

    For more information, see Custom terminology.

    • (string) –

  • ParallelDataNames (list) –

    The name of a parallel data resource to add to the translation job. This resource consists of examples that show how you want segments of text to be translated. If you specify multiple target languages for the job, the parallel data file must include translations for all the target languages.

    When you add parallel data to a translation job, you create an Active Custom Translation job.

    This parameter accepts only one parallel data resource.

    Note

    Active Custom Translation jobs are priced at a higher rate than other jobs that don’t use parallel data. For more information, see Amazon Translate pricing.

    For a list of available parallel data resources, use the ListParallelData operation.

    For more information, see Customizing your translations with parallel data.

    • (string) –

  • ClientToken (string) –

    [REQUIRED]

    A unique identifier for the request. This token is generated for you when using the Amazon Translate SDK.

    This field is autopopulated if not provided.

  • Settings (dict) –

    Settings to configure your translation output. You can configure the following options:

    • Brevity: not supported.

    • Formality: sets the formality level of the output text.

    • Profanity: masks profane words and phrases in your translation output.

    • Formality (string) –

      You can specify the desired level of formality for translations to supported target languages. The formality setting controls the level of formal language usage (also known as register) in the translation output. You can set the value to informal or formal. If you don’t specify a value for formality, or if the target language doesn’t support formality, the translation will ignore the formality setting.

      If you specify multiple target languages for the job, translate ignores the formality setting for any unsupported target language.

      For a list of target languages that support formality, see Supported languages in the Amazon Translate Developer Guide.

    • Profanity (string) –

      You can enable the profanity setting if you want to mask profane words and phrases in your translation output.

      To mask profane words and phrases, Amazon Translate replaces them with the grawlix string “?$#@$“. This 5-character sequence is used for each profane word or phrase, regardless of the length or number of words.

      Amazon Translate doesn’t detect profanity in all of its supported languages. For languages that don’t support profanity detection, see Unsupported languages in the Amazon Translate Developer Guide.

      If you specify multiple target languages for the job, all the target languages must support profanity masking. If any of the target languages don’t support profanity masking, the translation job won’t mask profanity for any target language.

    • Brevity (string) –

      When you turn on brevity, Amazon Translate reduces the length of the translation output for most translations (when compared with the same translation with brevity turned off). By default, brevity is turned off.

      If you turn on brevity for a translation request with an unsupported language pair, the translation proceeds with the brevity setting turned off.

      For the language pairs that brevity supports, see Using brevity in the Amazon Translate Developer Guide.

Return type:

dict

Returns:

Response Syntax

{
    'JobId': 'string',
    'JobStatus': 'SUBMITTED'|'IN_PROGRESS'|'COMPLETED'|'COMPLETED_WITH_ERROR'|'FAILED'|'STOP_REQUESTED'|'STOPPED'
}

Response Structure

  • (dict) –

    • JobId (string) –

      The identifier generated for the job. To get the status of a job, use this ID with the DescribeTextTranslationJob operation.

    • JobStatus (string) –

      The status of the job. Possible values include:

      • SUBMITTED - The job has been received and is queued for processing.

      • IN_PROGRESS - Amazon Translate is processing the job.

      • COMPLETED - The job was successfully completed and the output is available.

      • COMPLETED_WITH_ERROR - The job was completed with errors. The errors can be analyzed in the job’s output.

      • FAILED - The job did not complete. To get details, use the DescribeTextTranslationJob operation.

      • STOP_REQUESTED - The user who started the job has requested that it be stopped.

      • STOPPED - The job has been stopped.

Exceptions

  • Translate.Client.exceptions.TooManyRequestsException

  • Translate.Client.exceptions.UnsupportedLanguagePairException

  • Translate.Client.exceptions.InvalidRequestException

  • Translate.Client.exceptions.ResourceNotFoundException

  • Translate.Client.exceptions.InvalidParameterValueException

  • Translate.Client.exceptions.InternalServerException