1. نظرة عامة
توفّر Translation API واجهة برمجة تطبيقات بسيطة لترجمة سلسلة عشوائية بشكل ديناميكي إلى أي لغة متوافقة باستخدام أحدث تقنيات "الترجمة الآلية العصبية". ويمكن أيضًا استخدامها لرصد لغة في الحالات التي تكون فيها اللغة المصدر غير معروفة.
في هذا الدليل التعليمي، ستستخدم واجهة برمجة التطبيقات Translation API مع لغة Python. تشمل المفاهيم التي يتم تناولها كيفية إدراج اللغات المتاحة وترجمة النص ورصد لغة نص معيّن.
ما ستتعرّف عليه
- كيفية إعداد بيئتك
- كيفية إدراج اللغات المتاحة
- كيفية ترجمة النصوص
- كيفية التعرّف على اللغات
المتطلبات
استطلاع
كيف ستستخدم هذا الدليل التعليمي؟
ما هو تقييمك لتجربتك مع Python؟
ما هو تقييمك لتجربتك مع خدمات Google Cloud؟
2. الإعداد والمتطلبات
إعداد البيئة حسب السرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها واجهات برمجة تطبيقات Google. ويمكنك تعديلها في أي وقت.
- يكون معرّف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تُنشئ وحدة تحكّم Cloud Console سلسلة فريدة تلقائيًا، ولا يهمّك عادةً معرفة محتواها. في معظم مختبرات الرموز البرمجية، ستحتاج إلى الإشارة إلى معرّف المشروع (يُعرَف عادةً باسم
PROJECT_ID
). إذا لم يعجبك المعرّف الذي تم إنشاؤه، يمكنك إنشاء معرّف آخر عشوائي. يمكنك بدلاً من ذلك تجربة عنوانك الخاص لمعرفة ما إذا كان متاحًا. ولا يمكن تغييره بعد هذه الخطوة ويبقى ساريًا طوال مدة المشروع. - يُرجى العِلم أنّ هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات عن كلّ من هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تُكلّفك المشاركة في هذا الدليل التعليمي للترميز الكثير، إن لم يكن أيّ تكلفة على الإطلاق. لإيقاف الموارد لتجنُّب تحصيل رسوم بعد انتهاء هذا الدليل التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يكون مستخدمو Google Cloud الجدد مؤهّلين للاستفادة من برنامج الفترة التجريبية المجانية التي تقدّم رصيدًا بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من أنّه يمكن تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الإصدار التجريبي من "مختبر رموز Google" Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
تفعيل Cloud Shell
- من Cloud Console، انقر على تفعيل Cloud Shell
.
إذا كانت هذه هي المرة الأولى التي تبدأ فيها Cloud Shell، ستظهر لك شاشة وسيطة توضّح ماهيتها. إذا ظهرت لك شاشة وسيطة، انقر على متابعة.
من المفترض ألا يستغرق توفير Cloud Shell والاتصال بها سوى بضع لحظات.
تم تحميل هذه الآلة الافتراضية بجميع أدوات التطوير اللازمة. ويقدّم هذا الدليل دليلاً منزليًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يُحسِّن بشكل كبير أداء الشبكة والمصادقة. يمكن تنفيذ الكثير من عملك في هذا الدليل التعليمي للترميز، إن لم يكن كلّه، باستخدام متصفّح.
بعد الاتصال بخدمة 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 لتفعيل واجهة برمجة التطبيقات:
gcloud services enable translate.googleapis.com
ينبغي أن تظهر لك على النحو التالي:
Operation "operations/..." finished successfully.
يمكنك الآن استخدام Translator 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 لترجمة نص من لغة إلى أخرى. تتم ترجمة النص باستخدام نموذج "الترجمة الآلية العصبية". إذا لم يكن نموذج الترجمة الآلية العصبية متوافقًا مع الزوج اللغوي المطلوب للترجمة، يتم استخدام نموذج الترجمة الآلية المستندة إلى العبارة (PBMT). لمزيد من المعلومات عن "ترجمة Google" ونماذج الترجمة، يُرجى الاطّلاع على المشاركة التي تعلن عن إتاحة تكنولوجيا الترجمة الآلية العصبية.
لترجمة نص، انسخ الرمز التالي في جلسة 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، ارجع إلى shell:
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
مزيد من المعلومات
- مستندات "ترجمة Google" في السحابة الإلكترونية: https://cloud.google.com/translate/docs
- Python على Google Cloud: https://cloud.google.com/python
- مكتبات عملاء Cloud لبرنامج Python: https://github.com/googleapis/google-cloud-python
الترخيص
يخضع هذا العمل للإصدار 2.0 من رخصة المشاع الإبداعي العامة مع نسب العمل إلى مؤلفه.