:py:mod:`airflow.providers.google.cloud.hooks.translate`
========================================================

.. py:module:: airflow.providers.google.cloud.hooks.translate

.. autoapi-nested-parse::

   This module contains a Google Cloud Translate Hook.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.hooks.translate.CloudTranslateHook




.. py:class:: CloudTranslateHook(gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None)

   Bases: :py:obj:`airflow.providers.google.common.hooks.base_google.GoogleBaseHook`

   Hook for Google Cloud translate APIs.

   All the methods in the hook where project_id is used must be called with
   keyword arguments rather than positional.

   .. py:method:: get_conn(self)

      Retrieves connection to Cloud Translate

      :return: Google Cloud Translate client object.
      :rtype: google.cloud.translate_v2.Client


   .. py:method:: translate(self, values, target_language, format_ = None, source_language = None, model = None)

      Translate a string or list of strings.

      See https://cloud.google.com/translate/docs/translating-text

      :param values: String or list of strings to translate.
      :param target_language: The language to translate results into. This
                              is required by the API and defaults to
                              the target language of the current instance.
      :param format_: (Optional) One of ``text`` or ``html``, to specify
                      if the input text is plain text or HTML.
      :param source_language: (Optional) The language of the text to
                              be translated.
      :param model: (Optional) The model used to translate the text, such
                    as ``'base'`` or ``'nmt'``.
      :rtype: str or list
      :returns: A list of dictionaries for each queried value. Each
                dictionary typically contains three keys (though not
                all will be present in all cases)

                * ``detectedSourceLanguage``: The detected language (as an
                  ISO 639-1 language code) of the text.

                * ``translatedText``: The translation of the text into the
                  target language.

                * ``input``: The corresponding input value.

                * ``model``: The model used to translate the text.

                If only a single value is passed, then only a single
                dictionary will be returned.
      :raises: :class:`~exceptions.ValueError` if the number of
               values and translations differ.



