1. Przegląd

Translation API to prosty, zautomatyzowany interfejs, który umożliwia dynamiczne tłumaczenie dowolnego ciągu znaków na dowolny obsługiwany język przy użyciu najnowocześniejszego neuronowego tłumaczenia maszynowego. Może też służyć do wykrywania języka w przypadkach, gdy język źródłowy jest nieznany.
W tym samouczku będziesz używać interfejsu Translation API w Pythonie. Omawiane zagadnienia obejmują m.in. wyświetlanie listy dostępnych języków, tłumaczenie tekstu i wykrywanie języka, w którym napisano dany tekst.
Czego się nauczysz
- Jak skonfigurować środowisko
- Jak wyświetlić listę dostępnych języków
- Jak tłumaczyć tekst
- Jak wykrywać języki
Czego potrzebujesz
Ankieta
Jak zamierzasz korzystać z tego samouczka?
Jak oceniasz swoje doświadczenie z Pythonem?
Jak oceniasz korzystanie z usług Google Cloud?
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module użyjemy Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
Aktywowanie Cloud Shell
- W konsoli Cloud kliknij Aktywuj Cloud Shell
.

Jeśli uruchamiasz Cloud Shell po raz pierwszy, zobaczysz ekran pośredni z opisem tego środowiska. Jeśli pojawił się ekran pośredni, kliknij Dalej.

Uzyskanie dostępu do środowiska Cloud Shell i połączenie się z nim powinno zająć tylko kilka chwil.

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Większość zadań w tym module, a być może wszystkie, możesz wykonać w przeglądarce.
Po połączeniu z Cloud Shell zobaczysz, że uwierzytelnianie zostało już przeprowadzone, a projekt jest już ustawiony na Twój identyfikator projektu.
- Aby potwierdzić, że uwierzytelnianie zostało przeprowadzone, uruchom w Cloud Shell to polecenie:
gcloud auth list
Wynik polecenia
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Aby potwierdzić, że polecenie gcloud zna Twój projekt, uruchom w Cloud Shell to polecenie:
gcloud config list project
Wynik polecenia
[core] project = <PROJECT_ID>
Jeśli nie, możesz go ustawić za pomocą tego polecenia:
gcloud config set project <PROJECT_ID>
Wynik polecenia
Updated property [core/project].
3. Konfigurowanie środowiska
Zanim zaczniesz korzystać z interfejsu Translation API, uruchom w Cloud Shell to polecenie, aby go włączyć:
gcloud services enable translate.googleapis.com
Powinien pojawić się ekran podobny do tego:
Operation "operations/..." finished successfully.
Możesz już korzystać z interfejsu Translation API.
Ustaw następującą zmienną środowiskową (która będzie używana w aplikacji):
export PROJECT_ID=$(gcloud config get-value core/project)
echo "PROJECT_ID: $PROJECT_ID"
Przejdź do katalogu głównego:
cd ~
Utwórz środowisko wirtualne Pythona, aby odizolować zależności:
virtualenv venv-translate
Aktywuj środowisko wirtualne:
source venv-translate/bin/activate
Zainstaluj IPython i bibliotekę klienta Translation API:
pip install ipython google-cloud-translate
Powinien pojawić się ekran podobny do tego:
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
Teraz możesz używać biblioteki klienta Translation API.
W kolejnych krokach użyjesz interaktywnego interpretera Pythona o nazwie IPython, który został zainstalowany w poprzednim kroku. Rozpocznij sesję, uruchamiając ipython w Cloud Shell:
ipython
Powinien pojawić się ekran podobny do tego:
Python 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.27.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Skopiuj ten kod do sesji IPython:
from os import environ
from google.cloud import translate
PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"
Możesz już wysłać pierwsze żądanie i wyświetlić listę obsługiwanych języków.
4. Lista dostępnych języków
W tej sekcji znajdziesz listę wszystkich języków dostępnych w interfejsie Translation API.
Aby wyświetlić listę dostępnych języków, skopiuj ten kod do sesji IPython:
def print_supported_languages(display_language_code: str):
client = translate.TranslationServiceClient()
response = client.get_supported_languages(
parent=PARENT,
display_language_code=display_language_code,
)
languages = response.languages
print(f" Languages: {len(languages)} ".center(60, "-"))
for language in languages:
language_code = language.language_code
display_name = language.display_name
print(f"{language_code:10}{display_name}")
Wywołaj funkcję:
print_supported_languages("en")
Powinien pojawić się ekran podobny do tego:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanian am Amharic ar Arabic hy Armenian ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
Sprawdź, co zyskasz, gdy język wyświetlania będzie ustawiony na francuski:
print_supported_languages("fr")
Powinna się wyświetlić ta sama lista posortowana według nazw francuskich, podobnie jak poniżej:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yoruba zu Zoulou
Możesz spróbować z innym kodem języka.
Podsumowanie
W tym kroku udało Ci się wyświetlić listę wszystkich języków dostępnych w interfejsie Translation API. Pełną listę obsługiwanych języków znajdziesz na stronie obsługiwanych języków.
5. Tłumaczenie tekstu
Za pomocą interfejsu Translation API możesz tłumaczyć tekst z jednego języka na inny. Tekst jest tłumaczony za pomocą modelu neuronowego tłumaczenia maszynowego (NMT). Jeśli model NMT nie jest obsługiwany w przypadku wybranej pary językowej, używany jest model tłumaczenia maszynowego opartego na frazach (PBMT). Więcej informacji o Tłumaczu Google i jego modelach tłumaczeń znajdziesz w poście z ogłoszeniem dotyczącym NMT.
Aby przetłumaczyć tekst, skopiuj ten kod do sesji IPython:
def translate_text(text: str, target_language_code: str) -> translate.Translation:
client = translate.TranslationServiceClient()
response = client.translate_text(
parent=PARENT,
contents=[text],
target_language_code=target_language_code,
)
return response.translations[0]
Wywołaj funkcję, aby przetłumaczyć ten sam tekst na różne języki:
text = "Hello World!"
target_languages = ["tr", "de", "es", "it", "el", "zh", "ja", "ko"]
print(f" {text} ".center(50, "-"))
for target_language in target_languages:
translation = translate_text(text, target_language)
source_language = translation.detected_language_code
translated_text = translation.translated_text
print(f"{source_language} → {target_language} : {translated_text}")
Powinny pojawić się te wyniki:
------------------ Hello World! ------------------ en → tr : Selam Dünya! en → de : Hallo Welt! en → es : ¡Hola Mundo! en → it : Ciao mondo! en → el : Γεια σου Κόσμο! en → zh : 你好世界! en → ja : 「こんにちは世界」 en → ko : 안녕하세요!
Podsumowanie
W tym kroku udało Ci się użyć interfejsu Translation API do przetłumaczenia tekstu na wiele języków. Dowiedz się więcej o tłumaczeniu tekstu.
6. Wykrywanie języków
Za pomocą interfejsu Translation API możesz też wykrywać język ciągu tekstowego.
Skopiuj ten kod do sesji IPython:
def detect_language(text: str) -> translate.DetectedLanguage:
client = translate.TranslationServiceClient()
response = client.detect_language(parent=PARENT, content=text)
return response.languages[0]
Wywołaj funkcję, aby wykryć język różnych zdań:
sentences = [
"Selam Dünya!",
"Hallo Welt!",
"¡Hola Mundo!",
"Ciao mondo!",
"Γεια σου Κόσμο!",
"你好世界!",
"「こんにちは世界」",
"안녕하세요!",
]
for sentence in sentences:
language = detect_language(sentence)
confidence = language.confidence
language_code = language.language_code
print(
f"Confidence: {confidence:4.0%}",
f"Language: {language_code:5}",
sentence,
sep=" | ",
)
Powinny pojawić się te wyniki:
Confidence: 100% | Language: tr | Selam Dünya! Confidence: 81% | Language: de | Hallo Welt! Confidence: 100% | Language: es | ¡Hola Mundo! Confidence: 100% | Language: it | Ciao mondo! Confidence: 100% | Language: el | Γεια σου Κόσμο! Confidence: 100% | Language: zh-CN | 你好世界! Confidence: 100% | Language: ja | 「こんにちは世界」 Confidence: 100% | Language: ko | 안녕하세요!
Podsumowanie
W tym kroku udało Ci się wykryć język fragmentu tekstu za pomocą interfejsu Translation API. Dowiedz się więcej o wykrywaniu języków.
7. Gratulacje!

Wiesz już, jak korzystać z interfejsu Translation API za pomocą Pythona.
Czyszczenie danych
Aby wyczyścić środowisko programistyczne, w Cloud Shell:
- Jeśli nadal korzystasz z sesji IPython, wróć do powłoki:
exit - Przestań używać środowiska wirtualnego Pythona:
deactivate - Usuń folder środowiska wirtualnego:
cd ~ ; rm -rf ./venv-translate
Aby usunąć projekt Google Cloud, w Cloud Shell:
- Pobierz bieżący identyfikator projektu:
PROJECT_ID=$(gcloud config get-value core/project) - Sprawdź, czy to jest projekt, który chcesz usunąć:
echo $PROJECT_ID - Usuń projekt:
gcloud projects delete $PROJECT_ID
Więcej informacji
- Dokumentacja Cloud Translation: https://cloud.google.com/translate/docs
- Python w Google Cloud: https://cloud.google.com/python
- Biblioteki klienta Google Cloud do Pythona: https://github.com/googleapis/google-cloud-python
Licencja
To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.