From 04dc3a9ebb273517b448d4e1d40272e13cec468e Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Mon, 3 Nov 2025 15:42:27 +0900 Subject: [PATCH 1/7] =?UTF-8?q?SMS=20=EA=B2=B0=EC=A0=9C=20=ED=86=B5?= =?UTF-8?q?=EB=B3=B4=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=A7=80=EC=9B=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SMS 결제 통보 관련 컴포넌트에 i18n 적용 - 한글/영문 번역 키 추가 (ko.json, en.json) - sms-payment-detail-resend, sms-payment-filter, sms-payment-page 현지화 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../sms-payment/sms-payment-detail-resend.tsx | 26 ++++++++++--------- .../ui/sms-payment/sms-payment-filter.tsx | 22 +++++++++------- src/locales/en.json | 9 ++++++- src/locales/ko.json | 9 ++++++- .../sms-payment/sms-payment-page.tsx | 4 ++- 5 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/entities/additional-service/ui/sms-payment/sms-payment-detail-resend.tsx b/src/entities/additional-service/ui/sms-payment/sms-payment-detail-resend.tsx index f146806..ea4a4f3 100644 --- a/src/entities/additional-service/ui/sms-payment/sms-payment-detail-resend.tsx +++ b/src/entities/additional-service/ui/sms-payment/sms-payment-detail-resend.tsx @@ -1,4 +1,5 @@ import { motion } from 'framer-motion'; +import { useTranslation } from 'react-i18next'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { SmsPaymentDetailResendProps } from '../../../additional-service/model/sms-payment/types'; import { useExtensionSmsResendMutation } from '../../api/sms-payment/use-extension-sms-resend-mutation'; @@ -12,7 +13,8 @@ export const SmsPaymentDetailResend = ({ mid, tid }: SmsPaymentDetailResendProps) => { - + const { t } = useTranslation(); + const variants = { hidden: { y: '100%' }, visible: { y: '0%' }, @@ -32,13 +34,13 @@ export const SmsPaymentDetailResend = ({ sendMessage: smsDetailData.sendMessage }).then((rs) => { if (rs.status) { - snackBar("SMS 발송을 성공하였습니다.") + snackBar(t('additionalService.sms.sendSuccess')) } else { - snackBar(`[실패] ${rs.error?.message}`) + snackBar(t('additionalService.sms.sendFailed', { message: rs.error?.message })) } setBottomSmsPaymentDetailResendOn(false); }).catch((error) => { - snackBar(`[실패] ${error?.response?.data?.message || error?.response?.data?.error?.message}` || '[실패] 신청을 실패하였습니다.') + snackBar(t('additionalService.sms.sendFailed', { message: error?.response?.data?.message || error?.response?.data?.error?.message }) || t('additionalService.sms.sendFailedGeneric')) }); } @@ -61,22 +63,22 @@ export const SmsPaymentDetailResend = ({ >
-

SMS 상세 & 재발송

-
-
발신자(번호) : {smsDetailData?.senderName || '-'}({smsDetailData?.senderNumber || '-'})
-
수신자(번호) : {smsDetailData?.receiverName || '-'}({smsDetailData?.receiverNumber || '-'})
+
{t('additionalService.sms.sender')} : {smsDetailData?.senderName || '-'}({smsDetailData?.senderNumber || '-'})
+
{t('additionalService.sms.receiver')} : {smsDetailData?.receiverName || '-'}({smsDetailData?.receiverNumber || '-'})

{smsDetailData?.sendMessage || '-'}

@@ -88,7 +90,7 @@ export const SmsPaymentDetailResend = ({ onClick={onClickResend} disabled={!smsDetailData?.sendMessage} > - 신청 + {t('common.request')}
diff --git a/src/entities/additional-service/ui/sms-payment/sms-payment-filter.tsx b/src/entities/additional-service/ui/sms-payment/sms-payment-filter.tsx index 2770560..2be3ee0 100644 --- a/src/entities/additional-service/ui/sms-payment/sms-payment-filter.tsx +++ b/src/entities/additional-service/ui/sms-payment/sms-payment-filter.tsx @@ -1,4 +1,5 @@ import moment from 'moment'; +import { useTranslation } from 'react-i18next'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { motion } from 'framer-motion'; import { useState } from 'react'; @@ -28,6 +29,7 @@ export const SmsPaymentFilter = ({ setToDate, setSmsCl }: SmsPaymentFilterProps) => { + const { t } = useTranslation(); const [filterMid, setFilterMid] = useState(mid); const [filterSearchCl, setFilterSearchCl] = useState(searchCl); @@ -52,14 +54,14 @@ export const SmsPaymentFilter = ({ ]; let searchTypeOption = [ - { name: '주문자', value: SmsPaymentSearchCl.BUYER_NAME }, - { name: '수신번호', value: SmsPaymentSearchCl.RECEIVE_PHONE_NUMBER }, + { name: t('transaction.fields.buyerName'), value: SmsPaymentSearchCl.BUYER_NAME }, + { name: t('additionalService.sms.receivePhoneNumber'), value: SmsPaymentSearchCl.RECEIVE_PHONE_NUMBER }, ] let smsTypeOption = [ - { name: '전체', value: SmsCl.ALL }, - { name: '가상계좌\n요청', value: SmsCl.VACCOUNT_REQ }, - { name: '가상계좌\n요청+입금', value: SmsCl.VACCOUNT_REQ_DEPOSIT }, + { name: t('additionalService.sms.all'), value: SmsCl.ALL }, + { name: t('additionalService.sms.virtualAccountReqShort'), value: SmsCl.VACCOUNT_REQ }, + { name: t('additionalService.sms.virtualAccountReqDepositShort'), value: SmsCl.VACCOUNT_REQ_DEPOSIT }, ] const onClickToClose = () => { @@ -78,7 +80,7 @@ export const SmsPaymentFilter = ({ >
-
필터
+
{t('filter.filter')}
onClickToSetFilter()} - >적용 + >{t('filter.apply')}
diff --git a/src/locales/en.json b/src/locales/en.json index c5dfca0..8c49315 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -876,6 +876,7 @@ "canceled": "Canceled" }, "sms": { + "title": "SMS Payment Notification", "virtualAccountRequest": "Virtual Account Request", "virtualAccountRequestDeposit": "Virtual Account Request + Deposit", "smsDetailAndResend": "SMS Details & Resend", @@ -883,7 +884,13 @@ "receiver": "Receiver (Number)", "sendSuccess": "SMS sent successfully.", "sendFailed": "[Failed] {{message}}", - "sendFailedGeneric": "[Failed] Request failed." + "sendFailedGeneric": "[Failed] Request failed.", + "all": "All", + "virtualAccountReqShort": "Virtual Account\nRequest", + "virtualAccountReqDepositShort": "Virtual Account\nRequest+Deposit", + "buyerReceiveNumber": "Buyer,Receive Number", + "receivePhoneNumber": "Receive Phone Number", + "queryResult": "Query Result" }, "linkPay": { "sendRequest": "Send Request", diff --git a/src/locales/ko.json b/src/locales/ko.json index adf1584..623c786 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -876,6 +876,7 @@ "canceled": "취소완료" }, "sms": { + "title": "SMS 결제 통보", "virtualAccountRequest": "가상계좌 요청", "virtualAccountRequestDeposit": "가상계좌 요청 + 입금", "smsDetailAndResend": "SMS 상세 & 재발송", @@ -883,7 +884,13 @@ "receiver": "수신자(번호)", "sendSuccess": "SMS 발송을 성공하였습니다.", "sendFailed": "[실패] {{message}}", - "sendFailedGeneric": "[실패] 신청을 실패하였습니다." + "sendFailedGeneric": "[실패] 신청을 실패하였습니다.", + "all": "전체", + "virtualAccountReqShort": "가상계좌\n요청", + "virtualAccountReqDepositShort": "가상계좌\n요청+입금", + "buyerReceiveNumber": "주문자,수신번호", + "receivePhoneNumber": "수신번호", + "queryResult": "조회결과" }, "linkPay": { "sendRequest": "발송요청", diff --git a/src/pages/additional-service/sms-payment/sms-payment-page.tsx b/src/pages/additional-service/sms-payment/sms-payment-page.tsx index d4330cd..5d99992 100644 --- a/src/pages/additional-service/sms-payment/sms-payment-page.tsx +++ b/src/pages/additional-service/sms-payment/sms-payment-page.tsx @@ -1,5 +1,6 @@ import moment from 'moment'; import { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { SmsPaymentDetailResend } from '@/entities/additional-service/ui/sms-payment/sms-payment-detail-resend'; @@ -25,6 +26,7 @@ import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access import useIntersectionObserver from '@/widgets/intersection-observer'; export const SmsPaymentPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); const userMid = useStore.getState().UserStore.mid; @@ -70,7 +72,7 @@ export const SmsPaymentPage = () => { onIntersect }); - useSetHeaderTitle('SMS 결제 통보'); + useSetHeaderTitle(t('additionalService.sms.title')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); useSetOnBack(() => { From e1c477f7a78a33d63d966c4121e78daa6837b9f3 Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Mon, 3 Nov 2025 15:43:39 +0900 Subject: [PATCH 2/7] =?UTF-8?q?ARS=20=EA=B2=B0=EC=A0=9C=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EC=A7=80=EC=9B=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 신용카드 ARS 결제 페이지에 i18n 적용 - 한글/영문 번역 키 추가 (ko.json, en.json) - 페이지 제목, 버튼, 레이블 현지화 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/locales/en.json | 4 +++- src/locales/ko.json | 4 +++- src/pages/additional-service/ars/list-page.tsx | 12 ++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 8c49315..e66b411 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -868,12 +868,14 @@ "agreeOrReject": "Agree/Reject Settlement" }, "ars": { + "title": "Credit Card ARS Payment", "paymentComplete": "Payment Complete", "unpaid": "Unpaid", "pendingPayment": "Pending Payment", "paymentSuccess": "Payment Success", "expired": "Expired", - "canceled": "Canceled" + "canceled": "Canceled", + "paymentRequest": "Payment Request" }, "sms": { "title": "SMS Payment Notification", diff --git a/src/locales/ko.json b/src/locales/ko.json index 623c786..e03dc51 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -868,12 +868,14 @@ "agreeOrReject": "정산 동의/거절" }, "ars": { + "title": "신용카드 ARS 결제", "paymentComplete": "결제완료", "unpaid": "미결제", "pendingPayment": "결제대기", "paymentSuccess": "결제성공", "expired": "기간만료", - "canceled": "취소완료" + "canceled": "취소완료", + "paymentRequest": "결제 신청" }, "sms": { "title": "SMS 결제 통보", diff --git a/src/pages/additional-service/ars/list-page.tsx b/src/pages/additional-service/ars/list-page.tsx index 5a49a3d..e7319b1 100644 --- a/src/pages/additional-service/ars/list-page.tsx +++ b/src/pages/additional-service/ars/list-page.tsx @@ -69,7 +69,7 @@ export const ArsListPage = () => { onIntersect }); - useSetHeaderTitle('신용카드 ARS 결제'); + useSetHeaderTitle(t('additionalService.ars.title')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); useSetOnBack(() => { @@ -248,23 +248,23 @@ export const ArsListPage = () => { />
@@ -300,7 +300,7 @@ export const ArsListPage = () => { + >{t('additionalService.ars.paymentRequest')} Date: Mon, 3 Nov 2025 15:48:27 +0900 Subject: [PATCH 3/7] =?UTF-8?q?ARS=20=EA=B2=B0=EC=A0=9C=20=EC=8B=A0?= =?UTF-8?q?=EC=B2=AD=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=8B=A4=EA=B5=AD?= =?UTF-8?q?=EC=96=B4=20=EC=A7=80=EC=9B=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 결제 신청 폼의 모든 레이블 현지화 - 페이지 제목 및 버튼 다국어 적용 - 에러 메시지 번역 처리 - 한글/영문 번역 키 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/locales/en.json | 13 +++++++- src/locales/ko.json | 13 +++++++- .../additional-service/ars/request-page.tsx | 33 ++++++++++--------- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index e66b411..255d496 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -875,7 +875,18 @@ "paymentSuccess": "Payment Success", "expired": "Expired", "canceled": "Canceled", - "paymentRequest": "Payment Request" + "paymentRequest": "Payment Request", + "merchant": "Merchant", + "orderNumber": "Order Number", + "productName": "Product Name", + "amount": "Amount", + "installmentPeriod": "Installment Period", + "lumpSum": "Lump Sum", + "buyerName": "Buyer Name", + "phoneNumber": "Phone Number", + "email": "Email", + "paymentMethod": "Payment Method", + "requestFailed": "Request failed." }, "sms": { "title": "SMS Payment Notification", diff --git a/src/locales/ko.json b/src/locales/ko.json index e03dc51..d4ecf40 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -875,7 +875,18 @@ "paymentSuccess": "결제성공", "expired": "기간만료", "canceled": "취소완료", - "paymentRequest": "결제 신청" + "paymentRequest": "결제 신청", + "merchant": "가맹점", + "orderNumber": "주문번호", + "productName": "상품명", + "amount": "금액", + "installmentPeriod": "할부기간", + "lumpSum": "일시불", + "buyerName": "구매자명", + "phoneNumber": "휴대폰 번호", + "email": "이메일", + "paymentMethod": "결제 방식", + "requestFailed": "신청을 실패하였습니다." }, "sms": { "title": "SMS 결제 통보", diff --git a/src/pages/additional-service/ars/request-page.tsx b/src/pages/additional-service/ars/request-page.tsx index 84b4213..cb71a61 100644 --- a/src/pages/additional-service/ars/request-page.tsx +++ b/src/pages/additional-service/ars/request-page.tsx @@ -1,4 +1,5 @@ import { ChangeEvent, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { PATHS } from '@/shared/constants/paths'; import { useLocation } from 'react-router'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; @@ -18,6 +19,7 @@ import { snackBar } from '@/shared/lib'; import { NumericFormat, PatternFormat } from 'react-number-format'; export const ArsRequestPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); const location = useLocation(); @@ -39,7 +41,7 @@ export const ArsRequestPage = () => { const [successPageOn, setSuccessPageOn] = useState(false); const [resultMessage, setResultMessage] = useState(''); - useSetHeaderTitle('결제 신청'); + useSetHeaderTitle(t('additionalService.ars.paymentRequest')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); useSetOnBack(() => { @@ -63,12 +65,13 @@ export const ArsRequestPage = () => { if (rs.status) { setSuccessPageOn(true); } else { - const errorMessage = rs.error?.message || '신청을 실패하였습니다.'; - snackBar(`[실패] ${errorMessage}`); + const errorMessage = rs.error?.message || t('additionalService.ars.requestFailed'); + snackBar(`[${t('common.failed')}] ${errorMessage}`); } }) .catch((error) => { - snackBar(`[실패] ${error?.response?.data?.message || error?.response?.data?.error?.message}` || '[실패] 신청을 실패하였습니다.') + const errorMsg = error?.response?.data?.message || error?.response?.data?.error?.message || t('additionalService.ars.requestFailed'); + snackBar(`[${t('common.failed')}] ${errorMsg}`); }) }; @@ -127,7 +130,7 @@ export const ArsRequestPage = () => {
-
가맹점 *
+
{t('additionalService.ars.merchant')} *
{
-
상품명 *
+
{t('additionalService.ars.productName')} *
{
-
금액 *
+
{t('additionalService.ars.amount')} *
{
-
할부기간 *
+
{t('additionalService.ars.installmentPeriod')} *
-
구매자명 *
+
{t('additionalService.ars.buyerName')} *
{
-
휴대폰 번호 *
+
{t('additionalService.ars.phoneNumber')} *
{
-
이메일
+
{t('additionalService.ars.email')}
{
-
결제 방식 *
+
{t('additionalService.ars.paymentMethod')} *
{getArsPaymentMethodBtns()}
@@ -253,7 +256,7 @@ export const ArsRequestPage = () => { className="btn-50 btn-blue flex-1" onClick={() => onClickToRequest()} disabled={!isFormValid()} - >결제 신청 + >{t('additionalService.ars.paymentRequest')}
From 405b6f1e3834ec8f7ae357d1f09ef2411ad7dfa7 Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Mon, 3 Nov 2025 15:58:16 +0900 Subject: [PATCH 4/7] =?UTF-8?q?=EB=A7=81=ED=81=AC=EA=B2=B0=EC=A0=9C=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EC=A7=80=EC=9B=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 링크결제 신청, 확인, 완료 페이지 현지화 - 메시지 미리보기 텍스트 번역 - 에러 메시지 및 버튼 다국어 적용 - 한글/영문 번역 키 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/locales/en.json | 9 ++++++ src/locales/ko.json | 9 ++++++ .../apply/link-payment-apply-confirm-page.tsx | 32 +++++++++---------- .../apply/link-payment-apply-page.tsx | 10 +++--- .../apply/link-payment-apply-success-page.tsx | 12 ++++--- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 255d496..7261a68 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1043,6 +1043,15 @@ "applyTitle": "Link Payment Request", "messagePreview": "Message Preview", "separateApprovalTitle": "Separate Approval Detail", + "previous": "Previous", + "next": "Next", + "requestProcessingError": "Unable to process request.", + "requestError": "An error occurred during request", + "confirmSendMessage": "Please confirm\nthe message to be sent", + "paymentRequestComplete": "Payment request has been completed.", + "merchantName": "Merchant Name", + "customerGreeting": "Hello, {buyerName}!", + "paymentGuideMessage": "NICEPAYMENTS Co., Ltd. is notifying you\nof the payment details.\nYou can check the details and proceed with payment by accessing the URL below.", "resendSuccess": "Resend successful.", "resendFailed": "Resend failed.", "resendError": "An error occurred during resend.", diff --git a/src/locales/ko.json b/src/locales/ko.json index d4ecf40..7f4b92f 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1043,6 +1043,15 @@ "applyTitle": "링크결제 신청", "messagePreview": "메시지 미리보기", "separateApprovalTitle": "분리승인 상세", + "previous": "이전", + "next": "다음", + "requestProcessingError": "요청을 처리할 수 없습니다.", + "requestError": "요청 중 오류가 발생했습니다", + "confirmSendMessage": "발송 메시지를\n최종 확인하세요", + "paymentRequestComplete": "결제 신청이 완료되었습니다.", + "merchantName": "가맹점 상호", + "customerGreeting": "{buyerName} 고객님, 안녕하세요?", + "paymentGuideMessage": "나이스페이먼츠 주식회사에서\n결제하실 내역 안내드립니다.\n아래 URL로 접속하시면 상세 내역 확인과 결제 진행이 가능합니다.", "resendSuccess": "재발송을 성공하였습니다.", "resendFailed": "재발송을 실패하였습니다.", "resendError": "재발송 중 오류가 발생했습니다.", diff --git a/src/pages/additional-service/link-payment/apply/link-payment-apply-confirm-page.tsx b/src/pages/additional-service/link-payment/apply/link-payment-apply-confirm-page.tsx index 4381a08..59d17b0 100644 --- a/src/pages/additional-service/link-payment/apply/link-payment-apply-confirm-page.tsx +++ b/src/pages/additional-service/link-payment/apply/link-payment-apply-confirm-page.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { HeaderType } from '@/entities/common/model/types'; import { useSetFooterMode, useSetHeaderTitle, useSetHeaderType } from '@/widgets/sub-layout/use-sub-layout'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; @@ -9,13 +10,14 @@ import { ExtensionLinkPayRequestParams, ExtensionLinkPayRequestResponse, LinkPay import { snackBar } from '@/shared/lib'; export const LinkPaymentApplyConfirmPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); const location = useLocation(); const formData: LinkPaymentFormData = location.state?.formData; const { mutateAsync: linkPayRequest } = useExtensionLinkPayRequestMutation(); - useSetHeaderTitle('메시지 미리보기'); + useSetHeaderTitle(t('additionalService.linkPayment.messagePreview')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); @@ -53,16 +55,16 @@ export const LinkPaymentApplyConfirmPage = () => { navigate(PATHS.additionalService.linkPayment.confirmSuccess); } else { // 일반 에러 메시지 - const errorMessage = rs.error?.message || '요청을 처리할 수 없습니다.'; - snackBar(`[실패] ${errorMessage}`); + const errorMessage = rs.error?.message || t('additionalService.linkPayment.requestProcessingError'); + snackBar(`[${t('common.failed')}] ${errorMessage}`); } }) .catch((error) => { // 네트워크 에러 등 예외 상황 const errorMessage = error?.response?.data?.error?.message || error?.message || - '요청 중 오류가 발생했습니다'; - snackBar(`[실패] ${errorMessage}`); + t('additionalService.linkPayment.requestError'); + snackBar(`[${t('common.failed')}] ${errorMessage}`); }); }; @@ -76,20 +78,18 @@ export const LinkPaymentApplyConfirmPage = () => {
-

발송 메시지를
최종 확인하세요

+

{t('additionalService.linkPayment.confirmSendMessage')}

- {formData.buyerName} 고객님, 안녕하세요?
- 나이스페이먼츠 주식회사에서
- 결제하실 내역 안내드립니다.
- 아래 URL로 접속하시면 상세 내역 확인과 결제 진행이 가능합니다.

+ {t('additionalService.linkPayment.customerGreeting', { buyerName: formData.buyerName })}
+ {t('additionalService.linkPayment.paymentGuideMessage')}

!${pay_url}

- 가맹점 상호 : 나이스페이먼츠 주식회사
- 상품명 : {formData.goodsName}
- 금액 : {formData.amount.toLocaleString()}원 + {t('additionalService.linkPayment.merchantName')} : 나이스페이먼츠 주식회사
+ {t('transaction.fields.productName')} : {formData.goodsName}
+ {t('transaction.fields.amount')} : {formData.amount.toLocaleString()}{t('common.currencyUnit')}

@@ -100,11 +100,11 @@ export const LinkPaymentApplyConfirmPage = () => { + >{t('additionalService.linkPayment.previous')} + >{t('additionalService.linkPay.paymentRequest')}
diff --git a/src/pages/additional-service/link-payment/apply/link-payment-apply-page.tsx b/src/pages/additional-service/link-payment/apply/link-payment-apply-page.tsx index 1b2ea8f..2752cea 100644 --- a/src/pages/additional-service/link-payment/apply/link-payment-apply-page.tsx +++ b/src/pages/additional-service/link-payment/apply/link-payment-apply-page.tsx @@ -1,4 +1,5 @@ import { useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { LinkPaymentStep1 } from '@/entities/additional-service/ui/link-payment/apply/link-payment-step1'; import { LinkPaymentStep2 } from '@/entities/additional-service/ui/link-payment/apply/link-payment-step2'; import { HeaderType } from '@/entities/common/model/types'; @@ -14,6 +15,7 @@ import moment from 'moment'; export const LinkPaymentApplyPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); const midOptionsWithoutGids = useStore.getState().UserStore.selectOptionsMidsWithoutGids; @@ -43,7 +45,7 @@ export const LinkPaymentApplyPage = () => { linkContentType: LinkContentType.BASIC }); - useSetHeaderTitle('링크결제 신청'); + useSetHeaderTitle(t('additionalService.linkPayment.applyTitle')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); @@ -144,7 +146,7 @@ export const LinkPaymentApplyPage = () => { className="btn-50 btn-blue flex-1" onClick={() => onClickToChangeTab()} disabled={!isStep1Valid()} - >다음 + >{t('additionalService.linkPayment.next')}
} {(processStep === ProcessStep.Two) && @@ -152,12 +154,12 @@ export const LinkPaymentApplyPage = () => { + >{t('additionalService.linkPayment.previous')} + >{t('additionalService.linkPay.paymentRequest')}
}
diff --git a/src/pages/additional-service/link-payment/apply/link-payment-apply-success-page.tsx b/src/pages/additional-service/link-payment/apply/link-payment-apply-success-page.tsx index a3d5dd5..7ed2721 100644 --- a/src/pages/additional-service/link-payment/apply/link-payment-apply-success-page.tsx +++ b/src/pages/additional-service/link-payment/apply/link-payment-apply-success-page.tsx @@ -1,12 +1,14 @@ +import { useTranslation } from 'react-i18next'; import { HeaderType } from '@/entities/common/model/types'; import { useSetFooterMode, useSetHeaderTitle, useSetHeaderType } from '@/widgets/sub-layout/use-sub-layout'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { PATHS } from "@/shared/constants/paths"; export const LinkPaymentApplySuccessPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); - useSetHeaderTitle('링크결제 신청'); + useSetHeaderTitle(t('additionalService.linkPayment.applyTitle')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); @@ -20,15 +22,15 @@ export const LinkPaymentApplySuccessPage = () => {

- 링크결제
- 결제 신청이 완료되었습니다. + {t('additionalService.linkPayment.title')}
+ {t('additionalService.linkPayment.paymentRequestComplete')}

- + >{t('common.confirm')}
From b0698248f100c00146b98c04bd909815b2efb860 Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Mon, 3 Nov 2025 16:04:11 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=EB=A7=81=ED=81=AC=EA=B2=B0=EC=A0=9C=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC=EC=8A=B9=EC=9D=B8=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=A7=80=EC=9B=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 분리승인 상세, 성공, 실패 페이지 현지화 - 기간연장 및 링크중단 기능 텍스트 번역 - 에러 메시지 및 안내 문구 다국어 적용 - 거래금액, 결제상태, 유효기간 등 레이블 현지화 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/locales/en.json | 19 +++++++++ src/locales/ko.json | 19 +++++++++ .../link-payment-separate-approval-fail.tsx | 10 +++-- .../link-payment-separate-approval-page.tsx | 42 ++++++++++--------- ...payment-separate-approval-success-page.tsx | 10 +++-- 5 files changed, 72 insertions(+), 28 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 7261a68..7b43f47 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1052,6 +1052,25 @@ "merchantName": "Merchant Name", "customerGreeting": "Hello, {buyerName}!", "paymentGuideMessage": "NICEPAYMENTS Co., Ltd. is notifying you\nof the payment details.\nYou can check the details and proceed with payment by accessing the URL below.", + "separateApproval": "Link Payment_Separate Approval", + "extendPeriodNotice": "※ Extension Period: Up to 7 days, can be extended 3 times in total", + "linkBreakNotice": "※ Link Break: Function to close payment before expiration date, cannot be undone once broken", + "transactionAmount": "Transaction Amount", + "paymentStatus": "Payment Status", + "validityPeriod": "Validity Period", + "extendCount": "Extension Count", + "extendPeriod": "Extension Period", + "unset": "Not Set", + "extendPeriodAction": "Extend Period", + "linkBreakAction": "Break Link", + "noItemsSelected": "No items selected.", + "pleaseSelectExtendPeriod": "Please select extension period for all selected items.", + "allRequestSuccess": "All requests successful.", + "extendPeriodFailed": "Failed to extend validity period. Please check individual status.", + "extendPeriodFailedGeneric": "Failed to extend validity period.", + "linkBreakFailed": "Failed to break link. Please check individual status.", + "linkBreakFailedGeneric": "Failed to break link.", + "pleaseRetry": "Please try again", "resendSuccess": "Resend successful.", "resendFailed": "Resend failed.", "resendError": "An error occurred during resend.", diff --git a/src/locales/ko.json b/src/locales/ko.json index 7f4b92f..ca30b1e 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1052,6 +1052,25 @@ "merchantName": "가맹점 상호", "customerGreeting": "{buyerName} 고객님, 안녕하세요?", "paymentGuideMessage": "나이스페이먼츠 주식회사에서\n결제하실 내역 안내드립니다.\n아래 URL로 접속하시면 상세 내역 확인과 결제 진행이 가능합니다.", + "separateApproval": "링크결제_분리승인", + "extendPeriodNotice": "※ 연장 기간: 최대 7일, 총 3번 연장 가능", + "linkBreakNotice": "※ 링크 중단: 유효기간 전, 결제를 마감하는 기능, 링크중단 시 원복 불가", + "transactionAmount": "거래금액", + "paymentStatus": "결제상태", + "validityPeriod": "유효기간", + "extendCount": "연장횟수", + "extendPeriod": "연장기간", + "unset": "미설정", + "extendPeriodAction": "기간연장", + "linkBreakAction": "링크중단", + "noItemsSelected": "선택된 항목이 없습니다.", + "pleaseSelectExtendPeriod": "모든 선택된 항목의 연장 기간을 선택해주세요.", + "allRequestSuccess": "전체요청 성공했습니다.", + "extendPeriodFailed": "유효기간 연장에 실패했습니다. 개별 상태를 확인해주세요.", + "extendPeriodFailedGeneric": "유효기간 연장에 실패했습니다.", + "linkBreakFailed": "링크중단 요청에 실패했습니다. 개별 상태를 확인해주세요.", + "linkBreakFailedGeneric": "링크중단 요청에 실패했습니다.", + "pleaseRetry": "다시 시도해 주세요", "resendSuccess": "재발송을 성공하였습니다.", "resendFailed": "재발송을 실패하였습니다.", "resendError": "재발송 중 오류가 발생했습니다.", diff --git a/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-fail.tsx b/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-fail.tsx index 5139fd0..8a3cca7 100644 --- a/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-fail.tsx +++ b/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-fail.tsx @@ -1,4 +1,5 @@ import { motion } from 'framer-motion'; +import { useTranslation } from 'react-i18next'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { PATHS } from "@/shared/constants/paths"; import { @@ -25,6 +26,7 @@ export const LinkPaymentApplyFailPage = ({ errorMessage, onClose }: LinkPaymentApplyFailPageProps) => { + const { t } = useTranslation(); const onClickToClose = () => { setPageOn(false); @@ -51,7 +53,7 @@ export const LinkPaymentApplyFailPage = ({ aria-hidden="true" >

- 링크결제_분리승인 + {t('additionalService.linkPayment.separateApproval')}

{resultMessage && ( @@ -62,8 +64,8 @@ export const LinkPaymentApplyFailPage = ({

- 결과 : - {errorMessage || '다시 시도해 주세요'} + {t('common.result')} : + {errorMessage || t('additionalService.linkPayment.pleaseRetry')}

@@ -71,7 +73,7 @@ export const LinkPaymentApplyFailPage = ({ + >{t('common.confirm')}
diff --git a/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-page.tsx b/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-page.tsx index 6bb1e67..ca24363 100644 --- a/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-page.tsx +++ b/src/pages/additional-service/link-payment/separate-approval/link-payment-separate-approval-page.tsx @@ -1,4 +1,5 @@ import { useEffect, useState, useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; import { PATHS } from '@/shared/constants/paths'; import { useLocation } from 'react-router'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; @@ -20,6 +21,7 @@ import { useStore } from '@/shared/model/store'; import moment from 'moment'; export const LinkPaymentSeparateApprovalPage = () => { + const { t } = useTranslation(); const { navigate } = useNavigate(); const location = useLocation(); const userMid = useStore.getState().UserStore.mid; @@ -43,7 +45,7 @@ export const LinkPaymentSeparateApprovalPage = () => { const { mutateAsync: callItems } = useExtensionLinkPaySeparateDetail(); const { mutateAsync: linkPaySeparateAction } = useExtensionLinkPaySeparateAction(); - useSetHeaderTitle('분리승인 상세'); + useSetHeaderTitle(t('additionalService.linkPayment.separateApprovalTitle')); useSetHeaderType(HeaderType.RightClose); useSetOnBack(() => { navigate(PATHS.additionalService.linkPayment.shippingHistory); @@ -189,7 +191,7 @@ export const LinkPaymentSeparateApprovalPage = () => { // 선택된 항목이 없으면 리턴 if (selectedItems.length === 0) { - setErrorMessage('선택된 항목이 없습니다.'); + setErrorMessage(t('additionalService.linkPayment.noItemsSelected')); setFailPageOn(true); return; } @@ -203,7 +205,7 @@ export const LinkPaymentSeparateApprovalPage = () => { const allHaveExtendPeriod = selectedSubItems.every(id => extendPeriods[id]); if (!allHaveExtendPeriod) { - setErrorMessage('모든 선택된 항목의 연장 기간을 선택해주세요.'); + setErrorMessage(t('additionalService.linkPayment.pleaseSelectExtendPeriod')); setFailPageOn(true); return; } @@ -237,16 +239,16 @@ export const LinkPaymentSeparateApprovalPage = () => { setTotalCount(response.totalCount); if (response.success) { - setResultMessage(`전체요청 성공했습니다.`); + setResultMessage(t('additionalService.linkPayment.allRequestSuccess')); setSuccessPageOn(true); } else { - setResultMessage(`유효기간 연장에 실패했습니다. 개별 상태를 확인해주세요.`); + setResultMessage(t('additionalService.linkPayment.extendPeriodFailed')); setErrorMessage(''); setFailPageOn(true); } }).catch((error) => { console.error('기간연장 실패:', error); - setResultMessage('유효기간 연장에 실패했습니다.'); + setResultMessage(t('additionalService.linkPayment.extendPeriodFailedGeneric')); setFailPageOn(true); }); }; @@ -257,7 +259,7 @@ export const LinkPaymentSeparateApprovalPage = () => { // 선택된 항목이 없으면 리턴 if (selectedItems.length === 0) { - setErrorMessage('선택된 항목이 없습니다.'); + setErrorMessage(t('additionalService.linkPayment.noItemsSelected')); setFailPageOn(true); return; } @@ -287,16 +289,16 @@ export const LinkPaymentSeparateApprovalPage = () => { setFailCount(response.failCount); setTotalCount(response.totalCount); if (response.success) { - setResultMessage(`전체요청 성공했습니다.`); + setResultMessage(t('additionalService.linkPayment.allRequestSuccess')); setSuccessPageOn(true); } else { - setResultMessage('링크중단 요청에 실패했습니다. 개별 상태를 확인해주세요.'); + setResultMessage(t('additionalService.linkPayment.linkBreakFailed')); setErrorMessage(''); setFailPageOn(true); } }).catch((error) => { console.error('링크중단 실패:', error); - setResultMessage('링크중단 요청에 실패했습니다.'); + setResultMessage(t('additionalService.linkPayment.linkBreakFailedGeneric')); setFailPageOn(true); }); }; @@ -334,8 +336,8 @@ export const LinkPaymentSeparateApprovalPage = () => {
-

※ 연장 기간: 최대 7일, 총 3번 연장 가능

-

※ 링크 중단: 유효기간 전, 결제를 마감하는 기능, 링크중단 시 원복 불가

+

{t('additionalService.linkPayment.extendPeriodNotice')}

+

{t('additionalService.linkPayment.linkBreakNotice')}

@@ -360,17 +362,17 @@ export const LinkPaymentSeparateApprovalPage = () => {
  • - • 거래금액: + • {t('additionalService.linkPayment.transactionAmount')}: {item.amount.toLocaleString()}
  • - • 결제상태: + • {t('additionalService.linkPayment.paymentStatus')}: {item.paymentStatusName}
  • {item.type !== LinkPaymentSeparateType.MAIN && ( <>
  • - • 유효기간: + • {t('additionalService.linkPayment.validityPeriod')}: {item.paymentLimitDate ? moment(item.paymentLimitDate, 'YYYYMMDD').format('YYYY/MM/DD') @@ -379,7 +381,7 @@ export const LinkPaymentSeparateApprovalPage = () => {
  • - • 연장횟수: + • {t('additionalService.linkPayment.extendCount')}: {item.paymentLimitCount}
  • @@ -388,7 +390,7 @@ export const LinkPaymentSeparateApprovalPage = () => {
- +
-
발송 수단
+
{t('additionalService.linkPayment.sendMethod')}
handlePaymentMethodChange(LinkPaymentSendMethod.EMAIL)} > - 이메일 + {t('common.email')} handlePaymentMethodChange(LinkPaymentSendMethod.KAKAO)} > - 카카오 + {t('common.kakao')}
-
상품명
+
{t('transaction.fields.productName')}
-
상품가격
+
{t('additionalService.linkPayment.productPrice')}
-
상품 주문번호
+
{t('additionalService.linkPayment.productOrderNumber')}
-
결제 유효일
+
{t('additionalService.linkPayment.paymentValidDate')}
- 까지 + {t('additionalService.linkPayment.until')}
diff --git a/src/entities/additional-service/ui/link-payment/apply/link-payment-step2.tsx b/src/entities/additional-service/ui/link-payment/apply/link-payment-step2.tsx index fad287e..05d1e0e 100644 --- a/src/entities/additional-service/ui/link-payment/apply/link-payment-step2.tsx +++ b/src/entities/additional-service/ui/link-payment/apply/link-payment-step2.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { ProcessStep } from "@/entities/transaction/model/types"; import { useSetOnBack } from "@/widgets/sub-layout/use-sub-layout"; import { IdentityType, Language } from '@/entities/additional-service/model/types' @@ -15,6 +16,8 @@ export const LinkPaymentStep2 = ({ formData, setFormData }: LinkPaymentStep2Props) => { + const { t } = useTranslation(); + useSetOnBack(() => { setProcessStep(ProcessStep.One); }); @@ -49,7 +52,7 @@ export const LinkPaymentStep2 = ({ <>
-
구매자명
+
{t('transaction.fields.buyerName')}
-
구매자 이메일
+
{t('additionalService.linkPayment.buyerEmail')}
-
구매자
휴대폰 번호
+
-
구매자 정보 대조
+
{t('additionalService.linkPayment.buyerInfoVerification')}
@@ -131,7 +134,7 @@ export const LinkPaymentStep2 = ({ {formData.identityType === IdentityType.CORPORATE ? ( { @@ -143,7 +146,7 @@ export const LinkPaymentStep2 = ({ ) : ( { @@ -157,39 +160,39 @@ export const LinkPaymentStep2 = ({
-
언어
+
{t('additionalService.linkPayment.language')}
handleLanguageType(Language.KR)} > - 국문 + {t('additionalService.linkPayment.korean')} handleLanguageType(Language.EN)} > - 영문 + {t('additionalService.linkPayment.english')}
-
링크내용
+
{t('additionalService.linkPayment.linkContent')}
handleLinkContent(LinkContentType.BASIC)} > - 기본 + {t('additionalService.linkPayment.basic')} handleLinkContent(LinkContentType.ADDITIONAL)} > - 추가 + {t('additionalService.linkPayment.additional')}
diff --git a/src/locales/en.json b/src/locales/en.json index 7b43f47..ddf9484 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1071,7 +1071,25 @@ "linkBreakFailed": "Failed to break link. Please check individual status.", "linkBreakFailedGeneric": "Failed to break link.", "pleaseRetry": "Please try again", - "resendSuccess": "Resend successful.", + "sendMethod": "Send Method", + "productPrice": "Product Price", + "productOrderNumber": "Product Order Number", + "paymentValidDate": "Payment Valid Date", + "until": "Until", + "selectDate": "Select Date", + "buyerEmail": "Buyer Email", + "buyerPhoneNumber": "Buyer\nPhone Number", + "buyerInfoVerification": "Buyer Info Verification", + "individual": "Individual", + "corporate": "Corporate", + "businessNumber10Digits": "Business Number (10 digits)", + "birthDate6Digits": "Birth Date (6 digits)", + "language": "Language", + "korean": "Korean", + "english": "English", + "linkContent": "Link Content", + "basic": "Basic", + "additional": "Additional", "resendFailed": "Resend failed.", "resendError": "An error occurred during resend.", "resendConfirm": "Do you want to resend?", diff --git a/src/locales/ko.json b/src/locales/ko.json index ca30b1e..b4495bd 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1071,7 +1071,25 @@ "linkBreakFailed": "링크중단 요청에 실패했습니다. 개별 상태를 확인해주세요.", "linkBreakFailedGeneric": "링크중단 요청에 실패했습니다.", "pleaseRetry": "다시 시도해 주세요", - "resendSuccess": "재발송을 성공하였습니다.", + "sendMethod": "발송 수단", + "productPrice": "상품가격", + "productOrderNumber": "상품 주문번호", + "paymentValidDate": "결제 유효일", + "until": "까지", + "selectDate": "날짜 선택", + "buyerEmail": "구매자 이메일", + "buyerPhoneNumber": "구매자\n휴대폰 번호", + "buyerInfoVerification": "구매자 정보 대조", + "individual": "개인", + "corporate": "법인", + "businessNumber10Digits": "사업자번호 10자리", + "birthDate6Digits": "생년월일 6자리", + "language": "언어", + "korean": "국문", + "english": "영문", + "linkContent": "링크내용", + "basic": "기본", + "additional": "추가", "resendFailed": "재발송을 실패하였습니다.", "resendError": "재발송 중 오류가 발생했습니다.", "resendConfirm": "재발송 하시겠습니까?", From 2fea3a0691efb8f9009fc1e11d67f0d74982463a Mon Sep 17 00:00:00 2001 From: Jay Sheen Date: Mon, 3 Nov 2025 16:11:37 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=EB=A7=81=ED=81=AC=EA=B2=B0=EC=A0=9C=20?= =?UTF-8?q?=EB=B0=9C=EC=86=A1=EB=8C=80=EA=B8=B0=20=ED=95=84=ED=84=B0=20?= =?UTF-8?q?=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=A7=80=EC=9B=90=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 필터 레이블 및 옵션 현지화 - 휴대폰번호/이메일 검색 타입 번역 - 발송수단 및 진행상태 옵션 다국어 적용 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../link-payment-pending-send-filter.tsx | 31 ++++++++++--------- src/locales/en.json | 2 ++ src/locales/ko.json | 2 ++ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/entities/additional-service/ui/link-payment/filter/link-payment-pending-send-filter.tsx b/src/entities/additional-service/ui/link-payment/filter/link-payment-pending-send-filter.tsx index eb53519..4213403 100644 --- a/src/entities/additional-service/ui/link-payment/filter/link-payment-pending-send-filter.tsx +++ b/src/entities/additional-service/ui/link-payment/filter/link-payment-pending-send-filter.tsx @@ -1,5 +1,6 @@ import moment from 'moment'; import { useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { motion } from 'framer-motion'; import { ChangeEvent, useState } from 'react'; @@ -32,7 +33,7 @@ export const LinkPaymentWaitSendFilter = ({ setSendMethod, setProcessStatus }: LinkPaymentWaitFilterProps) => { - + const { t } = useTranslation(); const [filterMid, setFilterMid] = useState(mid); const [filterSearchType, setFilterSearchType] = useState(searchCl); @@ -58,21 +59,21 @@ export const LinkPaymentWaitSendFilter = ({ }; let searchTypeOption = [ - { name: '휴대폰번호', value: LinkPaymentSearchCl.PHONE }, - { name: '이메일', value: LinkPaymentSearchCl.EMAIL }, + { name: t('additionalService.linkPay.phoneNumber'), value: LinkPaymentSearchCl.PHONE }, + { name: t('common.email'), value: LinkPaymentSearchCl.EMAIL }, ]; let sendMethodOption = [ - { name: '전체', value: LinkPaymentSendMethod.ALL }, + { name: t('additionalService.linkPay.all'), value: LinkPaymentSendMethod.ALL }, { name: 'SMS', value: LinkPaymentSendMethod.SMS }, - { name: '이메일', value: LinkPaymentSendMethod.EMAIL }, - { name: '카카오', value: LinkPaymentSendMethod.KAKAO }, + { name: t('common.email'), value: LinkPaymentSendMethod.EMAIL }, + { name: t('common.kakao'), value: LinkPaymentSendMethod.KAKAO }, ]; let processStatusOption = [ - { name: '전체', value: LinkPaymentProcessStatus.ALL }, - { name: '발송요청', value: LinkPaymentProcessStatus.SEND_REQUEST }, - { name: '발송취소', value: LinkPaymentProcessStatus.SEND_CANCEL }, + { name: t('additionalService.linkPay.all'), value: LinkPaymentProcessStatus.ALL }, + { name: t('additionalService.linkPay.sendRequest'), value: LinkPaymentProcessStatus.SEND_REQUEST }, + { name: t('additionalService.linkPay.sendCancel'), value: LinkPaymentProcessStatus.SEND_CANCEL }, ]; useEffect(() => { @@ -90,7 +91,7 @@ export const LinkPaymentWaitSendFilter = ({ >
-
필터
+
{t('filter.filter')}
onClickToSetFilter()} - >적용 + >{t('filter.apply')}
diff --git a/src/locales/en.json b/src/locales/en.json index ddf9484..0acf8f1 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1090,6 +1090,8 @@ "linkContent": "Link Content", "basic": "Basic", "additional": "Additional", + "sendMethodFilter": "Send Method", + "processStatus": "Process Status", "resendFailed": "Resend failed.", "resendError": "An error occurred during resend.", "resendConfirm": "Do you want to resend?", diff --git a/src/locales/ko.json b/src/locales/ko.json index b4495bd..1aa25d0 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1090,6 +1090,8 @@ "linkContent": "링크내용", "basic": "기본", "additional": "추가", + "sendMethodFilter": "발송수단", + "processStatus": "진행상태", "resendFailed": "재발송을 실패하였습니다.", "resendError": "재발송 중 오류가 발생했습니다.", "resendConfirm": "재발송 하시겠습니까?",