Друкарня від 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 Перекладача. Також ми ознайомилися не тільки з тим, як перекладати просто текст, а ще й навчилися перекладати вміст файлів. Дякую за увагу і до зустрічі у новій статті!

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

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader we.ua/nocturnal_reader

Нічний читач

53Довгочити
594Прочитання
17Підписники
Підтримати
На Друкарні з 14 липня

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

  • Метод split() у Python

    Всіх вітаю! Сьогодні ми розглянемо метод split() у Python та побачимо, як використовувати її на прикладах.

    Теми цього довгочиту:

    Програмування
  • Створюємо стовпчикові графіки за допомогою plotly

    Всіх вітаю! У цій статті пропоную вам зануритися у графіки та візуалізацію на Python за допомогою plotly. На цей раз ми втілимо графік прослуховувань різних реп виконавців за місяць та графік з оцінками деяких альбомів за сайтом AOTY.

    Теми цього довгочиту:

    Програмування
  • Методи lower(), upper(), islower() та isupper() у Python

    Всіх вітаю! У цій невеличкій статті ми познайомимося із одразу чотирма методами для зміни регістру рядків у Python. Конкретно сьогодні ми ознайомимося із методами lower(), upper(), islower() та isupper().

    Теми цього довгочиту:

    Програмування

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

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

Так він же не безкоштовний?

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