У цьому матеріалі ми будемо говорити про бібліотеку deep-translator, яка дозволяє перекладати текст на різні мови завдяки різним сервісам перекладу, наприклад, Google перекладач.
Встановлення
Windows:
pip install deep-translatorMacOS:
pip3 install deep-translatorLinux:
pip install deep-translatorПереклад текстів з Google Translator
Отже, предметом нашого вивчення буде саме клас GoogleTranslator. Сам по собі GoogleTranslator() — це клас, який має різні методи, що ми теж розгянемо у цій статті. Тож, почнемо вже огляд на прикладах.
Ось перший приклад:
import deep_translatororiginal_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 magnifiqueUpdated 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 Перекладача. Також ми ознайомилися не тільки з тим, як перекладати просто текст, а ще й навчилися перекладати вміст файлів. Дякую за увагу і до зустрічі у новій статті!