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

@@ -1,32 +1,34 @@
import moment from 'moment';
import { InfoSectionProps } from '../../model/types';
import { useTranslation } from 'react-i18next';
export const BillingInfoSection = ({
billingInfo,
}: InfoSectionProps) => {
const { t } = useTranslation();
const getInstallmentMonth = () => {
let rs = [];
if((!!billingInfo?.installmentMonth && parseInt(billingInfo?.installmentMonth) > 1)){
rs.push(
<li
<li
key={ `key-installmentMonth`}
className="kv-row"
>
<span className="k"></span>
<span className="v">{ billingInfo?.installmentMonth } </span>
</li>
<span className="k">{ t('transaction.fields.installmentMonth') }</span>
<span className="v">{ t('transaction.fields.installmentMonthly', { count: billingInfo?.installmentMonth }) }</span>
</li>
);
}
else{
rs.push(
<li
<li
key={ `key-installmentMonth`}
className="kv-row"
>
<span className="k"></span>
<span className="v"></span>
</li>
<span className="k">{ t('transaction.fields.installmentMonth') }</span>
<span className="v">{ t('transaction.fields.lumpSum') }</span>
</li>
);
}
return rs;
@@ -34,43 +36,43 @@ export const BillingInfoSection = ({
return (
<>
<div className="txn-section">
<div className="section-title"> </div>
<div className="section-title">{ t('transaction.sections.importantInfo') }</div>
<ul className="kv-list">
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.billKey') }</span>
<span className="v">{ billingInfo?.billKey }</span>
</li>
<li className="kv-row">
<span className="k">TID</span>
<span className="k">{ t('transaction.fields.tid') }</span>
<span className="v">{ billingInfo?.tid }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.orderNumber') }</span>
<span className="v">{ billingInfo?.orderNumber }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.approvalNumber') }</span>
<span className="v">{ billingInfo?.approvalNumber }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.approvalDate') }</span>
<span className="v">{ moment(billingInfo?.approvalDate).format('YYYY.MM.DD') }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.requestStatus') }</span>
<span className="v">{ billingInfo?.requestStatus }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.processResult') }</span>
<span className="v">{ billingInfo?.processResult }</span>
</li>
{ getInstallmentMonth() }
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.productName') }</span>
<span className="v">{ billingInfo?.productName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k">{ t('transaction.fields.buyer') }</span>
<span className="v">{ billingInfo?.buyerName }</span>
</li>
</ul>