[개발] 파파고 번역 유틸

in kr •  last year 

파파고 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());
    });
}
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

image.png