Add comprehensive localization keys and localize initial components

Add extensive translation keys to en.json for all additional-service
components including link payment, fund account, SMS, alimtalk, face auth,
key-in payment, payout, settlement agency, and info-wrap components.

Localize components:
- account-holder-search-list: Add search request button translation
- key-in-payment-filter: Replace all Korean filter labels with i18n keys

Translation keys added cover:
- Link payment forms, steps, and bottom sheets
- Fund account transfer and result views
- SMS detail and resend functionality
- Filter components for all service types
- Info wrap components for payment and detail information
- Settlement agency management interfaces

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-10-31 11:29:53 +09:00
parent 5a61fbc102
commit dfe7152631
3 changed files with 133 additions and 16 deletions

View File

@@ -4,12 +4,14 @@ import { ListDateGroup } from '../list-date-group';
import { AdditionalServiceCategory } from '../../model/types'
import { AccountHolderSearchListItem, AccountHolderSearchListProps } from '../../model/account-holder-search/types';
import { JSX } from 'react';
import { useTranslation } from 'react-i18next';
export const AccountHolderSearchList = ({
listItems,
mid
}: AccountHolderSearchListProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const getListDateGroup = () => {
let rs = [];
@@ -71,7 +73,7 @@ export const AccountHolderSearchList = ({
<button
className="btn-50 btn-blue flex-1"
onClick={() => onClickToNavigate()}
> </button>
>{t('additionalService.accountHolderSearch.searchRequest')}</button>
</div>
</>
);

View File

@@ -64,7 +64,7 @@ export const KeyInPaymentFilter = ({
>
<div className="full-menu-container">
<div className="full-menu-header">
<div className="full-menu-title center"></div>
<div className="full-menu-title center">{t('filter.filter')}</div>
<div className="full-menu-actions">
<button
id="closeFullMenu"
@@ -72,7 +72,7 @@ export const KeyInPaymentFilter = ({
>
<img
src={IMAGE_ROOT + '/ico_close.svg'}
alt="닫기"
alt={t('filter.close')}
onClick={() => onClickToClose()}
/>
</button>
@@ -81,12 +81,12 @@ export const KeyInPaymentFilter = ({
<div className="option-list pt-16">
<FilterSelectMid
title='가맹점'
title={t('filter.merchant')}
selectSetter={setFilterMid}
showType={'GID'}
></FilterSelectMid>
<FilterCalendar
title='조회기간'
title={t('filter.period')}
startDate={filterStartDate}
endDate={filterEndDate}
setStartDate={setFilterStartDate}
@@ -94,14 +94,14 @@ export const KeyInPaymentFilter = ({
></FilterCalendar>
<FilterButtonGroups
title='거래상태'
title={t('filter.transactionStatus')}
activeValue={filterTransactionStatus}
btnGroups={getKeyInPaymentPaymentStatusBtnGroup(t)}
setter={setFilterTransactionStatus}
></FilterButtonGroups>
<FilterRangeAmount
title='상품가격'
title={t('additionalService.keyIn.productPrice')}
minAmount={filterMinAmount}
maxAmount={filterMaxAmount}
setMinAmount={setFilterMinAmount}
@@ -112,7 +112,7 @@ export const KeyInPaymentFilter = ({
<button
className="btn-50 btn-blue flex-1"
onClick={() => onClickToSetFilter()}
></button>
>{t('filter.apply')}</button>
</div>
</div>
</motion.div>

View File

@@ -817,7 +817,13 @@
},
"sms": {
"virtualAccountRequest": "Virtual Account Request",
"virtualAccountRequestDeposit": "Virtual Account Request + Deposit"
"virtualAccountRequestDeposit": "Virtual Account Request + Deposit",
"smsDetailAndResend": "SMS Details & Resend",
"sender": "Sender (Number)",
"receiver": "Receiver (Number)",
"sendSuccess": "SMS sent successfully.",
"sendFailed": "[Failed] {{message}}",
"sendFailedGeneric": "[Failed] Request failed."
},
"linkPay": {
"sendRequest": "Send Request",
@@ -830,7 +836,42 @@
"paymentStoppedInactive": "Payment Stopped/Inactive",
"pending": "Pending",
"email": "Email",
"alimtalk": "Alimtalk"
"alimtalk": "Alimtalk",
"kakao": "Kakao",
"productName": "Product Name",
"productPrice": "Product Price",
"productOrderNumber": "Product Order Number",
"paymentValidDate": "Payment Valid Date",
"until": "Until",
"selectDate": "Select Date",
"buyerName": "Buyer Name",
"buyerEmail": "Buyer Email",
"buyerPhoneNumber": "Buyer Phone Number",
"buyerInfoVerification": "Buyer Info Verification",
"individual": "Individual",
"corporate": "Corporate",
"businessNumberPlaceholder": "Business number (10 digits)",
"birthDatePlaceholder": "Birth date (6 digits)",
"language": "Language",
"korean": "Korean",
"english": "English",
"linkContent": "Link Content",
"basic": "Basic",
"additional": "Additional",
"sendHistory": "Send History",
"pendingSend": "Pending Send",
"phoneOrEmail": "Phone/Email",
"transactionStatus": "Transaction Status",
"sendResult": "Send Result",
"sendMethod": "Send Method",
"progressStatus": "Progress Status",
"extendPeriod": "Extend Period",
"extendPeriodConfirm": "Do you want to extend the valid period?",
"checkIndividualStatus": "Please check individual status.",
"linkBreak": "Break Link",
"linkBreakWarning": "When link break is requested",
"linkBreakWarningDetail": "payment will be unavailable and cannot be undone.",
"paymentRequest": "Payment Request"
},
"accountHolderAuth": {
"accountHolderNameMatch": "Account Holder Name Match",
@@ -843,11 +884,15 @@
"accountHolderOrAccountNumber": "Account Holder/Account Number",
"searchResult": "Search Result",
"bank": "Bank",
"select": "Select"
"select": "Select",
"searchRequest": "Search Request"
},
"faceAuth": {
"authentication": "Authentication",
"registration": "Registration"
"registration": "Registration",
"merchantMemberId": "Merchant Member ID",
"transactionType": "Transaction Type",
"authenticationResult": "Authentication Result"
},
"fundAccount": {
"registrationComplete": "Registration Complete",
@@ -857,22 +902,92 @@
"requestDate": "Request Date",
"transferDate": "Transfer Date",
"recipient": "Recipient",
"accountNumber": "Account Number"
"accountNumber": "Account Number",
"recipientOrAccountNumber": "Recipient/Account Number",
"searchCriteria": "Search Criteria",
"processingResult": "Processing Result",
"balance": "Balance",
"won": "KRW",
"transferRegistration": "Transfer Registration",
"transferRegistrationNotice": "After transfer registration, separate 'transfer request' processing is required for execution. If not requested, transfer will not proceed.",
"resultInquiry": "Result Inquiry",
"tabTransferRequest": "Transfer Request",
"tabResultInquiry": "Result Inquiry"
},
"alimtalk": {
"buyer": "Buyer",
"depositRequest": "Deposit Request",
"depositComplete": "Deposit Complete",
"kakaotalk": "KakaoTalk",
"fbSms": "FB SMS"
"fbSms": "FB SMS",
"orderOrTid": "Buyer, TID",
"notificationCategory": "Notification Category",
"sendType": "Send Type",
"sendCategory": "Send Category"
},
"payout": {
"requestDate": "Request Date",
"disbursementDate": "Disbursement Date"
"disbursementDate": "Disbursement Date",
"paymentStatus": "Payment Status"
},
"keyIn": {
"fullCancel": "Full Cancel",
"partialCancel": "Partial Cancel"
"partialCancel": "Partial Cancel",
"productPrice": "Product Price"
},
"infoWrap": {
"paymentInfo": "Payment Information",
"buyerName": "Buyer Name",
"sendMethod": "Send Method",
"sendDate": "Send Date",
"paymentStatusFailCount": "Payment Status (Fail Count)",
"paymentDate": "Payment Date",
"paymentValidDate": "Payment Valid Date",
"progressStatus": "Progress Status",
"requestDate": "Request Date",
"email": "Email",
"phoneNumber": "Phone Number",
"productName": "Product Name",
"orderNumber": "Order Number",
"detailInfo": "Detail Information",
"inquiryDateTime": "Inquiry Date Time",
"result": "Result",
"failureReason": "Failure Reason",
"bank": "Bank",
"accountNumber": "Account Number",
"requestCategory": "Request Category",
"merchantName": "Merchant Name",
"mid": "MID",
"requestDateTime": "Request Date Time",
"accountHolder": "Account Holder"
},
"settlementAgencyDetails": {
"tabManage": "Settlement Agency Management",
"tabDeposit": "Deposit History",
"tabStore": "Settlement Store",
"feeInfo": "Fee: 1%, Round",
"taxInfo": "Tax Status: Taxable, Truncate",
"settlementDayInfo": "Settlement Day: 15th of each month",
"totalDeposit": "Total Deposit",
"totalWithdrawal": "Total Withdrawal",
"latest": "Latest",
"highAmount": "High Amount",
"all": "All",
"deposit": "Deposit",
"withdrawal": "Withdrawal",
"depositCash": "Deposit (Cash Deposit)",
"balance": "Balance",
"settlementStatus": "Settlement Status",
"manualRegistration": "Manual Registration",
"settlementDate": "Settlement Date",
"agreementCompleted": "Agreement Completed",
"noInterestInfo": "No-Interest Info",
"extendPeriodTitle": "Extend Period",
"confirmMessage": "Please check individual status.",
"settlementAgreement": "Settlement Agreement",
"settlementReject": "Settlement Reject",
"quickWithdrawal": "Quick Withdrawal",
"save": "Save"
}
},
"merchant": {