APIを試してみたのでメモ。
import 'dotenv/config' const API_KEY = process.env.DEEPL_API_KEY; const API_DOMAIN = process.env.DEEPL_API_DOMAIN; if (API_KEY == null || API_DOMAIN == null) { throw new Error(); } const API_ENDPOINT = `https://${API_DOMAIN}/v2/translate`; type TranslationLang = 'JA' | 'EN'; async function main() { const text = '翻訳したい言葉をここに書く。'; await translate(text, 'JA', 'EN'); } type TranslationResponse = { translations: { detected_source_language: TranslationLang, text: string }[] } async function translate( text: string, sourceLang: TranslationLang, targetLang: TranslationLang ): Promise<void> { const body = new FormData(); body.append('text', text); body.append('target_lang', targetLang); body.append('source_lang', sourceLang); const res = await fetch(API_ENDPOINT, { method: 'POST', headers: { Authorization: `DeepL-Auth-Key ${API_KEY}` }, body, }); if (!res.ok) { throw new Error(); } const { translations } = await res.json() as TranslationResponse const textList = translations.map(({text}) => text); console.log(textList) }
ただ個人アカウントだと、DeepL API Proを契約すると、DeepL Proが契約できなくなるっぽくてちょっと困っている。