Commit Graph

440 Commits

Author SHA1 Message Date
ee495dae3a translated라는 이름이 중복 사용되어 생기던 name shadow 문제 해결 2025-12-19 12:27:32 +09:00
6cc15a8748 오디오 콘텐츠 테마 번역을 적용한다
오디오 콘텐츠 목록 응답에서 테마 문자열에 번역을 적용한다.

번역 데이터가 없을 때는 기존 원문을 유지한다.
2025-12-19 03:23:56 +09:00
31242a1f76 카테고리 목록 조회에 언어별 번역 적용
LangContext에 따라 카테고리명을 번역해 반환한다. 번역본이 없으면

Papago API로 번역 후 CategoryTranslation에 저장하고 즉시 결과를

반환한다. 공개 API의 getCategoryList 응답이 요청 로케일을 반영한다.
2025-12-19 02:32:20 +09:00
68cfa201eb 크리에이터 콘텐츠 카테고리 언어 감지 및 번역 기능 추가 2025-12-19 01:56:27 +09:00
7955be45da 원작 등록/수정시 번역 API 호출 2025-12-16 06:10:18 +09:00
82f53ed8ab 콘텐츠 제목, 시리즈 장르 번역 반환 구현 2025-12-16 04:09:25 +09:00
30a104981c 시리즈 상세 - 번역 데이터 조회 기능 추가 2025-12-16 03:29:02 +09:00
4c0be733d0 시리즈 상세 - 번역 데이터 조회 기능 추가 2025-12-16 02:52:14 +09:00
0eed29eadc 시리즈 리스트 - 번역 데이터 조회 기능 추가 2025-12-16 01:07:20 +09:00
db18d5c8b5 홈 - 오직 보이스온에서만, 요일별 시리즈 번역 데이터 조회 기능 추가 2025-12-16 00:43:36 +09:00
f58687ef3a 크리에이터 관리자에서 시리즈 등록/수정시 번역데이터 생성 기능 추가 2025-12-16 00:25:24 +09:00
9b2b156d40 SeriesTranslationPayload 키워드 리스트 변환 및 수정
- `SeriesTranslationPayload.keywords` 타입을 `String`에서 `List<String>`으로 변경했습니다.
- `SeriesTranslationPayloadConverter`의 `convertToEntityAttribute`를 하위 호환 가능하도록 수정했습니다.
  - DB에 저장된 JSON에서 `keywords`가 과거 스키마(String)인 경우와 신규 스키마(List)를 모두 안전하게 파싱합니다.
  - 파싱 실패 또는 공백 입력 시 기본값을 사용합니다(`keywords = []`).
- `convertToDatabaseColumn`은 변경 없이 `ObjectMapper`로 직렬화하여 `keywords`가 배열로 저장됩니다.
2025-12-15 23:55:50 +09:00
e00a9ccff5 시리즈 상세, 시리즈 키워드 번역 엔티티 추가 2025-12-15 16:32:21 +09:00
45ee55028f 콘텐츠 상세 - themeStr 언어별 번역 제공 기능 수정 2025-12-15 12:25:10 +09:00
dc0df81232 번역된 테마로 콘텐츠를 조회해도 한글 테마처럼 처리하기 2025-12-15 12:15:31 +09:00
c0c61da44b 콘텐츠 테마 조회 로직 수정 2025-12-15 11:45:56 +09:00
13029ab8d2 콘텐츠 테마 번역 N+1 제거
- 온라인 경로에서 콘텐츠 테마 번역을 배치 조회/번역/저장으로 처리.
- 기존 번역은 IN 조회, 미번역만 한 번의 번역 요청 후 저장.
- 결과 순서 보전, 번역 누락/실패 시 원문으로 폴백.
- 공개 API 변경 없음.
2025-12-13 00:51:07 +09:00
6f0619e482 콘텐츠 테마 저장시 번역 API로 자동 번역 하는 기능 추가 2025-12-13 00:19:48 +09:00
920a866ae0 신규 콘텐츠 조회 API에서 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:46:29 +09:00
59949e5aee AudioContent 조회 API에서 api 마다 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:40:21 +09:00
7ab25470b6 콘텐츠 전체보기 API - languageCode에 따라 번역 데이터 조회 2025-12-12 05:57:04 +09:00
8fec60db11 AI 캐릭터, 콘텐츠 등록/수정 시 번역 데이터 생성 2025-12-12 04:52:02 +09:00
5d925e98e0 AI 캐릭터 번역 데이터, 콘텐츠 번역 데이터 엔티티에서 사용하지 않는 필드 제거 2025-12-12 03:05:50 +09:00
143ba2fbb2 HomeApi - languageCode에 따라 콘텐츠, 캐릭터의 번역 데이터를 제공하도록 수정 2025-12-11 23:58:17 +09:00
28fbdd7826 getDetail에 languageCode를 optional로 변경하여 languageCode가 없어도 정상 조회 되도록 수정 2025-12-11 22:33:26 +09:00
25169aaac3 getDetail에 @Transactional 을 추가하여 데이터 저장이 가능하도록 수정 2025-12-11 22:14:18 +09:00
608898eb0c Add translation support for audio content detail 2025-12-11 22:00:30 +09:00
899f2865b3 feat(chat-character): 캐릭터 등록시 파파고 언어 감지 API를 호출하여 languageCode를 기록하는 기능 추가 2025-11-26 11:40:58 +09:00
8ec6d50dd8 feat(content-comment): 콘텐츠 댓글 조회시 결과에 언어 코드 추가 2025-11-25 18:10:36 +09:00
c5fa260a0d feat(creator-cheers): 팬 Talk 응원글 등록 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:42:26 +09:00
8f4544ad71 refactor(lang-detect): LanguageDetectEvent ID 필드를 단일 id로 통합
- LanguageDetectEvent의 contentId/commentId를 제거하고 공통 id(Long) 필드로 단순화
- LanguageDetectListener에서 targetType에 따라 id를 AudioContent/AudioContentComment/CharacterComment 조회에 사용하도록 수정
- AudioContentService, AudioContentCommentService, AudioContentDonationService, CharacterCommentService 등 이벤트 발행부를 새 시그니처(id + targetType)로 정리
2025-11-25 16:32:29 +09:00
619ceeea24 feat(character-comment): 캐릭터 댓글 등록 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:19:08 +09:00
da9b89a6cf feat(content-comment): 콘텐츠 댓글/후원 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:03:52 +09:00
5ee5107364 feat(content-comment): 콘텐츠 댓글/후원 시 언어 코드를 입력 받을 수 있는 기능 추가 2025-11-25 15:54:01 +09:00
ae2c699748 refactor(LanguageDetectEvent): 언어 감지 요청 이벤트 클래스명 수정
- AudioContentLanguageDetectEvent -> LanguageDetectEvent
2025-11-25 15:42:32 +09:00
93ccb666c4 feat(content): 콘텐츠 업로드 후 languageCode가 null이면 naver papago 언어 감지 API 호출 기능 추가 2025-11-25 15:11:27 +09:00
edaea84a5b feat(content): 콘텐츠 업로드 request, 상세 조회 response에 languageCode 추가
- CreateAudioContentRequest, GetAudioContentDetailResponse
2025-11-24 12:31:49 +09:00
76806e2e90 feat(content-theme): 무료 콘텐츠의 테마를 조회할 때 '자기소개'가 가장 먼저 표시되도록 수정 2025-11-21 00:49:17 +09:00
39c51825da feat(content-theme): 무료 콘텐츠의 테마를 조회할 때 '자기소개'가 가장 먼저 표시되도록 수정 2025-11-21 00:37:29 +09:00
9a58b7b95f feat(latest-content-by-creator): 최신 콘텐츠 1개 조회시 오픈 되어 있는 콘텐츠만 조회하도록 수정 2025-11-20 21:19:29 +09:00
26eae4b06e feat(latest-content-by-creator): 최신 콘텐츠 1개 조회시 오픈 되어 있는 콘텐츠만 조회하도록 수정 2025-11-20 20:59:09 +09:00
60989391f6 feat(content-sort-type): 콘텐츠가 있는 active 테마 조회 API 추가 2025-11-20 00:51:09 +09:00
88d90eec2f feat(content-sort-type): getLatestContentByTheme(테마별 콘텐츠 조회)시 정렬 타입 추가 2025-11-20 00:26:24 +09:00
b6eb13df06 feat(content-sort-type): 콘텐츠 정렬 타입 인기순(POPULARITY) 추가 2025-11-20 00:05:33 +09:00
a6b815ad05 fix(series-main): 완료 시리즈 랜덤 정렬 2025-11-19 17:48:07 +09:00
d89122802a fix(series): 시리즈 리스트 랜덤 정렬로 조회할 수 있도록 기능 추가 2025-11-19 17:45:46 +09:00
690432d6ee fix(latest-content): 최신 콘텐츠 전체보기에서 유/무료 모두 조회되도록 수정 2025-11-18 19:21:15 +09:00
bc358d18de fix(latest-content): 최신 콘텐츠 전체보기에서 사용하는 theme에서 제외하는 theme 없이 모두 조회하도록 수정 2025-11-18 18:56:09 +09:00
add88aca35 fix(series-list): 시리즈 리스트 조회시 정렬 수정 2025-11-17 22:24:01 +09:00
b6971f6a8d fix(series-list): creator의 시리즈를 볼 떄와 다른 페이지에서 시리즈 리스트를 볼 때 정렬 순서 분리 2025-11-17 21:13:52 +09:00