Open hy2850 opened 2 years ago
파파고 API를 호출하기 위해선, 원본 언어(source language)와 목적 언어(target language)를 지정해주어야 합니다. 링크
정인님께서 만들어주신 member class에 language를 '목적 언어'로 보고 채팅 번역 기능 구현하겠습니다.
// server/src/data/member.ts
class Member {
...
constructor(member: ClassMember, language: Language = Language.KO) {...} // 바뀌는 부분: EN->KO
}
반대로, 클라이언트 LanguageContext 언어를 source lang으로, Member class 언어를 target lang으로 봐도 됩니다. 이에 대해 다른 분들의 의견을 듣고싶습니다.
음 언어 감지 api를 사용해서 source language를 판단하는게 더 적절하지 않을까요?
그리고 target language는 context에서 설정된 언어가 적절할 것 같습니다. 일반적으로 유저가 설정한 언어가 자신이 보고싶은 언어라고 보는게 맞을 것 같아요!
음 언어 감지 api를 사용해서 source language를 판단하는게 더 적절하지 않을까요?
그것도 가능합니다. 다만 아래와 같은 문제점이 있을거라고 생각합니다.
사실 두번의 api 호출이 bottleneck이 될 것 같지는 않습니다..! 걱정되시면 시간을 측정해보시는 것도 괜찮을 것 같아요!
요약 : Live chat 기능인 'OnChatTextMessage' 이벤트에 번역 기능을 합쳐보려고 했는데, 힘들 것 같습니다. 채팅 기능과 번역 기능을 분리해야 할 것 같네요
현재 Live chatting의 작동 방식은 아래와 같습니다. 한 사용자가 채팅을 치면 'OnChatTextMessage' 이벤트를 발생시켜, 서버 Socket이 같은 room에 있는 다른 사용자들에게 동일한 이벤트로 메시지를 전달합니다.
문제는, 이러면 다른 사용자들에게 가는 메시지의 번역이 힘들어집니다. (다른 사용자의 LanguageContext - target lang 정보를 모르니까)
그래서 다른 사용자가 메시지를 받으면, 'TranslateMessage' 이벤트를 통해 서버로 메시지를 보내서 번역하는 과정을 거쳐야 할 것 같습니다.
사실 Live chat 뿐만 아니라, discussion 내용의 번역을 위해서라면 Translate 기능을 따로 만드는게 바람직해보입니다.
https://developers.naver.com/docs/papago/papago-nmt-overview.md