diff --git a/src/entities/transaction/ui/all-transaction-all-cancel.tsx b/src/entities/transaction/ui/all-transaction-all-cancel.tsx index a0ef725..7359185 100644 --- a/src/entities/transaction/ui/all-transaction-all-cancel.tsx +++ b/src/entities/transaction/ui/all-transaction-all-cancel.tsx @@ -3,6 +3,7 @@ import { AllTransactionCancelInfoResponse } from '../model/types'; import { AllTransactionCancelSectionPasswordGroup } from './section/all-transaction-cancel-section-password-group'; import { AllTransactionCancelSectionBankGroup } from './section/all-transaction-cancel-section-bank-group'; import { NumericFormat } from 'react-number-format'; +import { useTranslation } from 'react-i18next'; export interface AllTransactionAllCancelProps extends AllTransactionCancelInfoResponse { serviceCode: string; @@ -45,25 +46,27 @@ export const AllTransactionAllCancel = ({ requestSuccess, totalCancelAmount }: AllTransactionAllCancelProps) => { + const { t } = useTranslation(); + return ( <>
diff --git a/src/entities/transaction/ui/section/billing-info-section.tsx b/src/entities/transaction/ui/section/billing-info-section.tsx index 75d6dd2..ba30094 100644 --- a/src/entities/transaction/ui/section/billing-info-section.tsx +++ b/src/entities/transaction/ui/section/billing-info-section.tsx @@ -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( -
  • - 할부개월 - { billingInfo?.installmentMonth }개월 할부 -
  • + { t('transaction.fields.installmentMonth') } + { t('transaction.fields.installmentMonthly', { count: billingInfo?.installmentMonth }) } + ); } else{ rs.push( -
  • - 할부개월 - 일시불 -
  • + { t('transaction.fields.installmentMonth') } + { t('transaction.fields.lumpSum') } + ); } return rs; @@ -34,43 +36,43 @@ export const BillingInfoSection = ({ return ( <>
    -
    중요 정보
    +
    { t('transaction.sections.importantInfo') }
    diff --git a/src/entities/transaction/ui/section/detail-info-section.tsx b/src/entities/transaction/ui/section/detail-info-section.tsx index 5cde6ab..dd6f7c5 100644 --- a/src/entities/transaction/ui/section/detail-info-section.tsx +++ b/src/entities/transaction/ui/section/detail-info-section.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow'; import { InfoSectionKeys, InfoSectionProps } from '../../model/types'; import { SlideDown } from 'react-slidedown'; @@ -10,6 +11,7 @@ export const DetailInfoSection = ({ isOpen, onClickToOpenInfo }: InfoSectionProps) => { + const { t } = useTranslation(); const onClickToSetOpenInfo = () => { if(!!onClickToOpenInfo){ @@ -20,49 +22,49 @@ export const DetailInfoSection = ({ return ( <>
    -
    onClickToSetOpenInfo() } > - 상세 정보 + {t('transaction.sections.detailInfo')}
    { !!isOpen &&
    • - 취소일자 + {t('transaction.fields.cancelDate')} { detailInfo?.cancelDate? moment(detailInfo?.cancelDate).format('YYYY.MM.DD'): '' }
    • - 취소승인번호 + {t('transaction.fields.cancelApprovalNumber')} { detailInfo?.cancelApprovalNumber }
    • - 현금영수증 + {t('transaction.fields.receiptInfo')} { detailInfo?.receiptInfo }
    • - TID + {t('transaction.fields.tid')} { detailInfo?.tid }
    • - 거래ID + {t('transaction.fields.transactionId')} { detailInfo?.merchantTid }
    • - 서브몰명 + {t('transaction.fields.subMallName')} { detailInfo?.subMallName }
    • - 서브몰 사업자 번호 + {t('transaction.fields.subMallBusinessNumber')} { detailInfo?.subMallBusinessNumber }
    • - 발행경로 + {t('transaction.fields.issueChannel')} { detailInfo?.issueChannel }
    • - 실패사유 + {t('transaction.fields.failureReason')} { detailInfo?.failureReason }
    diff --git a/src/entities/transaction/ui/section/escrow-info-section.tsx b/src/entities/transaction/ui/section/escrow-info-section.tsx index 2a0060c..3c90e88 100644 --- a/src/entities/transaction/ui/section/escrow-info-section.tsx +++ b/src/entities/transaction/ui/section/escrow-info-section.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow'; import { InfoSectionKeys, InfoSectionProps } from '../../model/types'; import { SlideDown } from 'react-slidedown'; @@ -9,6 +10,7 @@ export const EscrowInfoSection = ({ isOpen, onClickToOpenInfo }: InfoSectionProps) => { + const { t } = useTranslation(); const onClickToSetOpenInfo = () => { if(!!onClickToOpenInfo){ @@ -19,53 +21,53 @@ export const EscrowInfoSection = ({ return ( <>
    -
    onClickToSetOpenInfo() } > - 에스크로 정보 + {t('transaction.sections.escrowInfo')}
    { !!isOpen &&
    • - ·  배송상태 + ·  {t('transaction.fields.deliveryStatus')} { escrowInfo?.deliveryStatus }
    • - ·  배송등록 + ·  {t('transaction.fields.deliveryRegistration')} { escrowInfo?.deliveryRegistrationDate? moment(escrowInfo?.deliveryRegistrationDate).format('YYYY.MM.DD'): '' }
    • - ·  배송완료 + ·  {t('transaction.fields.deliveryComplete')} { escrowInfo?.deliveryCompleteDate? moment(escrowInfo?.deliveryCompleteDate).format('YYYY.MM.DD'): '' }
    • - ·  구매확인 + ·  {t('transaction.fields.purchaseConfirm')} { escrowInfo?.purchaseConfirmDate? moment(escrowInfo?.purchaseConfirmDate).format('YYYY.MM.DD'): '' }
    • - ·  구매거절 + ·  {t('transaction.fields.purchaseReject')} { escrowInfo?.purchaseRejectReason }
    • - ·  거절사유 + ·  {t('transaction.fields.rejectReason')} { escrowInfo?.rejectReason }
    • - ·  에스크로인증번호 + ·  {t('transaction.fields.escrowCertNumber')} { escrowInfo?.escrowCertNumber }
    • - ·  택배사 + ·  {t('transaction.fields.deliveryCompany')} { escrowInfo?.deliveryCompany }
    • - ·  운송장번호 + ·  {t('transaction.fields.trackingNumber')} { escrowInfo?.trackingNumber }
    • - ·  배송주소 + ·  {t('transaction.fields.deliveryAddress')} { escrowInfo?.deliveryAddress }
    diff --git a/src/entities/transaction/ui/section/important-info-section.tsx b/src/entities/transaction/ui/section/important-info-section.tsx index c694f31..2c606d2 100644 --- a/src/entities/transaction/ui/section/important-info-section.tsx +++ b/src/entities/transaction/ui/section/important-info-section.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { NumericFormat } from 'react-number-format'; import { InfoSectionProps, TransactionCategory } from '../../model/types'; import { useStore } from '@/shared/model/store'; @@ -9,6 +10,7 @@ export const ImportantInfoSection = ({ importantInfo, serviceCode }: InfoSectionProps) => { + const { t } = useTranslation(); let serviceCodes = useStore.getState().CommonStore.serviceCodes; let serviceName = ''; let statusName = ''; @@ -60,15 +62,15 @@ export const ImportantInfoSection = ({ } const subItems: Record> = { - moid: {name: '주문번호', type: 'string'}, - tid: {name: 'TID', type: 'string'}, - statusName: {name: '거래상태', type: 'string'}, - serviceName: {name: '거래수단', type: 'string'}, - approvalDate: {name: '승인일', type: 'date'}, - transactionDate: {name: '거래일', type: 'date'}, - requestDate: {name: '요청일', type: 'date'}, - cancelDate: {name: '취소일', type: 'date'}, - goodsName: {name: '상품명', type: 'string'} + moid: {name: t('transaction.fields.orderNumber'), type: 'string'}, + tid: {name: t('transaction.fields.tid'), type: 'string'}, + statusName: {name: t('transaction.fields.transactionStatus'), type: 'string'}, + serviceName: {name: t('transaction.fields.transactionMethod'), type: 'string'}, + approvalDate: {name: t('transaction.fields.approvalDay'), type: 'date'}, + transactionDate: {name: t('filter.date'), type: 'date'}, + requestDate: {name: t('filter.date'), type: 'date'}, + cancelDate: {name: t('transaction.fields.cancelDate'), type: 'date'}, + goodsName: {name: t('transaction.fields.productName'), type: 'string'} }; const openSubItems: Record> = { @@ -146,54 +148,54 @@ export const ImportantInfoSection = ({ return ( <>
    -
    중요 정보
    +
    {t('transaction.sections.importantInfo')}
      - { (transactionCategory === TransactionCategory.AllTransaction) && + { (transactionCategory === TransactionCategory.AllTransaction) && subLi() } - { - (transactionCategory === TransactionCategory.Escrow) && + { + (transactionCategory === TransactionCategory.Escrow) && <>
    • - 주문번호 + {t('transaction.fields.orderNumber')} { importantInfo?.orderNumber }
    • - TID + {t('transaction.fields.tid')} { importantInfo?.tid }
    • - 거래상태 + {t('transaction.fields.transactionStatus')} { importantInfo?.transactionStatus }
    • - 거래수단 + {t('transaction.fields.transactionMethod')} { importantInfo?.paymentMethod }
    • { serviceCode === '01' &&
    • - 승인일 + {t('transaction.fields.approvalDay')} { importantInfo?.approvalDate? moment(importantInfo?.approvalDate).format('YYYY-MM-DD'): '' }
    • } { serviceCode === '02' &&
    • - 거래일 + {t('filter.date')} { importantInfo?.approvalDate? moment(importantInfo?.approvalDate).format('YYYY-MM-DD'): '' }
    • } - { serviceCode === '03' && + { serviceCode === '03' &&
    • - 요청일 + {t('filter.date')} { importantInfo?.approvalDate? moment(importantInfo?.approvalDate).format('YYYY-MM-DD'): '' }
    • }
    • - 취소일 + {t('transaction.fields.cancelDate')} { importantInfo?.cancelDate? moment(importantInfo?.cancelDate).format('YYYY-MM-DD'): '' }
    • - 상품명 + {t('transaction.fields.productName')} { importantInfo?.productName }
    • diff --git a/src/entities/transaction/ui/section/issue-info-section.tsx b/src/entities/transaction/ui/section/issue-info-section.tsx index b711e58..cd4031e 100644 --- a/src/entities/transaction/ui/section/issue-info-section.tsx +++ b/src/entities/transaction/ui/section/issue-info-section.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { InfoSectionProps } from '../../model/types'; import moment from 'moment'; import { useEffect, useState } from 'react'; @@ -7,6 +8,7 @@ export const IssueInfoSection = ({ issueInfo, purposeType, }: InfoSectionProps) => { + const { t } = useTranslation(); const [issueDateTime, setIssueDateTime] = useState(''); useEffect(() => { @@ -22,38 +24,38 @@ export const IssueInfoSection = ({ return ( <>
      -
      발급 정보
      +
      {t('transaction.sections.issueInfo')}
      • - 승인번호 + {t('transaction.fields.approvalNumber')} { issueInfo?.approvalNumber }
      • - 발행번호 + {t('transaction.fields.issueNumber')} { issueInfo?.issueNumber }
      • - 발행일시 + {t('transaction.fields.issueDateTime')} { moment(issueDateTime).format('YYYY.MM.DD HH:mm:ss') }
      • - 용도 + {t('transaction.fields.purpose')} { issueInfo?.purpose }
      • - 결제수단 + {t('transaction.fields.paymentMethod')} { issueInfo?.paymentMethod }
      • - 상품명 + {t('transaction.fields.productName')} { issueInfo?.productName }
      • - 진행상태 + {t('transaction.fields.processResult')} { issueInfo?.processResult }
      • - 거래구분 + {t('transaction.fields.transactionType')} { issueInfo?.transactionType }
      diff --git a/src/entities/transaction/ui/section/merchant-info-section.tsx b/src/entities/transaction/ui/section/merchant-info-section.tsx index 18f9499..74d4cb4 100644 --- a/src/entities/transaction/ui/section/merchant-info-section.tsx +++ b/src/entities/transaction/ui/section/merchant-info-section.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow'; import { InfoSectionKeys, InfoSectionProps } from '../../model/types'; import { SlideDown } from 'react-slidedown'; @@ -8,6 +9,7 @@ export const MerchantInfoSection = ({ isOpen, onClickToOpenInfo }: InfoSectionProps) => { + const { t } = useTranslation(); const onClickToSetOpenInfo = () => { if(!!onClickToOpenInfo){ @@ -18,25 +20,25 @@ export const MerchantInfoSection = ({ return ( <>
      -
      onClickToSetOpenInfo() } > - 상점 정보 + {t('transaction.sections.merchantInfo')}
      { !!isOpen &&
      • - ·  상호 + ·  {t('transaction.fields.companyName')} { merchantInfo?.companyName }
      • - ·  GID + ·  {t('transaction.fields.gid')} { merchantInfo?.gid }
      • - ·  AID + ·  {t('transaction.fields.aid')} { merchantInfo?.aid }
      diff --git a/src/entities/transaction/ui/section/part-cancel-info-section.tsx b/src/entities/transaction/ui/section/part-cancel-info-section.tsx index c3ed024..075bd7b 100644 --- a/src/entities/transaction/ui/section/part-cancel-info-section.tsx +++ b/src/entities/transaction/ui/section/part-cancel-info-section.tsx @@ -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> = { - 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> = { @@ -101,11 +103,11 @@ export const PartCancelInfoSection = ({ return ( <>
      -
      onClickToSetOpenInfo() } > - 부분취소 정보 + { t('transaction.sections.partCancelInfo') }
      { !!isOpen && @@ -114,7 +116,7 @@ export const PartCancelInfoSection = ({
    } - +
    ) diff --git a/src/entities/transaction/ui/section/payment-info-section.tsx b/src/entities/transaction/ui/section/payment-info-section.tsx index 0cc5c83..8bab98c 100644 --- a/src/entities/transaction/ui/section/payment-info-section.tsx +++ b/src/entities/transaction/ui/section/payment-info-section.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow'; import { InfoSectionKeys, InfoSectionProps, TransactionCategory } from '../../model/types'; import { NumericFormat } from 'react-number-format'; @@ -12,45 +13,46 @@ export const PaymentInfoSection = ({ isOpen, onClickToOpenInfo }: InfoSectionProps) => { + const { t } = useTranslation(); const subItems: Record> = { - approvalPurchase: {name: '승인매입', type: 'string'}, - approvalRejectCount: {name: '승인반송(횟수)', type: 'number', addString: '건'}, - approvalRepurchaseCount: {name: '승인재매입(횟수)', type: 'number', addString: '건'}, - approvalVAN: {name: '승인VAN', type: 'string'}, - cancelPurchase: {name: '취소매입', type: 'string'}, - cancelRejectCount: {name: '취소반송', type: 'number', addString: '건'}, - cancelRepurchaseCount: {name: '취소재매입', type: 'number', addString: '건'}, - purchaseVan: {name: '매입VAN', type: 'string'}, - purchaseCompany: {name: '매입사(발급사)', type: 'string'}, - cardNo: {name: '카드번호', type: 'string'}, - approvalNo: {name: '승인번호', type: 'string'}, - installmentMonth: {name: '할부기간', type: 'string', addString: '개월'}, - authentication: {name: '인증', type: 'string'}, + approvalPurchase: {name: t('transaction.fields.approvalPurchase'), type: 'string'}, + approvalRejectCount: {name: t('transaction.fields.approvalRejectCount'), type: 'number', addString: '건'}, + approvalRepurchaseCount: {name: t('transaction.fields.approvalRepurchaseCount'), type: 'number', addString: '건'}, + approvalVAN: {name: t('transaction.fields.approvalVAN'), type: 'string'}, + cancelPurchase: {name: t('transaction.fields.cancelPurchase'), type: 'string'}, + cancelRejectCount: {name: t('transaction.fields.cancelRejectCount'), type: 'number', addString: '건'}, + cancelRepurchaseCount: {name: t('transaction.fields.cancelRepurchaseCount'), type: 'number', addString: '건'}, + purchaseVan: {name: t('transaction.fields.purchaseVan'), type: 'string'}, + purchaseCompany: {name: t('transaction.fields.purchaseCompany'), type: 'string'}, + cardNo: {name: t('transaction.fields.cardNo'), type: 'string'}, + approvalNo: {name: t('transaction.fields.approvalNo'), type: 'string'}, + installmentMonth: {name: t('transaction.fields.installmentPeriod'), type: 'string', addString: '개월'}, + authentication: {name: t('transaction.fields.authentication'), type: 'string'}, - joinType: {name: '유형', type: 'string'}, - bankName: {name: '은행명', type: 'string'}, - accountNo: {name: '계좌번호', type: 'string'}, - refundCompleteDate: {name: '환불완료일', type: 'string'}, - customerId: {name: '고객ID', type: 'string'}, - - culturelandId: {name: '컬처랜드ID', type: 'string'}, + joinType: {name: t('transaction.fields.joinType'), type: 'string'}, + bankName: {name: t('transaction.fields.bankName'), type: 'string'}, + accountNo: {name: t('transaction.fields.accountNo'), type: 'string'}, + refundCompleteDate: {name: t('transaction.fields.refundCompleteDate'), type: 'string'}, + customerId: {name: t('transaction.fields.customerId'), type: 'string'}, - partner: {name: '제휴사', type: 'string'}, - cpid: {name: 'CPID', type: 'string'}, - goodsCategory: {name: '상품구분', type: 'string'}, - cellphoneNo: {name: '휴대폰번호', type: 'string'}, + culturelandId: {name: t('transaction.fields.culturelandId'), type: 'string'}, - giftCardNumber: {name: '상품권번호', type: 'string'}, + partner: {name: t('transaction.fields.partner'), type: 'string'}, + cpid: {name: t('transaction.fields.cpid'), type: 'string'}, + goodsCategory: {name: t('transaction.fields.goodsCategory'), type: 'string'}, + cellphoneNo: {name: t('transaction.fields.cellphoneNo'), type: 'string'}, - depositBankName: {name: '입금금융기관명', type: 'string'}, - depositorName: {name: '입금자명', type: 'string'}, - depositDeadline: {name: '입금기한', type: 'date'}, - depositDate: {name: '입금일', type: 'date'}, - refundScheduleDate: {name: '환불예정일', type: 'date'}, - refundBankName: {name: '환불은행명', type: 'string'}, - refundAccountNo: {name: '환불계좌번호', type: 'string'}, - accountHolder: {name: '예금주', type: 'string'}, + giftCardNumber: {name: t('transaction.fields.giftCardNumber'), type: 'string'}, + + depositBankName: {name: t('transaction.fields.depositBankName'), type: 'string'}, + depositorName: {name: t('transaction.fields.depositorName'), type: 'string'}, + depositDeadline: {name: t('transaction.fields.depositDeadline'), type: 'date'}, + depositDate: {name: t('transaction.fields.depositDate'), type: 'date'}, + refundScheduleDate: {name: t('transaction.fields.refundScheduleDate'), type: 'date'}, + refundBankName: {name: t('transaction.fields.refundBankName'), type: 'string'}, + refundAccountNo: {name: t('transaction.fields.refundAccountNo'), type: 'string'}, + accountHolder: {name: t('transaction.fields.accountHolder'), type: 'string'}, }; const openSubItems: Record> = { @@ -99,7 +101,7 @@ export const PaymentInfoSection = ({ { (checkValue(newPaymentInfo[k]) && subItems[k]?.type === 'string') && (k === 'installmentMonth' && newPaymentInfo[k] === '00') && - '일시불' + t('transaction.fields.lumpSum') } { (checkValue(newPaymentInfo[k]) && subItems[k]?.type === 'string') && (k === 'installmentMonth' && newPaymentInfo[k] !== '00') && @@ -138,11 +140,11 @@ export const PaymentInfoSection = ({ return ( <>
    -
    onClickToSetOpenInfo() } > - 결제 정보 + {t('transaction.sections.paymentInfo')}
    { !!isOpen && @@ -152,82 +154,82 @@ export const PaymentInfoSection = ({ } { (transactionCategory === TransactionCategory.Escrow) && <> - { (serviceCode === '01') && + { (serviceCode === '01') && <>
  • - ·  승인매입일 + ·  {t('transaction.fields.approvalPurchaseDate')} { paymentInfo?.approvalPurchase? moment(paymentInfo?.approvalPurchase).format('YYYY-MM-DD'): '' }
  • - ·  승인반송(횟수) + ·  {t('transaction.fields.approvalRejectCount')}
  • - ·  승인재매입(횟수) + ·  {t('transaction.fields.approvalRepurchaseCount')}
  • - ·  승인VAN + ·  {t('transaction.fields.approvalVAN')} { paymentInfo?.approvalVAN }
  • - ·  취소매입 + ·  {t('transaction.fields.cancelPurchaseDate')} { paymentInfo?.cancelPurchase? moment(paymentInfo?.cancelPurchase).format('YYYY-MM-DD'): '' }
  • - ·  취소반송(횟수) + ·  {t('transaction.fields.cancelRejectCount')}
  • - ·  취소재매입(횟수) + ·  {t('transaction.fields.cancelRepurchaseCount')}
  • - ·  매입VAN + ·  {t('transaction.fields.purchaseVan')} { paymentInfo?.purchaseVan }
  • - ·  매입사(발급사) + ·  {t('transaction.fields.purchaseCompany')} { paymentInfo?.purchaseCompany }
  • - ·  카드번호 + ·  {t('transaction.fields.cardNo')} { paymentInfo?.cardNo }
  • - ·  승인번호 + ·  {t('transaction.fields.approvalNo')} { paymentInfo?.approvalNo }
  • - ·  할부기간 - { (paymentInfo?.installmentMonth === '00')? '일시불': paymentInfo?.installmentMonth } + ·  {t('transaction.fields.installmentPeriod')} + { (paymentInfo?.installmentMonth === '00')? t('transaction.fields.lumpSum'): paymentInfo?.installmentMonth }
  • - ·  인증 + ·  {t('transaction.fields.authentication')} { paymentInfo?.authentication }
  • @@ -235,7 +237,7 @@ export const PaymentInfoSection = ({ { (serviceCode === '02') && <>
  • - ·  유형 + ·  {t('transaction.fields.joinType')} { paymentInfo?.joinType }
  • @@ -243,43 +245,43 @@ export const PaymentInfoSection = ({ { (serviceCode === '02' || serviceCode === '03') && <>
  • - ·  은행명 + ·  {t('transaction.fields.bankName')} { paymentInfo?.bankName || paymentInfo?.depositBankName }
  • - ·  계좌번호 + ·  {t('transaction.fields.accountNo')} { paymentInfo?.accountNo || paymentInfo?.virtualAccountNo }
  • } - { (serviceCode === '03') && + { (serviceCode === '03') && <>
  • - ·  입금자명 + ·  {t('transaction.fields.depositorName')} { paymentInfo?.depositorName }
  • - ·  입금기한 + ·  {t('transaction.fields.depositDeadline')} { paymentInfo?.depositDeadline? moment(paymentInfo?.depositDeadline).format('YYYY-MM-DD'): '' }
  • - ·  입금일 + ·  {t('transaction.fields.depositDate')} { paymentInfo?.depositDate? moment(paymentInfo?.depositDate).format('YYYY-MM-DD'): '' }
  • - ·  환불예정일 + ·  {t('transaction.fields.refundScheduleDate')} { paymentInfo?.refundScheduleDate? moment(paymentInfo?.refundScheduleDate).format('YYYY-MM-DD'): '' }
  • - ·  환불은행명 + ·  {t('transaction.fields.refundBankName')} { paymentInfo?.refundBankName }
  • - ·  환불계좌번호 + ·  {t('transaction.fields.refundAccountNo')} { paymentInfo?.refundAccountNo }
  • - ·  예금주 + ·  {t('transaction.fields.accountHolder')} { paymentInfo?.accountHolder }
  • diff --git a/src/entities/transaction/ui/section/settlement-info-section.tsx b/src/entities/transaction/ui/section/settlement-info-section.tsx index 94cfab3..8f06568 100644 --- a/src/entities/transaction/ui/section/settlement-info-section.tsx +++ b/src/entities/transaction/ui/section/settlement-info-section.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { NumericFormat } from 'react-number-format'; import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow'; import { InfoSectionKeys, InfoSectionProps, TransactionCategory } from '../../model/types'; @@ -12,12 +13,13 @@ export const SettlementInfoSection = ({ isOpen, onClickToOpenInfo }: InfoSectionProps) => { - + const { t } = useTranslation(); + const subItems: Record> = { - approvalSettlementDate: {name: '승인정산일', type: 'date'}, - approvalSettlementAmount: {name: '승인정산금액', type: 'number'}, - cancelSettlementDate: {name: '취소정산일', type: 'date'}, - cancelSettlementAmount: {name: '취소정산금액', type: 'number'}, + approvalSettlementDate: {name: t('transaction.fields.approvalSettlementDate'), type: 'date'}, + approvalSettlementAmount: {name: t('transaction.fields.approvalSettlementAmount'), type: 'number'}, + cancelSettlementDate: {name: t('transaction.fields.cancelSettlementDate'), type: 'date'}, + cancelSettlementAmount: {name: t('transaction.fields.cancelSettlementAmount'), type: 'number'}, }; const openSubItems: Record> = { @@ -100,30 +102,30 @@ export const SettlementInfoSection = ({ return ( <>
    -
    onClickToSetOpenInfo() } > - 정산 정보 + {t('transaction.sections.settlementInfo')}
    - + { !!isOpen &&
      - { (transactionCategory === TransactionCategory.AllTransaction) && + { (transactionCategory === TransactionCategory.AllTransaction) && subLi() } - { (transactionCategory === TransactionCategory.Escrow) && + { (transactionCategory === TransactionCategory.Escrow) && <>
    • - ·  승인정산일 + ·  {t('transaction.fields.approvalSettlementDate')} { settlementInfo?.approvalSettlementDate? moment(settlementInfo?.approvalSettlementDate).format('YYYY.MM.DD'): '' }
    • - ·  승인정산금액 + ·  {t('transaction.fields.approvalSettlementAmount')}
    • - ·  취소정산일 + ·  {t('transaction.fields.cancelSettlementDate')} { settlementInfo?.cancelSettlementDate? moment(settlementInfo?.cancelSettlementDate).format('YYYY.MM.DD'): '' }
    • - ·  취소정산금액 + ·  {t('transaction.fields.cancelSettlementAmount')} { + const { t } = useTranslation(); const subItems: Record> = { - buyerName: {name: '구매자명', type: 'string'}, - buyerEmail: {name: '이메일', type: 'string'}, - buyerTel: {name: '전화번호', type: 'string'}, - cancelReason: {name: '취소사유', type: 'string'}, - cancelRequestor: {name: '취소요청자', type: 'string'}, - partialCancel: {name: '부분취소', type: 'string'}, - cashReceiptIssue: {name: '현금영수증발행', type: 'string'}, + buyerName: {name: t('transaction.fields.buyerName'), type: 'string'}, + buyerEmail: {name: t('transaction.fields.buyerEmail'), type: 'string'}, + buyerTel: {name: t('transaction.fields.buyerTel'), type: 'string'}, + cancelReason: {name: t('transaction.fields.cancelReason'), type: 'string'}, + cancelRequestor: {name: t('transaction.fields.cancelRequestor'), type: 'string'}, + partialCancel: {name: t('transaction.fields.partialCancel'), type: 'string'}, + cashReceiptIssue: {name: t('transaction.fields.cashReceiptIssue'), type: 'string'}, }; const openSubItems: Record> = { @@ -106,47 +108,47 @@ export const TransactionInfoSection = ({ return ( <>
      -
      onClickToSetOpenInfo() } > - 거래 정보 + {t('transaction.sections.transactionInfo')}
      - { !!isOpen && + { !!isOpen &&
        - { (transactionCategory === TransactionCategory.AllTransaction) && + { (transactionCategory === TransactionCategory.AllTransaction) && subLi() } - { (transactionCategory === TransactionCategory.Escrow) && + { (transactionCategory === TransactionCategory.Escrow) && <>
      • - ·  구매자명 + ·  {t('transaction.fields.buyerName')} { transactionInfo?.buyerName }
      • - ·  이메일 + ·  {t('transaction.fields.buyerEmail')} { transactionInfo?.buyerEmail }
      • - ·  전화번호 + ·  {t('transaction.fields.buyerTel')} { transactionInfo?.buyerTel }
      • - ·  취소사유 + ·  {t('transaction.fields.cancelReason')} { transactionInfo?.cancelReason }
      • - ·  취소요청자 + ·  {t('transaction.fields.cancelRequestor')} { transactionInfo?.cancelRequestor }
      • - ·  부분취소 + ·  {t('transaction.fields.partialCancel')} { transactionInfo?.partialCancel }
      • { (serviceCode === '02' || serviceCode === '03') &&
      • - ·  현금영수증발행 + ·  {t('transaction.fields.cashReceiptIssue')} { transactionInfo?.cashReceiptIssue }
      • } diff --git a/src/locales/en.json b/src/locales/en.json index 50b27b6..1aa00a5 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -358,7 +358,214 @@ "searchOptions": "Search Options", "download": "Download", "cancelTransaction": "Cancel Transaction", - "confirmCancel": "Do you want to cancel this transaction?" + "confirmCancel": "Do you want to cancel this transaction?", + "bottomSheet": { + "escrowMailResend": { + "title": "Select Email Address", + "close": "Close", + "mailLabel": "Receive by Email", + "mail": "Mail", + "select": "Select", + "errorNoEmail": "No registered email information.\nPlease add email authentication information from the user management menu before applying." + }, + "cashReceiptPurposeUpdate": { + "title": "Cash Receipt Purpose Change Notice", + "description": "When changing the purpose of a cash receipt, the existing issuance record will be cancelled and a new one will be issued according to the selected purpose.", + "expenseProof": "Expense Proof", + "incomeDeduction": "Income Deduction", + "expenseToIncome": "Expense Proof → Income Deduction", + "incomeToExpense": "Income Deduction → Expense Proof" + } + }, + "sections": { + "importantInfo": "Important Information", + "billingInfo": "Billing Information", + "partCancelInfo": "Partial Cancel Information", + "detailInfo": "Detail Information", + "issueInfo": "Issue Information", + "escrowInfo": "Escrow Information", + "paymentInfo": "Payment Information", + "transactionInfo": "Transaction Information", + "settlementInfo": "Settlement Information", + "merchantInfo": "Merchant Information", + "amountDetail": "Amount Details" + }, + "fields": { + "billKey": "Bill Key", + "tid": "TID", + "orderNumber": "Order Number", + "approvalNumber": "Approval Number", + "approvalDate": "Approval Date", + "approvalDay": "Approval Day", + "requestStatus": "Request Status", + "processResult": "Process Result", + "installmentMonth": "Installment Month", + "installmentPeriod": "Installment Period", + "installmentMonthly": "{{count}} Month Installment", + "lumpSum": "Lump Sum", + "productName": "Product Name", + "buyerName": "Buyer Name", + "buyer": "Buyer", + "originalTid": "Original TID", + "originalAmount": "Original Amount", + "partCancelTid": "Partial Cancel TID", + "reApprovalTid": "Re-approval TID", + "partCancelAmount": "Partial Cancel Amount", + "remainingAmount": "Remaining Amount", + "reApprovalAmount": "Re-approval Amount", + "cancelDate": "Cancel Date", + "cancelApprovalNumber": "Cancel Approval Number", + "receiptInfo": "Cash Receipt", + "transactionId": "Transaction ID", + "merchantTid": "Transaction ID", + "subMallName": "Sub Mall Name", + "subMallBusinessNumber": "Sub Mall Business Number", + "issueChannel": "Issue Channel", + "failureReason": "Failure Reason", + "issueNumber": "Issue Number", + "issueDate": "Issue Date", + "issueDateTime": "Issue Date Time", + "purpose": "Purpose", + "paymentMethod": "Payment Method", + "transactionStatus": "Transaction Status", + "transactionMethod": "Transaction Method", + "transactionType": "Transaction Type", + "deliveryStatus": "Delivery Status", + "deliveryRegistration": "Delivery Registration", + "deliveryComplete": "Delivery Complete", + "purchaseConfirm": "Purchase Confirm", + "purchaseReject": "Purchase Reject", + "rejectReason": "Reject Reason", + "escrowCertNumber": "Escrow Cert Number", + "deliveryCompany": "Delivery Company", + "trackingNumber": "Tracking Number", + "deliveryAddress": "Delivery Address", + "approvalPurchase": "Approval Purchase", + "approvalPurchaseDate": "Approval Purchase Date", + "approvalRejectCount": "Approval Reject (Count)", + "approvalRepurchaseCount": "Approval Repurchase (Count)", + "approvalVAN": "Approval VAN", + "cancelPurchase": "Cancel Purchase", + "cancelPurchaseDate": "Cancel Purchase", + "cancelRejectCount": "Cancel Reject (Count)", + "cancelRepurchaseCount": "Cancel Repurchase (Count)", + "purchaseVan": "Purchase VAN", + "purchaseCompany": "Purchase Company (Issuer)", + "cardNo": "Card Number", + "approvalNo": "Approval Number", + "authentication": "Authentication", + "joinType": "Type", + "bankName": "Bank Name", + "bank": "Bank", + "accountNo": "Account Number", + "refundCompleteDate": "Refund Complete Date", + "customerId": "Customer ID", + "culturelandId": "Cultureland ID", + "partner": "Partner", + "cpid": "CPID", + "goodsCategory": "Goods Category", + "cellphoneNo": "Cellphone Number", + "giftCardNumber": "Gift Card Number", + "depositBankName": "Deposit Bank Name", + "depositorName": "Depositor Name", + "depositDeadline": "Deposit Deadline", + "depositDate": "Deposit Date", + "refundScheduleDate": "Refund Schedule Date", + "refundBankName": "Refund Bank Name", + "refundAccountNo": "Refund Account Number", + "accountHolder": "Account Holder", + "buyerEmail": "Email", + "buyerTel": "Phone Number", + "cancelReason": "Cancel Reason", + "cancelRequestor": "Cancel Requestor", + "partialCancel": "Partial Cancel", + "cashReceiptIssue": "Cash Receipt Issue", + "approvalSettlementDate": "Approval Settlement Date", + "approvalSettlementAmount": "Approval Settlement Amount", + "cancelSettlementDate": "Cancel Settlement Date", + "cancelSettlementAmount": "Cancel Settlement Amount", + "companyName": "Company Name", + "gid": "GID", + "aid": "AID", + "mid": "MID", + "transactionRequestAmount": "Transaction Request Amount", + "approvalRequestAmount": "Approval Request Amount", + "transactionAmount": "Transaction Amount", + "creditCardAmount": "Credit Card Amount", + "cardAmount": "Credit Card Amount", + "pointAmount": "Point Amount", + "couponAmount": "Coupon Amount", + "escrowFee": "Escrow Fee", + "kakaoMoneyAmount": "Kakao Money", + "kakaoPointAmount": "Kakao Point", + "kakaoDiscountAmount": "Kakao Instant Discount", + "naverPointAmount": "Naver Point", + "tossMoneyAmount": "Toss Money", + "tossDiscountAmount": "Toss Discount", + "paycoPointAmount": "Payco Point", + "paycoCouponAmount": "Payco Coupon", + "supplyAmount": "Supply Amount", + "vat": "VAT", + "serviceAmount": "Service Charge", + "taxFreeAmount": "Tax Free Amount", + "amount": "Amount", + "totalBalance": "Total Balance", + "totalCancelAmount": "Total Cancel Amount", + "customerName": "Customer Name", + "transactionConfirmation": "Transaction Confirmation" + }, + "handWrittenIssuance": { + "step1Title": "Enter Issue Information", + "step2Title": "Enter Issue Amount", + "businessNumber": "Business Number", + "incomeDeduction": "Income Deduction", + "expenseProof": "Expense Proof", + "productNamePlaceholder": "Product Name", + "buyerNamePlaceholder": "Buyer Name", + "issueNumberPlaceholder": "Business Number OR Phone Number", + "emailPlaceholder": "TEST123@nicepay.com", + "phoneNumberPlaceholder": "01012345678", + "issueAmount": "Issue Amount", + "vatAutoCalc": "VAT Auto Calculate", + "errorMessage": "The issue amount must equal the sum of supply amount, VAT, tax-free amount, and service charge." + }, + "list": { + "paymentRequest": "Payment Request", + "manualIssuance": "Manual Issuance", + "separator": "|" + }, + "cancel": { + "bankGroup": { + "select": "Select", + "notice": "Refunds will be paid to the entered account information without separate verification.\nPlease check the entered information once more." + }, + "passwordGroup": { + "cancelPassword": "Cancel Password", + "passwordMismatch": "Password Mismatch" + }, + "afterDeposit": { + "title": "Transaction Cancel (After Deposit Cancel)", + "notice": "The requested transaction cancellation can be processed after deposit.", + "cancelTransactionTitle": "Cancel Transaction Details", + "approvalAmount": "Approval Amount", + "depositRequestAmount": "Deposit Request Amount", + "depositInfoTitle": "Deposit Information", + "guide1": "Cancellation must be submitted through the [Cancel Request] button.", + "guide2": "Please enter the merchant name as the depositor name.", + "guide3": "Cancellation will proceed only if the same amount as the deposit request amount is deposited.", + "guide4": "Cancellation details can be confirmed after up to 3 days.", + "guide5": "After Deposit Cancellation Process:\nMerchant Cancel Request -> Merchant Deposit -> Confirm Deposit -> Process Cancel", + "guide6": "For transactions that have not been settled, please send transaction details to service@nicepay.co.kr. (Only for transactions with more than 2 days remaining until the settlement date)" + }, + "partCancel": { + "balance": "Balance", + "cancelAmount": "Cancel Amount", + "taxableAmount": "Taxable Amount", + "taxAmount": "Tax Amount", + "taxFree": "Tax Free", + "serviceFee": "Service Fee" + } + } }, "cashReceipt": { "title": "Cash Receipt", diff --git a/src/locales/ko.json b/src/locales/ko.json index 866b240..a82ad38 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -362,7 +362,214 @@ "searchOptions": "검색옵션", "download": "다운로드", "cancelTransaction": "거래 취소", - "confirmCancel": "거래를 취소하시겠습니까?" + "confirmCancel": "거래를 취소하시겠습니까?", + "bottomSheet": { + "escrowMailResend": { + "title": "이메일 주소를 선택하세요", + "close": "닫기", + "mailLabel": "메일로 받기", + "mail": "메일", + "select": "선택", + "errorNoEmail": "등록된 메일 정보가 없습니다.\n이메일 인증정보를 사용자관리 메뉴에서 추가 후 신청하세요." + }, + "cashReceiptPurposeUpdate": { + "title": "현금영수증 용도 변경 안내", + "description": "현금영수증의 용도 변경 시 기존 발급 내역이 취소되며, 선택한 용도에 맞게 새로 발급됩니다.", + "expenseProof": "지출증빙용", + "incomeDeduction": "소득공제용", + "expenseToIncome": "지출증빙용 → 소득공제용", + "incomeToExpense": "소득공제용 → 지출증빙용" + } + }, + "sections": { + "importantInfo": "중요 정보", + "billingInfo": "빌링 정보", + "partCancelInfo": "부분취소 정보", + "detailInfo": "상세 정보", + "issueInfo": "발급 정보", + "escrowInfo": "에스크로 정보", + "paymentInfo": "결제 정보", + "transactionInfo": "거래 정보", + "settlementInfo": "정산 정보", + "merchantInfo": "상점 정보", + "amountDetail": "금액상세" + }, + "fields": { + "billKey": "빌키", + "tid": "TID", + "orderNumber": "주문번호", + "approvalNumber": "승인번호", + "approvalDate": "승인일자", + "approvalDay": "승인일", + "requestStatus": "요청상태", + "processResult": "처리결과", + "installmentMonth": "할부개월", + "installmentPeriod": "할부기간", + "installmentMonthly": "{{count}}개월 할부", + "lumpSum": "일시불", + "productName": "상품명", + "buyerName": "구매자명", + "buyer": "구매자", + "originalTid": "원거래 TID", + "originalAmount": "원거래 금액", + "partCancelTid": "부분취소 TID", + "reApprovalTid": "재승인 TID", + "partCancelAmount": "부분취소 금액", + "remainingAmount": "부분취소 후 잔액", + "reApprovalAmount": "재승인 금액", + "cancelDate": "취소일자", + "cancelApprovalNumber": "취소승인번호", + "receiptInfo": "현금영수증", + "transactionId": "거래ID", + "merchantTid": "거래ID", + "subMallName": "서브몰명", + "subMallBusinessNumber": "서브몰 사업자 번호", + "issueChannel": "발행경로", + "failureReason": "실패사유", + "issueNumber": "발행번호", + "issueDate": "발행일자", + "issueDateTime": "발행일시", + "purpose": "용도", + "paymentMethod": "결제수단", + "transactionStatus": "거래상태", + "transactionMethod": "거래수단", + "transactionType": "거래구분", + "deliveryStatus": "배송상태", + "deliveryRegistration": "배송등록", + "deliveryComplete": "배송완료", + "purchaseConfirm": "구매확인", + "purchaseReject": "구매거절", + "rejectReason": "거절사유", + "escrowCertNumber": "에스크로인증번호", + "deliveryCompany": "택배사", + "trackingNumber": "운송장번호", + "deliveryAddress": "배송주소", + "approvalPurchase": "승인매입", + "approvalPurchaseDate": "승인매입일", + "approvalRejectCount": "승인반송(횟수)", + "approvalRepurchaseCount": "승인재매입(횟수)", + "approvalVAN": "승인VAN", + "cancelPurchase": "취소매입", + "cancelPurchaseDate": "취소매입", + "cancelRejectCount": "취소반송(횟수)", + "cancelRepurchaseCount": "취소재매입(횟수)", + "purchaseVan": "매입VAN", + "purchaseCompany": "매입사(발급사)", + "cardNo": "카드번호", + "approvalNo": "승인번호", + "authentication": "인증", + "joinType": "유형", + "bankName": "은행명", + "bank": "은행", + "accountNo": "계좌번호", + "refundCompleteDate": "환불완료일", + "customerId": "고객ID", + "culturelandId": "컬처랜드ID", + "partner": "제휴사", + "cpid": "CPID", + "goodsCategory": "상품구분", + "cellphoneNo": "휴대폰번호", + "giftCardNumber": "상품권번호", + "depositBankName": "입금금융기관명", + "depositorName": "입금자명", + "depositDeadline": "입금기한", + "depositDate": "입금일", + "refundScheduleDate": "환불예정일", + "refundBankName": "환불은행명", + "refundAccountNo": "환불계좌번호", + "accountHolder": "예금주", + "buyerEmail": "이메일", + "buyerTel": "전화번호", + "cancelReason": "취소사유", + "cancelRequestor": "취소요청자", + "partialCancel": "부분취소", + "cashReceiptIssue": "현금영수증발행", + "approvalSettlementDate": "승인정산일", + "approvalSettlementAmount": "승인정산금액", + "cancelSettlementDate": "취소정산일", + "cancelSettlementAmount": "취소정산금액", + "companyName": "상호", + "gid": "GID", + "aid": "AID", + "mid": "MID", + "transactionRequestAmount": "거래요청금액", + "approvalRequestAmount": "승인요청금액", + "transactionAmount": "거래금액", + "creditCardAmount": "신용카드금액", + "cardAmount": "신용카드금액", + "pointAmount": "포인트금액", + "couponAmount": "쿠폰금액", + "escrowFee": "에스크로수수료", + "kakaoMoneyAmount": "카카오머니", + "kakaoPointAmount": "카카오포인트", + "kakaoDiscountAmount": "카카오 즉시할인", + "naverPointAmount": "네이버포인트", + "tossMoneyAmount": "토스머니", + "tossDiscountAmount": "토스할인", + "paycoPointAmount": "페이코포인트", + "paycoCouponAmount": "페이코쿠폰", + "supplyAmount": "공급가액", + "vat": "VAT", + "serviceAmount": "봉사료", + "taxFreeAmount": "면세금액", + "amount": "금액", + "totalBalance": "총 잔액", + "totalCancelAmount": "총 취소금액", + "customerName": "고객명", + "transactionConfirmation": "거래 확인서" + }, + "handWrittenIssuance": { + "step1Title": "발행 정보 입력", + "step2Title": "발행 금액 입력", + "businessNumber": "사업자 번호", + "incomeDeduction": "소득공제", + "expenseProof": "지출증빙", + "productNamePlaceholder": "상품명", + "buyerNamePlaceholder": "구매자명", + "issueNumberPlaceholder": "사업자번호 OR 휴대폰번호", + "emailPlaceholder": "TEST123@nicepay.com", + "phoneNumberPlaceholder": "01012345678", + "issueAmount": "발행금액", + "vatAutoCalc": "VAT자동계산", + "errorMessage": "발행금액은 공급가액 VAT,면세금액, 봉사료의 총합과 같아야 합니다." + }, + "list": { + "paymentRequest": "결제신청", + "manualIssuance": "수기발행", + "separator": "|" + }, + "cancel": { + "bankGroup": { + "select": "선택", + "notice": "환불은 입력한 계좌정보로 별도 확인 절차없이 지급됩니다.\n입력 정보를 한번 더 확인해 주세요." + }, + "passwordGroup": { + "cancelPassword": "취소 비밀번호", + "passwordMismatch": "비밀번호 불일치" + }, + "afterDeposit": { + "title": "거래취소(입금 후 취소)", + "notice": "요청하신 거래취소는 입금 후 취소처리 가능합니다.", + "cancelTransactionTitle": "취소거래내역", + "approvalAmount": "승인금액", + "depositRequestAmount": "입금요청금액", + "depositInfoTitle": "입금 정보", + "guide1": "[취소요청] 버튼을 통해 취소 요청을 진행해야 접수됩니다.", + "guide2": "입금자명은 가맹점 상호로 입력해 주세요.", + "guide3": "입금요청금액과 동일한 금액을 입금해야 취소가 진행됩니다.", + "guide4": "취소내역은 최대 3일 이후 확인 가능합니다.", + "guide5": "입금 후 취소 프로세스 :\n가맹점의 취소요청 -> 가맹점의입금 -> 입금 확인 -> 취소 처리", + "guide6": "정산받지 않은 거래인 경우 service@nicepay.co.kr로 거래내역을 발송바랍니다. (단. 정산예정일이 2일 이상 남은 거래에 한함)" + }, + "partCancel": { + "balance": "잔액", + "cancelAmount": "취소금액", + "taxableAmount": "과세액", + "taxAmount": "부가세", + "taxFree": "면세", + "serviceFee": "봉사료" + } + } }, "cashReceipt": { "title": "현금영수증",