translate_text

Translate.Client.translate_text(**kwargs)

Translates input text from the source language to the target language. For a list of available languages and language codes, see Supported languages.

See also: AWS API Documentation

Request Syntax

response = client.translate_text(
    Text='string',
    TerminologyNames=[
        'string',
    ],
    SourceLanguageCode='string',
    TargetLanguageCode='string',
    Settings={
        'Formality': 'FORMAL'|'INFORMAL',
        'Profanity': 'MASK'
    }
)
Parameters
  • Text (string) --

    [REQUIRED]

    The text to translate. The text string can be a maximum of 10,000 bytes long. Depending on your character set, this may be fewer than 10,000 characters.

  • TerminologyNames (list) --

    The name of the terminology list file to be used in the TranslateText request. You can use 1 terminology list at most in a TranslateText request. Terminology lists can contain a maximum of 256 terms.

    • (string) --
  • SourceLanguageCode (string) --

    [REQUIRED]

    The language code for the language of the source text. The language must be a language supported by Amazon Translate. For a list of language codes, see Supported languages.

    To have Amazon Translate determine the source language of your text, you can specify auto in the SourceLanguageCode field. If you specify auto , Amazon Translate will call Amazon Comprehend to determine the source language.

    Note

    If you specify auto , you must send the TranslateText request in a region that supports Amazon Comprehend. Otherwise, the request returns an error indicating that autodetect is not supported.

  • TargetLanguageCode (string) --

    [REQUIRED]

    The language code requested for the language of the target text. The language must be a language supported by Amazon Translate.

  • Settings (dict) --

    Settings to configure your translation output, including the option to set the formality level of the output text and the option to mask profane words and phrases.

    • Formality (string) --

      You can optionally 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) --

      Enable the profanity setting if you want Amazon Translate 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.

Return type

dict

Returns

Response Syntax

{
    'TranslatedText': 'string',
    'SourceLanguageCode': 'string',
    'TargetLanguageCode': 'string',
    'AppliedTerminologies': [
        {
            'Name': 'string',
            'Terms': [
                {
                    'SourceText': 'string',
                    'TargetText': 'string'
                },
            ]
        },
    ],
    'AppliedSettings': {
        'Formality': 'FORMAL'|'INFORMAL',
        'Profanity': 'MASK'
    }
}

Response Structure

  • (dict) --

    • TranslatedText (string) --

      The translated text.

    • SourceLanguageCode (string) --

      The language code for the language of the source text.

    • TargetLanguageCode (string) --

      The language code for the language of the target text.

    • AppliedTerminologies (list) --

      The names of the custom terminologies applied to the input text by Amazon Translate for the translated text response.

      • (dict) --

        The custom terminology applied to the input text by Amazon Translate for the translated text response. This is optional in the response and will only be present if you specified terminology input in the request. Currently, only one terminology can be applied per TranslateText request.

        • Name (string) --

          The name of the custom terminology applied to the input text by Amazon Translate for the translated text response.

        • Terms (list) --

          The specific terms of the custom terminology applied to the input text by Amazon Translate for the translated text response. A maximum of 250 terms will be returned, and the specific terms applied will be the first 250 terms in the source text.

          • (dict) --

            The term being translated by the custom terminology.

            • SourceText (string) --

              The source text of the term being translated by the custom terminology.

            • TargetText (string) --

              The target text of the term being translated by the custom terminology.

    • AppliedSettings (dict) --

      Settings that configure the translation output.

      • Formality (string) --

        You can optionally 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) --

        Enable the profanity setting if you want Amazon Translate 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.

Exceptions

  • Translate.Client.exceptions.InvalidRequestException
  • Translate.Client.exceptions.TextSizeLimitExceededException
  • Translate.Client.exceptions.TooManyRequestsException
  • Translate.Client.exceptions.UnsupportedLanguagePairException
  • Translate.Client.exceptions.DetectedLanguageLowConfidenceException
  • Translate.Client.exceptions.ResourceNotFoundException
  • Translate.Client.exceptions.InternalServerException
  • Translate.Client.exceptions.ServiceUnavailableException