Локализуйте свои приложения, веб-сайты, электронные письма в любом масштабе с помощью Airtable, Google Translate API и небольшого количества JavaScript.

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

Корень этой статьи и решение в ней возникли из-за моей собственной потребности перевести мое приложение MVP (разработанное для ускорения в конструкторе без кода, Bubble.io) на несколько языков, желательно бесплатно.

Я хотел перевести свое приложение на два языка. В итоге я набрал 60, так как не требовалось дополнительных усилий для дополнительных языков. Мне нужно было перевести фразы в моем приложении, но вы можете использовать приведенный ниже метод и код для перевода содержимого веб-сайта, электронных писем или абзацев документов.

В нижней части этой статьи вы можете найти сценарий, который вы можете скопировать, вставить и изменить.

Почему Airtable и Google Translate?

Давайте сначала уберем профессиональные варианты.

Люди

Вероятно, самый быстрый способ найти переводчика для любого языка - это посетить Upwork.com, где вы найдете множество кандидатов для любого языка. Вы наверняка найдете множество талантов по разным ценам. Приложив немного усилий, вы можете освоить от трех до пяти языков, но дойти до 60, безусловно, станет проблемой. Простое общение, связанное с объяснением вашей задачи большому количеству субподрядчиков, становится серьезной проблемой.

Если вы готовы платить за экономию времени, поиск бюро переводов в Google даст отличные результаты. За дополнительную плату эти агентства будут управлять переводом и предоставлять конечный продукт. Как и при выборе любого агентства, это потребует серьезного исследования, чтобы оценить их перед наймом.

Localize.js

Один из самых известных инструментов, который поможет вам управлять процессом перевода на веб-сайте и в приложениях, - Localize.js. Служба обеспечивает не только интеграцию с вашим кодом для отображения правильных фраз в нужных местах, но также помогает управлять серверной частью перевода.

У Localize есть готовый плагин в Bubble, поэтому я ожидал, что здесь будет гладкая работа без кода. Это могло бы случиться, если бы не тот факт, что плагин был недоделанным, позволяя выбрать только несколько популярных языков без тех языков, которые мне действительно нужны. Вдобавок ко всему, с самым низким тарифным планом, начинающимся с 50 долларов в месяц, Localize больше ориентирован на профессиональные проекты, а не на подробные тесты MVP.

Google Translate API и Airtable спешат на помощь

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

Почему Airtable? Частично потому, что в последнее время мне не приходится создавать проект без какого-либо участия Airtable. Однако в основном потому, что он обеспечивает:

  • управление данными для вашего содержания перевода (лучше, чем электронные таблицы)
  • возможность комментировать и отслеживать изменения
  • простой способ добавить код JavaScript с помощью скриптового приложения Airtable
  • простое в использовании подключение к API

Существующий модуль перевода Airtable

Помимо представления данных в виде электронной таблицы, Airtable также предоставляет возможность устанавливать приложения, которые предоставляют дополнительные функции, такие как изменение данных, диаграммы, диаграммы Ганта и многое другое.

Вы также можете найти там приложение Translate, выпущенное Airtable, которое основано на Google Translate API и идет в интересующем нас направлении.

Получить ключ API Google

Независимо от того, используете ли вы стандартное приложение для перевода Airtable или наш собственный код, приведенный ниже, вам потребуется собственный ключ API Google Translate. Если быть точным, мы имеем в виду Cloud Translation - Basic API.

Этот процесс довольно прост.

  1. Зарегистрируйте аккаунт в Google Cloud.
  2. Перейдите в Консоль Google Cloud Platform и создайте новый проект (или воспользуйтесь существующим).
  3. На странице биллинга добавьте способ оплаты для вашего проекта, чтобы включить биллинг.
  4. Уровень Free позволит вам бесплатно переводить до 500 000 символов в месяц. Кроме того, Translate API стоит 20 долларов за миллион переведенных символов. Вы можете прочитать подробности здесь.
  5. Перейдите на страницу Cloud Translation API, чтобы включить его и добавить в свой проект. На странице Учетные данные создайте ключ API и вставьте его в поле ввода в приложении Переводчик.

Как пользоваться приложением "Переводчик" и его недостатки

Когда код API разобран, использование приложения Airtable Translate довольно интуитивно понятно. После выбора таблицы с вашими фразами для перевода вам необходимо определить местоположение и язык как для источника, так и для места назначения.

С приложением легко работать, но он быстро становится трудоемким, если вам нужно повторить это для нескольких языков. Есть еще два существенных недостатка:

  • Приложение переводит все в столбце и переопределяет все в столбце назначения. Любые изменения, внесенные вами вручную в столбце назначения, будут потеряны. Таким образом, он также будет тратить кредиты на ранее переведенные фразы.
  • Приложения Airtable доступны только в плане Pro. Если вы используете план Free или даже Plus, эта функция недоступна. Однако все планы Airtable предлагают приложение для создания сценариев (бесплатно до марта 2021 года). Это будет инструмент, который мы будем использовать ниже.

Ваше собственное приложение для создания скриптов для перевода

Приложение Airtable Scripting (ранее называвшееся блоком сценариев) позволяет выполнять код JavaScript внутри Airtable. Встроенные зависимости обеспечивают легкий доступ к вашим базовым записям, а также предоставляют некоторые простые элементы пользовательского интерфейса, такие как поля ввода.

Основание аэростола

Структура столбцов в моей базе соответствует именам столбцов, используемым в экспортном CSV-файле перевода на язык Пузырь. Это означает, что некоторые столбцы актуальны только для приложений Bubble (например, plugin_name), но основная структура универсальна. Должен быть столбец с исходным текстом для перевода (он может быть на любом языке), названный в нашем случае text_code. Второй важный момент заключается в том, что для каждого целевого языка перевода должен быть столбец с кодом этого языка в качестве имени столбца.

В моем примере имя столбца содержит код языка, предоставленный браузером. Локаль соответствует стандарту под названием BCP 47; однако для API Google Translate вам нужно предоставить всего лишь двухбуквенный код ISO.

Не вдаваясь в подробности, идентификаторы BCP 47 начинаются с двухбуквенного кода ISO 639–1.

de-DE  <== BCP 47 language tag
de     <== ISO 639-1 code

Это означает, что вы также можете использовать коды ISO (de, es, fr и т. Д.) В качестве имен столбцов.

Код

После того, как вы установите новое приложение для создания сценариев на своей панели, удалите все образцы кода внутри и скопируйте и вставьте следующий код:

Настроить сценарий

Я использовал сценарий для перевода английского контента на другие языки, но вы можете легко изменить исходный язык на любой другой. Просто измените код языка, используемый в качестве источника.

//select source langauge using ISO 2 letter code
let source = "en";

Следующим шагом является заполнение кода API Google Translate (который вы можете получить бесплатно, следуя инструкциям в предыдущей части этой статьи).

// Translate API key
let key="YourAPIcodeHere";  // <= change your API here

Сценарий рассматривает все столбцы в таблице как целевой язык (с именем столбца в качестве целевого языка). Любые столбцы, которые следует исключить, такие как text_code (содержащие исходный текст для перевода), должны быть явно упомянуты.

// Get language list from columns
let fields = [];
for (let field of table.fields) {
    if (field.name !== "plugin_name" && field.name !== "text_name"
     && field.name !== "text_code"  ){
         fields.push(field.name);
    }
}

Я также исключил несколько технических столбцов, необходимых для пузыря, но вы также можете представить себе создание столбцов поддержки, таких как «Последнее изменение» или «Автор последнего изменения», которые также следует исключить.

Поскольку я конвертирую коды локали в коды ISO, я добавил метод split() в строке 59 для извлечения первой части строки. Если вы используете коды ISO, этот метод может оказаться ненужным.

let target = field.split("_")[0];  // changing locale ( BCP 47 ) to  ISO 639-1

or

let target = field; // if using 2 ISO codes as column name

Запускаем скрипт

После того, как код и настройки введены, вам просто нужно нажать кнопку «Выполнить» и выбрать нужную таблицу.

Блок скрипта предоставит вам некоторую текущую статистику по процессу, а также общее количество обработанных языков.

Сценарий обновит только пустые поля в каждом столбце, поэтому существующие переводы не будут изменены.

Последние мысли

Заменит ли вышеуказанная установка профессиональные переводческие решения? Нет. Будет ли это невероятно простым способом создания массовых переводов на столько языков, сколько может обработать Google? да.

Дополнительным преимуществом является также тот факт, что теперь у вас могут быть редакторы-люди, работающие над выделенными представлениями, исправляющими переводы (вы можете представить себе добавление столбца флажка для каждой языковой фразы) и получать доступ к этим данным перевода в реальном времени через Airtable API для использования в других системах.

Я, конечно, надеюсь, что эта настройка поможет вашему приложению начать работу с многоязычными функциями!

Ресурсы

  1. Airtable Translation App - исходный код приложения для перевода в этой статье
  2. Приступая к работе с пузырем - подробнее о том, почему вам стоит попробовать создавать приложения без кода
  3. Введение в приложение Airtable Scripting - почему ни один код все еще не может использовать некоторый JavaScript
  4. Все о Google Translate API - дополнительная информация, если вы хотите изучить Advanced API