Google trans не работает python

Перевод текста с помощью Google Translate API в Python

Если вы не прятались под скалой, вы, вероятно, много раз использовали Google Translate. Всякий раз, когда вы пытаетесь перевести слово или предложение с определенного языка на другой, именно API Google Translate предоставляет вам желаемые результаты в фоновом режиме. Хотя вы можете переводить что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API в свои веб-приложения или программы для ПК. Самое лучшее в API — это то, что он чрезвычайно прост в настройке и использовании.

На самом деле вы можете многое сделать с помощью Google Translate API, начиная от определения языков и заканчивая простым переводом текста, настройкой исходного и целевого языков и переводом целых списков текстовых фраз. В этой статье вы узнаете, как работать с Google Translate API на языке программирования Python.

Установка Google Translate API

Прежде чем вы сможете работать с Google Translate API в Python, вам нужно будет установить его. Существует два разных способа установки API. Первый способ прост. Просто зайдите в терминал и используйте pip для установки API, как и для любой другой библиотеки Python. Для этого введите в своем терминале следующую команду:

Нажмите Enter и модуль Python для Google Translate API будет установлен в вашей системе.

Если вы установили дистрибутив Python для Anaconda, вы можете установить API с помощью Anaconda Prompt. В этом конкретном методе вы замените в приведенной выше команде pip на conda , как показано в следующем фрагменте кода:

Теперь, когда вы установили API, мы увидим его в действии с помощью нескольких примеров.

Список поддерживаемых языков

Google Translate API поддерживает множество языков. Чтобы вывести список всех поддерживаемых языков, запустите следующий скрипт:

В приведенном выше примере вы используете ключевое слово import для импорта модуля googletrans . Впоследствии вы можете перечислить все названия языков, напечатав атрибут LANGUAGES модуля googletrans .

При выполнении вышеприведенный фрагмент кода перечислит имена всех поддерживаемых языков вместе с их сокращенной записью. Вот как будет выглядеть вывод:

Основное использование

Основное использование Google Translate API — это, конечно, перевод слов или предложений с одного языка на другой. Для этого мы должны импортировать класс Translator из модуля googletrans .

Далее вы должны создать объект класса Translator .

Как только объект класса Translator создан, вы передадите текст на исходном языке в качестве параметра методу translate() объекта класса Translator() , как показано ниже:

В приведенном выше сценарии мы передаем финский текст методу translate() .

Метод translate() возвращает объект, содержащий информацию о переводе текста, источника и назначения языков и произношения текста. По умолчанию метод translate() возвращает английский перевод текста, переданного ему. В нашем случае объект, возвращаемый методом translate() , сохраняется в переменной result .

Читайте также:  Не могу настроить щиток приборов

Объект, возвращаемый методом translate() , имеет следующие атрибуты:

  1. src : Исходный язык
  2. dest : Язык назначения, установленный на английский (en)
  3. origin : Оригинальный текст, в нашем примере это Mitä sinä teet
  4. text : Переведенный текст, в нашем случае это будет «what are you doing?»
  5. pronunciation : Произношение переведенного текста

Давайте напечатаем все вышеперечисленные атрибуты и посмотрим, что мы получим

Выходные данные показывают, что исходный язык — финский (fi), а язык назначения — английский (en). Переведенное предложение можно распечатать через атрибут text .

В приведенном выше примере мы не указали исходный язык. Поэтому Google Translate API пытается определить исходный язык. Аналогично, мы также не указали ни одного языка назначения, и поэтому API перевел исходный язык на язык по умолчанию, английский. Но что, если вы хотите указать исходный и целевой языки?

Указание исходного и целевого языков

На самом деле, очень легко указать язык назначения и исходный язык в Google Translate API. Вот код, который вы будете использовать для передачи только исходного языка:

Чтобы добавить только целевой язык, вы должны добавить атрибут dest , за которым следует код языка:

Вы также можете передать исходный и целевой языки одновременно:

Давайте теперь переведем финское предложение на французский, а затем напечатаем исходный и целевой языки, а также переведенный текст. На этот раз мы укажем исходный и целевой языки.

Приведенный выше фрагмент кода даст следующий результат.

Перевод списка фраз

Также можно перевести список текстовых фраз с помощью Google Translate API. Основной процесс такой же, как описано выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра метода translate() . Это полезно для того, чтобы пакет фраз переводился отдельно, но все в одном вызове API.

Давайте создадим список строк, содержащих некоторые фразы из французского языка.

Теперь пришло время вызвать метод translate() и передать в качестве параметров список, исходный язык и язык назначения.

В приведенном выше сценарии исходный язык — французский, а язык назначения — суахили.

Метод translate() возвращает список объектов, если вы передаете список фраз к нему. Каждый объект в списке, возвращаемый методом translate() , соответствует каждой фразе в списке ввода, который должен быть переведен. Лучший способ найти перевод каждой входной фразы в списке — это перебрать список выходных объектов. Затем вы можете использовать text , origin , src и другие атрибуты отдельных объектов, чтобы увидеть перевод отдельных фраз в списке ввода.

В приведенном ниже сценарии мы перебираем список объектов, возвращаемых методом translate() , а затем печатаем источник и переведенный текст:

Следующий результат будет отображаться на экране.

Перевод текстовых документов

Вы также можете переводить текстовые документы через Google Translate API. Все, что вам нужно сделать, это прочитать текстовый файл в Python, используя метод open , прочитать текст и передать его в метод translate() .

Первый шаг — открыть файл в режиме «чтения»:

Вы также можете проверить, находится ли файл в режиме «чтения», используя свойство mode :

Далее вы можете использовать метод f.read() для чтения содержимого файла. Содержимое файла может быть сохранено в любой переменной. В нашем случае имя переменной будет contents .

Мы также напечатаем переменную contents , чтобы проверить, правильно ли Python читает текстовый файл:

Вот вывод содержимого файла:

Убедитесь, что у вас есть вышеуказанный контент в вашем текстовом файле, если вы хотите следовать нашему примеру.

Мы убедились, что Python обращается к текстовому файлу и читает его. Теперь мы переведем результат, импортировав тот же старый класс Translate , что и раньше.

Читайте также:  Посудомойка индезит моргают два индикатора одновременно как починить

Следующим шагом является передача переменной contents , содержащей входной текст, в функцию translate() . Наконец, напечатайте атрибут text объекта, возвращенного методом translate() , и вы получите переведенную строку.

Вывод должен выглядеть следующим образом:

Чтобы записать переведенный текст в тот же файл или другой текстовый файл, вы просто откроете файл в режиме записи («w»). Затем вам нужно вызвать метод write() и передать ему переведенный текст, как показано ниже:

В приведенном выше примере мы использовали менеджер контекста with для автоматического открытия и закрытия потока записи. Во-вторых, мы открыли файл в режиме записи. Наконец, мы использовали метод write() для записи переведенной строки в новый файл.

Вывод

Google Translate — это инструмент с API, который помогает вам выполнять множество различных функций, связанных с переводом. Мы только поцарапали поверхность с приведенными выше примерами. Вам предлагается практиковать API, а также изучать и понимать, как использовать его в реальных приложениях.

Источник

googletrans stopped working with error ‘NoneType’ object has no attribute ‘group’

I was trying googletrans and it was working quite well. Since this morning I started getting below error. I went through multiple posts from stackoverflow and other sites and found probably my ip is banned to use the service for sometime. I tried using multiple service provider internet that has different ip and stil facing the same issue ? I also tried to use googletrans on different laptops , still same issue ..Is googletrans package broken or something google did at their end ?

14 Answers 14

Update 06.12.20: A new ‘official’ alpha version of googletrans with a fix was released

Install the alpha version like this:

In case it does not work, try to specify the service url like this:

Update 10.12.20: Another fix was released

As pointed out by @DesiKeki and @Ahmed Breem, there is another fix which seems to work for several people:

In case the fixes above don’t work for you

If the above doesn’t work for you, google_trans_new seems to be a good alternative that works for some people. It’s unclear why the fix above works for some and doesn’t for others. See details on installation and usage here: https://github.com/lushan88a/google_trans_new

Update 01/12/2020: This issue re-emerged lately, (apparently) caused once again by some changes on the Google translation API.

A solution is being discussed (again) in this Github issue. Although there is not a definitive solution yet a Pull Request seem to be solving the problem: https://github.com/ssut/py-googletrans/pull/237.

While we wait for it to be approved it can be installed like this:

Original Answer:

Apparently it’s a recent and widespread problem on Google’s side. Quoting various Github discussions, it happens when Google sends you directly the raw token.

It’s being discussed right now and there is already a pull request to fix it, so it should be resolved in the next few days.

Источник

googletrans 3.0.0

pip install googletrans Copy PIP instructions

Released: Jun 14, 2020

Free Google Translate API for Python. Translates totally free of charge.

Statistics

View statistics for this project via Libraries.io, or by using our public dataset on Google BigQuery

License: Freeware (MIT)

Author: SuHun Han

Tags google, translate, translator

Читайте также:  Индезит не работает разморозка проблема будет оперативно решена силами опытных инженеров

Maintainers

Classifiers

  • Development Status
    • 5 — Production/Stable
  • Intended Audience
    • Education
    • End Users/Desktop
  • License
    • Freeware
  • Operating System
    • MacOS :: MacOS X
    • Microsoft :: Windows
    • POSIX
  • Programming Language
    • Python
    • Python :: 3.6
    • Python :: 3.7
    • Python :: 3.8
  • Topic
    • Education

Project description

Googletrans is a free and unlimited python library that implemented Google Translate API. This uses the Google Translate Ajax API to make calls to such methods as detect and translate.

Compatible with Python 3.6+.

For details refer to the API Documentation.

Features

  • Fast and reliable — it uses the same servers that translate.google.com uses
  • Auto language detection
  • Bulk translations
  • Customizable service URL
  • HTTP/2 support

more features are coming soon.

  • Proxy support
  • Internal session management (for better bulk translations)

HTTP/2 support

This library uses httpx for HTTP requests so HTTP/2 is supported by default.

How does this library work

You may wonder why this library works properly, whereas other approaches such like goslate won’t work since Google has updated its translation service recently with a ticket mechanism to prevent a lot of crawler programs.

I eventually figure out a way to generate a ticket by reverse engineering on the obfuscated and minified code used by Google to generate such token, and implemented on the top of Python. However, this could be blocked at any time.

Installation

To install, either use things like pip with the package “googletrans” or download the package and put the “googletrans” directory into your python path.

Basic Usage

If source language is not given, google translate attempts to detect the source language.

Customize service URL

You can use another google translate domain for translation. If multiple URLs are provided it then randomly chooses a domain.

Advanced Usage (Bulk)

Array can be used to translate a batch of strings in a single method call and a single HTTP session. The exact same method shown above work for arrays as well.

Language detection

The detect method, as its name implies, identifies the language used in a given sentence.

GoogleTrans as a command line application

Note on library usage

DISCLAIMER: this is an unofficial library using the web API of translate.google.com and also is not associated with Google.

  • The maximum character limit on a single text is 15k.
  • Due to limitations of the web version of google translate, this API does not guarantee that the library would work properly at all times (so please use this library if you don’t care about stability).
  • Important: If you want to use a stable API, I highly recommend you to use Google’s official translate API.
  • If you get HTTP 5xx error or errors like #6, it’s probably because Google has banned your client IP address.

Versioning

This library follows Semantic Versioning from v2.0.0. Any release versioned 0.x.y is subject to backwards incompatible changes at any time.

Submitting a Pull Request

Contributions to this library are always welcome and highly encouraged 🙂

  1. Fork this project.
  2. Create a topic branch.
  3. Implement your feature or bug fix.
  4. Run pytest.
  5. Add a test for yout feature or bug fix.
  6. Run step 4 again. If your changes are not 100% covered, go back to step 5.
  7. Commit and push your changes.
  8. Submit a pull request.

License

Googletrans is licensed under the MIT License. The terms are as follows:

Источник

Оцените статью