Я уже писал статью, о том, как переводить тексты на различные языки с помощью Google Cloud, но в тот раз речь шла о модуле на питоне. Однако однажды у меня возникла необходимость снова написать аналогичный модуль, но уже на JS.
Я решил максимально подробно описать все шаги, связанные с Google Cloud, потому что это — самая сложная часть работы, как ни странно.
Содержание
Подготовка аккаунта в Google Cloud и активация всех нужных API
Этот этап одинаково актуален как для перевода текстов посредством Python, так и для перевода текстов посредством JS.
Создание нового проекта
Заходим в Google Cloud Console. Создаем новый проект (если его нет):

Включение API
Когда проект будет готов (занимает примерно 20-30 секунд), нужно включить соответствующее API в Google Cloud Service. Для этого в меню выбираем API & Services > Library:



После этого вас попросят привязать платежный аккаунт, который создается при регистрации (когда вы привязываете свою карту).
Создание сервисного аккаунта и получение ключа
Затем вам необходимо создать Service Account — как бы подучетку, под которой ваше приложение будет юзать какие-то куски вашего Google Cloud Service от имени вашего проекта. Для этого заходим сюда:

И создаем новый аккаунт:




Переходим в раздел «Keys» (ключи):



Скачиваем и сохраняем вам JSON, он пригодится для авторизации приложения JS.
JS
Для работы есть высокоуровневая библиотека @google-cloud/translate, установим ее:
npm install @google-cloud/translate
После этого создаем инстанс «переводчика»:
import { v2 } from "@google-cloud/translate";
const { Translate } = v2;
const translator = new Translate({ keyFilename: "../googleCredentials.json" });
Попытка перевода какого то текста (первый аргумент) на английский (второй аргумент):
const res = await translator.translate(sourceText, "en");
В ответ придет огромный объект, в котором есть исчерпывающая информация, вплоть до обнаруженного языка исходного текста. В моем случае, когда язык определяется однозначно, и нужен только один целевой язык перевода, готовый переведенный текст был здесь:
const transResult = res[1].data.translations[0].translatedText;
Замечания
- Обязательно считайте количество отправленных знаков на перевод: ставка 20$ за миллион символов только кажется небольшой, а миллион символов только сначала кажутся огромным количеством.
- Первые полмиллиона символов в месяц бесплатны.
- А потом платны + 20% НДС.
- Лично мне ошибка стоила 300 долларов за 4 минуты работы с API.
- При создании нового аккаунта Google Cloud дается около 300 долларов на все сервисы на 90 дней. Этого должно хватить на 15,5 млн символов.
- Ежемесячно дают скидку на 10 долларов. С учетом НДС это позволяет бесплатно переводить около 416 000 символов.
- Google Cloud наказывает за мультиакк. Отличаем аккаунты посредством привязанных банковских карт.
- Не теряйте драгоценные переводы, даже во время отладки — сразу сохраняйте в файл/базу.