파파고 API 를 사용하여 손쉽게 번역을 할 수 있는 프로그램
( 사용 전 개발자 센터를 통해 사용자 등록 및 KEY 발급이 필요 / 무료 / 일 10,000 단어 )
import 'dotenv/config';
import axios from 'axios';
const PAPAGO_URL_N2MT = 'https://openapi.naver.com/v1/papago/n2mt';
const PAPAGO_CLIENT_ID = process.env.PAPAGO_CLIENT_ID || '';
const PAPAGO_CLIENT_SECRET = process.env.PAPAGO_CLIENT_SECRET || '';
const NOT_FOUND = 'not found';
/**
* 파파고 API를 이용하여 번역을 수행합니다.
* 기본 - 입력 : 한글, 출력 : 영어
* @param text 입력 텍스트
* @param source 입력 언어, 기본값 'ko'
* @param target 출력 언어, 기본값 'en'
* @returns 번역 텍스트
*/
export async function translate(text: string, source = 'ko', target = 'en') {
const postUrl = `${PAPAGO_URL_N2MT}?source=${source}&target=${target}&text=${text}`;
return axios
.post(
postUrl,
{},
{
headers: {
Accept: '*/*',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': PAPAGO_CLIENT_ID,
'X-Naver-Client-Secret': PAPAGO_CLIENT_SECRET,
},
},
)
.then((res) => {
let translatedText =
res?.data?.message?.result?.translatedText || NOT_FOUND;
// 마침표, 컴마 등 특수문자 제거
translatedText = translatedText.replace(
/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,
'',
);
// 소문자화
translatedText = translatedText.toLowerCase();
// a, an, the, of, in 제거
translatedText = translatedText.replace(/\b(a|an|the|of|in|for)\b/g, '');
// 연속 공백을 하나로 변경
translatedText = translatedText.replace(/\s+/g, ' ');
// 앞 뒤 공백 제거 후 반환
return translatedText.trim();
})
.catch((err) => {
console.log('err', err);
throw new Error(err.toString());
});
}
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Upvoted! Thank you for supporting witness @jswit.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit