부가서비스 SERVICE_MAP 다국어화: i18n 번역 키 적용

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-10-30 10:38:30 +09:00
parent f948575233
commit e4e73dec72
4 changed files with 23 additions and 27 deletions

View File

@@ -50,17 +50,17 @@ export enum Language {
}
export const SERVICE_MAP = [
{ code: 'SMS', serviceName: 'SMS 결제 통보', serviceDesc: '입금 요청부터 완료까지 SMS 자동 전송', icon: IMAGE_ROOT + '/icon_ing03.svg', path: PATHS.additionalService.smsPaymentNotification },
{ code: 'ARS', serviceName: '신용카드 ARS 결제', serviceDesc: '전화 한 통으로 결제 성공 편리하고 안전한 서비스', icon: IMAGE_ROOT + '/icon_ing01.svg', path: PATHS.additionalService.ars.list },
{ code: 'KEYIN', serviceName: 'KEY-IN 결제', serviceDesc: '상담 중 카드정보 입력으로 간편한 결제 지원', icon: IMAGE_ROOT + '/icon_ing02.svg', path: PATHS.additionalService.keyInPayment.list },
{ code: 'SEARCH_ACCOUNT_NAME', serviceName: '계좌성명조회', serviceDesc: '예금주 정보 입력으로 즉시 예금주 확인', icon: IMAGE_ROOT + '/icon_ing04.svg', path: PATHS.additionalService.accountHolderSearch.list },
{ code: 'PAYOUT', serviceName: '지급대행', serviceDesc: '하위 가맹점에 빠른 정산금 지급 지급대행 서비스', icon: IMAGE_ROOT + '/icon_ing05.svg', path: PATHS.additionalService.payout.list },
{ code: 'SETTLEMENT', serviceName: '정산대행', serviceDesc: '하위 가맹점 정산금 계산부터 지급까지 자동 해결 서비스', icon: IMAGE_ROOT + '/icon_ing06.svg', path: PATHS.additionalService.settlementAgency.manage },
{ code: 'LINKPAY', serviceName: '링크 결제', serviceDesc: '결제 링크 전송만으로 어디서든 결제 가능 서비스', icon: IMAGE_ROOT + '/icon_ing07.svg', path: PATHS.additionalService.linkPayment.shippingHistory },
{ code: 'FUND_ACCOUNT', serviceName: '자금이체', serviceDesc: '예치금으로 즉시 송금, 파일 등록만으로 다중 송금 가능', icon: IMAGE_ROOT + '/icon_ing08.svg', path: PATHS.additionalService.fundAccount.transferList },
{ code: 'ACCOUNT_AUTH', serviceName: '계좌점유인증', serviceDesc: '1원 송금으로 실제 계좌 점유 확인 여부', icon: IMAGE_ROOT + '/icon_ing09.svg', path: PATHS.additionalService.accountHolderAuth.list },
{ code: 'ALIMTALK', serviceName: '알림톡 결제통보', serviceDesc: '결제 상태를 알림톡으로 쉽고 빠른 안내', icon: IMAGE_ROOT + '/icon_ing10.svg', path: PATHS.additionalService.alimtalk.list },
{ code: 'FACE_AUTH', serviceName: '얼굴인증', serviceDesc: '얼굴 인식으로 간편 본인확인과 결제 가능한 안전 결제 서비스', icon: IMAGE_ROOT + '/icon_ing11.svg', path: PATHS.additionalService.faceAuth.list },
{ code: 'SMS', serviceNameKey: 'additionalService.services.sms', serviceDescKey: 'additionalService.services.smsDesc', icon: IMAGE_ROOT + '/icon_ing03.svg', path: PATHS.additionalService.smsPaymentNotification },
{ code: 'ARS', serviceNameKey: 'additionalService.services.ars', serviceDescKey: 'additionalService.services.arsDesc', icon: IMAGE_ROOT + '/icon_ing01.svg', path: PATHS.additionalService.ars.list },
{ code: 'KEYIN', serviceNameKey: 'additionalService.services.keyIn', serviceDescKey: 'additionalService.services.keyInDesc', icon: IMAGE_ROOT + '/icon_ing02.svg', path: PATHS.additionalService.keyInPayment.list },
{ code: 'SEARCH_ACCOUNT_NAME', serviceNameKey: 'additionalService.services.accountHolderSearch', serviceDescKey: 'additionalService.services.accountHolderSearchDesc', icon: IMAGE_ROOT + '/icon_ing04.svg', path: PATHS.additionalService.accountHolderSearch.list },
{ code: 'PAYOUT', serviceNameKey: 'additionalService.services.payout', serviceDescKey: 'additionalService.services.payoutDesc', icon: IMAGE_ROOT + '/icon_ing05.svg', path: PATHS.additionalService.payout.list },
{ code: 'SETTLEMENT', serviceNameKey: 'additionalService.services.settlementAgency', serviceDescKey: 'additionalService.services.settlementAgencyDesc', icon: IMAGE_ROOT + '/icon_ing06.svg', path: PATHS.additionalService.settlementAgency.manage },
{ code: 'LINKPAY', serviceNameKey: 'additionalService.services.linkPayment', serviceDescKey: 'additionalService.services.linkPaymentDesc', icon: IMAGE_ROOT + '/icon_ing07.svg', path: PATHS.additionalService.linkPayment.shippingHistory },
{ code: 'FUND_ACCOUNT', serviceNameKey: 'additionalService.services.fundAccount', serviceDescKey: 'additionalService.services.fundAccountDesc', icon: IMAGE_ROOT + '/icon_ing08.svg', path: PATHS.additionalService.fundAccount.transferList },
{ code: 'ACCOUNT_AUTH', serviceNameKey: 'additionalService.services.accountHolderAuth', serviceDescKey: 'additionalService.services.accountHolderAuthDesc', icon: IMAGE_ROOT + '/icon_ing09.svg', path: PATHS.additionalService.accountHolderAuth.list },
{ code: 'ALIMTALK', serviceNameKey: 'additionalService.services.alimtalk', serviceDescKey: 'additionalService.services.alimtalkDesc', icon: IMAGE_ROOT + '/icon_ing10.svg', path: PATHS.additionalService.alimtalk.list },
{ code: 'FACE_AUTH', serviceNameKey: 'additionalService.services.faceAuth', serviceDescKey: 'additionalService.services.faceAuthDesc', icon: IMAGE_ROOT + '/icon_ing11.svg', path: PATHS.additionalService.faceAuth.list },
];
// ========================================

View File

@@ -15,7 +15,9 @@
"error": "An error occurred",
"success": "Success",
"noData": "No data available",
"next": "Next"
"next": "Next",
"latest": "Latest",
"oldest": "Oldest"
},
"menu": {
"home": "Home",
@@ -524,9 +526,5 @@
"emailAddress": "Email Address",
"referenceDataNote": "Please compare with internal accounting data\nbefore using this reference material.",
"result": "Result"
},
"common": {
"latest": "Latest",
"oldest": "Oldest"
}
}

View File

@@ -15,7 +15,9 @@
"error": "오류가 발생했습니다",
"success": "성공",
"noData": "데이터가 없습니다",
"next": "다음"
"next": "다음",
"latest": "최신순",
"oldest": "오래된순"
},
"menu": {
"home": "홈",
@@ -528,9 +530,5 @@
"emailAddress": "메일주소",
"referenceDataNote": "참고용 자료이므로 반드시 내부 회계자료 등과\n비교 후 사용해 주세요.",
"result": "결과"
},
"common": {
"latest": "최신순",
"oldest": "오래된순"
}
}

View File

@@ -56,12 +56,12 @@ export const ListPage = () => {
onClick={() => service.path && navigate(service.path)}
>
<div>
<div className="service-name">{service.serviceName}</div>
<p className="service-desc">{service.serviceDesc}</p>
<div className="service-name">{t(service.serviceNameKey)}</div>
<p className="service-desc">{t(service.serviceDescKey)}</p>
</div>
<img
src={service.icon}
alt={service.serviceName}
alt={t(service.serviceNameKey)}
/>
</div>
));
@@ -79,12 +79,12 @@ export const ListPage = () => {
onClick={() => setDialogOpen(true)}
>
<div>
<div className="service-name">{service.serviceName}</div>
<p className="service-desc">{service.serviceDesc}</p>
<div className="service-name">{t(service.serviceNameKey)}</div>
<p className="service-desc">{t(service.serviceDescKey)}</p>
</div>
<img
src={service.icon}
alt={service.serviceName}
alt={t(service.serviceNameKey)}
/>
</div>
));