1. סקירה כללית

Translation API מספק ממשק פרוגרמטי פשוט לתרגום דינמי של מחרוזת שרירותית לכל שפה נתמכת באמצעות תרגום מכונה עצבי (NMT) מתקדם. אפשר להשתמש בו גם כדי לזהות שפה במקרים שבהם שפת המקור לא ידועה.
במדריך הזה תשתמשו ב-Translation API עם Python. המושגים שמוסברים כוללים איך לפרט את השפות הזמינות, לתרגם טקסט ולזהות את השפה של טקסט נתון.
מה תלמדו
- איך מגדירים את הסביבה
- איך מציגים רשימה של שפות זמינות
- כיצד לתרגם טקסט
- איך לזהות שפות
מה תצטרכו
סקר
איך תשתמשו במדריך הזה?
איך היית מדרג את חוויית השימוש שלך ב-Python?
איזה דירוג מתאים לדעתך לחוויית השימוש שלך בשירותי Google Cloud?
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת בענן.
הפעלת Cloud Shell
- ב-Cloud Console, לוחצים על Activate Cloud Shell
.

אם זו הפעם הראשונה שאתם מפעילים את Cloud Shell, יוצג לכם מסך ביניים עם תיאור של השירות. אם הוצג לכם מסך ביניים, לחצו על המשך.

הקצאת המשאבים והחיבור ל-Cloud Shell נמשכים רק כמה רגעים.

המכונה הווירטואלית הזו כוללת את כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את רוב העבודה ב-codelab הזה, אם לא את כולה, באמצעות דפדפן.
אחרי שמתחברים ל-Cloud Shell, אמור להופיע אימות ושהפרויקט מוגדר לפי מזהה הפרויקט.
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שעברתם אימות:
gcloud auth list
פלט הפקודה
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט:
gcloud config list project
פלט הפקודה
[core] project = <PROJECT_ID>
אם לא, אפשר להגדיר אותו באמצעות הפקודה הבאה:
gcloud config set project <PROJECT_ID>
פלט הפקודה
Updated property [core/project].
3. הגדרת הסביבה
לפני שמתחילים להשתמש ב-Translation API, מריצים את הפקודה הבאה ב-Cloud Shell כדי להפעיל את ה-API:
gcloud services enable translate.googleapis.com
אתם אמורים לראות משהו כזה:
Operation "operations/..." finished successfully.
עכשיו אפשר להשתמש ב-Translation API.
מגדירים את משתנה הסביבה הבא (לשימוש באפליקציה):
export PROJECT_ID=$(gcloud config get-value core/project)
echo "PROJECT_ID: $PROJECT_ID"
מנווטים לספריית הבית:
cd ~
יוצרים סביבה וירטואלית של Python כדי לבודד את התלות:
virtualenv venv-translate
מפעילים את הסביבה הווירטואלית:
source venv-translate/bin/activate
מתקינים את IPython ואת ספריית הלקוח של Translation API:
pip install ipython google-cloud-translate
אתם אמורים לראות משהו כזה:
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
עכשיו אפשר להשתמש בספריית הלקוח של Translation API.
בשלבים הבאים תשתמשו במפרש Python אינטראקטיבי שנקרא IPython, שהתקנתם בשלב הקודם. כדי להתחיל סשן, מריצים את הפקודה ipython ב-Cloud Shell:
ipython
אתם אמורים לראות משהו כזה:
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]:
מעתיקים את הקוד הבא להפעלה של IPython:
from os import environ
from google.cloud import translate
PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"
הכול מוכן, אפשר לשלוח את הבקשה הראשונה ולראות את רשימת השפות הנתמכות…
4. רשימת השפות הזמינות
בקטע הזה מפורטות כל השפות שזמינות ב-Translation API.
כדי להציג את השפות הזמינות, מעתיקים את הקוד הבא לסשן 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}")
מפעילים את הפונקציה:
print_supported_languages("en")
אמורה להתקבל תגובה שדומה לזו:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanian am Amharic ar Arabic hy Armenian ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
כדאי לבדוק מה מקבלים עם שפת תצוגה בצרפתית:
print_supported_languages("fr")
אמורה להתקבל אותה רשימה, ממוינת לפי השמות בצרפתית, כמו בדוגמה הבאה:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yoruba zu Zoulou
אפשר לנסות עם קוד שפה אחר.
סיכום
בשלב הזה, יכולתם לראות רשימה של כל השפות שזמינות ב-Translation API. הרשימה המלאה של השפות הנתמכות מופיעה בדף תמיכה בשפות.
5. תרגום טקסט
אתם יכולים להשתמש ב-Translation API כדי לתרגם טקסט משפה אחת לשפה אחרת. התרגום מתבצע באמצעות מודל של תרגום מכונה עצבי (NMT). אם מודל ה-NMT לא תומך בצמד השפות של התרגום המבוקש, נעשה שימוש במודל של תרגום מכונה מבוסס-צירופים (PBMT). מידע נוסף על Google Translate ועל מודלים התרגום שלו זמין בפוסט בנושא NMT.
כדי לתרגם טקסט, מעתיקים את הקוד הבא להפעלה של 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]
קוראים לפונקציה כדי לתרגם את אותו הטקסט לשפות שונות:
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}")
אמור להתקבל הפלט הבא:
------------------ 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 : 안녕하세요!
סיכום
בשלב הזה, השתמשתם ב-Translation API כדי לתרגם טקסט לכמה שפות. מידע נוסף על תרגום טקסט
6. זיהוי שפות
אפשר גם להשתמש ב-Translation API כדי לזהות את השפה של מחרוזת טקסט.
מעתיקים את הקוד הבא להפעלה של IPython:
def detect_language(text: str) -> translate.DetectedLanguage:
client = translate.TranslationServiceClient()
response = client.detect_language(parent=PARENT, content=text)
return response.languages[0]
קוראים לפונקציה כדי לזהות את השפה של משפטים שונים:
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=" | ",
)
אמור להתקבל הפלט הבא:
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 | 안녕하세요!
סיכום
בשלב הזה, הצלחתם לזהות את השפה של קטע טקסט באמצעות Translation API. מידע נוסף על זיהוי שפות
7. מעולה!

למדתם איך להשתמש ב-Translation API באמצעות Python.
פינוי נפח
כדי לנקות את סביבת הפיתוח, מ-Cloud Shell:
- אם אתם עדיין בהפעלה של IPython, חוזרים אל המעטפת:
exit - מפסיקים להשתמש בסביבה הווירטואלית של Python:
deactivate - מוחקים את תיקיית הסביבה הווירטואלית:
cd ~ ; rm -rf ./venv-translate
כדי למחוק את הפרויקט בענן ב-Google Cloud, מ-Cloud Shell:
- כדי לאחזר את מזהה הפרויקט הנוכחי:
PROJECT_ID=$(gcloud config get-value core/project) - חשוב לוודא שזה הפרויקט שרוצים למחוק:
echo $PROJECT_ID - מחיקת הפרויקט:
gcloud projects delete $PROJECT_ID
מידע נוסף
- מסמכי התיעוד של Cloud Translation: https://cloud.google.com/translate/docs
- Python ב-Google Cloud: https://cloud.google.com/python
- ספריות לקוח של Cloud ל-Python: https://github.com/googleapis/google-cloud-python
רישיון
עבודה זו מורשית תחת רישיון Creative Commons שמותנה בייחוס 2.0 כללי.