質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

420閲覧

Reactのプロジェクトをdeepl-nodeを使って英文を翻訳をしたいがエラーが出る

echizeyayota

総合スコア106

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

1グッド

0クリップ

投稿2023/10/12 08:12

下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。

【質問の主旨】

Reactのプロジェクト内にとDeepL APIを呼び出すdeepl-nodeのライブラリを使用して英文を和文に翻訳したいと考えています。

ところがReactのApp.jsで、deepl-nodeのUsageに従って下記のような記述をするとエラーが表示されます。

import * as deepl from 'deepl-node'; const App = () => { const authKey = ""; // Replace with your key const translator = new deepl.Translator(authKey); (async () => { const result = await translator.translateText('Hello', null, 'ja'); console.log(result.text); // こんにちは })(); return ( <div className="app"> </div> ); } export default App;

イメージ説明

エラーを消してDeepLによって翻訳された文章をコンソールで表示するためには、コードをどのように修正すれば良いでしょうか?

【質問の主旨】

1. 全体のコードと手順について

App.jsを含む全体のコード手順についてはGitHubで公開しています。

2. API Keyについて

公開しているコードと上記のApp.jsではAPI Keyを代入すべき変数authKeyは空にしています。ですが DeepL APIの認証キーはすでに取得済みで、ローカル開発環境の中では取得済みのキーの値を代入していて、それでもなおエラーが表示されます。

イメージ説明

以上、ご確認よろしくお願い申し上げます。

honey32👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2023/10/12 08:43

Official Node.js Client Library for the DeepL API ってことなので、node.js (サーバー) 用なのでは。 React (というか、ブラウザ) で動かすと api key を秘密にできませんし…。
echizeyayota

2023/10/13 10:53

hoshi-takanori さん。 > Official Node.js Client Library for the DeepL API ってことなので、node.js (サーバー) 用なのでは。 コメントありがとうございます。Node.jsで動くようにコードを作成しました。 今後ともどうぞよろしくお願いします。
guest

回答1

0

自己解決

いただいたアドバイスに基づいてサーバー(node.js)上で記述すると翻訳ができるようになりました。自分で作成したserver.jsの内容は以下の通りです。

import { createRequire } from 'module'; const require = createRequire(import.meta.url); import * as deepl from 'deepl-node'; const PORT = 8000; const axios = require("axios").default; const express = require("express"); const cors = require("cors"); require("dotenv").config(); const app = express(); app.use(cors()); app.listen(PORT, () => console.log("Server running on PORT" + PORT)); const authKey = process.env.deepl_api_key; // Replace with your key const translator = new deepl.Translator(authKey); (async () => { const result = await translator.translateText('good evening', null, 'ja'); console.log(result.text); // こんばんは })();

なおserver.js 以外のファイル構成についてはGitHubで公開しています。

投稿2023/10/13 10:51

echizeyayota

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問