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:
Jay Sheen
2025-10-30 16:14:25 +09:00
parent 5f420c212b
commit e067fc8d4f
25 changed files with 847 additions and 384 deletions

View File

@@ -4,6 +4,7 @@ import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow';
import { InfoSectionKeys, InfoSectionProps } from '../../model/types';
import { SlideDown } from 'react-slidedown';
import 'react-slidedown/lib/slidedown.css';
import { useTranslation } from 'react-i18next';
export const PartCancelInfoSection = ({
transactionCategory,
@@ -12,13 +13,14 @@ export const PartCancelInfoSection = ({
isOpen,
onClickToOpenInfo
}: InfoSectionProps) => {
const { t } = useTranslation();
const subItems: Record<string, Record<string, string>> = {
originalTid: {name: '원거래 TID', type: 'string'},
originalAmount: {name: '원거래 금액', type: 'number'},
partCancelTid: {name: (serviceCode === '05')? '재승인 TID': '부분취소 TID', type: 'string'},
partCancelAmount: {name: '부분취소 금액', type: 'number'},
remainingAmount: {name: (serviceCode === '05')? '재승인 금액': '부분취소 후 잔액', type: 'number'},
originalTid: {name: t('transaction.fields.originalTid'), type: 'string'},
originalAmount: {name: t('transaction.fields.originalAmount'), type: 'number'},
partCancelTid: {name: (serviceCode === '05')? t('transaction.fields.reApprovalTid'): t('transaction.fields.partCancelTid'), type: 'string'},
partCancelAmount: {name: t('transaction.fields.partCancelAmount'), type: 'number'},
remainingAmount: {name: (serviceCode === '05')? t('transaction.fields.reApprovalAmount'): t('transaction.fields.remainingAmount'), type: 'number'},
};
const openSubItems: Record<string, Array<string>> = {
@@ -101,11 +103,11 @@ export const PartCancelInfoSection = ({
return (
<>
<div className="txn-section">
<div
<div
className="section-title with-toggle"
onClick={ () => onClickToSetOpenInfo() }
>
<SectionTitleArrow isOpen={ isOpen }></SectionTitleArrow>
{ t('transaction.sections.partCancelInfo') } <SectionTitleArrow isOpen={ isOpen }></SectionTitleArrow>
</div>
<SlideDown className={'my-dropdown-slidedown'}>
{ !!isOpen &&
@@ -114,7 +116,7 @@ export const PartCancelInfoSection = ({
</ul>
}
</SlideDown>
</div>
</>
)