Автоматическое создание карточек слов для изучения иностранного языка или интеграция google translate в google sheets

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Добрый день.

Недавно сделал инструмент автоматизированного создания карточек для изучения иностранных слов - подумал что может быть кому то пригодится и как инструмент, и как техническое решение.

Немного вводной информации: один из способов запоминания иностранных слов это создание карточек. На одной стороне слово пишется на родном языке, а на обратное стороне его перевод на нужный язык (на момент создания было доступно 103 языка). Также на карточке может быть дополнительная информация, например окончание для множественного числа слова.

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

пример отличных карточек для изучения иностранных слов
пример отличных карточек для изучения иностранных слов

Готового инструмента не нашел и решил написать свой. От картинок решил отказаться, хотя можно ИИ подключить :)

Писать отдельное приложение было лень, поэтому решил задачу с помощью Google Sheets и App Script.

Вот сам инструмент для создания карточек: https://docs.google.com/spreadsheets/d/1S5-9-eJf3yKaJ58Dgm7xUXbO3ceHpHWpupslSVcuv4M/edit?usp=sharing

Для экспериментов вы можете скопировать к себе этот файл с помощью пункта меню "File-Make copy" и тогда будет возможность посмотреть код или внести изменения в Apps Script.

Как это работает. В ячейку A2 нужно вставить текст (например из PDF версии учебника или любой текст из интернета). Далее в B2 и C2 выбрать язык текста и ваш родной язык для генерации перевода. Кнопка "Create Cards" запускает выполнение скрипта - скрипт потребует разрешение на доступ к документу Google Sheets из скрипта Apps Script.

Генерация перевода происходит с помощью API Google Translator. После 10 переводов скрипт делает паузу 1 секунду, иначе API Google Translator может выдавать ошибку и прекращать выполнение скрипта. В целом ограничение на 1 аккаунт вроде до 3000 слов в день.

var rowA = 1, rowB = 1;

var spreadsheetResult = spreadsheet.getSheetByName("Cards");

spreadsheetResult.clear();

  for (let i = 0; i < uniqueResult.length; i++) {

    var translatedWord = LanguageApp.translate(uniqueResult[i], sourceLang, targetLang);

      console.log(uniqueResult[i]);
      console.log(translatedWord)

    if (i % 2 === 0) { 
      spreadsheetResult.getRange(rowA, 1).setValue(uniqueResult[i]);
      spreadsheetResult.getRange(rowA, 4).setValue(translatedWord);
      rowA++;
    }
    else { 
      spreadsheetResult.getRange(rowB, 2).setValue(uniqueResult[i]);
      spreadsheetResult.getRange(rowB, 3).setValue(translatedWord);
      rowB++;
    }
    if (rowA % 10 === 0) {
        Utilities.sleep(1000) //pause 1 sec every 10 translations
    }
  }

На строке 29 добавил артикли для нескольких языков, чтобы перевод выводился вместе с артиклем - можете добавить артикли для вашего языка.

//add article of foreign language
  const targetWords = ['a', 'the', 'an',                                                //english
                        'le', 'la', 'les', 'un', 'une', 'des',                          //french
                        'der', 'die', 'das', 'den', 'dem', 'ein', 'eine', 'ein',        //german
                        'el', 'la', 'los', 'las', 'un', 'una', 'unos', 'unas',          //spanish
                        'il', 'lo', 'la', 'i', 'gli', 'le', 'un', 'uno', 'una', 'un'];  //italian

Итоговый список карточек генерируется на листе Cards - я его печатал в PDF и отправлял всем желающим с небольшой инструкцией. «Печатайте на принтере с двух сторон листа — сначала напечатайте нечетные листы, затем переверните листы на принтере и распечатайте четные.» Результат работы скрипта на обложке этой статьи.

Собственно говоря это всё — пользуйтесь для изучения языка или для изучения Apps Script.
Всем удачи.

P.S. Если кто знает аналогичные решения, пожалуйста, напиши в комментариях.

Источник: https://habr.com/ru/articles/781820/


Интересные статьи

Интересные статьи

ОбзорApache Hive – система управления (СУБД) реляционными базами данных (РБД) с открытым исходным кодом для запросов, агрегирования и анализа параметров и режимов рабочих нагрузок с большими данн...
Как использовать для визуализации такой замечательный инструмент, как условное форматирование, если ваши данные против этого? Как добавить в отчет красивую карту, если несколько точек "портят" всю ка...
Моя игра Dragons Abound создаёт карты в векторном графическом формате SVG. Векторная графика имеет множество особенностей (например, зум без потерь), что удобно для карт. Также векторная графика ...
Бизнес-смыслы появились в Битриксе в начале 2016 года, но мало кто понимает, как их правильно использовать для удобной настройки интернет-магазинов.