mirror of
https://github.com/Luchexx/wacrm.git
synced 2026-11-02 17:29:45 +00:00
The Details tab rendered `t("company")` above the name input, so the
panel showed "Company" twice and the name field carried the wrong
label — in English as well as Korean. There was no
`Contacts.detailView.name` key at all; the call papered over it with
`{ fallback: "Name" }`, which next-intl ignores (the second argument
is ICU values, not options).
Add the missing key to both catalogues, point the label at it, and
drop the two decorative `fallback` arguments so the remaining call
sites read as what they are.
1700 lines
82 KiB
JSON
1700 lines
82 KiB
JSON
{
|
||
"LoginPage": {
|
||
"titleAccept": "로그인하여 수락하기",
|
||
"titleWelcome": "다시 오신 것을 환영합니다",
|
||
"descAccept": "로그인하시면 초대 페이지로 이동합니다.",
|
||
"descWelcome": "계정에 로그인하세요",
|
||
"emailLabel": "이메일",
|
||
"emailPlaceholder": "you@example.com",
|
||
"passwordLabel": "비밀번호",
|
||
"forgotPassword": "비밀번호를 잊으셨나요?",
|
||
"passwordPlaceholder": "비밀번호를 입력하세요",
|
||
"signingIn": "로그인 중...",
|
||
"signIn": "로그인",
|
||
"noAccount": "계정이 없으신가요?",
|
||
"createAccount": "계정 만들기"
|
||
},
|
||
"Sidebar": {
|
||
"title": "WhatsApp용 CRM 템플릿",
|
||
"dashboard": "대시보드",
|
||
"inbox": "인박스",
|
||
"notifications": "알림",
|
||
"contacts": "연락처",
|
||
"pipelines": "파이프라인",
|
||
"broadcasts": "브로드캐스트",
|
||
"automations": "자동화",
|
||
"flows": "플로우",
|
||
"aiAgents": "AI 에이전트",
|
||
"settings": "설정",
|
||
"beta": "베타",
|
||
"unreadConversations": "읽지 않은 대화 {count}건",
|
||
"unreadNotifications": "읽지 않은 알림 {count}건",
|
||
"roleOwner": "소유자",
|
||
"roleAdmin": "관리자",
|
||
"roleAgent": "상담원",
|
||
"roleViewer": "뷰어",
|
||
"closeMenu": "메뉴 닫기",
|
||
"defaultUser": "사용자",
|
||
"defaultAvatar": "아바타",
|
||
"menuProfile": "프로필",
|
||
"menuSettings": "설정",
|
||
"menuSignOut": "로그아웃"
|
||
},
|
||
"Header": {
|
||
"dashboard": "대시보드",
|
||
"inbox": "인박스",
|
||
"notifications": "알림",
|
||
"contacts": "연락처",
|
||
"pipelines": "파이프라인",
|
||
"broadcasts": "브로드캐스트",
|
||
"automations": "자동화",
|
||
"settings": "설정",
|
||
"openMenu": "메뉴 열기",
|
||
"openAccountMenu": "계정 메뉴 열기",
|
||
"defaultUser": "사용자",
|
||
"defaultAvatar": "아바타",
|
||
"menuProfile": "프로필",
|
||
"menuSettings": "설정",
|
||
"menuSignOut": "로그아웃"
|
||
},
|
||
"ModeToggle": {
|
||
"switchMode": "{mode} 모드로 전환"
|
||
},
|
||
"Dashboard": {
|
||
"page": {
|
||
"title": "대시보드",
|
||
"description": "대화, 연락처, 딜, 브로드캐스트, 자동화 전반의 실시간 분석입니다.",
|
||
"activeConversations": "진행 중인 대화",
|
||
"newContactsToday": "오늘의 신규 연락처",
|
||
"openDealsValue": "진행 중인 딜 금액",
|
||
"messagesSentToday": "오늘 보낸 메시지",
|
||
"newTodayVsYesterday": "어제 대비 신규",
|
||
"vsYesterday": "어제 대비",
|
||
"openDeals": "진행 중인 딜 {count}건",
|
||
"noChange": "변동 없음 {suffix}"
|
||
},
|
||
"quickActions": {
|
||
"newContact": "새 연락처",
|
||
"newDeal": "새 딜",
|
||
"newBroadcast": "새 브로드캐스트",
|
||
"newAutomation": "새 자동화"
|
||
},
|
||
"activityFeed": {
|
||
"title": "최근 활동",
|
||
"viewAll": "전체 보기 →",
|
||
"noActivity": "아직 활동이 없습니다",
|
||
"noActivityHint": "메시지, 딜, 브로드캐스트, 자동화 관련 활동이 여기에 표시됩니다.",
|
||
"showingOf": "{totalLoaded}개 중 {visible}개 표시{plus}",
|
||
"show": "표시",
|
||
"timeS": "{sec}초 전",
|
||
"timeM": "{min}분 전",
|
||
"timeH": "{hr}시간 전",
|
||
"timeD": "{day}일 전"
|
||
},
|
||
"conversationsChart": {
|
||
"title": "기간별 대화 추이",
|
||
"description": "방향별 일일 메시지 볼륨",
|
||
"days": "{count}일",
|
||
"noActivity": "이 기간에는 메시지 활동이 없습니다",
|
||
"noActivityHint": "메시지를 주고받으면 이 차트가 채워지기 시작합니다.",
|
||
"incoming": "수신",
|
||
"outgoing": "발신",
|
||
"tooltipIncoming": "수신 {count}건",
|
||
"tooltipOutgoing": "발신 {count}건",
|
||
"ariaLabel": "일별 대화 수"
|
||
},
|
||
"pipelineDonut": {
|
||
"title": "파이프라인 금액",
|
||
"description": "단계별 진행 중인 딜",
|
||
"noOpenDeals": "아직 진행 중인 딜이 없습니다",
|
||
"noOpenDealsHint": "파이프라인에서 딜을 만들면 단계별 분포를 여기서 확인할 수 있습니다.",
|
||
"dealCount": "딜 {count}건",
|
||
"total": "합계",
|
||
"ariaLabel": "단계별 파이프라인 금액"
|
||
},
|
||
"responseTimeChart": {
|
||
"title": "평균 첫 응답 시간",
|
||
"description": "요일별, 고객의 첫 미응답 메시지에 답변하기까지 걸린 시간(분)",
|
||
"target": "목표 {minutes}분",
|
||
"thisWeek": "이번 주:",
|
||
"lastWeek": "지난 주:",
|
||
"noReplies": "아직 기록된 응답이 없습니다",
|
||
"noRepliesHint": "고객 메시지에 답변하면 이 차트가 채워집니다."
|
||
},
|
||
"emptyState": {
|
||
"title": "아직 데이터가 충분하지 않습니다"
|
||
}
|
||
},
|
||
"Inbox": {
|
||
"page": {
|
||
"whatsappNotConnected": "WhatsApp®이 연결되어 있지 않습니다. 설정으로 이동해 계정을 연결하세요."
|
||
},
|
||
"conversationList": {
|
||
"searchPlaceholder": "대화 검색...",
|
||
"filterAll": "전체",
|
||
"filterUnread": "읽지 않음",
|
||
"filterOpen": "열림",
|
||
"filterPending": "대기 중",
|
||
"filterClosed": "닫힘",
|
||
"tags": "태그",
|
||
"company": "회사",
|
||
"allCompanies": "전체 회사",
|
||
"clearAll": "모두 지우기",
|
||
"noConversations": "대화를 찾을 수 없습니다",
|
||
"noMessagesYet": "아직 메시지가 없습니다",
|
||
"unknown": "알 수 없음"
|
||
},
|
||
"messageThread": {
|
||
"backToConversations": "대화 목록으로 돌아가기",
|
||
"hideContactPanel": "연락처 패널 숨기기",
|
||
"showContactPanel": "연락처 패널 표시",
|
||
"hideContact": "연락처 숨기기",
|
||
"showContact": "연락처 표시",
|
||
"refresh": "새로고침",
|
||
"refreshConversation": "대화 새로고침",
|
||
"status": "상태",
|
||
"statusOpen": "열림",
|
||
"statusPending": "대기 중",
|
||
"statusClosed": "닫힘",
|
||
"assign": "담당자 지정",
|
||
"assigned": "담당자 지정됨",
|
||
"unassign": "담당자 해제",
|
||
"noTeammates": "지정 가능한 팀원이 없습니다",
|
||
"me": " (나)",
|
||
"noMessagesYet": "아직 메시지가 없습니다",
|
||
"sendTemplateHint": "템플릿을 보내 대화를 시작하세요",
|
||
"selectConversation": "대화를 선택하세요",
|
||
"selectConversationHint": "왼쪽에서 대화를 선택해 메시지를 시작하세요",
|
||
"today": "오늘",
|
||
"yesterday": "어제"
|
||
},
|
||
"sessionTimer": {
|
||
"expired": "만료됨",
|
||
"xhRemaining": "{hours}시간 남음",
|
||
"xmRemaining": "{minutes}분 남음",
|
||
"noCustomerMessages": "고객 메시지 없음"
|
||
},
|
||
"composer": {
|
||
"draftHint": "✨를 눌러 AI로 답장 초안을 작성하세요 — 보내기 전에 수정할 수 있습니다",
|
||
"sessionExpiredHint": "24시간 세션이 만료되었습니다. 다시 연결하려면 템플릿을 사용하세요.",
|
||
"templates": "템플릿",
|
||
"readOnlyPlaceholder": "읽기 전용 — 뷰어는 열람만 가능하고 답장할 수 없습니다",
|
||
"sessionExpiredPlaceholder": "세션 만료 - 템플릿을 사용하세요",
|
||
"typeMessagePlaceholder": "메시지를 입력하세요... (줄바꿈은 Shift+Enter)",
|
||
"readOnlyTitle": "읽기 전용 — 현재 역할로는 메시지를 보낼 수 없습니다",
|
||
"recording": "녹음 중… {current} / {max}",
|
||
"cancel": "취소",
|
||
"stopAndAttach": "중지하고 첨부",
|
||
"attachMedia": "미디어 첨부",
|
||
"photo": "사진",
|
||
"video": "동영상",
|
||
"document": "문서",
|
||
"voiceNote": "음성 메모",
|
||
"sendTemplate": "템플릿 보내기",
|
||
"draftWithAI": "AI로 답장 초안 작성",
|
||
"addCaption": "캡션 추가…",
|
||
"removeAttachment": "첨부 파일 제거",
|
||
"moreActions": "더보기",
|
||
"interactiveMessage": "인터랙티브 메시지",
|
||
"quickReplies": "빠른 답장",
|
||
"quickRepliesEmpty": "아직 빠른 답장이 없습니다. 설정 → 빠른 답장에서 추가하세요.",
|
||
"saveAsQuickReply": "빠른 답장으로 저장",
|
||
"send": "보내기",
|
||
"quickReplyNamePrompt": "이 빠른 답장의 이름을 지정하세요:",
|
||
"quickReplySaved": "빠른 답장으로 저장되었습니다.",
|
||
"quickReplySaveError": "빠른 답장을 저장하지 못했습니다."
|
||
},
|
||
"bubble": {
|
||
"photo": "사진",
|
||
"video": "동영상",
|
||
"audio": "오디오",
|
||
"unavailable": "{label}을(를) 사용할 수 없습니다",
|
||
"document": "문서",
|
||
"locationShared": "위치 공유됨",
|
||
"template": "템플릿",
|
||
"buttonReply": "버튼 응답",
|
||
"interactiveReply": "[인터랙티브 응답]",
|
||
"unsupported": "[지원되지 않는 메시지 형식]",
|
||
"aiBadge": "AI",
|
||
"aiBadgeTitle": "AI 어시스턴트가 자동으로 전송함"
|
||
},
|
||
"actions": {
|
||
"reply": "답장",
|
||
"copyText": "텍스트 복사",
|
||
"delete": "삭제",
|
||
"react": "반응 남기기",
|
||
"reactWith": "{emoji}(으)로 반응하기",
|
||
"nothingToCopy": "복사할 내용이 없습니다",
|
||
"copied": "복사됨",
|
||
"copyFailed": "복사 실패"
|
||
},
|
||
"replyQuote": {
|
||
"photo": "[사진]",
|
||
"video": "[동영상]",
|
||
"document": "[문서]",
|
||
"audio": "[오디오]",
|
||
"voiceMessage": "[음성 메시지]",
|
||
"location": "[위치]",
|
||
"template": "[템플릿]",
|
||
"message": "[메시지]",
|
||
"cancelReply": "답장 취소"
|
||
},
|
||
"templatePicker": {
|
||
"sendTemplate": "템플릿 보내기",
|
||
"fillPlaceholders": "이 템플릿을 렌더링하려면 자리표시자를 채워주세요. Meta는 모든 변수 값을 요구합니다.",
|
||
"pickTemplate": "이 연락처에 보낼 승인된 WhatsApp 템플릿을 선택하세요.",
|
||
"noApprovedTemplates": "승인된 템플릿이 없습니다",
|
||
"noApprovedTemplatesHint": "Meta WhatsApp 관리자에서 템플릿을 승인한 뒤 설정 → 템플릿에서 동기화하세요.",
|
||
"preview": "미리보기",
|
||
"headerValuePlaceholder": "헤더 변수 값",
|
||
"bodyValuePlaceholder": "{val}의 값",
|
||
"urlSuffixValuePlaceholder": "URL 접미사 값",
|
||
"finalUrl": "최종 URL: {url}",
|
||
"back": "뒤로",
|
||
"cancel": "취소",
|
||
"send": "템플릿 보내기"
|
||
},
|
||
"sidebar": {
|
||
"contactInfo": "연락처 정보",
|
||
"tags": "태그",
|
||
"notes": "메모",
|
||
"deals": "딜",
|
||
"noTags": "태그 없음",
|
||
"noDeals": "딜 없음",
|
||
"addNotePlaceholder": "메모 추가..."
|
||
},
|
||
"aiBanner": {
|
||
"pausedTitle": "이 대화에서 AI 어시스턴트가 일시 중지됨",
|
||
"activeText": "AI 어시스턴트가 자동으로 응답 중입니다",
|
||
"takeOver": "직접 처리",
|
||
"resume": "AI 재개",
|
||
"tookOver": "이 대화를 직접 처리하기 시작했습니다.",
|
||
"resumed": "AI가 재개되었습니다.",
|
||
"updateError": "AI 어시스턴트를 업데이트하지 못했습니다.",
|
||
"networkError": "서버에 연결할 수 없습니다."
|
||
}
|
||
},
|
||
"Contacts": {
|
||
"page": {
|
||
"title": "연락처",
|
||
"subtitle": "연락처 목록을 관리하세요. 전체 연락처 {count}개.",
|
||
"subtitleZero": "연락처 목록을 관리하세요.",
|
||
"customFieldsBtn": "커스텀 필드",
|
||
"importBtn": "가져오기",
|
||
"addContactBtn": "연락처 추가",
|
||
"searchPlaceholder": "이름, 전화번호, 이메일로 검색...",
|
||
"filterByTags": "태그로 필터링",
|
||
"clearAll": "모두 지우기",
|
||
"noTagsYet": "아직 태그가 없습니다.",
|
||
"selectedCount": "{count}개 선택됨",
|
||
"clearSelection": "지우기",
|
||
"deleteSelected": "선택 항목 삭제",
|
||
"tableColumns": {
|
||
"name": "이름",
|
||
"phone": "전화번호",
|
||
"email": "이메일",
|
||
"company": "회사",
|
||
"tags": "태그",
|
||
"createdAt": "생성일"
|
||
},
|
||
"loading": "연락처를 불러오는 중...",
|
||
"noContactsMatch": "필터와 일치하는 연락처가 없습니다.",
|
||
"noContactsYet": "아직 연락처가 없습니다.",
|
||
"addFirstContact": "첫 연락처 추가하기",
|
||
"unnamed": "이름 없음",
|
||
"editAction": "수정",
|
||
"deleteAction": "삭제",
|
||
"showingPagination": "전체 {total}개 중 {start}-{end}",
|
||
"pageCount": "{total} 중 {page}페이지",
|
||
"deleteContactTitle": "연락처 삭제",
|
||
"deleteContactDesc": "{name}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||
"cancel": "취소",
|
||
"deleteBtn": "삭제",
|
||
"deleteBulkTitle": "연락처 삭제",
|
||
"deleteBulkDesc": "선택한 연락처 {count}개를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||
"toastFailedLoad": "연락처를 불러오지 못했습니다",
|
||
"toastFailedDelete": "연락처를 삭제하지 못했습니다",
|
||
"toastDeleted": "연락처가 삭제되었습니다",
|
||
"toastBulkFailedDelete": "연락처를 삭제하지 못했습니다",
|
||
"toastBulkDeleted": "연락처 {count}개가 삭제되었습니다"
|
||
},
|
||
"form": {
|
||
"addTitle": "연락처 추가",
|
||
"addDesc": "새 연락처를 만듭니다. 이름은 필수입니다.",
|
||
"editTitle": "연락처 수정",
|
||
"editDesc": "연락처 정보와 태그를 업데이트합니다.",
|
||
"nameLabel": "이름",
|
||
"namePlaceholder": "홍길동",
|
||
"phoneLabel": "전화번호",
|
||
"phonePlaceholder": "+1234567890",
|
||
"phoneHint": "국가 코드를 포함하세요. 예: 미국은 +1",
|
||
"emailLabel": "이메일",
|
||
"emailPlaceholder": "jane@example.com",
|
||
"companyLabel": "회사",
|
||
"companyPlaceholder": "Acme Corp",
|
||
"tagsLabel": "태그",
|
||
"tagsPlaceholder": "태그 선택...",
|
||
"noTagsFound": "태그를 찾을 수 없습니다.",
|
||
"createTagAction": "\"{value}\" 태그 만들기",
|
||
"cancel": "취소",
|
||
"save": "연락처 저장",
|
||
"update": "업데이트",
|
||
"create": "만들기",
|
||
"toastSuccessAdd": "연락처가 생성되었습니다",
|
||
"toastSuccessEdit": "연락처가 업데이트되었습니다",
|
||
"toastError": "연락처를 저장하지 못했습니다",
|
||
"toastConflict": "이 전화번호를 가진 연락처가 이미 있습니다",
|
||
"viewExisting": "{name} 보기",
|
||
"dupExact": "이 전화번호를 가진 연락처가 이미 있습니다.",
|
||
"dupSimilar": "매우 유사한 번호를 가진 연락처가 이미 있습니다.",
|
||
"loadingTags": "태그를 불러오는 중...",
|
||
"noTagsAvailable": "사용 가능한 태그가 없습니다. 설정에서 태그를 만드세요.",
|
||
"phoneRequired": "전화번호는 필수입니다"
|
||
},
|
||
"detailView": {
|
||
"tabs": {
|
||
"details": "상세 정보",
|
||
"activity": "활동",
|
||
"notes": "메모",
|
||
"custom": "커스텀 필드",
|
||
"deals": "딜",
|
||
"tags": "태그",
|
||
"noTags": "태그 없음",
|
||
"noDeals": "딜 없음",
|
||
"addNotePlaceholder": "메모 추가..."
|
||
},
|
||
"actions": {
|
||
"edit": "수정",
|
||
"message": "메시지",
|
||
"delete": "삭제"
|
||
},
|
||
"contactInfo": "연락처 정보",
|
||
"unnamed": "알 수 없음",
|
||
"contactDetailsDesc": "연락처 정보",
|
||
"name": "이름",
|
||
"phone": "전화번호",
|
||
"email": "이메일",
|
||
"company": "회사",
|
||
"createdAt": "생성일",
|
||
"customFields": "커스텀 필드",
|
||
"noCustomFields": "정의된 커스텀 필드가 없습니다. 설정에서 만드세요.",
|
||
"manageFields": "필드 관리",
|
||
"enterCustomField": "{name} 입력...",
|
||
"activityTab": {
|
||
"title": "활동 내역",
|
||
"noActivity": "아직 활동이 없습니다."
|
||
},
|
||
"notesTab": {
|
||
"title": "내부 메모",
|
||
"placeholder": "메모를 작성하세요...",
|
||
"save": "메모 추가",
|
||
"noNotes": "아직 메모가 없습니다."
|
||
},
|
||
"dealsTab": {
|
||
"noDeals": "아직 딜이 없습니다"
|
||
},
|
||
"tagsTab": {
|
||
"clickTagDesc": "태그를 클릭해 이 연락처에 추가하거나 제거하세요.",
|
||
"noTagsAvailable": "사용 가능한 태그가 없습니다. 설정에서 태그를 만드세요."
|
||
},
|
||
"sendTemplateBtn": "템플릿 보내기",
|
||
"saveChangesBtn": "변경 사항 저장",
|
||
"saveCustomFieldsBtn": "커스텀 필드 저장",
|
||
"toastPhoneRequired": "전화번호는 필수입니다",
|
||
"toastUpdateFailed": "연락처를 업데이트하지 못했습니다",
|
||
"toastUpdated": "연락처가 업데이트되었습니다",
|
||
"toastNotAuthenticated": "인증되지 않았습니다",
|
||
"toastNoteAddFailed": "메모를 추가하지 못했습니다",
|
||
"toastNoteAdded": "메모가 추가되었습니다",
|
||
"toastNoteDeleteFailed": "메모를 삭제하지 못했습니다",
|
||
"toastNoteDeleted": "메모가 삭제되었습니다",
|
||
"toastCustomFieldsSaved": "커스텀 필드가 저장되었습니다",
|
||
"toastCustomFieldsFailed": "커스텀 필드를 저장하지 못했습니다",
|
||
"toastTemplateSent": "\"{name}\" 템플릿을 보냈습니다",
|
||
"toastTemplateFailed": "템플릿을 보내지 못했습니다: {reason}"
|
||
},
|
||
"importModal": {
|
||
"title": "연락처 가져오기",
|
||
"desc": "필수 <phoneCode>phone</phoneCode> 열이 포함된 CSV를 업로드하세요. 선택 항목: <nameCode>name</nameCode>, <emailCode>email</emailCode>, <companyCode>company</companyCode>, <tagsCode>tags</tagsCode> (쉼표로 구분; 여러 태그가 있는 셀은 따옴표로 묶으세요).",
|
||
"uploadDropzone": "클릭하여 CSV 파일 선택",
|
||
"uploadHint": "브라우저 제한까지 .csv 업로드 가능",
|
||
"rowsReady": "{count}개 행 준비됨",
|
||
"rowsReady_plural": "{count}개 행 준비됨",
|
||
"preview": "미리보기 · 처음 {count}개",
|
||
"previewTags": "태그 {tags}개 · 연락처 {contacts}개",
|
||
"previewTags_plural": "태그 {tags}개 · 연락처 {contacts}개",
|
||
"moreRows": "표시되지 않은 행 {count}개 더 있음",
|
||
"moreRows_plural": "표시되지 않은 행 {count}개 더 있음",
|
||
"importComplete": "가져오기 완료",
|
||
"resultImported": "{count}개 가져옴",
|
||
"resultTags": "태그 {count}개 지정됨",
|
||
"resultTags_plural": "태그 {count}개 지정됨",
|
||
"resultSkipped": "{count}개 건너뜀",
|
||
"resultFailed": "{count}개 실패",
|
||
"willBeCreated": "{name} (가져오기 시 생성됨)",
|
||
"columns": {
|
||
"phone": "전화번호",
|
||
"name": "이름",
|
||
"email": "이메일",
|
||
"company": "회사",
|
||
"tags": "태그"
|
||
},
|
||
"cancel": "취소",
|
||
"close": "닫기",
|
||
"importBtn": "{count}개 연락처 가져오기",
|
||
"importBtn_plural": "{count}개 연락처 가져오기",
|
||
"toastNoValidRows": "유효한 행을 찾을 수 없습니다. CSV에 \"phone\" 열 헤더가 있는지 확인하세요.",
|
||
"toastTagsWarning": "연락처는 가져왔지만 일부 태그 지정에 실패했습니다.",
|
||
"toastImported": "연락처 {count}개를 가져왔습니다",
|
||
"toastImported_plural": "연락처 {count}개를 가져왔습니다",
|
||
"toastTagsAssigned": "태그 지정 {count}건을 적용했습니다",
|
||
"toastTagsAssigned_plural": "태그 지정 {count}건을 적용했습니다",
|
||
"toastTagsSkipped": "알 수 없는 태그를 건너뛰었습니다 (설정에서 먼저 만드세요): {sample}{more}",
|
||
"toastSkipped": "중복 {count}건을 건너뛰었습니다",
|
||
"toastSkipped_plural": "중복 {count}건을 건너뛰었습니다",
|
||
"toastFailed": "연락처 {count}개를 가져오지 못했습니다",
|
||
"toastFailed_plural": "연락처 {count}개를 가져오지 못했습니다",
|
||
"toastError": "가져오기 실패"
|
||
},
|
||
"customFields": {
|
||
"title": "커스텀 필드",
|
||
"desc": "추가 연락처 필드를 정의하세요 (예: 우편번호, 리드 출처). 모든 연락처와 \"연락처 필드 업데이트\" 자동화 액션에 표시됩니다.",
|
||
"addField": "추가",
|
||
"fieldName": "새 필드 이름…",
|
||
"loading": "불러오는 중…",
|
||
"empty": "아직 커스텀 필드가 없습니다.",
|
||
"renameAria": "{name} 이름 변경",
|
||
"deleteTitle": "필드 삭제",
|
||
"deleteConfirm": "\"{name}\"을(를) 삭제하시겠습니까? 모든 연락처에 저장된 값도 함께 삭제되며, 되돌릴 수 없습니다.",
|
||
"toastNoAccount": "프로필이 계정에 연결되어 있지 않습니다.",
|
||
"toastDuplicate": "\"{name}\"이라는 필드가 이미 존재합니다.",
|
||
"toastCreateFailed": "필드를 만들 수 없습니다. 권한이 없을 수 있습니다.",
|
||
"toastCreated": "\"{name}\"을(를) 만들었습니다.",
|
||
"toastRenameFailed": "필드 이름을 변경할 수 없습니다.",
|
||
"toastDeleteFailed": "필드를 삭제할 수 없습니다.",
|
||
"toastDeleted": "\"{name}\"을(를) 삭제했습니다."
|
||
}
|
||
},
|
||
"Pipelines": {
|
||
"page": {
|
||
"selectPipeline": "파이프라인 선택",
|
||
"noPipelinesYet": "아직 파이프라인이 없습니다",
|
||
"managePipelines": "파이프라인 관리",
|
||
"addPipeline": "파이프라인 추가",
|
||
"addDeal": "딜 추가",
|
||
"createToStartTracking": "파이프라인을 만들어 딜 추적을 시작하세요",
|
||
"createPipeline": "파이프라인 만들기",
|
||
"newPipeline": "새 파이프라인",
|
||
"pipelineName": "파이프라인 이름",
|
||
"pipelineNamePlaceholder": "예: 기업 영업",
|
||
"defaultStagesDesc": "기본 단계(신규 리드 → 성사)가 자동으로 생성됩니다.",
|
||
"cancel": "취소",
|
||
"creating": "만드는 중...",
|
||
"createPipelineBtn": "파이프라인 만들기",
|
||
"toastFailedLoadPipelines": "파이프라인을 불러오지 못했습니다",
|
||
"toastFailedMoveDeal": "딜을 이동하지 못했습니다",
|
||
"toastFailedCreatePipeline": "파이프라인을 만들지 못했습니다",
|
||
"toastPipelineCreated": "파이프라인이 생성되었습니다",
|
||
"toastNotLinkedToAccount": "프로필이 계정에 연결되어 있지 않습니다."
|
||
},
|
||
"board": {
|
||
"dropDealHere": "여기에 딜을 놓으세요",
|
||
"addDeal": "딜 추가"
|
||
},
|
||
"card": {
|
||
"noContact": "연락처 없음",
|
||
"won": "성사",
|
||
"lost": "실패"
|
||
},
|
||
"form": {
|
||
"editDeal": "딜 수정",
|
||
"newDeal": "새 딜",
|
||
"title": "제목",
|
||
"titlePlaceholder": "딜 제목",
|
||
"contact": "연락처",
|
||
"selectContact": "연락처 선택",
|
||
"linkToConversation": "대화에 연결",
|
||
"value": "금액",
|
||
"currency": "통화",
|
||
"expectedCloseDate": "예상 마감일",
|
||
"stage": "단계",
|
||
"assignedTo": "담당자",
|
||
"unassigned": "담당자 없음",
|
||
"notes": "메모",
|
||
"notesPlaceholder": "메모 추가...",
|
||
"status": "상태",
|
||
"markAsWon": "성사로 표시",
|
||
"markAsLost": "실패로 표시",
|
||
"reopenDeal": "딜 재개",
|
||
"cancel": "취소",
|
||
"saving": "저장 중...",
|
||
"saveChanges": "변경 사항 저장",
|
||
"createDeal": "딜 만들기",
|
||
"deletePrompt": "이 딜을 삭제하시겠습니까?",
|
||
"confirm": "확인",
|
||
"deleting": "삭제 중...",
|
||
"deleteDeal": "딜 삭제",
|
||
"toastRequired": "제목, 연락처, 단계는 필수입니다",
|
||
"toastFailedSave": "딜을 저장하지 못했습니다",
|
||
"toastNotSignedIn": "로그인되어 있지 않습니다",
|
||
"toastNotLinked": "프로필이 계정에 연결되어 있지 않습니다.",
|
||
"toastFailedCreate": "딜을 만들지 못했습니다",
|
||
"toastUpdated": "딜이 업데이트되었습니다",
|
||
"toastCreated": "딜이 생성되었습니다",
|
||
"toastFailedStatus": "딜 상태를 업데이트하지 못했습니다",
|
||
"toastMarkedWon": "성사로 표시했습니다",
|
||
"toastMarkedLost": "실패로 표시했습니다",
|
||
"toastReopened": "딜이 재개되었습니다",
|
||
"toastFailedDelete": "딜을 삭제하지 못했습니다",
|
||
"toastDeleted": "딜이 삭제되었습니다"
|
||
},
|
||
"settings": {
|
||
"managePipeline": "파이프라인 관리",
|
||
"deletePipeline": "파이프라인 삭제",
|
||
"deletePipelineDesc": "이 파이프라인의 모든 딜이 보관 처리됩니다. 되돌릴 수 없습니다.",
|
||
"cancel": "취소",
|
||
"deleting": "삭제 중...",
|
||
"deletePipelineBtn": "파이프라인 삭제",
|
||
"pipelineName": "파이프라인 이름",
|
||
"stages": "단계",
|
||
"newStageNamePlaceholder": "새 단계 이름",
|
||
"add": "추가",
|
||
"createNewPipeline": "새 파이프라인 만들기",
|
||
"saving": "저장 중...",
|
||
"saveChanges": "변경 사항 저장",
|
||
"dragToReorder": "드래그하여 순서 변경",
|
||
"changeColor": "색상 변경",
|
||
"toastFailedSave": "파이프라인을 저장하지 못했습니다",
|
||
"toastSaved": "파이프라인이 저장되었습니다",
|
||
"toastFailedAddStage": "단계를 추가하지 못했습니다",
|
||
"toastMoveOrDeleteDeals": "먼저 이 단계의 딜을 이동하거나 삭제하세요",
|
||
"toastFailedDeleteStage": "단계를 삭제하지 못했습니다",
|
||
"toastFailedDeletePipeline": "파이프라인을 삭제하지 못했습니다",
|
||
"toastDeleted": "파이프라인이 삭제되었습니다"
|
||
},
|
||
"analytics": {
|
||
"totalDeals": "전체 딜",
|
||
"totalDealsTooltip": "실패로 표시되지 않은, 이 파이프라인의 모든 딜 수입니다. 성사된 딜도 포함됩니다.",
|
||
"pipelineValue": "파이프라인 금액",
|
||
"pipelineValueTooltip": "실패로 표시된 딜을 제외한, 이 파이프라인 내 모든 딜 금액의 합계입니다.",
|
||
"avgDealSize": "평균 딜 규모",
|
||
"avgDealSizeTooltip": "파이프라인 금액을 전체 딜 수로 나눈 값 — 실패하지 않은 개별 딜의 평균 금액입니다.",
|
||
"weightedValue": "가중 금액",
|
||
"weightedValueTooltip": "예상 매출: 진행 중인 각 딜의 금액 × 단계별 성사 확률. 첫 단계는 약 10%, 이후 단계는 최대 90%까지 상승하며, 성사 시 100%입니다. 실패한 딜은 제외됩니다.",
|
||
"wonThisMonth": "이번 달 성사",
|
||
"wonThisMonthTooltip": "이번 달 1일 이후 성사로 표시된 딜입니다.",
|
||
"lostThisMonth": "이번 달 실패",
|
||
"lostThisMonthTooltip": "이번 달 1일 이후 실패로 표시된 딜입니다.",
|
||
"howCalculated": "{label} 계산 방법"
|
||
}
|
||
},
|
||
"Broadcasts": {
|
||
"page": {
|
||
"title": "브로드캐스트",
|
||
"subtitle": "승인된 템플릿을 사용해 연락처에 대량 메시지를 보내세요.",
|
||
"newBroadcast": "새 브로드캐스트",
|
||
"noBroadcastsYet": "아직 브로드캐스트가 없습니다",
|
||
"createFirst": "첫 브로드캐스트를 만들어 연락처에 대규모로 도달해보세요.",
|
||
"table": {
|
||
"name": "이름",
|
||
"template": "템플릿",
|
||
"recipients": "수신자",
|
||
"delivery": "전달",
|
||
"read": "읽음",
|
||
"status": "상태",
|
||
"date": "날짜"
|
||
},
|
||
"errorLoad": "브로드캐스트를 불러오지 못했습니다",
|
||
"retry": "다시 시도"
|
||
},
|
||
"status": {
|
||
"draft": "초안",
|
||
"scheduled": "예약됨",
|
||
"sending": "전송 중",
|
||
"sent": "전송됨",
|
||
"failed": "실패",
|
||
"pending": "대기 중",
|
||
"delivered": "전달됨",
|
||
"read": "읽음",
|
||
"replied": "응답함",
|
||
"unknown": "알 수 없음"
|
||
},
|
||
"detail": {
|
||
"backToBroadcasts": "브로드캐스트로 돌아가기",
|
||
"notFound": "브로드캐스트를 찾을 수 없습니다",
|
||
"template": "템플릿: {name}",
|
||
"createdAt": "{date} 생성",
|
||
"deletePrompt": "이 브로드캐스트를 삭제하시겠습니까?",
|
||
"cancel": "취소",
|
||
"confirm": "확인",
|
||
"deleting": "삭제 중…",
|
||
"delete": "삭제",
|
||
"cannotDeleteSending": "브로드캐스트가 전송 중일 때는 삭제할 수 없습니다",
|
||
"deleteHover": "이 브로드캐스트 삭제",
|
||
"funnel": "퍼널",
|
||
"recipientsHeader": "수신자 (전체 {total}명 중 {filtered}명)",
|
||
"recipientsHeaderAll": "수신자 ({total}명)",
|
||
"allStatuses": "모든 상태",
|
||
"exportCsv": "CSV 내보내기",
|
||
"noRecipients": "수신자가 없습니다.",
|
||
"noRecipientsFilter": "이 필터와 일치하는 수신자가 없습니다.",
|
||
"table": {
|
||
"contact": "연락처",
|
||
"phone": "전화번호",
|
||
"status": "상태",
|
||
"sent": "전송됨",
|
||
"delivered": "전달됨",
|
||
"read": "읽음",
|
||
"error": "오류"
|
||
},
|
||
"stats": {
|
||
"totalRecipients": "전체 수신자",
|
||
"sent": "전송됨",
|
||
"delivered": "전달됨",
|
||
"read": "읽음",
|
||
"replied": "응답함",
|
||
"failed": "실패"
|
||
},
|
||
"toastFailedDelete": "삭제하지 못했습니다: {error}",
|
||
"toastDeleted": "브로드캐스트가 삭제되었습니다"
|
||
},
|
||
"new": {
|
||
"title": "새 브로드캐스트",
|
||
"subtitle": "연락처에 보낼 브로드캐스트 메시지를 만듭니다.",
|
||
"steps": {
|
||
"template": "템플릿",
|
||
"audience": "대상",
|
||
"personalize": "개인화",
|
||
"send": "전송"
|
||
},
|
||
"toastGiveName": "초안을 저장하기 전에 브로드캐스트 이름을 입력하세요.",
|
||
"toastNotSignedIn": "로그인되어 있지 않습니다.",
|
||
"toastNotLinked": "프로필이 계정에 연결되어 있지 않습니다.",
|
||
"toastFailedDraft": "초안 저장 실패: {error}",
|
||
"toastDraftSaved": "초안이 저장되었습니다"
|
||
},
|
||
"wizard": {
|
||
"next": "다음",
|
||
"back": "뒤로",
|
||
"cancel": "취소",
|
||
"chooseTemplate": {
|
||
"title": "템플릿 선택",
|
||
"subtitle": "브로드캐스트에 사용할 승인된 메시지 템플릿을 선택하세요.",
|
||
"noTemplates": "사용 가능한 템플릿이 없습니다.",
|
||
"createFirst": "먼저 설정에서 템플릿을 만드세요.",
|
||
"errorLoad": "템플릿을 불러오지 못했습니다"
|
||
},
|
||
"selectAudience": {
|
||
"title": "대상 선택",
|
||
"subtitle": "이 브로드캐스트를 받을 대상을 선택하세요.",
|
||
"method": {
|
||
"all": "전체 연락처",
|
||
"tags": "태그로 필터링",
|
||
"customField": "커스텀 필드",
|
||
"csv": "CSV 업로드"
|
||
},
|
||
"allDesc": "데이터베이스의 전체 연락처 {count}명에게 보냅니다.",
|
||
"allDescLoading": "데이터베이스의 전체 연락처에게 보냅니다.",
|
||
"tagDesc": "특정 태그와 일치하는 연락처에 보냅니다.",
|
||
"customFieldDesc": "커스텀 필드 규칙과 일치하는 연락처에 보냅니다.",
|
||
"csvDesc": "전화번호(선택적으로 이름 포함)가 담긴 CSV를 업로드하세요.",
|
||
"selectTags": "태그 선택",
|
||
"searchTags": "태그 검색...",
|
||
"noTagsFound": "태그를 찾을 수 없습니다.",
|
||
"excludeTags": "제외할 태그 (선택)",
|
||
"searchExcludeTags": "제외할 태그 검색...",
|
||
"field": "필드",
|
||
"selectField": "필드 선택...",
|
||
"operator": "연산자",
|
||
"operatorIs": "같음",
|
||
"operatorIsNot": "같지 않음",
|
||
"operatorContains": "포함",
|
||
"value": "값",
|
||
"valuePlaceholder": "일치시킬 값",
|
||
"uploadCsv": "CSV 파일 업로드",
|
||
"csvFormatDesc": "'phone' 열(E.164 형식)이 필요합니다. 'name' 열은 선택 사항입니다.",
|
||
"csvContactsFound": "CSV에서 유효한 연락처 {count}개를 찾았습니다.",
|
||
"errorLoadTags": "태그를 불러오지 못했습니다",
|
||
"errorLoadFields": "커스텀 필드를 불러오지 못했습니다",
|
||
"errorCsvParse": "CSV 파일을 파싱할 수 없습니다.",
|
||
"errorCsvMissingPhone": "CSV에 'phone' 열이 있어야 합니다."
|
||
},
|
||
"personalize": {
|
||
"title": "변수 개인화",
|
||
"subtitle": "템플릿 변수를 연락처 필드에 매핑하거나 고정 값을 입력하세요.",
|
||
"headerImage": "헤더 이미지",
|
||
"headerImageDesc": "이 템플릿에는 헤더 이미지가 필요합니다.",
|
||
"imageUrl": "이미지 URL",
|
||
"imageUrlPlaceholder": "https://example.com/image.jpg",
|
||
"variables": "변수",
|
||
"varDesc": "{{name}}의 값을 설정하세요",
|
||
"type": "유형",
|
||
"typeStatic": "고정 값",
|
||
"typeContact": "연락처 필드",
|
||
"typeCustom": "커스텀 필드",
|
||
"staticValue": "고정 값",
|
||
"contactField": "연락처 필드",
|
||
"selectContactField": "필드 선택...",
|
||
"customField": "커스텀 필드",
|
||
"selectCustomField": "커스텀 필드 선택...",
|
||
"preview": "미리보기",
|
||
"previewSample": "샘플 데이터로 미리보기를 표시합니다.",
|
||
"noPreview": "미리보기를 사용할 수 없습니다.",
|
||
"fieldMap": {
|
||
"name": "이름",
|
||
"phone": "전화번호",
|
||
"email": "이메일"
|
||
}
|
||
},
|
||
"scheduleSend": {
|
||
"title": "검토 및 전송",
|
||
"subtitle": "브로드캐스트 이름을 입력하고 전송을 확인하세요.",
|
||
"broadcastName": "브로드캐스트 이름",
|
||
"broadcastNamePlaceholder": "예: 여름 프로모션",
|
||
"summary": "요약",
|
||
"template": "템플릿:",
|
||
"audience": "대상:",
|
||
"audienceAll": "전체 연락처",
|
||
"audienceTags": "태그로 필터링됨",
|
||
"audienceField": "커스텀 필드로 필터링됨",
|
||
"audienceCsv": "CSV 업로드",
|
||
"variables": "변수:",
|
||
"variablesMapped": "{count}개 매핑됨",
|
||
"saveDraft": "초안으로 저장",
|
||
"sendNow": "브로드캐스트 전송",
|
||
"sending": "전송 중...",
|
||
"preparing": "준비 중...",
|
||
"progressDesc": "수신자 {total}명 중 {current}명 처리 중...",
|
||
"toastFailedPreview": "미리보기 데이터를 불러오지 못했습니다"
|
||
}
|
||
}
|
||
},
|
||
"Automations": {
|
||
"list": {
|
||
"title": "자동화",
|
||
"subtitle": "WhatsApp® 이벤트에 자동으로 반응하는 워크플로를 만드세요.",
|
||
"create": "자동화 만들기",
|
||
"retry": "다시 시도",
|
||
"templatesTitle": "빠른 시작 템플릿",
|
||
"emptyTitle": "아직 자동화가 없습니다",
|
||
"emptyDesc": "위의 템플릿을 선택하거나 처음부터 새로 만드세요.",
|
||
"runs": "실행 {count}회",
|
||
"runsPlural": "실행 {count}회",
|
||
"lastRun": "마지막 실행 {time}",
|
||
"activate": "활성화",
|
||
"deactivate": "비활성화",
|
||
"edit": "수정",
|
||
"duplicate": "복제",
|
||
"viewLogs": "로그 보기",
|
||
"delete": "삭제",
|
||
"cancel": "취소",
|
||
"deleteTitle": "자동화 삭제",
|
||
"deleteDesc": "{name}과(와) 실행 기록이 영구적으로 삭제됩니다. 되돌릴 수 없습니다.",
|
||
"toasts": {
|
||
"activated": "자동화가 활성화되었습니다",
|
||
"paused": "자동화가 일시 중지되었습니다",
|
||
"duplicated": "자동화가 복제되었습니다",
|
||
"deleted": "자동화가 삭제되었습니다",
|
||
"updateError": "업데이트하지 못했습니다",
|
||
"duplicateError": "복제하지 못했습니다",
|
||
"deleteError": "삭제하지 못했습니다"
|
||
}
|
||
},
|
||
"edit": {
|
||
"loading": "불러오는 중...",
|
||
"loadError": "불러오지 못했습니다 ({status})",
|
||
"back": "자동화로 돌아가기"
|
||
},
|
||
"logs": {
|
||
"title": "실행 로그",
|
||
"loadError": "로그를 불러오지 못했습니다",
|
||
"emptyTitle": "아직 실행 기록이 없습니다",
|
||
"emptyDesc": "이 자동화를 실행시켜 여기서 결과를 확인하세요.",
|
||
"unknownContact": "알 수 없는 연락처",
|
||
"step": "단계 {count}개",
|
||
"stepPlural": "단계 {count}개",
|
||
"noSteps": "기록된 단계가 없습니다.",
|
||
"status": {
|
||
"success": "성공",
|
||
"partial": "부분 성공",
|
||
"failed": "실패"
|
||
},
|
||
"back": "뒤로",
|
||
"backAria": "뒤로"
|
||
},
|
||
"builder": {
|
||
"steps": {
|
||
"send_message": "메시지 보내기",
|
||
"send_buttons": "버튼 보내기",
|
||
"send_list": "목록 보내기",
|
||
"send_template": "템플릿 보내기",
|
||
"add_tag": "태그 추가",
|
||
"remove_tag": "태그 제거",
|
||
"assign_conversation": "대화 담당자 지정",
|
||
"update_contact_field": "연락처 필드 업데이트",
|
||
"create_deal": "딜 생성",
|
||
"wait": "대기",
|
||
"condition": "조건 (If/Else)",
|
||
"send_webhook": "웹훅 보내기",
|
||
"close_conversation": "대화 닫기"
|
||
},
|
||
"triggers": {
|
||
"new_message_received": {
|
||
"label": "새 메시지 수신",
|
||
"hint": "모든 수신 메시지"
|
||
},
|
||
"first_inbound_message": {
|
||
"label": "연락처의 첫 메시지",
|
||
"hint": "이 연락처가 처음으로 메시지를 보냈을 때 (수동으로 추가한 연락처에도 적용됨)"
|
||
},
|
||
"keyword_match": {
|
||
"label": "키워드 일치",
|
||
"hint": "메시지에 특정 키워드가 포함된 경우"
|
||
},
|
||
"interactive_reply": {
|
||
"label": "버튼 / 목록 응답",
|
||
"hint": "고객이 id가 일치하는 버튼이나 목록 행을 탭했을 때 — 자동화 간 메뉴를 연결할 수 있습니다"
|
||
},
|
||
"new_contact_created": {
|
||
"label": "새 연락처 생성됨",
|
||
"hint": "수신 메시지로 연락처가 자동 생성되었을 때"
|
||
},
|
||
"conversation_assigned": {
|
||
"label": "대화 담당자 지정됨",
|
||
"hint": "상담원에게 배정되었을 때"
|
||
},
|
||
"tag_added": {
|
||
"label": "태그 추가됨",
|
||
"hint": "연락처에 태그가 추가되었을 때"
|
||
},
|
||
"time_based": {
|
||
"label": "시간 기반",
|
||
"hint": "반복 일정에 따라"
|
||
}
|
||
},
|
||
"trigger": "트리거",
|
||
"triggerType": "트리거 유형",
|
||
"keywords": "키워드",
|
||
"keywordsHint": "쉼표로 구분된 목록 (예: hello, help, buy)",
|
||
"replyIds": "응답 ID",
|
||
"replyIdsHint": "yes, no, more_info",
|
||
"replyIdsHelp": "정확히 일치시킬 버튼/목록 행 id를 쉼표로 구분해 입력하세요. 버튼 보내기 / 목록 보내기 단계에서 설정한 것과 같은 id를 사용하세요.",
|
||
"schedule": "일정",
|
||
"scheduleHint": "Cron 표현식 (예: 0 9 * * 1-5)",
|
||
"active": "활성",
|
||
"activeAria": "활성",
|
||
"save": "저장",
|
||
"saveDraft": "초안 저장",
|
||
"untitled": "제목 없는 자동화",
|
||
"backToAutomations": "자동화로 돌아가기",
|
||
"toasts": {
|
||
"saved": "자동화가 저장되었습니다",
|
||
"created": "자동화가 생성되었습니다",
|
||
"saveFailed": "저장 실패"
|
||
},
|
||
"tags": {
|
||
"select": "태그 선택…",
|
||
"placeholder": "태그 id",
|
||
"unknown": "{id} (알 수 없는 태그)"
|
||
},
|
||
"fields": {
|
||
"name": "이름",
|
||
"email": "이메일",
|
||
"company": "회사",
|
||
"customFields": "커스텀 필드",
|
||
"unknown": "{id} (알 수 없는 필드)"
|
||
},
|
||
"agents": {
|
||
"select": "상담원 선택…",
|
||
"placeholder": "상담원 id",
|
||
"unknown": "{id} (알 수 없는 상담원)"
|
||
},
|
||
"pipelines": {
|
||
"pipelineLabel": "파이프라인",
|
||
"pipelineIdLabel": "파이프라인 id",
|
||
"stageLabel": "단계",
|
||
"stageIdLabel": "단계 id",
|
||
"selectPipeline": "파이프라인 선택…",
|
||
"selectStage": "단계 선택…",
|
||
"selectPipelineFirst": "먼저 파이프라인을 선택하세요…",
|
||
"unknownPipeline": "{id} (알 수 없는 파이프라인)",
|
||
"unknownStage": "{id} (알 수 없는 단계)"
|
||
},
|
||
"templates": {
|
||
"templateLabel": "템플릿",
|
||
"templateNameLabel": "템플릿 이름",
|
||
"languageLabel": "언어",
|
||
"select": "템플릿 선택…",
|
||
"unknown": "{name} ({lang}) — 승인 목록에 없음",
|
||
"unknownLang": "알 수 없음"
|
||
},
|
||
"branches": {
|
||
"yes": "예",
|
||
"no": "아니요"
|
||
},
|
||
"addStep": "단계 추가",
|
||
"config": {
|
||
"messageText": "메시지 텍스트",
|
||
"placeholderMessageText": "안녕하세요! 문의해주셔서 감사합니다…",
|
||
"tagLabel": "태그",
|
||
"modeLabel": "모드",
|
||
"modes": {
|
||
"round_robin": "순차 배정",
|
||
"specific": "특정 상담원"
|
||
},
|
||
"agentLabel": "상담원",
|
||
"fieldLabel": "필드",
|
||
"valueLabel": "값",
|
||
"placeholderValue": "텍스트 또는 {{ vars.x }} / {{ message.text }}",
|
||
"titleLabel": "제목",
|
||
"amountLabel": "수치",
|
||
"unitLabel": "단위",
|
||
"units": {
|
||
"minutes": "분",
|
||
"hours": "시간",
|
||
"days": "일"
|
||
},
|
||
"subjectLabel": "대상",
|
||
"subjects": {
|
||
"tag_presence": "태그 존재 여부",
|
||
"contact_field": "연락처 필드",
|
||
"message_content": "메시지 내용",
|
||
"time_of_day": "시간대"
|
||
},
|
||
"operandLabel": "피연산자",
|
||
"placeholderTime": "HH:mm-HH:mm",
|
||
"placeholderContact": "이름 / 이메일 / 회사",
|
||
"placeholderTag": "태그 id",
|
||
"urlLabel": "URL",
|
||
"headersLabel": "헤더",
|
||
"placeholderHeaders": "{\"Authorization\": \"Bearer ...\"}",
|
||
"bodyTemplateLabel": "본문 템플릿",
|
||
"placeholderBody": "{\"id\": \"{{ contact.id }}\"}",
|
||
"matchType": "일치 유형",
|
||
"matchContains": "포함",
|
||
"matchExact": "정확히 일치",
|
||
"closeConversationHint": "대화 상태를 \"닫힘\"으로 설정합니다. 추가 설정이 필요 없습니다."
|
||
}
|
||
}
|
||
},
|
||
"Flows": {
|
||
"list": {
|
||
"title": "플로우",
|
||
"beta": "베타",
|
||
"description": "분기하는 버튼 기반 WhatsApp 대화를 만드세요. 메뉴, FAQ, 사람이 개입하기 전 1차 응대에 유용합니다.",
|
||
"newFlow": "새 플로우",
|
||
"statusDraft": "초안",
|
||
"statusActive": "활성",
|
||
"statusArchived": "보관됨",
|
||
"loadError": "플로우를 불러올 수 없습니다.",
|
||
"createError": "플로우를 만들 수 없습니다.",
|
||
"cloneError": "복제 실패",
|
||
"deleteConfirm": "\"{name}\"을(를) 삭제하시겠습니까? 실행 중인 세션은 즉시 종료됩니다.",
|
||
"deleteSuccess": "플로우가 삭제되었습니다.",
|
||
"deleteError": "플로우를 삭제할 수 없습니다.",
|
||
"emptyTitle": "아직 플로우가 없습니다",
|
||
"emptyDesc": "첫 대화를 만들어보세요 — 환영 메뉴, 주문 조회, FAQ 봇 등. 고객이 버튼을 탭하면 봇이 알맞은 답변(또는 알맞은 상담원)으로 안내합니다.",
|
||
"createFirst": "첫 플로우 만들기",
|
||
"createTitle": "새 플로우 만들기",
|
||
"createDesc": "템플릿에서 시작하거나 처음부터 만드세요.",
|
||
"startTemplate": "템플릿에서 시작",
|
||
"nodeCount": "노드 {count}개",
|
||
"startBlank": "또는 빈 상태로 시작",
|
||
"placeholderName": "예: 환영 메뉴",
|
||
"cancel": "취소",
|
||
"createBlank": "빈 플로우 만들기",
|
||
"runCount": "실행 {count}회",
|
||
"edit": "수정",
|
||
"delete": "삭제",
|
||
"triggerKeywordNone": "키워드로 트리거 (설정 안 됨)",
|
||
"triggerKeyword": "트리거 조건: {keywords}",
|
||
"triggerFirstInbound": "연락처의 첫 수신 메시지에서 트리거됨",
|
||
"triggerManual": "수동 트리거"
|
||
},
|
||
"edit": {
|
||
"notFound": "플로우를 찾을 수 없습니다.",
|
||
"backToFlows": "← 플로우로 돌아가기",
|
||
"loadError": "플로우를 불러올 수 없습니다."
|
||
},
|
||
"logs": {
|
||
"title": "실행 기록",
|
||
"description": "이 플로우가 실행된 가장 최근 50건입니다. 행을 펼치면 엔진의 단계별 로그를 볼 수 있습니다.",
|
||
"emptyState": "아직 실행 기록이 없습니다. 개인 WhatsApp 번호로 플로우를 실행시켜 여기서 확인해보세요.",
|
||
"loadError": "실행 기록을 불러올 수 없습니다.",
|
||
"unknownContact": "알 수 없는 연락처",
|
||
"atNode": "{node}에서",
|
||
"started": "{time} 시작",
|
||
"reprompts": "재요청 {count}회",
|
||
"ranFor": "{duration} 동안 실행됨",
|
||
"capturedVars": "수집된 변수 ({count}개)",
|
||
"noEvents": "이 실행에 대해 기록된 이벤트가 없습니다.",
|
||
"statusActive": "실행 중",
|
||
"statusCompleted": "완료됨",
|
||
"statusHandedOff": "인계됨",
|
||
"statusTimedOut": "시간 초과",
|
||
"statusPaused": "상담원이 일시 중지함",
|
||
"statusFailed": "실패"
|
||
},
|
||
"builder": {
|
||
"triggerTitle": "트리거",
|
||
"whenLabel": "조건…",
|
||
"triggerKeywordTitle": "메시지에 키워드가 포함될 때",
|
||
"triggerFirstInboundTitle": "고객의 첫 수신 메시지",
|
||
"triggerManualTitle": "수동 전용 (자동 트리거 없음)",
|
||
"keywordsLabel": "키워드 (쉼표로 구분)",
|
||
"keywordsPlaceholder": "support, help, hi",
|
||
"entryNodeTitle": "시작 노드:",
|
||
"entryNodePlaceholder": "첫 노드를 선택하세요…",
|
||
"nodesTitle": "노드 ({count}개)",
|
||
"nodesEmpty": "<strong>시작</strong> 노드를 추가한 뒤 <strong>버튼 보내기</strong> 노드, 그다음 <strong>인계</strong> 노드를 추가하세요 — 브리프에 나온 환영 메뉴 구조입니다.",
|
||
"addNode": "노드 추가",
|
||
"setAsEntry": "시작 노드로 설정",
|
||
"removeNode": "노드 제거",
|
||
"showAdvanced": "고급 설정 표시",
|
||
"hideAdvanced": "고급 설정 숨기기",
|
||
"nodeKeyLabel": "노드 키 (내부 식별자 — 분석을 위해 값을 고정하세요)",
|
||
"replyIdsHint": "각 옵션의 응답 ID는 위에 인라인으로 표시됩니다. 고객이 탭했을 때 WhatsApp이 반환하는 값이며, 보통 직접 수정할 필요는 없습니다.",
|
||
"badgeEntry": "시작",
|
||
"noNodesYet": "아직 노드가 없습니다.",
|
||
"deleteNode": "노드 삭제",
|
||
"canvasView": "캔버스",
|
||
"listView": "목록",
|
||
"noNodeSelected": "선택된 노드가 없습니다",
|
||
"noNodeDesc": "캔버스에서 노드를 선택해 설정을 편집하세요.",
|
||
"form": {
|
||
"advancesTo": "다음 진행",
|
||
"textToCustomer": "고객에게 전송되는 텍스트",
|
||
"promptToCustomer": "고객에게 전송되는 질문",
|
||
"varKeyLabel": "변수 키 (flow_runs.vars에 저장됨; 영숫자 + 밑줄만 사용)",
|
||
"varKeyPlaceholder": "예: name, email, company",
|
||
"varKeyHelp": "다음과 같이 이후 프롬프트와 인계 메모에서 참조할 수 있습니다",
|
||
"advanceAfterCapture": "수집 후 다음 진행",
|
||
"internalNote": "내부 메모 (인계받는 상담원용)",
|
||
"endNodeHelp": "종료 노드입니다. 러너가 이 노드에 도달하면 실행이 완료로 표시됩니다. 추가 설정이 필요 없습니다.",
|
||
"bodyText": "본문 텍스트",
|
||
"footerText": "푸터 (선택, 60자)",
|
||
"buttonsHelp": "버튼 (1–3개) — 각 버튼은 서로 다른 다음 노드로 연결됩니다",
|
||
"optionTitlePlaceholder": "표시될 제목 (20자 이하)",
|
||
"nextNodePlaceholder": "다음 노드…",
|
||
"addButton": "버튼 추가",
|
||
"buttonLabel": "탭하여 펼치는 버튼 라벨 (20자 이하)",
|
||
"rowsHelp": "행 (모든 섹션 합쳐 1–10개)",
|
||
"sectionTitlePlaceholder": "섹션 {count} 제목 (선택)",
|
||
"rowTitlePlaceholder": "행 제목 (24자 이하)",
|
||
"addRow": "행 추가",
|
||
"addSection": "섹션 추가",
|
||
"ifLabel": "만약",
|
||
"capturedVariable": "수집된 변수",
|
||
"contactHasTag": "연락처에 태그가 있음",
|
||
"contactField": "연락처 필드",
|
||
"varName": "변수 이름",
|
||
"tagLabel": "태그",
|
||
"fieldLabel": "필드",
|
||
"pickTag": "태그 선택…",
|
||
"pickField": "필드 선택…",
|
||
"operatorLabel": "연산자",
|
||
"isPresent": "존재함",
|
||
"isAbsent": "존재하지 않음",
|
||
"equals": "일치함",
|
||
"contains": "포함함",
|
||
"valueLabel": "값",
|
||
"ifTrueAdvance": "참일 경우 → 다음 진행",
|
||
"ifFalseAdvance": "거짓일 경우 → 다음 진행",
|
||
"actionLabel": "액션",
|
||
"addTag": "태그 추가",
|
||
"removeTag": "태그 제거",
|
||
"tagUuidPlaceholder": "태그 UUID",
|
||
"thenAdvanceTo": "이후 다음 진행",
|
||
"mediaTypeLabel": "미디어 유형",
|
||
"imageLabel": "이미지 (PNG, JPEG, WebP)",
|
||
"videoLabel": "동영상 (MP4, 3GP)",
|
||
"documentLabel": "문서 (PDF, Word, Excel, PowerPoint, TXT)",
|
||
"fileLabel": "파일",
|
||
"removeFile": "파일 제거",
|
||
"uploading": "업로드 중…",
|
||
"clickToUpload": "클릭하여 업로드 (최대 16MB)",
|
||
"captionLabel": "캡션 (선택, 미디어 아래에 표시됨)",
|
||
"filenameLabel": "고객에게 표시될 파일명 (문서 전용)",
|
||
"filenamePlaceholder": "invoice.pdf",
|
||
"advanceAfterSending": "전송 후 다음 진행",
|
||
"pickNextNode": "다음 노드를 선택하세요…",
|
||
"none": "— 없음 —"
|
||
},
|
||
"categories": {
|
||
"messaging": "메시징",
|
||
"logic": "로직 & 데이터",
|
||
"flow": "플로우 제어"
|
||
},
|
||
"nodes": {
|
||
"start": {
|
||
"label": "시작",
|
||
"blurb": "플로우의 진입점"
|
||
},
|
||
"send_message": {
|
||
"label": "메시지 보내기",
|
||
"blurb": "WhatsApp 텍스트 메시지를 보냅니다"
|
||
},
|
||
"send_buttons": {
|
||
"label": "버튼 보내기",
|
||
"blurb": "빠른 응답 버튼을 보냅니다"
|
||
},
|
||
"send_list": {
|
||
"label": "목록 보내기",
|
||
"blurb": "탭 가능한 옵션 목록을 보냅니다"
|
||
},
|
||
"send_media": {
|
||
"label": "미디어 보내기",
|
||
"blurb": "이미지, 동영상, 문서를 보냅니다"
|
||
},
|
||
"collect_input": {
|
||
"label": "입력 수집",
|
||
"blurb": "질문을 하고 응답을 저장합니다"
|
||
},
|
||
"condition": {
|
||
"label": "만약 / 아니면",
|
||
"blurb": "규칙에 따라 분기합니다"
|
||
},
|
||
"set_tag": {
|
||
"label": "연락처 태그 지정",
|
||
"blurb": "연락처 태그를 추가하거나 제거합니다"
|
||
},
|
||
"handoff": {
|
||
"label": "상담원에게 인계",
|
||
"blurb": "대화를 사람에게 넘깁니다"
|
||
},
|
||
"end": {
|
||
"label": "종료",
|
||
"blurb": "플로우를 종료합니다"
|
||
}
|
||
}
|
||
},
|
||
"validation": {
|
||
"noIssues": "문제가 없습니다. 활성화할 준비가 되었습니다.",
|
||
"summary": "오류 {errorCount}건, 경고 {warningCount}건",
|
||
"jumpToNode": "{key} 노드로 이동"
|
||
},
|
||
"editorState": {
|
||
"saved": "저장되었습니다.",
|
||
"fixIssues": "활성화하기 전에 아래 문제를 해결하세요.",
|
||
"statusActivated": "플로우가 활성화되었습니다.",
|
||
"statusArchived": "보관되었습니다.",
|
||
"statusDraft": "초안으로 저장되었습니다."
|
||
},
|
||
"summary": {
|
||
"options": "옵션 {count}개",
|
||
"optionsAcrossSections": "{sectionCount}개 섹션에 걸쳐 옵션 {rowCount}개",
|
||
"noFile": "{label} (업로드된 파일 없음)",
|
||
"media": "미디어",
|
||
"image": "이미지",
|
||
"video": "동영상",
|
||
"document": "문서",
|
||
"audio": "오디오",
|
||
"hasTag": "{tag} 태그 있음",
|
||
"opContains": "포함함",
|
||
"opExists": "존재함",
|
||
"opMissing": "존재하지 않음",
|
||
"modeAdd": "추가",
|
||
"modeRemove": "제거",
|
||
"tagPicked": "{tag} 태그 {mode}…",
|
||
"tagNone": "태그 {mode} (선택된 태그 없음)"
|
||
}
|
||
},
|
||
"Settings": {
|
||
"pageTitle": "설정",
|
||
"pageDesc": "계정과 워크스페이스에 관한 모든 것을 한곳에서 관리하세요. 관리할 섹션을 선택하세요.",
|
||
"overview": {
|
||
"notSetup": "아직 설정되지 않음",
|
||
"connected": "연결됨",
|
||
"needsReconnecting": "재연결 필요",
|
||
"viewTeamMembers": "팀원 보기",
|
||
"membersCount": "멤버 {count}명",
|
||
"pendingInvites": "대기 중인 초대 {count}건",
|
||
"manageTemplates": "메시지 템플릿 관리",
|
||
"templatesCount": "템플릿 {count}개",
|
||
"pendingReview": "검토 대기 {count}건",
|
||
"tagsAndFields": "태그 및 커스텀 필드",
|
||
"tagsCount": "태그 {count}개",
|
||
"fieldsCount": "커스텀 필드 {count}개",
|
||
"appearance": "{mode} 모드 · {theme} 색상",
|
||
"yourAccount": "내 계정",
|
||
"loading": "불러오는 중…"
|
||
},
|
||
"members": {
|
||
"title": "팀원",
|
||
"description": "이 계정에 접근 권한이 있는 사람들입니다. 역할에 따라 각 팀원이 할 수 있는 작업이 결정됩니다.",
|
||
"inviteMember": "멤버 초대",
|
||
"online": "온라인",
|
||
"away": "자리비움",
|
||
"offline": "오프라인",
|
||
"memberCount": "멤버 {count}명",
|
||
"you": "나",
|
||
"unnamed": "이름 없음",
|
||
"joined": "{date} 참여",
|
||
"remove": "제거",
|
||
"removedToast": "{name}을(를) 제거했습니다",
|
||
"updatedToast": "{name}을(를) {role}(으)로 변경했습니다",
|
||
"pendingInvitations": "대기 중인 초대",
|
||
"inviteHint": "보안을 위해 초대 URL 원문은 생성 시 한 번만 표시됩니다 — 다시 공유하려면 아래에서 초대를 취소하고 새로 만드세요.",
|
||
"noPendingTitle": "대기 중인 초대가 없습니다.",
|
||
"noPendingDesc": "위의 <bold>멤버 초대</bold>를 클릭해 공유 가능한 링크를 생성하세요.",
|
||
"untitledInvite": "제목 없는 초대",
|
||
"created": "{date} 생성",
|
||
"expiresInDays": "{days}일 후 만료",
|
||
"expiresInHours": "{hours}시간 후 만료",
|
||
"expired": "만료됨",
|
||
"revoke": "취소",
|
||
"revokedToast": "초대가 취소되었습니다",
|
||
"removeDialogTitle": "멤버 제거",
|
||
"removeDialogDesc": "<bold>{name}</bold>을(를) 이 계정에서 제거하시겠습니까? 이 계정에서 로그아웃되며 다음 로그인 시 새로운 개인 계정이 발급됩니다. 로그인 정보 자체는 삭제되지 않습니다.",
|
||
"cancel": "취소",
|
||
"removing": "제거 중...",
|
||
"removeBtn": "멤버 제거"
|
||
},
|
||
"invite": {
|
||
"inviteCreated": "초대가 생성되었습니다",
|
||
"inviteCreatedDesc": "이 링크를 새 팀원과 공유하세요. <bold>{role}</bold> 역할로 가입(또는 로그인)해 계정에 합류할 수 있습니다. 링크는 <bold>{days}일</bold> 동안 유효합니다.",
|
||
"inviteLink": "초대 링크",
|
||
"copy": "복사",
|
||
"saveLinkNow": "지금 이 링크를 저장하세요.",
|
||
"saveLinkHint": "원문은 저장되지 않으며, 이 대화상자를 닫으면 URL이 사라집니다. 다시 공유하려면 이 초대를 취소하고 새로 만드세요.",
|
||
"sendViaWhatsApp": "WhatsApp으로 보내기",
|
||
"done": "완료",
|
||
"dialogTitle": "팀원 초대",
|
||
"dialogDesc": "일회용 초대 링크를 생성합니다. WhatsApp, Slack 등 원하는 채널로 공유하세요 — 이메일 서비스가 필요하지 않습니다.",
|
||
"roleLabel": "역할",
|
||
"validForLabel": "링크 유효 기간",
|
||
"days1": "1일",
|
||
"days7": "7일",
|
||
"days30": "30일",
|
||
"labelTitle": "라벨",
|
||
"optional": "(선택)",
|
||
"labelPlaceholder": "예: Sara — 지원팀",
|
||
"labelHint": "아래 대기 목록에서 링크를 누구에게 보냈는지 기억하는 데 도움이 됩니다.",
|
||
"cancel": "취소",
|
||
"creating": "만드는 중...",
|
||
"generateLink": "링크 생성",
|
||
"labelTooLong": "라벨은 {max}자 이하여야 합니다",
|
||
"copied": "초대 링크가 복사되었습니다",
|
||
"clipboardBlocked": "클립보드 접근이 차단되었습니다 — 링크를 직접 복사하세요",
|
||
"whatsappMessage": "이 링크(유효 기간 {expiresInDays}일)로 wacrm의 {accountName}에 참여하세요: {url}"
|
||
},
|
||
"tagsAndFields": {
|
||
"title": "필드 & 태그",
|
||
"description": "연락처를 정리하는 두 가지 방법: 빠른 그룹화를 위한 색상 태그와, 구조화된 데이터를 위한 커스텀 필드.",
|
||
"tagsTitle": "태그",
|
||
"tagsDesc": "연락처를 그룹화하고 필터링하기 위한 색상 라벨입니다.",
|
||
"fieldsTitle": "커스텀 필드",
|
||
"fieldsDesc": "추가 연락처 필드입니다 (예: 우편번호, 리드 출처). 모든 연락처와 \"연락처 필드 업데이트\" 자동화 액션에 표시됩니다.",
|
||
"adminRole": "관리자",
|
||
"failedToLoadTags": "태그를 불러오지 못했습니다",
|
||
"nameRequired": "태그 이름은 필수입니다",
|
||
"notAuthenticated": "인증되지 않았습니다",
|
||
"tagCreated": "태그가 생성되었습니다",
|
||
"failedToCreateTag": "태그를 생성하지 못했습니다",
|
||
"tagDeleted": "태그가 삭제되었습니다",
|
||
"failedToDeleteTag": "태그를 삭제하지 못했습니다",
|
||
"deleteAria": "{name} 삭제",
|
||
"noTags": "아직 태그가 없습니다 — 아래에서 첫 태그를 만들어보세요.",
|
||
"placeholder": "예: 뉴스레터",
|
||
"useColor": "{color} 사용",
|
||
"addTag": "태그 추가",
|
||
"deleteTag": "태그 삭제",
|
||
"deleteConfirm": "\"{name}\" 태그를 삭제하시겠습니까? 모든 연락처에서 제거되며 되돌릴 수 없습니다.",
|
||
"cancel": "취소",
|
||
"deleting": "삭제 중...",
|
||
"colors": {
|
||
"red": "빨강",
|
||
"orange": "주황",
|
||
"amber": "호박색",
|
||
"emerald": "에메랄드",
|
||
"cyan": "청록",
|
||
"blue": "파랑",
|
||
"violet": "보라",
|
||
"pink": "분홍"
|
||
}
|
||
},
|
||
"templates": {
|
||
"title": "메시지 템플릿",
|
||
"description": "템플릿을 만들어 Meta에 승인을 요청하세요. 다른 곳에서 승인된 템플릿을 가져오려면 \"Meta에서 동기화\"를 사용하세요.",
|
||
"syncFromMeta": "Meta에서 동기화",
|
||
"syncing": "동기화 중…",
|
||
"syncTitle": "Meta WhatsApp 비즈니스 계정에서 승인된 템플릿 가져오기",
|
||
"newTemplate": "새 템플릿",
|
||
"noTemplates": "아직 템플릿이 없습니다.",
|
||
"createFirst": "시작할 첫 메시지 템플릿을 만드세요.",
|
||
"editTitle": "수정하면 Meta 재검토가 트리거되어 상태가 대기 중으로 바뀝니다.",
|
||
"editLabel": "템플릿 수정",
|
||
"edit": "수정",
|
||
"resubmitTitle": "템플릿을 수정해 Meta 검토를 위해 다시 제출하세요.",
|
||
"resubmitLabel": "템플릿 수정 후 재제출",
|
||
"resubmit": "재제출",
|
||
"deleteMetaLocallyAria": "Meta와 로컬에서 템플릿 삭제",
|
||
"deleteLocallyAria": "로컬에서 템플릿 삭제",
|
||
"deleteMetaLocallyTitle": "Meta와 로컬에서 삭제",
|
||
"deleteLocallyTitle": "로컬에서 삭제",
|
||
|
||
"dialogEditTitle": "메시지 템플릿 수정",
|
||
"dialogNewTitle": "새 메시지 템플릿",
|
||
"dialogEditDesc": "변경 사항을 저장해 Meta에 재제출하세요. 검토 중에는 상태가 다시 대기 중으로 바뀝니다.",
|
||
"dialogNewDesc": "템플릿을 만들어 Meta 승인을 요청하세요. 승인되면 브로드캐스트와 인박스에서 사용할 수 있습니다.",
|
||
"authWarning": "AUTHENTICATION 템플릿은 본문과 OTP 버튼 형식이 고정되어 있어 별도의 빌더가 필요합니다. 지금은 Meta WhatsApp 관리자에서 만든 뒤 <bold>Meta에서 동기화</bold>로 가져오세요.",
|
||
|
||
"templateName": "템플릿 이름",
|
||
"namePlaceholder": "예: order_confirmation",
|
||
"nameFixed": "템플릿이 Meta에 존재하면 이름이 고정됩니다 — 변경하려면 새 템플릿을 만드세요.",
|
||
"nameHint": "소문자, 숫자, 밑줄만 사용할 수 있습니다.",
|
||
"category": "카테고리",
|
||
"language": "언어",
|
||
"langFixed": "템플릿이 Meta에 존재하면 언어가 고정됩니다.",
|
||
"langHint": "Meta의 정확한 코드와 일치해야 합니다 — <code>en_US</code>와 <code>en</code>은 다른 코드입니다.",
|
||
|
||
"header": "헤더",
|
||
"headerNone": "없음",
|
||
"headerText": "텍스트",
|
||
"headerImage": "이미지",
|
||
"headerVideo": "동영상",
|
||
"headerDocument": "문서",
|
||
"headerTextPlaceholder": "헤더 텍스트 (최대 60자, {{1}} 선택 가능)",
|
||
"headerSampleAria": "헤더 변수 샘플 값",
|
||
"headerSamplePlaceholder": "{{1}}의 샘플 값 (Meta 검토에 필요)",
|
||
|
||
"uploadImage": "이미지 업로드",
|
||
"uploadHint": "JPEG 또는 PNG, 5MB 이하",
|
||
"mediaUrlPlaceholder": "https://… (또는 공개 {format} 링크 붙여넣기)",
|
||
"imageHint": "JPEG/PNG(5MB 이하, 800×418px 이상 권장)를 업로드하거나 공개 HTTPS 링크를 붙여넣으세요 — 검토를 위해 자동으로 Meta에 업로드됩니다.",
|
||
"mediaHint": "공개적으로 접근 가능한 HTTPS 링크여야 합니다. Meta가 검토 중 한 번 가져오므로 약 24시간 동안 살아있어야 합니다.",
|
||
"videoHint": " 권장: MP4 / 3GPP, 16MB 이하, 60초 이하.",
|
||
"documentHint": " 권장: PDF, 100MB 이하.",
|
||
|
||
"bodyText": "본문 텍스트",
|
||
"bodyPlaceholder": "안녕하세요 {{1}}님, 주문 {{2}}이(가) 확정되었습니다.",
|
||
"sampleValues": "샘플 값 (Meta가 템플릿 검토에 사용합니다)",
|
||
"bodyHint": "변수에는 {{1}}, {{2}}를 사용하세요 ({{1}}부터 연속되어야 합니다).",
|
||
"sampleAria": "본문 변수 {var}의 샘플 값",
|
||
"samplePlaceholder": "{var}의 샘플",
|
||
|
||
"footer": "푸터 (선택)",
|
||
"footerPlaceholder": "선택적 푸터 텍스트 (최대 60자)",
|
||
|
||
"buttons": "버튼 (선택)",
|
||
"addButton": "버튼 추가",
|
||
"buttonsLimit": "최대 {max}개 버튼. QUICK_REPLY 버튼은 URL / 전화 / 코드 복사 버튼보다 앞에 와야 합니다.",
|
||
"btnQuickReply": "빠른 응답",
|
||
"btnUrl": "URL",
|
||
"btnPhone": "전화",
|
||
"btnCopyCode": "코드 복사",
|
||
"btnLabelPlaceholder": "버튼 라벨",
|
||
"urlPlaceholder": "https://example.com/path 또는 {{1}} 접미사 포함",
|
||
"urlSamplePlaceholder": "{{1}}의 예시 값 (URL에 변수가 있을 때 필요)",
|
||
"phonePlaceholder": "+15551234567",
|
||
"codePlaceholder": "예시 코드 (예: SUMMER20)",
|
||
|
||
"cancel": "취소",
|
||
"saving": "저장 중…",
|
||
"submitting": "제출 중…",
|
||
"saveResubmit": "저장 & 재제출",
|
||
"submitApproval": "승인 요청",
|
||
|
||
"deleteDialogTitle": "템플릿을 삭제하시겠습니까?",
|
||
"deleteMetaDesc": "\"{name}\"이(가) Meta와 wacrm에서 삭제됩니다. 이 템플릿을 사용하는 활성 브로드캐스트는 다음 전송부터 실패하기 시작합니다. 되돌릴 수 없습니다.",
|
||
"deleteLocalDesc": "\"{name}\"이(가) wacrm에서 삭제됩니다. Meta에 제출된 적이 없으므로 별도의 원격 정리가 필요하지 않습니다.",
|
||
"deleting": "삭제 중…",
|
||
"delete": "삭제",
|
||
|
||
"toastLoadFailed": "템플릿을 불러오지 못했습니다",
|
||
"toastSubmitFailed": "제출하지 못했습니다",
|
||
"toastSubmitEditSuccess": "수정 사항이 제출되었습니다 — Meta는 보통 24시간 이내에 검토합니다.",
|
||
"toastSubmitNewSuccess": "Meta에 제출되었습니다 — 일반적인 검토 시간은 24시간입니다. 상태는 자동으로 업데이트됩니다.",
|
||
"toastSaveEditDry": "템플릿이 업데이트되었습니다 (드라이런 — Meta 호출 없음)",
|
||
"toastSaveNewDry": "템플릿이 저장되었습니다 (드라이런 — Meta 호출 없음)",
|
||
"toastSyncCount": "Meta에서 템플릿 {total}개를 동기화했습니다",
|
||
"toastSyncDetails": " (신규 {inserted}개, 업데이트 {updated}개)",
|
||
"toastSyncFailed": "동기화 실패: {preview}",
|
||
"toastSyncTruncated": "처음 2000개 템플릿만 동기화했습니다 — 계정에 더 많은 템플릿이 있습니다. 계속하려면 다시 동기화하거나, 문제가 지속되면 지원팀에 문의하세요.",
|
||
"toastSyncError": "템플릿 동기화에 실패했습니다",
|
||
"toastDeleteSuccess": "템플릿이 삭제되었습니다",
|
||
"toastDeleteError": "템플릿을 삭제하지 못했습니다",
|
||
"toastInvalidImage": "헤더 이미지는 JPEG 또는 PNG여야 합니다.",
|
||
"toastImageTooLarge": "이미지 크기가 {size}MB입니다 — Meta 제한은 5MB입니다.",
|
||
"toastUploadSuccess": "이미지가 업로드되었습니다.",
|
||
"toastUploadFailed": "업로드에 실패했습니다."
|
||
},
|
||
"roles": {
|
||
"admin": "관리자",
|
||
"adminHint": "멤버 관리 + 모든 기능",
|
||
"agent": "상담원",
|
||
"agentHint": "기능 사용 가능; 설정 접근 불가",
|
||
"viewer": "뷰어",
|
||
"viewerHint": "앱 전체를 읽기 전용으로 열람",
|
||
"owner": "소유자",
|
||
"ownerHint": "계정과 결제에 대한 전체 권한"
|
||
},
|
||
"whatsapp": {
|
||
"title": "WhatsApp 연결",
|
||
"description": "Meta WhatsApp 비즈니스 API를 연결하세요. 자격 증명, 웹훅, 설정 단계가 모두 여기 있습니다.",
|
||
"tokenCorrupted": "저장된 토큰을 복호화할 수 없습니다",
|
||
"resetting": "초기화 중...",
|
||
"resetConfig": "설정 초기화",
|
||
"credentialsValid": "자격 증명이 유효합니다",
|
||
"notConnected": "연결되지 않음",
|
||
"connectedDesc": "액세스 토큰으로 Meta 인증이 완료되었습니다. 웹훅이 실제로 연결되었는지는 아래 등록 상태를 확인하세요.",
|
||
"notConnectedDesc": "아래에서 Meta API 자격 증명을 설정해 WhatsApp 비즈니스 계정을 연결하세요.",
|
||
"registered": "등록됨 — Meta가 wacrm으로 이벤트를 전달합니다",
|
||
"notRegistered": "등록되지 않음 — Meta가 이벤트를 전달하지 않습니다",
|
||
"verifyWithMeta": "Meta로 확인",
|
||
"subscribedSince": "{date}부터 구독 중입니다. 이벤트가 더 이상 도착하지 않으면 Meta로 확인을 클릭하세요.",
|
||
"unknownDate": "알 수 없음",
|
||
"lastAttemptFailed": "마지막 시도 실패 원인: ",
|
||
"retryHint": "아래에 2단계 PIN을 입력(또는 수정)하고 설정 저장을 클릭해 다시 시도하세요.",
|
||
"noRegistrationHint": "이 번호는 등록 추적 기능이 생기기 전에 저장되었거나 등록이 생략되었습니다. 아래에 2단계 PIN을 입력하고 설정 저장을 클릭해 구독하세요.",
|
||
"diagnosticLastRun": "진단 — 마지막 실행: ",
|
||
"live": "실시간",
|
||
"notLive": "실시간 아님",
|
||
"apiCredentialsTitle": "API 자격 증명",
|
||
"apiCredentialsDesc": "Meta WhatsApp 비즈니스 API 자격 증명을 입력하세요.",
|
||
"phoneNumberId": "전화번호 ID",
|
||
"wabaId": "WhatsApp 비즈니스 계정 ID",
|
||
"accessToken": "영구 액세스 토큰",
|
||
"accessTokenPlaceholder": "액세스 토큰을 입력하세요",
|
||
"tokenHidden": "보안을 위해 토큰이 숨겨져 있습니다. 설정을 업데이트하려면 다시 입력하세요.",
|
||
"webhookVerifyToken": "웹훅 인증 토큰",
|
||
"webhookVerifyTokenPlaceholder": "사용자 지정 인증 토큰을 만드세요",
|
||
"webhookVerifyTokenHint": "직접 만드는 문자열입니다. Meta 웹훅 설정에 지정한 토큰과 일치해야 합니다.",
|
||
"twoStepPin": "2단계 인증 PIN",
|
||
"optional": "(선택)",
|
||
"pinPlaceholder": "Meta WhatsApp 관리자에서 발급받은 6자리 PIN",
|
||
"pinHint": "프로덕션 번호의 수신 메시지를 연결하려면 필요합니다. Meta 비즈니스 관리자 → WhatsApp 계정 → 전화번호 → 2단계 인증에서 설정한 뒤 여기에 붙여넣으면 wacrm이 해당 번호를 구독할 수 있습니다 — 그렇지 않으면 Meta는 마지막으로 이 번호를 등록한 앱으로 수신 이벤트를 보냅니다(공유 WABA 하의 두 번째 번호에서 흔히 발생하는 증상입니다). Meta 테스트 번호는 PIN이 없고 이미 등록되어 있으므로 이 필드를 비워두세요. 비워두면 기존 등록도 그대로 유지됩니다.",
|
||
"webhookTitle": "웹훅 설정",
|
||
"webhookDesc": "Meta 앱 대시보드의 웹훅 콜백으로 이 URL을 사용하세요.",
|
||
"webhookUrl": "웹훅 콜백 URL",
|
||
"saving": "저장 중...",
|
||
"saveConfig": "설정 저장",
|
||
"testing": "테스트 중...",
|
||
"testConnection": "API 연결 테스트",
|
||
"setupInstructions": "설정 안내",
|
||
"setupInstructionsDesc": "WhatsApp 비즈니스 API를 연결하려면 다음 단계를 따르세요.",
|
||
"step1": "Meta 앱 만들기",
|
||
"step1_1": "developers.facebook.com으로 이동",
|
||
"step1_2": "\"My Apps\"를 클릭한 뒤 \"Create App\" 클릭",
|
||
"step1_3": "앱 유형으로 \"Business\" 선택",
|
||
"step1_4": "앱 정보를 입력하고 생성",
|
||
"step2": "WhatsApp 제품 추가",
|
||
"step2_1": "앱 대시보드에서 \"Add Product\" 클릭",
|
||
"step2_2": "\"WhatsApp\"을 찾아 \"Set Up\" 클릭",
|
||
"step2_3": "설정 마법사를 따라 비즈니스를 연결",
|
||
"step3": "API 자격 증명 가져오기",
|
||
"step3_1": "WhatsApp > API Setup으로 이동",
|
||
"step3_2": "<strong class=\"text-foreground\">전화번호 ID</strong> 복사",
|
||
"step3_3": "<strong class=\"text-foreground\">WhatsApp 비즈니스 계정 ID</strong> 복사",
|
||
"step3_4": "Business Settings > System Users에서 <strong class=\"text-foreground\">영구 액세스 토큰</strong> 생성",
|
||
"step4": "웹훅 설정",
|
||
"step4_1": "WhatsApp > Configuration으로 이동",
|
||
"step4_2": "웹훅 섹션에서 \"Edit\" 클릭",
|
||
"step4_3": "위의 <strong class=\"text-foreground\">웹훅 콜백 URL</strong>을 붙여넣기",
|
||
"step4_4": "여기서 설정한 것과 동일한 <strong class=\"text-foreground\">인증 토큰</strong>을 입력",
|
||
"step4_5": "\"messages\" 웹훅 필드를 구독",
|
||
"metaDocs": "Meta WhatsApp API 문서"
|
||
},
|
||
"sections": {
|
||
"overview": "개요",
|
||
"profile": "내 프로필",
|
||
"security": "로그인 & 보안",
|
||
"appearance": "화면 설정",
|
||
"whatsapp": "WhatsApp",
|
||
"templates": "템플릿",
|
||
"quick-replies": "빠른 답장",
|
||
"fields": "필드 & 태그",
|
||
"deals": "딜 & 통화",
|
||
"members": "팀원",
|
||
"api": "API 키"
|
||
},
|
||
"groups": {
|
||
"account": "계정",
|
||
"workspace": "워크스페이스"
|
||
},
|
||
"profile": {
|
||
"title": "내 프로필",
|
||
"description": "앱 전체에서 나를 어떻게 보여줄지 설정합니다. 아바타와 이름은 헤더, 사이드바, 팀원이 보는 모든 곳에 표시됩니다.",
|
||
"changePhoto": "사진 변경",
|
||
"uploadPhoto": "사진 업로드",
|
||
"remove": "제거",
|
||
"photoHint": "PNG, JPG, WebP, GIF. 최대 2MB.",
|
||
"displayName": "표시 이름",
|
||
"email": "이메일",
|
||
"emailChangeHint": "<bold>{oldEmail}</bold>과(와) <bold>{newEmail}</bold>의 받은편지함을 확인하세요 — 변경 사항이 적용되려면 둘 다 확인이 필요합니다.",
|
||
"accountDetails": "계정 정보",
|
||
"role": "역할",
|
||
"joined": "가입일",
|
||
"userId": "사용자 ID",
|
||
"loading": "프로필을 불러오는 중…",
|
||
"saving": "저장 중…",
|
||
"saveChanges": "변경 사항 저장",
|
||
"unsupportedImage": "지원되지 않는 이미지 형식입니다",
|
||
"unsupportedImageDesc": "PNG, JPG, WebP, GIF를 사용하세요.",
|
||
"imageTooLarge": "이미지가 너무 큽니다",
|
||
"imageTooLargeDesc": "최대 2MB.",
|
||
"nameRequired": "표시 이름은 필수입니다",
|
||
"invalidEmail": "유효한 이메일 주소를 입력하세요",
|
||
"uploadFailed": "업로드 실패: {message}",
|
||
"saveFailed": "저장 실패: {message}",
|
||
"profileSaved": "프로필이 저장되었습니다",
|
||
"emailChangeFailed": "이메일 변경 실패: {message}",
|
||
"profileSavedEmailCheck": "프로필이 저장되었습니다 — 이메일 주소 변경을 확인하려면 이메일을 확인하세요",
|
||
|
||
"passwordTitle": "비밀번호",
|
||
"passwordDesc": "최소 {min}자 이상 사용하세요. 변경 후에도 이 기기에서는 로그인이 유지됩니다.",
|
||
"currentPassword": "현재 비밀번호",
|
||
"newPassword": "새 비밀번호",
|
||
"confirmPassword": "새 비밀번호 확인",
|
||
"updating": "업데이트 중…",
|
||
"updatePassword": "비밀번호 업데이트",
|
||
"cannotChangeNoEmail": "현재 이메일 없이는 비밀번호를 변경할 수 없습니다",
|
||
"passwordTooShort": "비밀번호는 최소 {min}자 이상이어야 합니다",
|
||
"passwordMismatch": "새 비밀번호와 확인이 일치하지 않습니다",
|
||
"currentPasswordIncorrect": "현재 비밀번호가 올바르지 않습니다",
|
||
"passwordUpdateFailed": "비밀번호 업데이트 실패: {message}",
|
||
"passwordUpdated": "비밀번호가 업데이트되었습니다",
|
||
|
||
"sessionsTitle": "활성 세션",
|
||
"sessionsDesc": "이 기기를 포함해 로그인되어 있는 모든 기기에서 로그아웃합니다. 노트북을 분실했거나 비밀번호를 공유한 경우 유용합니다.",
|
||
"signOutAll": "모든 기기에서 로그아웃",
|
||
"signOutConfirmTitle": "모든 곳에서 로그아웃하시겠습니까?",
|
||
"signOutConfirmDesc": "이 계정에 로그인된 모든 기기가 로그아웃되며 다시 로그인해야 합니다. 로그인 페이지로 이동합니다.",
|
||
"cancel": "취소",
|
||
"signingOut": "로그아웃 중…",
|
||
"signOutEverywhere": "모든 곳에서 로그아웃",
|
||
"signOutFailed": "로그아웃 실패: {message}"
|
||
},
|
||
"appearance": {
|
||
"title": "화면 설정",
|
||
"description": "앱 전체에서 사용할 모드와 강조 색상을 설정합니다. 이 기기에 저장되며, 바로 적용되니 자유롭게 시도해보세요.",
|
||
"mode": "모드",
|
||
"useMode": "{mode} 모드 사용",
|
||
"active": "사용 중",
|
||
"accentColor": "강조 색상",
|
||
"useTheme": "{name} 테마 사용"
|
||
},
|
||
"security": {
|
||
"title": "로그인 & 보안",
|
||
"description": "비밀번호를 변경하고 기기에서 로그아웃하세요. 계정을 안전하게 유지하는 데 도움이 됩니다."
|
||
},
|
||
"apiKeys": {
|
||
"title": "API 키",
|
||
"description": "키는 공개 REST API(<apiCode>/api/v1</apiCode>)를 인증해 직접 자동화를 구축할 수 있게 해줍니다. <headerCode>Authorization: Bearer <key></headerCode> 형식으로 전송하세요.",
|
||
"newApiKey": "새 API 키",
|
||
"noApiKeys": "아직 API 키가 없습니다.",
|
||
"createOneHint": "<bold>새 API 키</bold>를 클릭해 만드세요.",
|
||
"askAdminHint": "관리자에게 생성을 요청하세요.",
|
||
"revoked": "취소됨",
|
||
"expired": "만료됨",
|
||
"noScopes": "권한 범위 없음",
|
||
"created": "{date} 생성",
|
||
"lastUsed": "마지막 사용 {date}",
|
||
"neverUsed": "사용한 적 없음",
|
||
"expires": "{date} 만료",
|
||
"revoke": "취소",
|
||
"revokeSuccess": "\"{name}\"을(를) 취소했습니다",
|
||
"revokeFailed": "키를 취소하지 못했습니다",
|
||
"loadFailed": "API 키를 불러오지 못했습니다",
|
||
"createError": "키를 생성하지 못했습니다",
|
||
"nameRequired": "키 이름을 입력하세요",
|
||
"nameLabel": "이름",
|
||
"namePlaceholder": "예: Zapier 자동화",
|
||
"scopesLabel": "권한 범위",
|
||
"scopesHint": "권한 범위가 없는 키도 <code>GET /api/v1/me</code>를 호출해 동작을 확인할 수 있습니다.",
|
||
"cancel": "취소",
|
||
"creating": "만드는 중…",
|
||
"createKey": "키 생성",
|
||
"copyTitle": "API 키 복사",
|
||
"copyDesc": "전체 키가 표시되는 것은 이번이 마지막입니다. 안전한 곳에 보관하세요 — 분실하면 취소하고 새로 만드세요.",
|
||
"apiKeyLabel": "API 키",
|
||
"copy": "복사",
|
||
"copySuccess": "API 키가 복사되었습니다",
|
||
"copyFailed": "복사 실패 — 직접 선택해 복사하세요",
|
||
"newKeyTitle": "새 API 키",
|
||
"newKeyDesc": "이 키를 사용할 연동 서비스의 이름을 붙이고, 필요한 권한 범위만 부여하세요.",
|
||
"done": "완료",
|
||
"networkError": "서버에 연결할 수 없습니다"
|
||
},
|
||
"deals": {
|
||
"title": "딜 & 통화",
|
||
"description": "새 딜과 파이프라인, 대시보드 합계에 사용되는 통화입니다.",
|
||
"defaultCurrency": "기본 통화",
|
||
"defaultCurrencyDesc": "새 딜은 이 통화를 기본값으로 사용하며, 파이프라인과 대시보드 합계도 이 통화로 표시됩니다. 기존 딜은 저장 당시의 통화를 그대로 유지합니다.",
|
||
"currencyLabel": "통화",
|
||
"adminOnlyHint": "계정 관리자만 기본 통화를 변경할 수 있습니다.",
|
||
"save": "저장",
|
||
"saving": "저장 중...",
|
||
"saveFailed": "기본 통화를 저장하지 못했습니다",
|
||
"saveSuccess": "기본 통화가 업데이트되었습니다"
|
||
},
|
||
"aiConfig": {
|
||
"title": "에이전트 설정",
|
||
"description": "직접 발급받은 OpenAI 또는 Anthropic 키를 사용하세요. wacrm은 회원님의 키로 공급자에 직접 요청하므로 좌석당 AI 비용이 없고 데이터도 온전히 회원님의 것입니다. 인박스의 AI 답장 초안, 자동 응답 봇, 플레이그라운드에 사용됩니다.",
|
||
"adminOnlyConfig": "관리자와 소유자만 AI 설정을 변경할 수 있습니다.",
|
||
"loadFailed": "AI 설정을 불러오지 못했습니다",
|
||
"providerAndKey": "공급자 & 키",
|
||
"encryptionNotice": "키는 저장 시 암호화되며(AES-256-GCM), 저장 후에는 다시 표시되지 않습니다.",
|
||
"provider": "공급자",
|
||
"model": "모델",
|
||
"apiKey": "API 키",
|
||
"testKey": "키 테스트",
|
||
"testSuccess": "키가 정상 작동합니다 — 공급자가 응답했습니다.",
|
||
"testRejected": "공급자가 요청을 거부했습니다.",
|
||
"testNetworkError": "공급자에 연결할 수 없습니다.",
|
||
"embeddingsKey": "임베딩 키",
|
||
"optionalSemanticSearch": "(선택 — 의미 기반 지식베이스 검색을 활성화합니다)",
|
||
"embeddingsHint": "지식베이스를 임베딩하는 데만 사용되는 OpenAI 키입니다(text-embedding-3-small){sameKeyText}. 비워두면 키워드 검색을 사용합니다. 비우면 의미 기반 검색이 꺼집니다.",
|
||
"sameKeyText": " — 위와 동일한 키를 사용할 수 있습니다",
|
||
"behaviour": "동작 방식",
|
||
"behaviourDesc": "비즈니스에 대해 어시스턴트에게 알려주세요 — 제품, 어조, 약속해도 되는 것과 안 되는 것. 이 맥락은 초안 작성과 자동 응답 모두에 반영됩니다.",
|
||
"businessContext": "비즈니스 맥락 & 지침",
|
||
"promptPlaceholder": "예: 저희는 커피 장비 매장 Acme입니다. 따뜻하고 간결하게 응대해주세요. 가격이나 배송일은 절대 언급하지 말고 사람에게 인계하세요.",
|
||
"enableAssistant": "AI 어시스턴트 활성화",
|
||
"enableAssistantDesc": "마스터 스위치입니다. 인박스의 \"AI로 초안 작성\" 버튼을 켭니다.",
|
||
"autoReply": "수신 메시지 자동 응답",
|
||
"autoReplyDesc": "봇이 새 수신 메시지에 자동으로 응답합니다(플로우가 처리하지 않고 담당 상담원이 없는 경우에만). 도움을 줄 수 없으면 사람에게 인계합니다.",
|
||
"maxAutoReplies": "대화당 최대 자동 응답 횟수",
|
||
"maxAutoRepliesDesc": "한 대화에서 이 횟수만큼 봇이 응답하면 더 이상 응답하지 않습니다.",
|
||
"handoffTo": "인계 대상",
|
||
"handoffToDesc": "봇이 도움을 줄 수 없거나 응답 한도에 도달하면 일시 중지하고 무슨 일이 있었는지 짧은 메모와 함께 이 대상에게 대화를 넘깁니다.",
|
||
"handoffQueue": "미배정 대기열 (모든 상담원이 처리 가능)",
|
||
"remove": "제거",
|
||
"save": "저장",
|
||
"missingModel": "모델 이름을 입력하세요.",
|
||
"missingApiKey": "API 키를 입력하세요.",
|
||
"saveSuccess": "AI 어시스턴트가 저장되었습니다.",
|
||
"saveFailed": "저장하지 못했습니다.",
|
||
"removeSuccess": "AI 설정이 제거되었습니다.",
|
||
"removeFailed": "제거하지 못했습니다."
|
||
},
|
||
"aiKnowledge": {
|
||
"loadFailed": "지식베이스를 불러오지 못했습니다",
|
||
"openFailed": "문서를 열지 못했습니다",
|
||
"titleContentRequired": "제목과 내용은 필수입니다.",
|
||
"saveSuccessNew": "문서가 추가되었습니다.",
|
||
"saveSuccessUpdate": "문서가 업데이트되었습니다.",
|
||
"saveFailed": "저장하지 못했습니다.",
|
||
"removeSuccess": "문서가 제거되었습니다.",
|
||
"removeFailed": "제거하지 못했습니다.",
|
||
"reindexSuccess": "문서 {count}개를 재색인했습니다.",
|
||
"reindexFailed": "재색인에 실패했습니다.",
|
||
"title": "지식베이스",
|
||
"description": "FAQ, 정책, 제품 정보를 추가하세요. 어시스턴트가 초안 작성과 자동 응답 시 관련된 부분을 검색해 인계 대신 직접 답변할 수 있습니다.{searchType}",
|
||
"semanticSearchOn": " 의미 기반 검색이 켜져 있습니다 (임베딩 키 설정됨).",
|
||
"keywordSearchOn": " 키워드 검색을 사용 중입니다 — 의미 기반 검색을 사용하려면 위에서 임베딩 키를 추가하세요.",
|
||
"noDocs": "아직 문서가 없습니다.",
|
||
"editDocTitle": "제목",
|
||
"editDocTitlePlaceholder": "예: 반품 & 환불 정책",
|
||
"editDocContent": "내용",
|
||
"editDocContentPlaceholder": "FAQ 답변, 정책 텍스트, 제품 정보를 붙여넣으세요…",
|
||
"cancel": "취소",
|
||
"saveDoc": "문서 저장",
|
||
"addDoc": "문서 추가",
|
||
"reindex": "재색인",
|
||
"reindexTooltip": "모든 문서를 다시 임베딩합니다 (예: 임베딩 키 추가 후)",
|
||
"loading": "불러오는 중…"
|
||
}
|
||
}
|
||
}
|