Как создать надстройку DeepL API для Microsoft Office (всего за один день)

В этой статье
- Перед началом работы: ознакомьтесь с теорией (опционально)
- Совет 1: Создание прототипа с помощью Script Lab (или просто используйте наш прототип)
- Шаг 2: Создание проекта надстройки для Office с помощью генератора Yeoman
- Шаг 3: Реализация API от DeepL
- Шаг 4: Отладка для пользователей Mac
- Шаг 5: Публикация надстройки
- Бонус: Использование надстройки в других приложениях Microsoft
- Подводим итоги
Каждый месяц в нашей компании проходит мероприятие под названием Hack Friday: в этот день сотрудники DeepL могут посвятить время работе над проектами, выходящими за рамки их повседневных задач. Пятницы хакеров предоставляют отличную возможность поработать с нашим API, и иногда результаты этой работы становятся доступны пользователям. Наш недавно выпущенный скрипт Google Sheets-DeepL был разработан в рамках проекта Hack Friday. В рамках Hack Friday в сентябре 2022 года разработчик программного обеспечения DeepL Марвин Беккер и разработчик-евангелист Тим Каденбах создали прототип надстройки DeepL API для Microsoft Word, что позволило пользователям переводить с помощью DeepL непосредственно в документе Word.
Вот как это работает:

Почему мы заинтересовались этой интеграцией?
Деловая коммуникация является популярным случаем использования DeepL — переводы DeepL позволяют глобальному многоязычному персоналу эффективно сотрудничать, обеспечивая при этом безопасность конфиденциальных данных компании. , обеспечивая при этом безопасность конфиденциальных данных компании. Мы часто получаем запросы от клиентов, которые желают создать собственную надстройку для Of‡fice с помощью API от DeepL и ищут ресурсы для начала работы. Мы захотели на собственном опыте узнать, что именно требуется для создания интеграции, чтобы понять, как мы можем оптимальным образом помочь клиентам, работающим над собственными надстройками.
В этом посте мы расскажем о том, что нам удалось узнать. Мы также предоставим открытый исходный код, который поможет вам быстрее запустить свой проект. Готовы к работе с ? Приступим!
Перед началом работы: ознакомьтесь с теорией (опционально)
Если вы только начинаете знакомиться с API Office, рекомендуем ознакомиться со статьей Разбираемся в Office JavaScript API в документации Microsoft. Вкратце, все продукты Office предоставляют общий API с специфичными для продукта API . Также может быть полезно ознакомиться с этот учебник , прежде чем переходить к совету 1.
Совет 1: Создание прототипа с помощью Script Lab (или просто используйте наш прототип)
Script Lab — это проект с открытым исходным кодом, поддерживаемый компанией Microsoft. С помощью Script Lab с API JavaScript для Office можно экспериментировать непосредственно в Excel, Outlook, Word и PowerPoint. Лаборатория сценариев Репозиторий GitHub содержит учебник, который поможет вам начать работу.
Мы создали прототип нашей надстройки именно в Script Lab, поскольку это очень удобный способ быстро написать код и сразу же увидеть его в действии. Код при этом состоит из одного файла JavaScript, HTML и CSS.
Таким прототипом надстройки рано делиться с командой, но он позволит вам получить общее представление о возможностях DeepL API и о том, насколько удобной ваша надстройка будет для конечных пользователей.
Как мы и обещали выше, теперь мы приведем пример открытого исходного кода. В Script Lab можно импортировать готовые фрагменты кода, и мы открыли доступ к коду DeepL-Word, чтобы все желающие могли попробовать с ним поработать. Он доступен на GitHub по этой ссылке.
На этом этапе вам также понадобится ключ авторизации DeepL API. Вы можете зарегистрироваться здесь.
Просто копировать и вставлять Gist YAML, как указано в инструкциях, вставлять свой ключ API от DeepL в местозаполнитель в строке 32, и вы сможете запустить наш фрагмент кода всего за несколько нажатий.
Самое интересное? Фрагмент кода Script Lab можно повторно использовать при настройке шаблона надстройки, поэтому вся работа, проделанная в Script Lab, пригодится позже.
Шаг 2: Создание проекта надстройки для Office с помощью генератора Yeoman
Мы создали несколько прототипов в Script Lab и ознакомились с основами создания сценариев Office, и теперь мы можем приступить к созданию собственной надстройки с помощью Yeoman. Yeoman – это инструмент для скаффолдинга с открытым исходным кодом, который позволяет относительно легко создавать новые проекты. Для надстроек Office существует готовый шаблон от Microsoft («Yo Office»).
Процесс создания надстроек подробно описан здесь: Надстройка для Office Yeoman Generator.
Следуя инструкциям по настройке, скопируйте код из Script Lab в свой новый репозиторий. Вы также можете задать некоторые дополнительные настройки, но работу можно начать и сразу же, выполнив команду 'npm run start'. Это запустит Word и автоматически загрузит ваше дополнение. Для разработки можно использовать любую IDE, однако сгенерированный шаблон лучше всего работает с собственными редакторами кода Microsoft VS Code или Visual Studio. Для большего удобства при написании кода и отладке мы рекомендуем вам использовать Visual Studio.
Шаг 3: Реализация API от DeepL
Наша реализация DeepL проста – fetch-запрос JavaScript обращается к конечной точке для перевода текста. Для нашего простого прототипа этого было достаточно. Если вы хотите включить Глоссарии в вашій надстройці, вам потребується приложити додаткові зусилля.
Мы не использовали официальную библиотеку DeepL для Node.js. Node.js клиентская библиотека для проекта, поскольку она не предназначена для клиентского кода JavaScript. Причина заключается в безопасности — при вызове кода на стороне клиента вы раскрываете свой ключ API. Вы можете ознакомиться с файлом GIST, который мы предоставили выше, чтобы более подробно изучить наш подход (начиная со строки 102).
Шаг 4: Отладка для пользователей Mac
За последние годы Microsoft сделала многие из своих приложений доступными и для пользователей Mac. Хотя система Mac вполне подходит для .NET-разработки, ее довольно сложно использовать для разработки под Windows – это относится и к приложениям Office. К сожалению, версии приложений Microsoft для Mac не настроены для легкой отладки. Тим – приверженец Microsoft (и MVP!), поэтому у него не возникло никаких проблем, но Марвину, пользователю Mac, пришлось использовать для отладки Parallels. Запуск Microsoft Office и Visual Studio Code в Parallels позволяет отлаживать приложения и работать над надстройкой надлежащим образом. Это не самый очевидный вариант, но он работает!
Шаг 5: Публикация надстройки
Надстройки Office загружаются в веб-представление, которое работает в приложениях Office, и отображаются с помощью iFrames, поэтому вам потребуется разместить надстройку на веб-сервере, к которому у вас есть доступ. Вы можете узнать больше о том, Установка и публикация надстроек Office в документации Microsoft.
После того как надстройка будет установлена и запущена, любой администратор Office сможет устанавливать ее для пользователей и групп в своей организации через центр администрирования Microsoft 365. Дополнения, развернутые через Центр администрирования, можно использовать сразу же.
Бонус: Использование надстройки в других приложениях Microsoft
Вы можете легко использовать новую надстройку и в других приложениях. Надстройки для Office имеют много общих компонентов, и надстройка для одного приложения должна работать во всех поддерживаемых приложениях (Outlook, Word, Excel, PowerPoint, Visio и OneNote).
Однако в разных приложениях используются разные события. В нашем примере с Word мы использовали OnTextSelected, тогда как в Excel вы, вероятно, использовали бы что-то вроде OnColumnSelected или Row. Чтобы ваше дополнение работало в других приложениях, добавляйте соответствующие события или действия, на которые вы хотите, чтобы ваше дополнение реагировало — все очень просто. Большая часть вашего кода может быть использована и в других приложениях.
Обычно рекомендуется превращать код в функцию, которую вы сможете использовать повторно и вызывать снова с учетом особенностей используемого приложения. Мы рекомендуем ознакомиться со статьями, доступными по ссылке. доступные здесь статьи.
Кроме того, имеется полезный модуль MS Learn , который может оказаться полезным.
Подводим итоги
Надеемся, что этот обзор оказался для вас полезным! Если у вас возникнут вопросы, пожалуйста, создайте заявку в репозитории GitHub со скриптом Script Lab и сообщите нам.
Желаем вам плодотворной работы!