From e067fc8d4f1cef5a0fbb5410504fafe1f4a1cda1 Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Thu, 30 Oct 2025 16:14:25 +0900 Subject: [PATCH] Add comprehensive i18n localization to transaction UI components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../ui/all-transaction-all-cancel.tsx | 11 +- .../all-transaction-cancel-prevent-bond.tsx | 54 ++--- .../ui/all-transaction-part-cancel.tsx | 34 +-- src/entities/transaction/ui/billing-list.tsx | 12 +- ...sh-receipt-hand-written-issuance-step1.tsx | 44 ++-- ...sh-receipt-hand-written-issuance-step2.tsx | 21 +- .../transaction/ui/cash-receipt-list.tsx | 12 +- ...ash-receit-purpose-update-bottom-sheet.tsx | 22 +- .../ui/escrow-mail-resend-bottom-sheet.tsx | 26 ++- src/entities/transaction/ui/list-item.tsx | 18 +- ...-transaction-cancel-section-bank-group.tsx | 26 ++- ...nsaction-cancel-section-password-group.tsx | 12 +- .../ui/section/amount-info-section.tsx | 127 +++++------ .../ui/section/billing-info-section.tsx | 38 ++-- .../ui/section/detail-info-section.tsx | 24 +- .../ui/section/escrow-info-section.tsx | 26 ++- .../ui/section/important-info-section.tsx | 48 ++-- .../ui/section/issue-info-section.tsx | 20 +- .../ui/section/merchant-info-section.tsx | 12 +- .../ui/section/part-cancel-info-section.tsx | 18 +- .../ui/section/payment-info-section.tsx | 134 +++++------ .../ui/section/settlement-info-section.tsx | 34 +-- .../ui/section/transaction-info-section.tsx | 40 ++-- src/locales/en.json | 209 +++++++++++++++++- src/locales/ko.json | 209 +++++++++++++++++- 25 files changed, 847 insertions(+), 384 deletions(-) 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 ( <>
  • - ยท  ์ด ์ž”์•ก + ยท  {t('transaction.fields.totalBalance')}
  • - ยท  ์ด ์ทจ์†Œ๊ธˆ์•ก + ยท  {t('transaction.fields.totalCancelAmount')} diff --git a/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx b/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx index 4ca0519..0175a59 100644 --- a/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx +++ b/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx @@ -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); const onClickToClose = () => { @@ -48,15 +50,15 @@ export const AllTransactionCancelPreventBond = ({ >
    -
    ๊ฑฐ๋ž˜์ทจ์†Œ(์ž…๊ธˆ ํ›„ ์ทจ์†Œ)
    +
    {t('transaction.cancel.afterDeposit.title')}
    - @@ -64,43 +66,43 @@ export const AllTransactionCancelPreventBond = ({
    -
    ์š”์ฒญํ•˜์‹  ๊ฑฐ๋ž˜์ทจ์†Œ๋Š” ์ž…๊ธˆ ํ›„ ์ทจ์†Œ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    -
    ์ทจ์†Œ๊ฑฐ๋ž˜๋‚ด์—ญ
    +
    {t('transaction.cancel.afterDeposit.notice')}
    +
    {t('transaction.cancel.afterDeposit.cancelTransactionTitle')}
    • -
      ยท ์Šน์ธ์ผ
      +
      ยท {t('transaction.fields.approvalDay')}
      { item?.approvalDate? moment(item?.approvalDate).format('YYYY.MM.DD'): '' }
    • -
      ยท ์Šน์ธ๋ฒˆํ˜ธ
      +
      ยท {t('transaction.fields.approvalNumber')}
      { item?.approvalNo }
    • -
      ยท ์Šน์ธ๊ธˆ์•ก
      +
      ยท {t('transaction.cancel.afterDeposit.approvalAmount')}
    • -
      ยท ์ด ์ทจ์†Œ๊ธˆ์•ก
      +
      ยท {t('transaction.fields.totalCancelAmount')}
    • -
      ยท ์ž…๊ธˆ์š”์ฒญ๊ธˆ์•ก :
      +
      ยท {t('transaction.cancel.afterDeposit.depositRequestAmount')} :
      @@ -109,40 +111,40 @@ export const AllTransactionCancelPreventBond = ({
    -
    ์ž…๊ธˆ ์ •๋ณด
    +
    {t('transaction.cancel.afterDeposit.depositInfoTitle')}
    • -
      ยท ์€ํ–‰
      +
      ยท {t('transaction.fields.bank')}
      { item?.bankName }
    • -
      ยท ๊ณ„์ขŒ๋ฒˆํ˜ธ
      +
      ยท {t('transaction.fields.accountNo')}
      { item?.accountNo }
    • -
      ยท ์˜ˆ๊ธˆ์ฃผ
      +
      ยท {t('transaction.fields.accountHolder')}
      { item?.accountName }
    -
    [์ทจ์†Œ์š”์ฒญ] ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ทจ์†Œ ์š”์ฒญ์„ ์ง„ํ–‰ํ•ด์•ผ ์ ‘์ˆ˜๋ฉ๋‹ˆ๋‹ค.
    -
    ์ž…๊ธˆ์ž๋ช…์€ ๊ฐ€๋งน์  ์ƒํ˜ธ๋กœ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
    -
    ์ž…๊ธˆ์š”์ฒญ๊ธˆ์•ก๊ณผ ๋™์ผํ•œ ๊ธˆ์•ก์„ ์ž…๊ธˆํ•ด์•ผ ์ทจ์†Œ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
    -
    ์ทจ์†Œ๋‚ด์—ญ์€ ์ตœ๋Œ€ 3์ผ ์ดํ›„ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    -
    ์ž…๊ธˆ ํ›„ ์ทจ์†Œ ํ”„๋กœ์„ธ์Šค :
    ๊ฐ€๋งน์ ์˜ ์ทจ์†Œ์š”์ฒญ -> ๊ฐ€๋งน์ ์˜์ž…๊ธˆ -> ์ž…๊ธˆ ํ™•์ธ -> ์ทจ์†Œ ์ฒ˜๋ฆฌ
    -
    ์ •์‚ฐ๋ฐ›์ง€ ์•Š์€ ๊ฑฐ๋ž˜์ธ ๊ฒฝ์šฐ service@nicepay.co.kr๋กœ ๊ฑฐ๋ž˜๋‚ด์—ญ์„ ๋ฐœ์†ก๋ฐ”๋ž๋‹ˆ๋‹ค. (๋‹จ. ์ •์‚ฐ์˜ˆ์ •์ผ์ด 2์ผ ์ด์ƒ ๋‚จ์€ ๊ฑฐ๋ž˜์— ํ•œํ•จ)
    +
    {t('transaction.cancel.afterDeposit.guide1')}
    +
    {t('transaction.cancel.afterDeposit.guide2')}
    +
    {t('transaction.cancel.afterDeposit.guide3')}
    +
    {t('transaction.cancel.afterDeposit.guide4')}
    +
    +
    - + >{t('transaction.submit')}
    diff --git a/src/entities/transaction/ui/all-transaction-part-cancel.tsx b/src/entities/transaction/ui/all-transaction-part-cancel.tsx index dde9e51..85994eb 100644 --- a/src/entities/transaction/ui/all-transaction-part-cancel.tsx +++ b/src/entities/transaction/ui/all-transaction-part-cancel.tsx @@ -3,6 +3,7 @@ import { AllTransactionCancelInfoResponse } from '../model/types'; import { NumericFormat } from 'react-number-format'; import { AllTransactionCancelSectionPasswordGroup } from './section/all-transaction-cancel-section-password-group'; import { AllTransactionCancelSectionBankGroup } from './section/all-transaction-cancel-section-bank-group'; +import { useTranslation } from 'react-i18next'; export interface AllTransactionPartCancelProps extends AllTransactionCancelInfoResponse { serviceCode: string; @@ -63,6 +64,7 @@ export const AllTransactionPartCancel = ({ totalCancelAmount, setTotalCancelAmount }: AllTransactionPartCancelProps) => { + const { t } = useTranslation(); const [cancelTotalCancelAmountReadonly, setCancelTotalCancelAmountReadonly] = useState(true); const [cancelSupplyAmountDisabled, setCancelSupplyAmountDisabled] = useState(false); const [cancelGoodsVatDisabled, setCancelGoodsVatDisabled] = useState(false); @@ -180,20 +182,20 @@ export const AllTransactionPartCancel = ({
    • - ยท  ์ด ์ž”์•ก + ยท  {t('transaction.fields.totalBalance')}
    • - ยท  ์ด ์ทจ์†Œ๊ธˆ์•ก + ยท  {t('transaction.fields.totalCancelAmount')} - ์ž”์•ก - ์ทจ์†Œ๊ธˆ์•ก + {t('transaction.cancel.partCancel.balance')} + {t('transaction.cancel.partCancel.cancelAmount')} - ๊ณผ์„ธ์•ก + {t('transaction.cancel.partCancel.taxableAmount')} + > - ๋ถ€๊ฐ€์„ธ + {t('transaction.cancel.partCancel.taxAmount')} + > - ๋ฉด์„ธ + {t('transaction.cancel.partCancel.taxFree')} @@ -281,10 +283,10 @@ export const AllTransactionPartCancel = ({ - ๋ด‰์‚ฌ๋ฃŒ + {t('transaction.cancel.partCancel.serviceFee')} diff --git a/src/entities/transaction/ui/billing-list.tsx b/src/entities/transaction/ui/billing-list.tsx index 6f35f36..e50aebd 100644 --- a/src/entities/transaction/ui/billing-list.tsx +++ b/src/entities/transaction/ui/billing-list.tsx @@ -2,12 +2,14 @@ import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { BillingListProps } from '../model/types'; import { ListDateGroup } from './list-date-group'; +import { useTranslation } from 'react-i18next'; -export const BillingList = ({ +export const BillingList = ({ transactionCategory, - listItems + listItems }: BillingListProps) => { const { navigate } = useNavigate(); + const { t } = useTranslation(); const getListDateGroup = () => { let rs = []; @@ -62,10 +64,10 @@ export const BillingList = ({ { getListDateGroup() }
    - + onClick={ () => onClickToNavigate() } + >{ t('transaction.list.paymentRequest') }
    ); diff --git a/src/entities/transaction/ui/cash-receipt-hand-written-issuance-step1.tsx b/src/entities/transaction/ui/cash-receipt-hand-written-issuance-step1.tsx index a6c27d4..46f7f3f 100644 --- a/src/entities/transaction/ui/cash-receipt-hand-written-issuance-step1.tsx +++ b/src/entities/transaction/ui/cash-receipt-hand-written-issuance-step1.tsx @@ -4,6 +4,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { CashReceiptPurposeType } from '../model/types'; import { PatternFormat } from 'react-number-format'; +import { useTranslation } from 'react-i18next'; export interface CashReceiptHandWrittenIssuanceStep1Props { businessNumber?: string; @@ -38,19 +39,20 @@ export const CashReceiptHandWrittenIssuanceStep1 = ({ setEmail, setPhoneNumber }: CashReceiptHandWrittenIssuanceStep1Props) => { + const { t } = useTranslation(); const { navigate } = useNavigate(); - + useSetOnBack(() => { navigate(PATHS.transaction.cashReceipt.list); }); return ( <> -

    ๋ฐœํ–‰ ์ •๋ณด ์ž…๋ ฅ

    +

    {t('transaction.handWrittenIssuance.step1Title')}

    -
    ์‚ฌ์—…์ž ๋ฒˆํ˜ธ
    +
    {t('transaction.handWrittenIssuance.businessNumber')}
    -
    -
    ์šฉ๋„
    +
    {t('transaction.fields.purpose')}
    + >{t('transaction.handWrittenIssuance.incomeDeduction')} + >{t('transaction.handWrittenIssuance.expenseProof')}
    -
    ์ƒํ’ˆ๋ช…
    +
    {t('transaction.fields.productName')}
    - ) => setProductName(e.target.value) } />
    -
    ๊ตฌ๋งค์ž
    +
    {t('transaction.fields.buyer')}
    - ) => setBuyerName(e.target.value) } />
    -
    ๋ฐœํ–‰๋ฒˆํ˜ธ
    +
    {t('transaction.fields.issueNumber')}
    -
    ์ด๋ฉ”์ผ ์ฃผ์†Œ
    +
    {t('account.emailAddress')}
    ) => setEmail(e.target.value) } />
    -
    ์ „ํ™”๋ฒˆํ˜ธ
    +
    {t('account.phoneNumber')}
    void; @@ -31,17 +32,19 @@ export const CashReceiptHandWrittenIssuanceStep2 = ({ setServiceCharge, onClickToVatCalculate }: CashReceiptHandWrittenIssuanceStep2Props) => { + const { t } = useTranslation(); + useSetOnBack(() => { setProcessStep(ProcessStep.One); }); - + return ( <> -

    ๋ฐœํ–‰ ๊ธˆ์•ก ์ž…๋ ฅ

    +

    {t('transaction.handWrittenIssuance.step2Title')}

    -
    ๋ฐœํ–‰๊ธˆ์•ก
    +
    {t('transaction.handWrittenIssuance.issueAmount')}
    VAT์ž๋™๊ณ„์‚ฐ + >{t('transaction.handWrittenIssuance.vatAutoCalc')}
    -
    ๊ณต๊ธ‰๊ฐ€์•ก
    +
    {t('transaction.fields.supplyAmount')}
    -
    VAT
    +
    {t('transaction.fields.vat')}
    -
    ๋ฉด์„ธ๊ธˆ์•ก
    +
    {t('transaction.fields.taxFreeAmount')}
    -
    ๋ด‰์‚ฌ๋ฃŒ
    +
    {t('transaction.fields.serviceAmount')}
    - ๋ฐœํ–‰๊ธˆ์•ก์€ ๊ณต๊ธ‰๊ฐ€์•ก VAT,๋ฉด์„ธ๊ธˆ์•ก, ๋ด‰์‚ฌ๋ฃŒ์˜ ์ดํ•ฉ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. + {t('transaction.handWrittenIssuance.errorMessage')}
    diff --git a/src/entities/transaction/ui/cash-receipt-list.tsx b/src/entities/transaction/ui/cash-receipt-list.tsx index 785212f..1b5007c 100644 --- a/src/entities/transaction/ui/cash-receipt-list.tsx +++ b/src/entities/transaction/ui/cash-receipt-list.tsx @@ -2,12 +2,14 @@ import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { CashReceiptListProps } from '../model/types'; import { ListDateGroup } from './list-date-group'; +import { useTranslation } from 'react-i18next'; -export const CashReceiptList = ({ +export const CashReceiptList = ({ transactionCategory, - listItems + listItems }: CashReceiptListProps) => { const { navigate } = useNavigate(); + const { t } = useTranslation(); const getListDateGroup = () => { let rs = []; @@ -62,10 +64,10 @@ export const CashReceiptList = ({ { getListDateGroup() }
    - + onClick={ () => onClickToNavigate() } + >{ t('transaction.list.manualIssuance') }
    ); diff --git a/src/entities/transaction/ui/cash-receit-purpose-update-bottom-sheet.tsx b/src/entities/transaction/ui/cash-receit-purpose-update-bottom-sheet.tsx index 19cf6f3..3bc0b04 100644 --- a/src/entities/transaction/ui/cash-receit-purpose-update-bottom-sheet.tsx +++ b/src/entities/transaction/ui/cash-receit-purpose-update-bottom-sheet.tsx @@ -1,6 +1,7 @@ import { BottomSheetMotionDuration, BottomSheetMotionVaiants } from '@/entities/common/model/constant'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { motion } from 'framer-motion'; +import { useTranslation } from 'react-i18next'; export interface CashReceitPurposeUpdateBottomSheetProps { bottomSheetOn: boolean; @@ -13,20 +14,21 @@ export const CashReceitPurposeUpdateBottomSheet = ({ setBottomSheetOn, callPurposeUpdate }: CashReceitPurposeUpdateBottomSheetProps) => { - + const { t } = useTranslation(); + const onClickToClose = () => { setBottomSheetOn(false); }; const onCliickToPurposeUpdate = () => { callPurposeUpdate(); }; - + return ( <> { (bottomSheetOn) &&
    } -
    -

    ํ˜„๊ธˆ์˜์ˆ˜์ฆ ์šฉ๋„ ๋ณ€๊ฒฝ ์•ˆ๋‚ด

    +

    { t('transaction.bottomSheet.cashReceiptPurposeUpdate.title') }

    @@ -51,10 +53,10 @@ export const CashReceitPurposeUpdateBottomSheet = ({
    -

    ํ˜„๊ธˆ์˜์ˆ˜์ฆ์˜ ์šฉ๋„ ๋ณ€๊ฒฝ ์‹œ ๊ธฐ์กด ๋ฐœ๊ธ‰ ๋‚ด์—ญ์ด ์ทจ์†Œ๋˜๋ฉฐ, ์„ ํƒํ•œ ์šฉ๋„์— ๋งž๊ฒŒ ์ƒˆ๋กœ ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค.

    +

    { t('transaction.bottomSheet.cashReceiptPurposeUpdate.description') }

      -
    • ์ง€์ถœ์ฆ๋น™์šฉ โ†’ ์†Œ๋“๊ณต์ œ์šฉ
    • -
    • ์†Œ๋“๊ณต์ œ์šฉ โ†’ ์ง€์ถœ์ฆ๋น™์šฉ
    • +
    • { t('transaction.bottomSheet.cashReceiptPurposeUpdate.expenseToIncome') }
    • +
    • { t('transaction.bottomSheet.cashReceiptPurposeUpdate.incomeToExpense') }
    @@ -64,7 +66,7 @@ export const CashReceitPurposeUpdateBottomSheet = ({ className="btn-50 btn-blue flex-1" type="button" onClick={ () => onCliickToPurposeUpdate() } - >์‹ ์ฒญ + >{ t('transaction.submit') }
    diff --git a/src/entities/transaction/ui/escrow-mail-resend-bottom-sheet.tsx b/src/entities/transaction/ui/escrow-mail-resend-bottom-sheet.tsx index 380cde3..8a98b18 100644 --- a/src/entities/transaction/ui/escrow-mail-resend-bottom-sheet.tsx +++ b/src/entities/transaction/ui/escrow-mail-resend-bottom-sheet.tsx @@ -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) &&
    } -
    -

    ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์„ ํƒํ•˜์„ธ์š”

    +

    { t('transaction.bottomSheet.escrowMailResend.title') }

    @@ -60,24 +62,24 @@ export const EscrowMailResendBottomSheet = ({
    ๋ฉ”์ผ
    - ๋ฉ”์ผ๋กœ ๋ฐ›๊ธฐ + { t('transaction.bottomSheet.escrowMailResend.mailLabel') }
    - +
    - +
    -

    ๋“ฑ๋ก๋œ ๋ฉ”์ผ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    ์ด๋ฉ”์ผ ์ธ์ฆ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž๊ด€๋ฆฌ ๋ฉ”๋‰ด์—์„œ ์ถ”๊ฐ€ ํ›„ ์‹ ์ฒญํ•˜์„ธ์š”.

    +

    { t('transaction.bottomSheet.escrowMailResend.errorNoEmail') }

    @@ -87,7 +89,7 @@ export const EscrowMailResendBottomSheet = ({ className="btn-50 btn-blue flex-1" type="button" onClick={ () => onClickToMailResend() } - >์‹ ์ฒญ + >{ t('transaction.submit') }
    diff --git a/src/entities/transaction/ui/list-item.tsx b/src/entities/transaction/ui/list-item.tsx index c1f8964..1211681 100644 --- a/src/entities/transaction/ui/list-item.tsx +++ b/src/entities/transaction/ui/list-item.tsx @@ -5,6 +5,7 @@ import { ListItemProps, TransactionCategory } from '../model/types'; import moment from 'moment'; import { useStore } from '@/shared/model/store'; import { AllTracsactionStatusCode } from '../model/contant'; +import { useTranslation } from 'react-i18next'; export const ListItem = ({ transactionCategory, @@ -12,12 +13,13 @@ export const ListItem = ({ installmentMonth, serviceName, serviceCode, serviceDetailName, goodsAmount, amount, customerName, issueNumber, approvalNumber, - paymentMethod, processResult, transactionType, + paymentMethod, processResult, transactionType, transactionDateTime, transactionAmount, - deliveryStatus, settlementStatus, + deliveryStatus, settlementStatus, cancelStatus, billKey, orderNumber }: ListItemProps) => { const { navigate } = useNavigate(); + const { t } = useTranslation(); const getItemClass = () => { let rs = ''; if(statusCode === '0'){ @@ -78,7 +80,7 @@ export const ListItem = ({ }); } else{ - alert('pageType ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.'); + alert(t('common.error')); } }; @@ -163,7 +165,7 @@ export const ListItem = ({ (!!installmentMonth && parseInt(installmentMonth) > 1) && <> | - { installmentMonth }๊ฐœ์›” ํ• ๋ถ€ + { t('transaction.fields.installmentMonthly', { count: installmentMonth }) } }
    @@ -196,7 +198,7 @@ export const ListItem = ({ (!!installmentMonth && parseInt(installmentMonth) > 1) && <> | - { installmentMonth }๊ฐœ์›” ํ• ๋ถ€ + { t('transaction.fields.installmentMonthly', { count: installmentMonth }) } }
    @@ -231,11 +233,11 @@ export const ListItem = ({
    + suffix={ t('home.currencyWon') } + >
    diff --git a/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx b/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx index bb65fe8..cf1e5c6 100644 --- a/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx +++ b/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { useStore } from "@/shared/model/store"; import { ChangeEvent, useState } from "react"; @@ -17,6 +18,7 @@ export const AllTransactionCancelSectionBankGroup = ({ accountHolder, setAccountHolder }: AllTransactionCancelSectionBankGroupProps ) => { + const { t } = useTranslation(); let bankList = useStore.getState().CommonStore.virtualBankList; bankList = bankList.filter((value, index) => value.code1 !== '****'); @@ -37,14 +39,14 @@ export const AllTransactionCancelSectionBankGroup = ({ return ( <>
    - +
    - ) => onChangeNewAccountNo(e.target.value) } /> @@ -66,11 +68,11 @@ export const AllTransactionCancelSectionBankGroup = ({
    - +
    - ) => onChangeNewAccountHolder(e.target.value) } /> @@ -78,7 +80,7 @@ export const AllTransactionCancelSectionBankGroup = ({
    -

    ํ™˜๋ถˆ์€ ์ž…๋ ฅํ•œ ๊ณ„์ขŒ์ •๋ณด๋กœ ๋ณ„๋„ ํ™•์ธ ์ ˆ์ฐจ์—†์ด ์ง€๊ธ‰๋ฉ๋‹ˆ๋‹ค.
    ์ž…๋ ฅ ์ •๋ณด๋ฅผ ํ•œ๋ฒˆ ๋” ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

    +

    {t('transaction.cancel.bankGroup.notice')}

    ); diff --git a/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx b/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx index f8c39dd..ff68d4a 100644 --- a/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx +++ b/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { ChangeEvent, useState } from "react"; export interface AllTransactionCancelSectionPasswordGroupProps { @@ -11,6 +12,7 @@ export const AllTransactionCancelSectionPasswordGroup = ({ setCancelPassword, requestSuccess }: AllTransactionCancelSectionPasswordGroupProps) => { + const { t } = useTranslation(); const [newCancelPassword, setNewCancelPassword] = useState(cancelPassword); @@ -21,18 +23,18 @@ export const AllTransactionCancelSectionPasswordGroup = ({ return ( <>
    - +
    - ) => onChangeNewCancelPassword(e.target.value) } />
    { !requestSuccess && -
    ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถˆ์ผ์น˜
    +
    {t('transaction.cancel.passwordGroup.passwordMismatch')}
    } ); diff --git a/src/entities/transaction/ui/section/amount-info-section.tsx b/src/entities/transaction/ui/section/amount-info-section.tsx index d762e57..6951e3d 100644 --- a/src/entities/transaction/ui/section/amount-info-section.tsx +++ b/src/entities/transaction/ui/section/amount-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 { useDownloadConfirmationMutation } from '../../api/use-download-confirmation-mutation'; @@ -7,7 +8,7 @@ import { SlideDown } from 'react-slidedown'; import 'react-slidedown/lib/slidedown.css'; export const AmountInfoSection = ({ - transactionCategory, + transactionCategory, amountInfo, isOpen, tid, @@ -15,23 +16,24 @@ export const AmountInfoSection = ({ onClickToOpenInfo, canDownloadReceipt }: InfoSectionProps) => { + const { t } = useTranslation(); const { mutateAsync: downloadConfirmation } = useDownloadConfirmationMutation(); let newAmountInfo: Record | undefined = amountInfo; const subItems: Record> = { - mid: {name: 'MID', type: 'string'}, - transactionRequestAmount: {name: '๊ฑฐ๋ž˜์š”์ฒญ๊ธˆ์•ก', type: 'number'}, - transactionAmount: {name: '๊ฑฐ๋ž˜๊ธˆ์•ก', type: 'number'}, - pointAmount: {name: 'ํฌ์ธํŠธ๊ธˆ์•ก', type: 'number'}, - couponAmount: {name: '์ฟ ํฐ๊ธˆ์•ก', type: 'number'}, - escrowFee: {name: '์—์Šคํฌ๋กœ์ˆ˜์ˆ˜๋ฃŒ', type: 'number'}, - kakaoMoneyAmount: {name: '์นด์นด์˜ค๋จธ๋‹ˆ', type: 'number'}, - kakaoPointAmount: {name: '์นด์นด์˜คํฌ์ธํŠธ', type: 'number'}, - kakaoDiscountAmount: {name: '์นด์นด์˜ค ์ฆ‰์‹œํ• ์ธ', type: 'number'}, - naverPointAmount: {name: '๋„ค์ด๋ฒ„ ํฌ์ธํŠธ', type: 'number'}, - tossMoneyAmount: {name: 'ํ† ์Šค๋จธ๋‹ˆ', type: 'number'}, - tossDiscountAmount: {name: 'ํ† ์Šคํ• ์ธ', type: 'number'}, - paycoPointAmount: {name: 'ํŽ˜์ด์ฝ”ํฌ์ธํŠธ', type: 'number'}, - paycoCouponAmount: {name: 'ํŽ˜์ด์ฝ”์ฟ ํฐ', type: 'number'}, + mid: {name: t('transaction.fields.mid'), type: 'string'}, + transactionRequestAmount: {name: t('transaction.fields.transactionRequestAmount'), type: 'number'}, + transactionAmount: {name: t('transaction.fields.transactionAmount'), type: 'number'}, + pointAmount: {name: t('transaction.fields.pointAmount'), type: 'number'}, + couponAmount: {name: t('transaction.fields.couponAmount'), type: 'number'}, + escrowFee: {name: t('transaction.fields.escrowFee'), type: 'number'}, + kakaoMoneyAmount: {name: t('transaction.fields.kakaoMoneyAmount'), type: 'number'}, + kakaoPointAmount: {name: t('transaction.fields.kakaoPointAmount'), type: 'number'}, + kakaoDiscountAmount: {name: t('transaction.fields.kakaoDiscountAmount'), type: 'number'}, + naverPointAmount: {name: t('transaction.fields.naverPointAmount'), type: 'number'}, + tossMoneyAmount: {name: t('transaction.fields.tossMoneyAmount'), type: 'number'}, + tossDiscountAmount: {name: t('transaction.fields.tossDiscountAmount'), type: 'number'}, + paycoPointAmount: {name: t('transaction.fields.paycoPointAmount'), type: 'number'}, + paycoCouponAmount: {name: t('transaction.fields.paycoCouponAmount'), type: 'number'}, }; const openSubItems: Record> = { @@ -134,13 +136,14 @@ export const AmountInfoSection = ({ let k = openSubItems[serviceCode][i]; if(!!k){ let name = subItems[k]?.name; - + + if(serviceCode === '01'){ if(k === 'transactionAmount'){ - name = '์‹ ์šฉ์นด๋“œ๊ธˆ์•ก' + name = t('transaction.fields.cardAmount') } if(k === 'transactionRequestAmount'){ - name = '์Šน์ธ์š”์ฒญ๊ธˆ์•ก'; + name = t('transaction.fields.approvalRequestAmount'); } } @@ -223,12 +226,12 @@ export const AmountInfoSection = ({ } ์›
    -
    @@ -239,43 +242,43 @@ export const AmountInfoSection = ({ { (transactionCategory === TransactionCategory.AllTransaction) && subLi() } - { (transactionCategory === TransactionCategory.CashReceipt) && + { (transactionCategory === TransactionCategory.CashReceipt) && <>
  • - ยท  ๊ณต๊ธ‰๊ฐ€์•ก + ยท  {t('transaction.fields.supplyAmount')}
  • - ยท  VAT + ยท  {t('transaction.fields.vat')}
  • - ยท  ๋ด‰์‚ฌ๋ฃŒ + ยท  {t('transaction.fields.serviceAmount')}
  • - ยท  ๋ฉด์„ธ๊ธˆ์•ก + ยท  {t('transaction.fields.taxFreeAmount')} @@ -283,47 +286,47 @@ export const AmountInfoSection = ({
  • } - { (transactionCategory === TransactionCategory.Escrow) && + { (transactionCategory === TransactionCategory.Escrow) && <> { (serviceCode === '02' || serviceCode === '03') &&
  • - ยท  ๊ฑฐ๋ž˜๊ธˆ์•ก + ยท  {t('transaction.fields.transactionAmount')}
  • } - { (serviceCode === '01') && + { (serviceCode === '01') && <>
  • - ยท  ์‹ ์šฉ์นด๋“œ๊ธˆ์•ก + ยท  {t('transaction.fields.cardAmount')}
  • - ยท  ํฌ์ธํŠธ๊ธˆ์•ก + ยท  {t('transaction.fields.pointAmount')}
  • - ยท  ์ฟ ํฐ๊ธˆ์•ก + ยท  {t('transaction.fields.couponAmount')} @@ -333,10 +336,10 @@ export const AmountInfoSection = ({ } { (serviceCode === '01' || serviceCode === '02') &&
  • - ยท  ์—์Šคํฌ๋กœ์ˆ˜์ˆ˜๋ฃŒ + ยท  {t('transaction.fields.escrowFee')} @@ -348,30 +351,30 @@ export const AmountInfoSection = ({ { (amountInfo?.simplePaymentServiceCode === 'E016') && <>
  • - ยท  ์นด์นด์˜ค๋จธ๋‹ˆ + ยท  {t('transaction.fields.kakaoMoneyAmount')}
  • - ยท  ์นด์นด์˜คํฌ์ธํŠธ + ยท  {t('transaction.fields.kakaoPointAmount')}
  • - ยท  ์นด์นด์˜ค์ฆ‰์‹œํ• ์ธ + ยท  {t('transaction.fields.kakaoDiscountAmount')} @@ -381,10 +384,10 @@ export const AmountInfoSection = ({ } { (amountInfo?.simplePaymentServiceCode === 'E020') &&
  • - ยท  ๋„ค์ด๋ฒ„ํฌ์ธํŠธ + ยท  {t('transaction.fields.naverPointAmount')} @@ -394,20 +397,20 @@ export const AmountInfoSection = ({ { (amountInfo?.simplePaymentServiceCode === 'E025') && <>
  • - ยท  ํ† ์Šค๋จธ๋‹ˆ + ยท  {t('transaction.fields.tossMoneyAmount')}
  • - ยท  ํ† ์Šคํ• ์ธ + ยท  {t('transaction.fields.tossDiscountAmount')} @@ -418,20 +421,20 @@ export const AmountInfoSection = ({ { (amountInfo?.simplePaymentServiceCode === 'E015') && <>
  • - ยท  ํŽ˜์ด์ฝ”ํฌ์ธํŠธ + ยท  {t('transaction.fields.paycoPointAmount')}
  • - ยท  ํŽ˜์ด์ฝ”์ฟ ํฐ + ยท  {t('transaction.fields.paycoCouponAmount')} @@ -460,13 +463,13 @@ export const AmountInfoSection = ({ }
    { - (transactionCategory === TransactionCategory.CashReceipt) && + (transactionCategory === TransactionCategory.CashReceipt) && !!canDownloadReceipt && - + >{t('transaction.fields.transactionConfirmation')} }
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') }
    • - ๋นŒํ‚ค + { t('transaction.fields.billKey') } { billingInfo?.billKey }
    • - TID + { t('transaction.fields.tid') } { billingInfo?.tid }
    • - ์ฃผ๋ถ„๋ฒˆํ˜ธ + { t('transaction.fields.orderNumber') } { billingInfo?.orderNumber }
    • - ์Šน์ธ๋ฒˆํ˜ธ + { t('transaction.fields.approvalNumber') } { billingInfo?.approvalNumber }
    • - ์Šน์ธ์ผ์ž + { t('transaction.fields.approvalDate') } { moment(billingInfo?.approvalDate).format('YYYY.MM.DD') }
    • - ์š”์ฒญ์ƒํƒœ + { t('transaction.fields.requestStatus') } { billingInfo?.requestStatus }
    • - ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ + { t('transaction.fields.processResult') } { billingInfo?.processResult }
    • { getInstallmentMonth() }
    • - ์ƒํ’ˆ๋ช… + { t('transaction.fields.productName') } { billingInfo?.productName }
    • - ๊ตฌ๋งค์ž + { t('transaction.fields.buyer') } { billingInfo?.buyerName }
    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": "ํ˜„๊ธˆ์˜์ˆ˜์ฆ",