채팅방 서비스에 언어 컨텍스트에 따라 캐릭터명 번역을 적용하는 기능이 추가되어, 영어와 일본어 설정 시 번역된 캐릭터명이 표시되도록 수정
This commit is contained in:
@@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.can.use.CanUsage
|
|||||||
import kr.co.vividnext.sodalive.chat.character.image.CharacterImage
|
import kr.co.vividnext.sodalive.chat.character.image.CharacterImage
|
||||||
import kr.co.vividnext.sodalive.chat.character.image.CharacterImageService
|
import kr.co.vividnext.sodalive.chat.character.image.CharacterImageService
|
||||||
import kr.co.vividnext.sodalive.chat.character.service.ChatCharacterService
|
import kr.co.vividnext.sodalive.chat.character.service.ChatCharacterService
|
||||||
|
import kr.co.vividnext.sodalive.chat.character.translate.AiCharacterTranslationRepository
|
||||||
import kr.co.vividnext.sodalive.chat.quota.room.ChatRoomQuotaService
|
import kr.co.vividnext.sodalive.chat.quota.room.ChatRoomQuotaService
|
||||||
import kr.co.vividnext.sodalive.chat.room.ChatMessage
|
import kr.co.vividnext.sodalive.chat.room.ChatMessage
|
||||||
import kr.co.vividnext.sodalive.chat.room.ChatMessageType
|
import kr.co.vividnext.sodalive.chat.room.ChatMessageType
|
||||||
@@ -26,6 +27,8 @@ import kr.co.vividnext.sodalive.chat.room.repository.ChatMessageRepository
|
|||||||
import kr.co.vividnext.sodalive.chat.room.repository.ChatParticipantRepository
|
import kr.co.vividnext.sodalive.chat.room.repository.ChatParticipantRepository
|
||||||
import kr.co.vividnext.sodalive.chat.room.repository.ChatRoomRepository
|
import kr.co.vividnext.sodalive.chat.room.repository.ChatRoomRepository
|
||||||
import kr.co.vividnext.sodalive.common.SodaException
|
import kr.co.vividnext.sodalive.common.SodaException
|
||||||
|
import kr.co.vividnext.sodalive.i18n.Lang
|
||||||
|
import kr.co.vividnext.sodalive.i18n.LangContext
|
||||||
import kr.co.vividnext.sodalive.member.Member
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.beans.factory.annotation.Value
|
import org.springframework.beans.factory.annotation.Value
|
||||||
@@ -50,6 +53,8 @@ class ChatRoomService(
|
|||||||
private val messageRepository: ChatMessageRepository,
|
private val messageRepository: ChatMessageRepository,
|
||||||
private val characterService: ChatCharacterService,
|
private val characterService: ChatCharacterService,
|
||||||
private val characterImageService: CharacterImageService,
|
private val characterImageService: CharacterImageService,
|
||||||
|
private val langContext: LangContext,
|
||||||
|
private val aiCharacterTranslationRepository: AiCharacterTranslationRepository,
|
||||||
private val canPaymentService: kr.co.vividnext.sodalive.can.payment.CanPaymentService,
|
private val canPaymentService: kr.co.vividnext.sodalive.can.payment.CanPaymentService,
|
||||||
private val imageCloudFront: kr.co.vividnext.sodalive.aws.cloudfront.ImageContentCloudFront,
|
private val imageCloudFront: kr.co.vividnext.sodalive.aws.cloudfront.ImageContentCloudFront,
|
||||||
private val chatQuotaService: kr.co.vividnext.sodalive.chat.quota.ChatQuotaService,
|
private val chatQuotaService: kr.co.vividnext.sodalive.chat.quota.ChatQuotaService,
|
||||||
@@ -270,10 +275,22 @@ class ChatRoomService(
|
|||||||
val time = latest?.createdAt ?: q.lastActivityAt
|
val time = latest?.createdAt ?: q.lastActivityAt
|
||||||
val timeLabel = formatRelativeTime(time)
|
val timeLabel = formatRelativeTime(time)
|
||||||
|
|
||||||
|
// 언어 컨텍스트(en/ja)에서 번역본이 존재하면 번역된 캐릭터명을 사용
|
||||||
|
val localizedTitle = when (langContext.lang) {
|
||||||
|
Lang.EN, Lang.JA -> {
|
||||||
|
val tr = aiCharacterTranslationRepository
|
||||||
|
.findByCharacterIdAndLocale(q.characterId, langContext.lang.code)
|
||||||
|
val name = tr?.renderedPayload?.name
|
||||||
|
if (!name.isNullOrBlank()) name else q.title
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> q.title
|
||||||
|
}
|
||||||
|
|
||||||
ChatRoomListItemDto(
|
ChatRoomListItemDto(
|
||||||
chatRoomId = q.chatRoomId,
|
chatRoomId = q.chatRoomId,
|
||||||
characterId = q.characterId,
|
characterId = q.characterId,
|
||||||
title = q.title,
|
title = localizedTitle,
|
||||||
imageUrl = imageUrl,
|
imageUrl = imageUrl,
|
||||||
opponentType = opponentType,
|
opponentType = opponentType,
|
||||||
lastMessagePreview = preview,
|
lastMessagePreview = preview,
|
||||||
|
|||||||
Reference in New Issue
Block a user