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

@@ -7,6 +7,7 @@ import { NumericFormat } from 'react-number-format';
import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants } from '@/entities/common/model/constant';
import { useNavigate } from '@/shared/lib/hooks';
import { PATHS } from '@/shared/constants/paths';
import { useTranslation } from 'react-i18next';
export interface AllTransactionCancelPreventBondProps {
cancelPreventBondOn: boolean;
setCancelPreventBondOn: (cancelPreventBondOn: boolean) => void;
@@ -22,6 +23,7 @@ export const AllTransactionCancelPreventBond = ({
serviceCode,
tid
}: AllTransactionCancelPreventBondProps) => {
const { t } = useTranslation();
const { navigate } = useNavigate();
const [item, setItem] = useState<DebtPreventionCancelDisplayInfo | null | undefined>(debtPreventionCancelDisplayInfo);
const onClickToClose = () => {
@@ -48,15 +50,15 @@ export const AllTransactionCancelPreventBond = ({
>
<div className="full-menu-container">
<div className="full-menu-header">
<div className="full-menu-title center">( )</div>
<div className="full-menu-title center">{t('transaction.cancel.afterDeposit.title')}</div>
<div className="full-menu-actions">
<button
<button
id="closeFullMenu"
className="full-menu-close"
>
<img
<img
src={ IMAGE_ROOT + '/ico_close.svg' }
alt="닫기"
alt={t('common.close')}
onClick={ onClickToClose }
/>
</button>
@@ -64,43 +66,43 @@ export const AllTransactionCancelPreventBond = ({
</div>
<div className="option-list-nopadding pw-26">
<div className="after-deposit-cancel pb-120">
<div className="notice-text"> .</div>
<div className="section-title"></div>
<div className="notice-text">{t('transaction.cancel.afterDeposit.notice')}</div>
<div className="section-title">{t('transaction.cancel.afterDeposit.cancelTransactionTitle')}</div>
<div className="amount-info">
<ul className="kv-list">
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.approvalDay')}</div>
<div className="v">{ item?.approvalDate? moment(item?.approvalDate).format('YYYY.MM.DD'): '' }</div>
</li>
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.approvalNumber')}</div>
<div className="v">{ item?.approvalNo }</div>
</li>
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.cancel.afterDeposit.approvalAmount')}</div>
<div className="v">
<NumericFormat
value={ item?.amount }
value={ item?.amount }
thousandSeparator
displayType="text"
></NumericFormat>
</div>
</li>
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.totalCancelAmount')}</div>
<div className="v">
<NumericFormat
value={ item?.totalCancelAmount }
value={ item?.totalCancelAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</div>
</li>
<li className="kv-row">
<div className="k red">· :</div>
<div className="k red">· {t('transaction.cancel.afterDeposit.depositRequestAmount')} :</div>
<div className="v red">
<NumericFormat
value={ item?.depositRequestAmount }
value={ item?.depositRequestAmount }
thousandSeparator
displayType="text"
></NumericFormat>
@@ -109,40 +111,40 @@ export const AllTransactionCancelPreventBond = ({
</ul>
</div>
<div className="section-title"> </div>
<div className="section-title">{t('transaction.cancel.afterDeposit.depositInfoTitle')}</div>
<div className="amount-info">
<ul className="kv-list">
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.bank')}</div>
<div className="v">{ item?.bankName }</div>
</li>
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.accountNo')}</div>
<div className="v">{ item?.accountNo }</div>
</li>
<li className="kv-row">
<div className="k">· </div>
<div className="k">· {t('transaction.fields.accountHolder')}</div>
<div className="v">{ item?.accountName }</div>
</li>
</ul>
</div>
<div className="guide-list mt-26">
<div className="desc dot">[] .</div>
<div className="desc dot"> .</div>
<div className="desc dot"> .</div>
<div className="desc dot"> 3 .</div>
<div className="desc dot"> :<br /> -&gt; -&gt; -&gt; </div>
<div className="desc dot"> <span className="link-blue">service@nicepay.co.kr</span> . (. 2 )</div>
<div className="desc dot">{t('transaction.cancel.afterDeposit.guide1')}</div>
<div className="desc dot">{t('transaction.cancel.afterDeposit.guide2')}</div>
<div className="desc dot">{t('transaction.cancel.afterDeposit.guide3')}</div>
<div className="desc dot">{t('transaction.cancel.afterDeposit.guide4')}</div>
<div className="desc dot" dangerouslySetInnerHTML={{ __html: t('transaction.cancel.afterDeposit.guide5') }}></div>
<div className="desc dot" dangerouslySetInnerHTML={{ __html: t('transaction.cancel.afterDeposit.guide6') }}></div>
</div>
</div>
</div>
</div>
<div className="apply-row">
<button
<button
className="btn-50 btn-blue flex-1"
onClick={ () => callTransactionCancel() }
></button>
>{t('transaction.submit')}</button>
</div>
</motion.div>
</>