0.0.0 • Published 4 years ago
kor-translate-api v0.0.0
Kakao, Naver 번역기
간단하게 사용하기 위해 개발하였습니다.
이 모듈에서는 카카오와 네이버 API를 이용하여 문자를 번역합니다.
추가로 구현하고자 한다면 Metadata 참고하세요.
네이버는 리턴 URL을 제공해야 되기 때문에 로컬에서 이용하고자 하시는 분들에게는 사용이 권장되지 않습니다.
설치
npm install kor-translate-api
사용방법
지원되는 언어와 코드는 각 서비스의 사이트를 참고하시기 바랍니다.
모듈 가져오기
import translator from 'free-translate-api';
인스턴스 생성
첫번째 매개변수에는 사용하고자 하는 번역 서비스명(kakao
또는 naver
)을 입력하고,
두 번째 매개변수에는 API 사용하기위해 발급받은 인증키를 입력합니다.
translator('kakao','app_key')
네이버와 같이 Client ID
와 Secret
키를 요구하면 두번째 매개변수에는 ID를 입력하고,
셋번째 매개변수에 Secret
키를 입력합니다.
translator('naver','client_id', 'client_secret')
메타 데이터로 초기화를 진행하면 인증키를 입력하지 않아도 됩니다.
번역하기
get()
함수를 이용하여 원하는 문자의 번역 데이터를 전달 받을 수 있습니다.
첫번째 매개변수에는 현재 문자의 언어 코드를 입력하고 두번째 매개변수에는 변경 될 언어 코드를 입력합니다.
세번째에는 번역할 문자를 입력하고, 결과를 전달받아 확인합니다.
translator('kakao','app_key')
.get('kr', 'en', '카카오 테스트')
.then(text=>{
console.log(text);
});
translator('naver','client_id', 'client_secret')
.get('ko', 'en', '네이버 테스트')
.then(text=>{
console.log(text);
});
async & await
import translator from './kor-translate-api';
(async function(){
const text = await translator('kakao','app_key').get('kr', 'en', '번역기 테스트');
console.log(text);
})();
Metadata
JSON 타입으로 된 메타데이터를 제공하여 각 번역기의 API와 통신 합니다.
다음은 속성에 대한 설명입니다.
url
: 해당 서비스의 api 주소를 입력합니다.key
: 요청 헤더에 입력되는 속성입니다.Authorization
헤더에 입력하려면{ type: 'xxx', credentials: 'xxx' }
로 작성하고,
임의의 헤더(aaa와 bbb)를 등록하려면 {aaa: 'xxx', bbb: 'xxx} 형식으로 작성합니다.
예를 들어 네이버같은 경우{ 'X-Naver-Client-Id': 'xxx', 'X-Naver-Client-Secret': 'xxx' }
처럼 작성하면
요청 헤더에X-Naver-Client-Id
와X-Naver-Client-Secret
가 등록 됩니다.method
: 기본값은POST
입니다.params
: 요청body
의parameter
를 매칭합니다.text
: 번역할 문장의 파라미터를 입력합니다.from
: 번역 대상 언어의 파라미터를 입력합니다.to
: 번역 결과 언어의 파라미터를 입력합니다.
result
: 결과값을 처리하기 위한 콜백 함수를 정의합니다. 각 번역 서비스에 따라 결과가 천차만별이기 때문에 직접 구현해야 됩니다.
만약 임의의 번역 서비스를 추가로 구현하고자 한다면 아래 kakao
예제를 참고하세요.
const meta = {
url: 'https://kapi.kakao.com/v1/translation/translate',
key: { type: 'KakaoAK', credentials: 'app_key' },
method: 'POST',
params: {
text: 'query',
from: 'src_lang',
to: 'target_lang',
},
result: (data: { translated_text: string[] }) => {
return data.translated_text.join();
}
}
translator(meta)
.get('kr', 'en', '번역기 테스트')
.then(text => {
console.log(text);
});