File: sample_text_translation_languages.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (152 lines) | stat: -rw-r--r-- 6,885 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

"""
FILE: sample_text_translation_languages.py

DESCRIPTION:
    This file contains sample snippets for the Text Translation service.

USAGE:
    python sample_text_translation_languages.py

    Set the text translation endpoint environment variables with your own value before running the samples:
        
        1) AZURE_TEXT_TRANSLATION_ENDPOINT - the endpoint to your Text Translation resource.
        Note: the endpoint must be formatted to use the custom domain name for your resource:
        https:\\<NAME-OF-YOUR-RESOURCE>.cognitiveservices.azure.com\
                    
    The create_text_translation_client_with_credential call requires additional variables:
        2) AZURE_TEXT_TRANSLATION_APIKEY - the API key to your Text Translation resource.
        3) AZURE_TEXT_TRANSLATION_REGION - the Azure Region of your Text Translation resource.
"""
from azure.core.exceptions import HttpResponseError

# -------------------------------------------------------------------------
# Text translation client
# -------------------------------------------------------------------------
import sample_text_translation_client

text_translator = sample_text_translation_client.create_text_translation_client_with_endpoint()


# -------------------------------------------------------------------------
# Get text translation languages
# -------------------------------------------------------------------------
def get_text_translation_languages():
    # [START get_text_translation_languages]
    try:
        response = text_translator.get_supported_languages()

        print(
            f"Number of supported languages for translate operation: {len(response.translation) if response.translation is not None else 0}"
        )
        print(
            f"Number of supported languages for transliterate operation: {len(response.transliteration) if response.transliteration is not None else 0}"
        )
        print(
            f"Number of supported languages for dictionary operations: {len(response.dictionary) if response.dictionary is not None else 0}"
        )

        if response.translation is not None:
            print("Translation Languages:")
            for key, value in response.translation.items():
                print(f"{key} -- name: {value.name} ({value.native_name})")

        if response.transliteration is not None:
            print("Transliteration Languages:")
            for key, value in response.transliteration.items():
                print(f"{key} -- name: {value.name}, supported script count: {len(value.scripts)}")

        if response.dictionary is not None:
            print("Dictionary Languages:")
            for key, value in response.dictionary.items():
                print(f"{key} -- name: {value.name}, supported target languages count: {len(value.translations)}")

    except HttpResponseError as exception:
        if exception.error is not None:
            print(f"Error Code: {exception.error.code}")
            print(f"Message: {exception.error.message}")
        raise
    # [END get_text_translation_languages]


def get_text_translation_languages_scope():
    # [START get_text_translation_languages_scope]
    try:
        scope = "translation"
        response = text_translator.get_supported_languages(scope=scope)

        print(
            f"Number of supported languages for translate operation: {len(response.translation) if response.translation is not None else 0}"
        )
        print(
            f"Number of supported languages for transliterate operation: {len(response.transliteration) if response.transliteration is not None else 0}"
        )
        print(
            f"Number of supported languages for dictionary operations: {len(response.dictionary) if response.dictionary is not None else 0}"
        )

        if response.translation is not None:
            print("Translation Languages:")
            for key, value in response.translation.items():
                print(f"{key} -- name: {value.name} ({value.native_name})")

        if response.transliteration is not None:
            print("Transliteration Languages:")
            for key, value in response.transliteration.items():
                print(f"{key} -- name: {value.name}, supported script count: {len(value.scripts)}")

        if response.dictionary is not None:
            print("Dictionary Languages:")
            for key, value in response.dictionary.items():
                print(f"{key} -- name: {value.name}, supported target languages count: {len(value.translations)}")

    except HttpResponseError as exception:
        if exception.error is not None:
            print(f"Error Code: {exception.error.code}")
            print(f"Message: {exception.error.message}")
        raise
    # [END get_text_translation_languages_scope]


def get_text_translation_languages_culture():
    # [START get_text_translation_languages_culture]
    try:
        accept_language = "es"
        response = text_translator.get_supported_languages(accept_language=accept_language)

        print(
            f"Number of supported languages for translate operation: {len(response.translation) if response.translation is not None else 0}"
        )
        print(
            f"Number of supported languages for transliterate operation: {len(response.transliteration) if response.transliteration is not None else 0}"
        )
        print(
            f"Number of supported languages for dictionary operations: {len(response.dictionary) if response.dictionary is not None else 0}"
        )

        if response.translation is not None:
            print("Translation Languages:")
            for key, value in response.translation.items():
                print(f"{key} -- name: {value.name} ({value.native_name})")

        if response.transliteration is not None:
            print("Transliteration Languages:")
            for key, value in response.transliteration.items():
                print(f"{key} -- name: {value.name}, supported script count: {len(value.scripts)}")

        if response.dictionary is not None:
            print("Dictionary Languages:")
            for key, value in response.dictionary.items():
                print(f"{key} -- name: {value.name}, supported target languages count: {len(value.translations)}")

    except HttpResponseError as exception:
        if exception.error is not None:
            print(f"Error Code: {exception.error.code}")
            print(f"Message: {exception.error.message}")
        raise
    # [END get_text_translation_languages_culture]