Add comprehensive i18n localization to transaction UI components
- Localize 23 transaction UI component files - Add 150+ translation keys to ko.json and en.json - Organized translations under transaction namespace: * transaction.bottomSheet - Bottom sheet modals * transaction.sections - Section titles * transaction.fields - Field labels (90+ keys) * transaction.cancel - Cancellation flows * transaction.handWrittenIssuance - Manual issuance forms * transaction.list - List actions Updated files: - Bottom sheets: escrow-mail-resend, cash-receipt-purpose-update - Sections: billing-info, part-cancel-info, detail-info, issue-info, escrow-info, important-info, payment-info, transaction-info, settlement-info, merchant-info, amount-info, cancel-bank-group, cancel-password-group - Lists: list-item, billing-list, cash-receipt-list - Cancel flows: all-cancel, part-cancel, prevent-bond - Issuance: hand-written-issuance-step1, hand-written-issuance-step2 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { IMAGE_ROOT } from '@/shared/constants/common';
|
||||
import { motion } from 'framer-motion';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export interface EscrowMailResendBottomSheetProps {
|
||||
setBottomSheetOn: (bottomSheetOn: boolean) => void;
|
||||
@@ -12,6 +13,7 @@ export const EscrowMailResendBottomSheet = ({
|
||||
bottomSheetOn,
|
||||
callMailResend
|
||||
}: EscrowMailResendBottomSheetProps) => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const onClickToClose = () => {
|
||||
setBottomSheetOn(false);
|
||||
@@ -30,7 +32,7 @@ export const EscrowMailResendBottomSheet = ({
|
||||
{ (bottomSheetOn) &&
|
||||
<div className="bg-dim"></div>
|
||||
}
|
||||
<motion.div
|
||||
<motion.div
|
||||
className="bottomsheet"
|
||||
initial="hidden"
|
||||
animate={ (bottomSheetOn)? 'visible': 'hidden' }
|
||||
@@ -39,14 +41,14 @@ export const EscrowMailResendBottomSheet = ({
|
||||
>
|
||||
<div className="bottomsheet-header">
|
||||
<div className="bottomsheet-title">
|
||||
<h2>이메일 주소를 선택하세요</h2>
|
||||
<h2>{ t('transaction.bottomSheet.escrowMailResend.title') }</h2>
|
||||
<button
|
||||
className="close-btn"
|
||||
type="button"
|
||||
>
|
||||
<img
|
||||
src={ IMAGE_ROOT + '/ico_close.svg' }
|
||||
alt="닫기"
|
||||
alt={ t('transaction.bottomSheet.escrowMailResend.close') }
|
||||
onClick={ () => onClickToClose() }
|
||||
/>
|
||||
</button>
|
||||
@@ -60,24 +62,24 @@ export const EscrowMailResendBottomSheet = ({
|
||||
<div className="mail-icon-bg"></div>
|
||||
<img
|
||||
src={ IMAGE_ROOT +'/ico_email.svg' }
|
||||
alt="메일"
|
||||
alt={ t('transaction.bottomSheet.escrowMailResend.mail') }
|
||||
/>
|
||||
</div>
|
||||
<span className="label-text">메일로 받기</span>
|
||||
<span className="label-text">{ t('transaction.bottomSheet.escrowMailResend.mailLabel') }</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="email-select">
|
||||
<div className="select-wrapper">
|
||||
<select>
|
||||
<option>선택</option>
|
||||
<option>선택1</option>
|
||||
<option>선택2</option>
|
||||
<option>{ t('transaction.bottomSheet.escrowMailResend.select') }</option>
|
||||
<option>{ t('transaction.bottomSheet.escrowMailResend.select') }1</option>
|
||||
<option>{ t('transaction.bottomSheet.escrowMailResend.select') }2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="error-message">
|
||||
<p>등록된 메일 정보가 없습니다.<br />이메일 인증정보를 사용자관리 메뉴에서 추가 후 신청하세요.</p>
|
||||
<p>{ t('transaction.bottomSheet.escrowMailResend.errorNoEmail') }</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -87,7 +89,7 @@ export const EscrowMailResendBottomSheet = ({
|
||||
className="btn-50 btn-blue flex-1"
|
||||
type="button"
|
||||
onClick={ () => onClickToMailResend() }
|
||||
>신청</button>
|
||||
>{ t('transaction.submit') }</button>
|
||||
</div>
|
||||
</motion.div>
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user