Друкарня від WE.UA

У цьому матеріалі ми будемо говорити про бібліотеку deep-translator, яка дозволяє перекладати текст на різні мови завдяки різним сервісам перекладу, наприклад, Google перекладач.

Встановлення

Windows:

pip install deep-translator

MacOS:

pip3 install deep-translator

Linux:

pip install deep-translator

Переклад текстів з Google Translator

Отже, предметом нашого вивчення буде саме клас GoogleTranslator. Сам по собі GoogleTranslator() —  це клас, який має різні методи, що ми теж розгянемо у цій статті. Тож, почнемо вже огляд на прикладах.

Ось перший приклад:

import deep_translator
original_text = "This article is about magnificent thing"
translate_text = deep_translator.GoogleTranslator(source="english", target="french")
print(translate_text.translate(text=original_text))
Cet article est une chose magnifique

Тепер розберемо цей приклад. Отже, ми викликаємо клас GoogleTranslator(), у якому в дужках вказуємо два параметри — source та target. У параметрі source вказуємо з якої мови ми хочемо перекласти текст (у нашому випадку це англійська), а у параметрі target вказуємо мову, на яку будемо перекладати (у даному випадку — французька). далі застословуємо метод translate(), якому у якості параметра text передаємо нашу змінну original_text. На виході отримали перекладений на французьку мову текст.

Також ми можемо вказати у параметрі source значення auto, тоді наша програма сама буде розпізнавати мову, з якої ми хочемо перекласти.

Ось приклад:

original_text = "This article is about magnificent thing"
translate_text = deep_translator.GoogleTranslator(source="auto", target="french")
print(translate_text.translate(text=original_text))
Cet article est une chose magnifique

Так само замість назв мов можна вказувати їх абревіатури. Ось ще один приклад з таким записом:

original_text = "This article is about magnificent thing"
translate_text = deep_translator.GoogleTranslator(source="en", target="fr")
print(translate_text.translate(text=original_text))
Cet article est une chose magnifique

Крім того, вказувати параметри можна не тільки прямо в класі. Ми можемо змінювати вже вказані значення параметрів завдяки виклику їх через наш об’єкт translate_text. Ось приклад такого запису:

original_text = "This article is about magnificent thing"
translate_text = deep_translator.GoogleTranslator(source="auto", target="fr")
print(f"Translation settings\n"
      f"-------------------------\n"
      f"translate from: {translate_text.source}\n"
      f"translate to: {translate_text.target}\n"
      f"-------------------------\n"
      f"Result:\n"
      f"{translate_text.translate(text=original_text)}")
translate_text.source = "en"
translate_text.target = "de"
print(f"\n"
      f"Updated translation settings\n"
      f"-------------------------\n"
      f"translate from: {translate_text.source}\n"
      f"translate to: {translate_text.target}\n"
      f"-------------------------\n"
      f"Result (updated):\n"
      f"{translate_text.translate(text=original_text)}")
Translation settings
-------------------------
translate from: auto
translate to: fr
-------------------------
Result:
Cet article est une chose magnifique
Updated translation settings
-------------------------
translate from: en
translate to: de
-------------------------
Result (updated):
In diesem Artikel geht es um großartige Sache

Тобто ми спочатку вказали в класі GoogleTranslator(), що ми хочемо перекласти з мови, яку Google Translator розпізнає на французьку. Проте, після виведення результату з такими налаштуваннями ми змінюємо ці налаштування, вказуючи нові значення параметрів перекладача через екземпляр об'єкта translate_text. Далі знову викликаємо метод translate(), який після зміни значень параметрів буде не розпізнавати вхідну мову, а точно знати, що це саме англійська та перекладати її на німецьку замість французької.

Тепер розглянемо як перевірити, які мови підтримує сервіс Google Translator. З цією метою ми можемо застосувати метод get_supported_languages(), який виводить список з усіма доступними на цьому сервісі мовами. Також у цього метода є параметр as_dict, який виводить словник з назвою мови та її абревіатурою. Дивимося приклад:

available_languages = deep_translator.GoogleTranslator()
print(available_languages.get_supported_languages())
['afrikaans', 'albanian', 'amharic', 'arabic', 'armenian', 'assamese', 'aymara', 'azerbaijani', 'bambara', 'basque', 'belarusian', 'bengali', 'bhojpuri', 'bosnian', 'bulgarian', 'catalan', 'cebuano', 'chichewa', 'chinese (simplified)', 'chinese (traditional)', 'corsican', 'croatian', 'czech', 'danish', 'dhivehi', 'dogri', 'dutch', 'english', 'esperanto', 'estonian', 'ewe', 'filipino', 'finnish', 'french', 'frisian', 'galician', 'georgian', 'german', 'greek', 'guarani', 'gujarati', 'haitian creole', 'hausa', 'hawaiian', 'hebrew', 'hindi', 'hmong', 'hungarian', 'icelandic', 'igbo', 'ilocano', 'indonesian', 'irish', 'italian', 'japanese', 'javanese', 'kannada', 'kazakh', 'khmer', 'kinyarwanda', 'konkani', 'korean', 'krio', 'kurdish (kurmanji)', 'kurdish (sorani)', 'kyrgyz', 'lao', 'latin', 'latvian', 'lingala', 'lithuanian', 'luganda', 'luxembourgish', 'macedonian', 'maithili', 'malagasy', 'malay', 'malayalam', 'maltese', 'maori', 'marathi', 'meiteilon (manipuri)', 'mizo', 'mongolian', 'myanmar', 'nepali', 'norwegian', 'odia (oriya)', 'oromo', 'pashto', 'persian', 'polish', 'portuguese', 'punjabi', 'quechua', 'romanian', 'russian', 'samoan', 'sanskrit', 'scots gaelic', 'sepedi', 'serbian', 'sesotho', 'shona', 'sindhi', 'sinhala', 'slovak', 'slovenian', 'somali', 'spanish', 'sundanese', 'swahili', 'swedish', 'tajik', 'tamil', 'tatar', 'telugu', 'thai', 'tigrinya', 'tsonga', 'turkish', 'turkmen', 'twi', 'ukrainian', 'urdu', 'uyghur', 'uzbek', 'vietnamese', 'welsh', 'xhosa', 'yiddish', 'yoruba', 'zulu']

А тепер вкажемо параметр as_dict=True:

available_languages = deep_translator.GoogleTranslator()
print(available_languages.get_supported_languages(as_dict=True))
{'afrikaans': 'af', 'albanian': 'sq', 'amharic': 'am', 'arabic': 'ar', 'armenian': 'hy', 'assamese': 'as', 'aymara': 'ay', 'azerbaijani': 'az', 'bambara': 'bm', 'basque': 'eu', 'belarusian': 'be', 'bengali': 'bn', 'bhojpuri': 'bho', 'bosnian': 'bs', 'bulgarian': 'bg', 'catalan': 'ca', 'cebuano': 'ceb', 'chichewa': 'ny', 'chinese (simplified)': 'zh-CN', 'chinese (traditional)': 'zh-TW', 'corsican': 'co', 'croatian': 'hr', 'czech': 'cs', 'danish': 'da', 'dhivehi': 'dv', 'dogri': 'doi', 'dutch': 'nl', 'english': 'en', 'esperanto': 'eo', 'estonian': 'et', 'ewe': 'ee', 'filipino': 'tl', 'finnish': 'fi', 'french': 'fr', 'frisian': 'fy', 'galician': 'gl', 'georgian': 'ka', 'german': 'de', 'greek': 'el', 'guarani': 'gn', 'gujarati': 'gu', 'haitian creole': 'ht', 'hausa': 'ha', 'hawaiian': 'haw', 'hebrew': 'iw', 'hindi': 'hi', 'hmong': 'hmn', 'hungarian': 'hu', 'icelandic': 'is', 'igbo': 'ig', 'ilocano': 'ilo', 'indonesian': 'id', 'irish': 'ga', 'italian': 'it', 'japanese': 'ja', 'javanese': 'jw', 'kannada': 'kn', 'kazakh': 'kk', 'khmer': 'km', 'kinyarwanda': 'rw', 'konkani': 'gom', 'korean': 'ko', 'krio': 'kri', 'kurdish (kurmanji)': 'ku', 'kurdish (sorani)': 'ckb', 'kyrgyz': 'ky', 'lao': 'lo', 'latin': 'la', 'latvian': 'lv', 'lingala': 'ln', 'lithuanian': 'lt', 'luganda': 'lg', 'luxembourgish': 'lb', 'macedonian': 'mk', 'maithili': 'mai', 'malagasy': 'mg', 'malay': 'ms', 'malayalam': 'ml', 'maltese': 'mt', 'maori': 'mi', 'marathi': 'mr', 'meiteilon (manipuri)': 'mni-Mtei', 'mizo': 'lus', 'mongolian': 'mn', 'myanmar': 'my', 'nepali': 'ne', 'norwegian': 'no', 'odia (oriya)': 'or', 'oromo': 'om', 'pashto': 'ps', 'persian': 'fa', 'polish': 'pl', 'portuguese': 'pt', 'punjabi': 'pa', 'quechua': 'qu', 'romanian': 'ro', 'russian': 'ru', 'samoan': 'sm', 'sanskrit': 'sa', 'scots gaelic': 'gd', 'sepedi': 'nso', 'serbian': 'sr', 'sesotho': 'st', 'shona': 'sn', 'sindhi': 'sd', 'sinhala': 'si', 'slovak': 'sk', 'slovenian': 'sl', 'somali': 'so', 'spanish': 'es', 'sundanese': 'su', 'swahili': 'sw', 'swedish': 'sv', 'tajik': 'tg', 'tamil': 'ta', 'tatar': 'tt', 'telugu': 'te', 'thai': 'th', 'tigrinya': 'ti', 'tsonga': 'ts', 'turkish': 'tr', 'turkmen': 'tk', 'twi': 'ak', 'ukrainian': 'uk', 'urdu': 'ur', 'uyghur': 'ug', 'uzbek': 'uz', 'vietnamese': 'vi', 'welsh': 'cy', 'xhosa': 'xh', 'yiddish': 'yi', 'yoruba': 'yo', 'zulu': 'zu'}

Переклад вмісту файлів з Google Translator

Різні сервіси у тому числі й Google Translator дають можливість також перекладати й файли. Щоб перекласти файл треба застосувати метод translate_file(). Отже, створюємо файл test.txt, який потім ми перекладемо з англійської на німецьку. Також, щоб перекласти файл нам треба вказати шлях до нього.

Ось скрін з першочеговим вмістом файлу:

Приклад коду, для перекладу файлів:

file_path = "test.txt"
translate_file = deep_translator.GoogleTranslator(source="en", target="de")
print(translate_file.translate_file(file_path))

Запускаємо код, отримали перекладений на німецьку мову вміст:

Dies ist eine Datei, die beim Testzweck erstellt wurde. Der Text in dieser Datei w

Висновок

У даному матеріали ми опанували функціонал для перекладу тексту на різні мови за допомогою Google Перекладача. Також ми ознайомилися не тільки з тим, як перекладати просто текст, а ще й навчилися перекладати вміст файлів. Дякую за увагу і до зустрічі у новій статті!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Mystique Lord
Mystique Lord@nocturnal_reader

Нічний читач

304Прочитань
17Автори
8Читачі
На Друкарні з 14 липня

Більше від автора

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: