@@ -6,9 +6,6 @@ import { sessionDetails } from "../data/sessionDetails";
66import { speakerAvatars } from "../data/speakerAvatars" ;
77import "./TimetableDetail.css" ;
88
9- const PLACEHOLDER_TEXT =
10- "해당 정보가 아직 준비되지 않았습니다. 확정되는 대로 업데이트됩니다." ;
11-
129function TimeRange ( { start, end } ) {
1310 if ( ! start ) return < span > TBA</ span > ;
1411 if ( ! end ) return < span > { start } </ span > ;
@@ -26,20 +23,20 @@ function pickLang(valKo, valEn, isEn) {
2623
2724function TimetableDetail ( ) {
2825 const { code } = useParams ( ) ;
29- const { i18n } = useTranslation ( ) ;
30- const isEn = i18n . language === "en" ;
26+ const { t , i18n } = useTranslation ( ) ;
27+ const isEn = i18n . language ?. startsWith ( "en" ) ;
3128 const session = findSessionByCode ( code ) ;
3229
3330 if ( ! session ) {
3431 return (
3532 < div className = "tt-detail-page" >
3633 < div className = "tt-detail-container" >
37- < h1 className = "tt-detail-title" > 세션을 찾을 수 없습니다 </ h1 >
34+ < h1 className = "tt-detail-title" > { t ( "timetableDetailNotFoundTitle" ) } </ h1 >
3835 < p className = "tt-detail-abstract" >
39- 요청하신 세션 코드 < code > { code } </ code > 에 해당하는 정보가 없습니다.
36+ { t ( "timetableDetailNotFoundDesc" , { code } ) }
4037 </ p >
4138 < Link to = "/timetable" className = "tt-detail-back" >
42- ← 타임테이블로 돌아가기
39+ ← { t ( "timetableDetailBack" ) }
4340 </ Link >
4441 </ div >
4542 </ div >
@@ -50,7 +47,7 @@ function TimetableDetail() {
5047 const title =
5148 isEn && session . titleEn != null ? session . titleEn : session . title ;
5249 const room = isEn ? session . roomEn : session . room ;
53- const speakerName = session . speaker || "TBD" ;
50+ const speakerName = isEn && session . speakerEn != null ? session . speakerEn : session . speaker || "TBD" ;
5451 const speakerInitial = speakerName . trim ( ) . slice ( 0 , 1 ) || "?" ;
5552 const avatarUrl = speakerAvatars [ code ] ;
5653
@@ -61,7 +58,7 @@ function TimetableDetail() {
6158 < div className = "tt-detail-page" >
6259 < div className = "tt-detail-container" >
6360 < Link to = "/timetable" className = "tt-detail-back" >
64- ← 타임테이블로 돌아가기
61+ ← { t ( "timetableDetailBack" ) }
6562 </ Link >
6663
6764 < header className = "tt-detail-header" >
@@ -75,28 +72,30 @@ function TimetableDetail() {
7572
7673 < section className = "tt-detail-meta" >
7774 < div className = "meta-row" >
78- < span className = "meta-label" > 시간 </ span >
75+ < span className = "meta-label" > { t ( "timetableDetailTime" ) } </ span >
7976 < span className = "meta-value" >
8077 < TimeRange start = { session . time } end = { session . endTime } />
8178 </ span >
8279 </ div >
8380 < div className = "meta-row" >
84- < span className = "meta-label" > 장소 </ span >
81+ < span className = "meta-label" > { t ( "timetableDetailLocation" ) } </ span >
8582 < span className = "meta-value" > { room } </ span >
8683 </ div >
8784 < div className = "meta-row" >
88- < span className = "meta-label" > 발표자 </ span >
85+ < span className = "meta-label" > { t ( "timetableDetailSpeaker" ) } </ span >
8986 < span className = "meta-value" > { speakerName } </ span >
9087 </ div >
9188 </ section >
9289
9390 < section className = "tt-detail-section" >
94- < h2 className = "section-heading" > 세션 소개</ h2 >
95- < div className = "description-box" > { description || PLACEHOLDER_TEXT } </ div >
91+ < h2 className = "section-heading" > { t ( "timetableDetailSessionIntro" ) } </ h2 >
92+ < div className = "description-box" >
93+ { description || t ( "timetableDetailPlaceholder" ) }
94+ </ div >
9695 </ section >
9796
9897 < section className = "tt-detail-section" >
99- < h2 className = "section-heading" > 발표자 소개 </ h2 >
98+ < h2 className = "section-heading" > { t ( "timetableDetailSpeakerIntro" ) } </ h2 >
10099 < article className = "speaker-card" >
101100 < div className = "speaker-avatar" >
102101 { avatarUrl ? (
@@ -109,7 +108,7 @@ function TimetableDetail() {
109108 </ div >
110109 < div className = "speaker-info" >
111110 < h3 className = "speaker-name" > { speakerName } </ h3 >
112- < p className = "speaker-bio" > { bio || PLACEHOLDER_TEXT } </ p >
111+ < p className = "speaker-bio" > { bio || t ( "timetableDetailPlaceholder" ) } </ p >
113112 </ div >
114113 </ article >
115114 </ section >
0 commit comments