이유혁

multi language translation function

Showing 1 changed file with 41 additions and 9 deletions
...@@ -72,19 +72,51 @@ const option_maker = (api_connector, event) => { ...@@ -72,19 +72,51 @@ const option_maker = (api_connector, event) => {
72 console.log(response.statusCode); 72 console.log(response.statusCode);
73 if(!error && response.statusCode == 200){ 73 if(!error && response.statusCode == 200){
74 let detect_body = JSON.parse(response.body); 74 let detect_body = JSON.parse(response.body);
75 - let source = '';
76 - let target = '';
77 - if (detect_body.langCode == 'ko'||detect_body.langCode =='en'){
78 - source = detect_body.langCode =='ko'? 'ko':'en';
79 - target = detect_body.langCode =='ko'? 'en':'ko';
80 - }
81 //언어 감지가 제대로 됐는지 확인 75 //언어 감지가 제대로 됐는지 확인
82 console.log(detect_body.langCode); 76 console.log(detect_body.langCode);
83 - source = detect_body.langCode; 77 +
78 + // 3.zh-CN : 중국어 간체
79 + // 4.zh-TW : 중국어 번체
80 + // 5.es : 스페인어
81 + // 6.fr : 프랑스어
82 + // 7.vi : 베트남어
83 + // 8.th : 태국어
84 + // 9.id : 인도네시아어
85 + let target = '';
86 + if (detect_body.langCode == 'ko') {
87 + target = 'en';
88 + switch (event.message.text.slice(-3)) {
89 + case ':cn':
90 + target = 'zh-CN';
91 + break;
92 + case ':tw':
93 + target = 'zh-TW';
94 + break;
95 + case ':es':
96 + target = 'es';
97 + break;
98 + case ':fr':
99 + target = 'fr';
100 + break;
101 + case ':vi':
102 + target = 'vi';
103 + break;
104 + case ':th':
105 + target = 'th';
106 + break;
107 + case ':id':
108 + target = 'id';
109 + break;
110 + default:
111 + break;
112 + }
113 + } else {
114 + target = 'ko';
115 + }
84 116
85 var options = { 117 var options = {
86 url: translate_api_url, 118 url: translate_api_url,
87 - form: {'source':source, 'target': target, 'text':event.message.text}, 119 + form: {'source':detect_body.langCode, 'target': target, 'text':event.message.text},
88 headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} 120 headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
89 }; 121 };
90 resolve(options); 122 resolve(options);
...@@ -114,7 +146,7 @@ const receive_result = (options, event) => { ...@@ -114,7 +146,7 @@ const receive_result = (options, event) => {
114 } 146 }
115 else{ 147 else{
116 // 예외처리 148 // 예외처리
117 - result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.'; 149 + result.text = '언어를 감지할 수 없습니다.';
118 client.replyMessage(event.replyToken,result); 150 client.replyMessage(event.replyToken,result);
119 reject(new Error("language was not detected")); 151 reject(new Error("language was not detected"));
120 } 152 }
......